复位信号的问题
时间:10-02
整理:3721RD
点击:
always @ (posedge clk_100m or negedge rst)
if(rst == 1'b0)
curr_st <= IDLE;
else
curr_st <= next_st;
复位信号rst是crg模块产生的复位信号,我综合时候,报rst作为了curr_st_reg/D的数据输入端口。
然后我看网表,发现的确rst经过了一堆逻辑处理后接入了curr_st_reg/D
这是怎么回事
if(rst == 1'b0)
curr_st <= IDLE;
else
curr_st <= next_st;
复位信号rst是crg模块产生的复位信号,我综合时候,报rst作为了curr_st_reg/D的数据输入端口。
然后我看网表,发现的确rst经过了一堆逻辑处理后接入了curr_st_reg/D
这是怎么回事
if(rst == 1'b0)
curr_st <= 0;
parameterIDLE = 3'b000;
可能是其它什么原因吗?
试
if(!rst)
curr_st <= 0;
else
curr_st <= next_st;
再不行,检查库里是否有异步复位端的触发器,是否被set_dont_use
试了还是不行。
库中有异步复位的触发器,也没设置dont_use。
复位信号rst是接入了DFF的复位端,但在通过一组合逻辑处理后也接入了DFF的D端。
我现在有点怀疑是代码风格的问题,可是说不出个具体。
是有可能有这种情况发生的 我们也遇见过. 感觉是因为工具版本的问题.09 10的dc好像都会出这样的问题。
不过这个应该还好了,反正你用的异步reset的ff,是没多大问题的。
做DFT的时候,复位信号rst是不能直接接入DFF数据端的。