|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 henryshen2000 于 2012-1-5 14:45 编辑
在RTL设计中,同一个PAD,有两条路径输出,一路为时钟上升沿驱动,一路为反向后的时钟上升沿驱动(即时钟下降沿)
RTL代码示意如下:
module sample ( input rst_n , input clk , input sel, input a , output b);
reg b_rise,b_fall ;
wire clk_inv ;
always @(posedge clk or negedge rst_n)
if(!rst_n) b_rise <= 0 ;
else b_rise <= a ;
assign clk_inv = ~clk ;
always @(posedge clk_inv or negedge rst_n)
if(!rst_n) b_fall <= 0 ;
else b_fall <= ~a ;
assign b = sel ? b_rise : b_fall
endmodule
综合时约束
create_clock -name clk -period 10 [find pin "clk"]
set_output_delay -max 8 -rise -clock clk [find pin [list b]]
set_output_delay -max 3 -fall -clock clk -add_delay [find pin [list b]]
希望对两条路径都进行约束,但实际在检查时发现从b_fall出来的路径也被认作了rise,并报不满足。
请教有何对策! |
|