原创 PLD设计中添加buf并防止被优化的方法

2010-12-30 22:53 2809 9 10 分类: FPGA/CPLD

例如:一个PLD设计,里面有直接将一个输入管脚和一个输出管脚连接的做法,如下:
//*********************//
input a;
output b;

assign b = a;
//*********************//
现在我想在a和b之间通过插入反相的方法增加两个端口间的tp2p延时,如下:
//*********************//
input a;
output b;

wire node1 ;
wire node2 ;

assign node1 = ~a;
assign node2 = ~node1;
assign b = node2;
//*********************//
一般情况下,node1和node2会被编译器优化掉,也就是说,第二段代码的最终结果和第一段代码是等效的,达不到预期的目的。


要防止加入的buf被优化,需要在代码中增加约束,“通知”编译器保留插入的buf,不去优化它们。在这里,我对三大主流厂商的防止优化设置进行了一轮查询和验证,总结如下(附验证工具版本和器件):


Xilinx ( ISE版本12.3,综合工具为ISE自带的XST,器件Spartan6):
(* KEEP="TRUE"*)wire node1;

Altera:(QuartusII版本9.1,综合工具为QuartusII自带的综合工具,器件CycloneVI):
wire  node1  /* synthesis keep */;
或:
wire  node1  /* synthesis syn_keep=1*/;

Lattice( ispLEVER版本6.1,综合工具为ispLEVER自带的Synplify,器件MachXO):
wire  node1 /* synthesis syn_keep=1 nomerge=""*/;



 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-2-17 23:18

真的好用,感谢!!
相关推荐阅读
songmin2_301502101 2012-06-30 22:30
Altera和Xilinx FPGA的从串配置模式比较
【摘要】本文对两大主流FPGA厂商的从串配置模式(Altera:Passive Serial Mode;Xilinx:Slave Serial Mode)进行了描述,并指出了主要的不同之处。...
songmin2_301502101 2012-06-30 21:16
一种简单快速验证FIR滤波器功能的方法
【摘要】用FPGA实现FIR滤波器时,一般都会在仿真阶段验证其功能是否与算法仿真一致。本文介绍了一种仿真时简单快速验证FIR功能的方法。...
songmin2_301502101 2011-08-08 09:33
PCB checklist补充
封装:1. 带散热焊盘的封装,散热焊盘是否连接到了正确的网络(一般是接地,也有接电源或NC的情况)...
songmin2_301502101 2011-07-14 17:49
ModelSim中自动创建TestBench的方法
1. 创建工程,将需要仿真的模块加入工程,编译 2. File -> Open,使用ModelSim自带的文本编辑器打开被仿真模块 3. Source -> Show Language T...
songmin2_301502101 2011-02-01 17:15
Specify tsu path to be reported by QuartusII
Q: I want to observe one tsu path, with specifed clock, input pin and destination register, but ther...
songmin2_301502101 2011-02-01 17:09
Verify fast I/O register assignments in QuartusII
Q:How to check if my fast I/O register assignments valid or not with QuartusII? As we know, If a reg...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条