Verilog学习笔记设计和验证篇(四)……………状态机的置位与复位

设计一个电路

1)状态机的异步置位和复位

输入set,reset

 异步置位与复位是于时钟无关的。当异步置位或复位信号来临时,他们立即分别置触发器的输出为1或0,不需要等待时钟沿的到来。要将他们列入always块的事件控制信号内就能触发always的执行。

输出Y

沿关键词包括posedge(信号上升沿)和negedge(下降沿触发)的时钟,信号可以按照任意顺序列出。

当set为1时,Y置高电平,当reset为1时,置低电平。其它情况Y保持不变

1)异步高电平有效置位: @(posedge clk or posedge set)

电路图如下:

2)异步低电平有效复位: @(posedge clk or negedge set)

88必发老虎手机客户端 1

2)异步。高电平置位 低电平有效复位: @(posedge clk or posedge set or
negedge set)

本文出自 “李海川”
博客,请务必保留此出处http://lihaichuan.blog.51cto.com/498079/1303245

带异步高电平有效的置位/复位的D触发器示例:

http://www.bkjia.com/Cyy/616927.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/616927.htmlTechArticle设计一个电路88必发老虎手机客户端, 输入set,reset 输出Y
当set为1时,Y置高电平,当reset为1时,置低电平。其它情况Y保持不变
电路图如下: 650) this.width=650;” tit…

 1 module dff(data,set,reset,q,clk,qb);
 2   input data;
 3   input set,reset,clk;
 4   output q,qb;
 5   reg q,qb;
 6   always @(posedge clk or posedge reset or posedge set )
 7    begin
 8    if(reset) begin q<=0;qb<=1; end
 9    else if(set) begin q<=1;qb<=0;end
10    else begin q<=data; qb<=~data;end
11    end
12  endmodule

2)状态机的同步置位和复位

同步置位与复位时钟只有在时钟的有效跳变沿时刻置位或复位,信号才能使触发器置位或者复位。因此不能把set和reset信号名列入always块中,因为他们的变化不能触发always快执行。

1)同步正跳变沿触发: @(posedge clk )

2)同步负跳变沿触发: @(negedge clk)

具有同步高电平有效的置位/复位的D触发器:

 1 module dff(data,set,reset,q,clk,qb);
 2   input data;
 3   input set,reset,clk;
 4   output q,qb;
 5   reg q,qb;
 6   always @(posedge clk )
 7    begin
 8    if(reset) begin q<=0;qb<=1; end
 9    else if(set) begin q<=1;qb<=0;end
10    else begin q<=data; qb<=~data;end
11    end
12  endmodule

可见同步D触发器和异步D触发器的区别仅仅差别在always块的敏感列表是否包含置位信号。