网站建设售后服务安全维护,肥城网站建设电话,企业宣传片模板,温岭app开发公司锁存逻辑过程块
always_latch描述锁存逻辑 always_latch过程块表示过程块描述的是基于锁存器的逻辑。和always_comb一样#xff0c;always_latch的敏感表示推断出来的。
always_latchif(enable) q d;always_latch与always_comb语义相同 always_latch过程的语义规则与al…锁存逻辑过程块
always_latch描述锁存逻辑 always_latch过程块表示过程块描述的是基于锁存器的逻辑。和always_comb一样always_latch的敏感表示推断出来的。
always_latchif(enable) q d;always_latch与always_comb语义相同 always_latch过程的语义规则与always_comb一样。两种过程快推断敏感表的规则也是一样的。在always_latch中赋值的变量不能再在其他任何过程块赋值。同样为了保证锁存逻辑输出对应于零时刻的输入值always_latch过程块也会在零时刻自动执行一次。 工具会验证always_latch的内容表示锁存逻辑 与always_com不同的是当使用always_latch时软件工具认为设计的意图是描述锁存逻辑并且对过程中代码的检查也与组合逻辑有所不同。例如在锁存逻辑中过程块的输出变量不需要对所有可能的输入条件响应。
一个从0~31的5位计数器。输入信号ready是一个窄脉冲控制计数器何时开始计数。当ready变为高电平时模块将其锁存为内部的enable信号。锁存器使内部enable信号一直保持为高当计数值满31时enable清零这样就保证了在下次ready变为高之前计数器不会在启动。module register_reader(input clk,ready,resetN,output logic [4:0] read_pointer
);logic enable;//计数器的内部使能信号
logic overflow;//内部的计数器溢出标志always_latch //锁存输入ready
beginif(!resetN)enable 0;else if(ready)enable 1;else if(overflow)enable 0;
endalways(posedge clk,negedge resetN) //5位计数器
beginif(!resetN){overflow,read_pointer} 0;else if(enable){overflow,read_pointer} read_pointer 1;
end
endmodule