在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: pyy1980

[求助] 万分着急,,高人可以帮我写个拨码开关输入 ,,然后脉冲分频的程序不??

[复制链接]
 楼主| 发表于 2010-4-23 10:14:32 | 显示全部楼层
分频后的占空比不变化,,,,,,
 楼主| 发表于 2010-4-23 10:18:34 | 显示全部楼层
我个人理解的关键因素

1.  奇数  偶数都可以分频,,,从1一直到255,,因为为8位开关
2.分频后占空比不变化,,



十万着急,,高人帮忙
 楼主| 发表于 2010-4-23 10:27:12 | 显示全部楼层
高人帮忙下,,,要不先把50%的占空比编写出来,,我下个星期做不出来十分麻烦,,,,

奇数  偶数都可以分频
 楼主| 发表于 2010-4-23 10:53:04 | 显示全部楼层
dddddddddddddddddddd
发表于 2010-4-23 11:01:27 | 显示全部楼层
编好了,我仿真ok了,你自己在自己去仿哈,马上贴给你
发表于 2010-4-23 11:07:40 | 显示全部楼层
占空比1:1,输入8'b00000000,输出持续低电平,输入8        'b00000001为1分频,依次8'b00000010为2分频,依次。。。
module clk_fenp(
                                clk_in,
                                clk_out,
                                switch_8bit_in
                                //test
                                //,clk_q1,clk_q2,count,count_clk
                                );

input                 clk_in;
input[7:0]        switch_8bit_in;
output                clk_out;
                        //,clk_q1,clk_q2;
reg[7:0]        count_clk;
reg                        clk_q1,clk_q2;
//output[7:0]        count,count_clk;
wire[7:0]        count;
wire                estop,switch_0,switch_1;
assign                switch_0=switch_8bit_in==8'b00000000        ?        1'b1 : 1'b0;
assign                switch_1=switch_8bit_in==8'b00000001        ?        1'b1 : 1'b0;
assign                estop=switch_0 || switch_1;
assign        count=switch_8bit_in[0]                ?        (switch_8bit_in-1)/2+1        :        switch_8bit_in/2+1;
assign        clk_out=switch_1                        ?        clk_in        :       
                                switch_8bit_in[0]        ?        (clk_q1 || clk_q2)                :        clk_q1;
always @(posedge estop or posedge  clk_in)
        if(estop)
        begin
                count_clk<=0;
                clk_q1<=0;
        end
        else
        if(count_clk<count-1)
        begin
                count_clk<=count_clk+1;
                clk_q1<=1;
        end
        else
        if(count_clk<switch_8bit_in-1)
        begin
                count_clk<=count_clk+1;
                clk_q1<=0;
        end
        else
        begin
                count_clk<=0;
                clk_q1<=0;
        end

always @(posedge estop or negedge clk_in)
        if(estop)
                clk_q2<=0;
        else
                clk_q2<=clk_q1;

endmodule
发表于 2010-4-23 11:12:19 | 显示全部楼层
高手还有好方法没
 楼主| 发表于 2010-4-23 11:35:32 | 显示全部楼层
jium007   高人可以把完整的程序帖出来不??我VHDL入门水平,,但是好象没有什么IEEE库一样
发表于 2010-4-23 11:39:03 | 显示全部楼层
这就是完整的啊。。是verilog写的,不是vhdl
发表于 2010-4-23 11:40:44 | 显示全部楼层
你在哪里的公司哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-26 18:57 , Processed in 0.021197 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表