verilog阻塞和非阻塞语法

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

1,非阻塞代码

非阻塞赋值,A和B是同时被赋值的,具体是说在时钟的上升沿来的时刻,A和B (或调换A和B)同时被置1。

always @(posedge clk)
begin
     A <= 1'b1;
     B <= 1'b1;

end

module unblock
(
    input clk_i, input rst_n_i, output [4:0]result_o, output [3:0]A, output [3:0]B
);
reg [3:0]A;
reg [3:0]B;
reg [4:0]result_o;
always @(posedge clk_i )
begin
if(!rst_n_i)
begin
    A <= 4'd0;
    B <= 4'd0;
    result_o = 5'd0;
end
else 
begin
    A <= 4'd2;
    B <= B + 1'b1;
    result_o <= A + B + 1'b1;
end
end
endmodule

仿真

第一个周期上升沿后: A 输出 2 这是个常量; B 输出 1

相关推荐

  1. Verilog 14: 阻塞阻塞赋值的异同

    2024-06-09 12:58:03       27 阅读
  2. TCP Server工具类,BIO阻塞阻塞NIO

    2024-06-09 12:58:03       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 12:58:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 12:58:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 12:58:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 12:58:03       18 阅读

热门阅读

  1. 关于xilinx srio ip复位问题

    2024-06-09 12:58:03       10 阅读
  2. Elasticsearch高效检索:基础查询详解

    2024-06-09 12:58:03       10 阅读
  3. MySQL入门学习-聚合和分组.计数(COUNT()函数)

    2024-06-09 12:58:03       9 阅读
  4. ch1计算机网络和因特网

    2024-06-09 12:58:03       10 阅读
  5. bpmn+vue 中文文档

    2024-06-09 12:58:03       12 阅读
  6. 大语言模型原理基础与前沿 为什么ICL有效

    2024-06-09 12:58:03       9 阅读
  7. React——组件通信方式

    2024-06-09 12:58:03       9 阅读
  8. 我对Chat-GPT4o的使用感受

    2024-06-09 12:58:03       11 阅读
  9. 【C#】延时关闭电脑、取消关闭电脑

    2024-06-09 12:58:03       10 阅读
  10. 方法调研:DDOS检测有哪些方法?

    2024-06-09 12:58:03       11 阅读
  11. Rust 编程——prost-build 使用

    2024-06-09 12:58:03       12 阅读
  12. 速盾:ddos防护与高防ip区别?

    2024-06-09 12:58:03       7 阅读
  13. 贪心算法详解

    2024-06-09 12:58:03       10 阅读
  14. 自然语言处理(NLP)—— rasa的测试

    2024-06-09 12:58:03       9 阅读