ASIC设计中寄存器的复位问题
时间:10-02
整理:3721RD
点击:
用always写的组合逻辑中定义的reg综合后是dff吗,怎么对这个reg进行复位呢?怎么对下面代码中的re_dout_fft4_st1_neg 进行复位呢?
reg [DATAWIDTH-1:0] re_dout_fft4_st1_neg;
always @(re_dout_fft4_st1)
begin
if(re_dout_fft4_st1 == {1'b1, {(DATAWIDTH-1){1'b0}}})
re_dout_fft4_st1_neg = {1'b0, {(DATAWIDTH-1){1'b1}}};
else
re_dout_fft4_st1_neg = ~re_dout_fft4_st1 + 1'b1;
end
reg [DATAWIDTH-1:0] re_dout_fft4_st1_neg;
always @(re_dout_fft4_st1)
begin
if(re_dout_fft4_st1 == {1'b1, {(DATAWIDTH-1){1'b0}}})
re_dout_fft4_st1_neg = {1'b0, {(DATAWIDTH-1){1'b1}}};
else
re_dout_fft4_st1_neg = ~re_dout_fft4_st1 + 1'b1;
end
你这是组合逻辑
组合逻辑是不是都不会综合成dff
DFF 都是带有时钟端口的 你的写法里面没有时钟信号, 综合结果自然也就不是DFF了
另外实际的寄存器单元都有复位端和置位端,你只要在时序逻辑的always的敏感列表里面加上复位信号,并且写出复位的分支,一般来说就会综合成DFF的,只不过你现在的代码没有时钟端,只能被工具理解为组合逻辑了。
触发器是边沿触发。
