求五分频电路用Verilog写

求五分频电路用Verilog写,第1张

module div_5 ( clkin,rst,clkout )

input clkin,rst

output clkout

reg [3:0]cnt

always @(posedge clk or negedge rst)

if (!rst)

cnt<=0

elsif (cnt>=4 )

cnt<=0

else

cnt<=cnt+1

assign clkout=(cnt<3)?1:0

endmodule

给你写一个,这是5分频程序。

假设你的clk就是1s周期的时钟

那么10s的应该是这么写

reg

[3:0]

cnt_10

reg

clk_10s

always

@

(posedge

rst

or

posedge

clk)

begin

if

(rst)

begin

cnt_10

<=

0

clk_10s<=

0

end

else

begin

if

(cnt_10==4)

begin

cnt_10

<=

0

clk_10s<=~clk_10s

end

else

begin

cnt_10

<=

cnt_10

+1

clk_10s<=

clk_10s

end

end

60的,cnt就在29归零,同时clk_60s反向

是在半周期反向才是占空比1:1。

使用74LS90或74ls290,

当R0(1)、R0(2)均为“1”;S9(1)、S9(2)中有“0”时,实现异步清零功能,即QD(Q3),QC(Q2),QB(Q1),QA(Q0)=0,0,0,0。

当S9(1)、S9(2)均为“1”;R0(1)、R0(2)中有“0”时,实现置9功能,即QD(Q3),QC(Q2),QB(Q1),QA(Q0)=1,0,0,1。

那么很简单了,信号接入cp1(选择5进制计数器,q3q2q1表示5进制计数器计算出来的值),同时信号也接入cp0(使q0成为二进制计数器),

当来第一次脉冲的下降沿时,74ls90的q3q2q1状态为001,q0状态为1.把q0接S9(1)、q1接S9(2).把R0(1)接地,R0(2)接地.

使第二次脉冲的下降沿时实现置9功能,此时状态QD(Q3),QC(Q2),QB(Q1),=1,0,0.观察可知按照二进制的100等于4.此时QA(Q0)=1。观察可知QD(Q3),QC(Q2),QB(Q1),QA(Q0)=1,0,0,1按照二进制的1001等于9,

第三次脉冲的下降沿时,74ls90的q3q2q1q1q0状态为0,0,0,0,(参考74ls290真值表)

那么第四个脉冲的下降沿到来时q3q2q1q0状态为0,0,1,1

第五次1001

第六次0000

第七次0011.以下以此循环.

好了,很明显每三次高电平输入cp1和cp0,q3就能输出了1次(第2次)高电平,q3刚好是三进制计数器,那么q3也就是三分频器了(注意:假设输入信号的高低电平的占空比为50%,q3输出的占空比只有33.333%,即1/3)

5分频就更简单了,把S9(1)接地、S9(2)接地.把R0(1)接地,R0(2)接地.信号接入cp1(选择5进制计数器)

很明显每5次高电平输入cp1,q3就能输出了1次(第4次)高电平,q3刚好是五进制计数器,那么q3也就是五分频器了(注意:假设输入信号高低电平的占空比为50%,q3输出的占空比只有20%,即1/5)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7785290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存