verilog壅闭和非壅闭语法

打印 上一主题 下一主题

主题 936|帖子 936|积分 2818

壅闭和非壅闭是FPGA硬件编程中需要了解的一个概念,绝大部分时候,因为非壅闭的方式更加符适时序逻辑设计的头脑,有利于时钟和信号的同步,更加有利于时序收敛,所以除非特殊情况,只管采用非壅闭方式。

1,非壅闭代码
非壅闭赋值,A和B是同时被赋值的,具体是说在时钟的上升沿来的时候,A和B (或调换A和B)同时被置1。
always @(posedge clk)
begin
      A <= 1'b1;
      B <= 1'b1;
end
  1. module unblock
  2. (
  3.     input clk_i, input rst_n_i, output [4:0]result_o, output [3:0]A, output [3:0]B
  4. );
  5. reg [3:0]A;
  6. reg [3:0]B;
  7. reg [4:0]result_o;
  8. always @(posedge clk_i )
  9. begin
  10. if(!rst_n_i)
  11. begin
  12.     A <= 4'd0;
  13.     B <= 4'd0;
  14.     result_o = 5'd0;
  15. end
  16. else
  17. begin
  18.     A <= 4'd2;
  19.     B <= B + 1'b1;
  20.     result_o <= A + B + 1'b1;
  21. end
  22. end
  23. endmodule
复制代码
仿真
第一个周期上升沿后: A 输出 2 这是个常量; B 输出 1

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表