复位信号要同步化处理 多时钟
时间:10-02
整理:3721RD
点击:
见到一个设计,里面有好几个module,时钟很多(clk1,clk2是异步的,而clk2又分频出来三个时钟),其中一个module专门来对顶层的RSTB(复位信号)进行同步化处理。这五个时钟都有 always @(posedge CLK or negedge RSTB)
begin
if(!RSTB)
begin
RSTB_synch1 <= 1'b0;
RSTB_sync<= 1'b0;
end
else
begin
RSTB_synch1 <= 1'b1;
RSTB_sync<= RSTB_synch1;
end
end
这样的always语句。 这个异步复位信号同步化处理module可否分散到各个时钟对应的module。不要专门写在一个module里呢?
begin
if(!RSTB)
begin
RSTB_synch1 <= 1'b0;
RSTB_sync<= 1'b0;
end
else
begin
RSTB_synch1 <= 1'b1;
RSTB_sync<= RSTB_synch1;
end
end
这样的always语句。 这个异步复位信号同步化处理module可否分散到各个时钟对应的module。不要专门写在一个module里呢?
这个原理不清楚,是不是将异步处理都放在一个module的话,方便后端时序分析吧。
静待高人。
最好不要。所有得时钟产生、复位产生最好都单独做模块,这样后端会好做些。
请教下,DC综合时,如果写复位信号的false path,set_false_path -from RSTB -to clk2_2(clk2的二倍分频)还是写set_false_path -from RSTB_sync -to clk2_2 ?
哈哈
在DC综合时,需要set_ideal_network [get_ports RSTB] 除了这个RSTB还需要设置异步信号同步化之后的新的复位信号吗?
多模块可以优化硬件,异步为了时序一致吧