在verilog里always和 initial的区别是什么?

学习 时间:2026-06-04 23:00:46 阅读:5172
在verilog里always和 initial的区别是什么?module tb_fulladder;wire SUM,C_OUT;reg A,B,C_IN;fulladder m1(.sum(SUM),.c_out(C_OUT),.a(A),.b(B),.c_in(C_IN));initialbeginA=1'd0;B=1'd0;C_IN=1'd0;#5 A=1'd1;B=1'd1;C_IN=1'd1;#5 A=1'd0;B=1'd1;C_IN=1'd1;#5 A=1'd1;B=1'd0;C_IN=1'd0;#5 A=1'd1;B=1'd1;C_IN=1'd0;endendmodule这为什么用 initial

最佳回答

激情的咖啡豆

甜美的外套

2026-06-04 23:00:46

initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这个代码里面的initial就是用来给输入赋值测试你这个全加器的。always块内的语句是反复执行的 一般写成类似于 always @ (posedge clock or negedge reset) 或 always @ (*)的形式写成时序或组合逻辑 再问: 请问initial既然只执行一次,那还要了干嘛? 再答: 仿真 初始化各种数据啊 比如说 你这个程序 每隔五个时钟 改变一下输入 测试输出是否正确 基本上就是这么用的

最新回答共有2条回答

  • 曾经的毛豆
    回复
    2026-06-04 23:00:46

    initial块内的语句从上到下只执行一次 不符合电路的运行模式 所以是不可综合的 它一般用来仿真时赋值;你这个代码里面的initial就是用来给输入赋值测试你这个全加器的。always块内的语句是反复执行的 一般写成类似于 always @ (posedge clock or negedge reset) 或 always @ (*)的形式写成时序或组合逻辑 再问: 请问initial既然只执行一次,那还要了干嘛? 再答: 仿真 初始化各种数据啊 比如说 你这个程序 每隔五个时钟 改变一下输入 测试输出是否正确 基本上就是这么用的

上一篇 帮我查查“缅怀革命先烈,宏扬爱国主义精神”的相关作文

下一篇 英语翻译In most cases the speed test imposes centrifugal forces