[Synth 8-327] inferring latch for variable 'led_breath_reg' ["C:/Users/warrior/Desktop/ZYNQ/pl/key_breath/rtl/led_breath.v":66]
因为在组合逻辑中,用了非阻塞赋值的方式赋值信号。
组合逻辑自己给自己赋值会产生组合回环,输出不稳定。
模块框图:
代码:
/*
电容按键的上升沿检测,拉高一个时钟周期作为控制标志信号。
*/
module key(
input wire sys_clk ,
input wire sys_rst_n ,
input wire key_cup ,
output reg key_flag
);
// reg signal define
reg key_cup_r1 ;
reg key_cup_r2 ;
wire key_flag_r ;
always @(posedge sys_clk or negedge sys_rst_n) begin
if(~sys_rst_n) begin
key_cup_r1 <= 1'b0 ;
key_cup_r2 <= 1'b0 ;
end
else begin
key_cup_r1 <= key_cup ;
key_cup_r2 <= key_cup_r1 ;
end
end
assign key_flag_r = key_cup_r1 && ~key_cup_r2 ;
// output key_flag
always @(posedge sys_clk or negedge sys_rst_n) begin
if(~sys_rst_n)


最低0.47元/天 解锁文章
1226

被折叠的 条评论
为什么被折叠?



