1.插入逻辑门,为保证不被综合器优化,必须加入综合控制语句,代码如下:
module delay_10ns_2(oe_i,dir_i,oe_o,dir_o);
input oe_i,dir_i;
output oe_o,dir_o;
wire x1 /* synthesis keep */;
wire x2 /* synthesis keep */;
wire x3 /* synthesis keep */;
wire x4 /* synthesis keep */;
//inout
assign x1 = oe_i && 1'b1;
assign x2= ~x1;
assign x3 = x1 && ~x2;
assign x4 = x3 && ~x2;
assign oe_o = ~(x4 && x3);
assign dir_o = ~ dir_i;
endmodule
虽然加了四级,但只引入了不到4ns。
2.插入LCELL,那么代码不要特别处理,如下:
module delay_10ns_2(oe_i,dir_i,oe_o,dir_o);
input oe_i,dir_i;
output oe_o,dir_o;
assign oe_o = ~ oe_i;
assign dir_o = ~ dir_i;
endmodule
插入了10个LCELL,但只引入了5ns的延迟,而且有时约束好像不能起到作用,约束语句如下:
set_instance_assignment -name LCELL_INSERTION 10 -to oe_i
插入了逻辑门,布局之后
插入LCELL,布局之后
在插入LCELL时,RTL级不会改变,但插入逻辑门后,RTL级改变,但逻辑等价。
文章评论(0条评论)
登录后参与讨论