请教----综合时复位信号的处理?
时间:10-02
整理:3721RD
点击:
之前的项目都是对复位信号set_ideal_network,再在APR时对复位信号也当做时钟树来处理。
但是这次进行相同操作时,因为有个模块内部对reset进行了处理,如
always@(posedge clk negedge rst)
if(rst==1'b0) begin
rstSynclk1 <= 1'b0 ;
rstSynclk2 <= 1'b0 ;
end else begin
rstSynclk1 <= 1'b1 ;
rstSynclk2 <= rstSynclk1
end
assign rst_o = rst & rstSynclk2
再把rst_o信号给内部使用,(注:这样的同步采样在顶层已经处理过了,都没有问题,复位时钟树可以通过的)
综合后发现rst_o会不规则的插入Buffer,并且导致APR做时钟树时这个模块中的就不作为leaf处理,
请教:如何在不改动代码的前提下进行处理?
但是这次进行相同操作时,因为有个模块内部对reset进行了处理,如
always@(posedge clk negedge rst)
if(rst==1'b0) begin
rstSynclk1 <= 1'b0 ;
rstSynclk2 <= 1'b0 ;
end else begin
rstSynclk1 <= 1'b1 ;
rstSynclk2 <= rstSynclk1
end
assign rst_o = rst & rstSynclk2
再把rst_o信号给内部使用,(注:这样的同步采样在顶层已经处理过了,都没有问题,复位时钟树可以通过的)
综合后发现rst_o会不规则的插入Buffer,并且导致APR做时钟树时这个模块中的就不作为leaf处理,
请教:如何在不改动代码的前提下进行处理?
还是改代码吧。
这种缺德设计。
代码本身没什么问题的,这种设计避免了异步复位释放时不同步的问题,是复位处理常用的一种方法,同时又不会影响后端做复位时钟树。
看来还是只能多尝试一下其它方法了!
很想问一下,最后一个assign语句有什么意义?
直接使用rstSynclk2当做复位不行吗?
确实,同问,感觉用sync2就可以了
异步复位同步释放电路