资源描述:
《Verilog硬件描述语言实例ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、10.6D触发器//例10.6.1moduled_ff(q,d,clk);outputq;inputd,clk;regq;always@(posedgeclk)q=d;endmodule1.Verilog语言描述2.程序说明上升沿和下降沿检测语句功能表Fromto01XZ0noposedgeposedgeposedge1negedgeNonegedgenegedgeXnegedgeposedgenoNoZnegedgeposedgenoNo上升沿触发指变量值从0变为1、0变为x和z、或者从x,z变为1,用posedge表示。下降沿触发指变量值从1变
2、为0、1变为x和z或者从x,z变为0,用negedge表示。3.仿真结果例10.6.1的仿真电路图:例10.6.1的仿真波形图:Verilog语言有两种赋值方式:连续赋值assign和过程赋值。过程赋值用来更新寄存器类型变量的值,过程赋值包括阻塞赋值“=”和非阻塞赋值“<=”两种。//例10.6.2moduled_ff(q1,q2,d,clk);outputq1,q2;inputd,clk;regq1,q2;always@(posedgeclk)beginq1=d;q2=q1;endendmodule阻塞赋值:阻塞赋值“=”:这种赋值方式是立即执行。
3、也就是说执行下一条语句时,q1已等于d。在clk时钟的上升沿,q1=d和q2=q1两条语句是先后执行的,最后结果相当于q1n+1=dn,q2n+1=qn+1=dn。非阻塞赋值://例10.6.3moduled_ff(q1,q2,d,clk);outputq1,q2;inputd,clk;regq1,q2;always@(posedgeclk)beginq1<=d;q2<=q1;endendmodule非阻塞过程赋值语句不会阻塞进程,直到整个块的操作执行完才一次完成赋值操作。用于几个寄存器需要同一时刻赋值的情况。q1n+1=dn,q2n+1=q1n=d
4、n-1例10.6.2的仿真波形图:例10.6.3的仿真波形图:10.7计数器10.7.14位二进制加法计数器1.Verilog语言描述//例10.7.1modulecount4(out,reset,clk);output[3:0]out;inputreset,clk;reg[3:0]out;always@(posedgeclk)beginif(reset)out<=0;//同步清零elseout<=out+1;//计数endendmodule2.程序说明这个计数器只有同步复位和计数功能。时钟的上升沿有效,当clk信号的上升沿到来时,如果清零信号为1,
5、则计数器清零,否则计数器进行计数。3.仿真结果例10.7.1的仿真电路图例10.7.1的仿真波形图:由仿真电路图可知例10.7.1实现了4位二进制加法计数器的逻辑功能。reset为高电平时,计数器清零。10.7.2同步置数同步清零加法计数器//例10.7.2modulecount(out,data,load,reset,clk);output[7:0]out;input[7:0]data;inputload,clk,reset;reg[7:0]out;always@(posedgeclk)//clk上升沿触发beginif(!reset)out<=8
6、'h00;//同步清零,低电平有效elseif(!load)out<=data;//同步预置elseout<=out+1;//计数endendmodule1.Verilog语言描述2.程序说明clkresetloadout0x清零10置数(data)11计数计数器功能表这是一个8位计数器,计数范围为0到255,上升沿到来时计数,具有同步置数和同步清零功能,在时钟的上升沿进行判断。3.仿真结果例10.7.2的仿真波形图:由图可知,当reset=0时,计数器清零;reset=1、load=0时计数器置数;当reset=1、load=1时,计数器计数。10
7、.7.3异步清零计数器1.Verilog语言描述//例10.7.3modulecount2(out,reset,clk);output[7:0]out;inputclk,reset;reg[7:0]out;always@(posedgeclkornegedgereset)beginif(!reset)out<=0;elseout<=out+1;//计数endendmodule2.仿真结果例10.7.3的仿真电路图:例10.7.3的仿真波形图:10.7.4扭环型计数器态序Q3Q2Q1Q0F态序Q3Q2Q1Q0F000001000101110001110
8、010211001201001311101310101411110411010501110501101600