用Verilog HDL编写简单的程序!数电实验!

用Verilog HDL编写简单的程序!数电实验!,第1张

module clk_div(clk,out1,out2);

input clk;

output out1,out2;

reg out1,out2;

reg [31:0]cnt1,cnt2;

always @(posedge clk)begin//50MHz分频计数

if(cnt1<32'd24999999)

cnt1 <=cnt1 + 32'd1;

else

cnt1 <=32'd0;

end

always @(posedge clk)//分频后的半周期反转

if(cnt1 == 0)

out1<=~out1;

always @(posedge clk)begin//5MHz分频计数

if(cnt2<32'd4999999)

cnt2 <=cnt2 + 32'd1;

else

cnt2 <=32'd0;

end

always @(posedge clk)//20%占空比

if(cnt2 == 32'd999999)

out2<=0;

else if(cnt2 == 32'd4999999)

out2<=1;

endmodule

自启动是对时序逻辑电路而言的,电路中用到触发器,那么电路的状态数是2n次方。例,用一个触发器,有2个状态,用两个触发器,有4个状态,用三个触发器,有8个状态。以两个触发器为例,设计3进制计数器,有3个状态,是00,01,10,这是3进制的3个数。

那么,自启动是针对上电后的随机状态的。因两个触发器共有4个状态,都有可能出现,只要是00,01,10这3个状态,就可以循环计数的。但是,一旦开机为11状态就麻烦了(这是一个剩余的空闲状态),假设没有自启动性,那就一直为11状态了,就无法正常计数了。因此,这就要把11状态的新状态加到循环中,即在00,01,10中选一个。这样,即使开机是11状态,但下一个状态就进入正常循环中了。这就是有自启动电路了。

如果,正常循环是全状态,没有剩余,就不必考虑自启动。可是,只要有剩余,就必须考虑自启动了。

以上就是关于用Verilog HDL编写简单的程序!数电实验!全部的内容,包括:用Verilog HDL编写简单的程序!数电实验!、电工学数字电路中,什么叫做自启动希望能解释清楚些、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9564336.html

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

发表评论

登录后才能评论

评论列表(0条)

保存