原创
关于verilog 和VHDL的语句优化问题1
转自:http://www.edacn.net/bbs/thread-94623-1-1.html
用 verilog 如何描述使quartus 编译不会把加的延时非门(功能上说无用的)优化掉
高工
|
1# 大 中 小 发表于 2007-7-23 09:18 只看该作者
用 verilog 如何描述使quartus 编译不会把加的延时非门(功能上说无用的)优化掉想对一个信号加门级延时(打算加若干非门),用 verilog 如何描述使quartus 编译不会把加的 延时非门(功能上说无用的)优化掉。
[ 本帖最后由 ntlnt 于 2007-7-23 09:20 编辑 ]
|
|
|
副教授
|
2# 大 中 小 发表于 2007-7-23 11:49 只看该作者
wire my_wire /* synthesis keep = 1 */;
|
|
|
高工
|
3# 大 中 小 发表于 2007-7-23 14:14 只看该作者
/* synthesis keep = 1 */方法试过, 本打算加3个非门延时,结果仍然被优化为一个非门了
|
|
|
高工
|
4# 大 中 小 发表于 2007-7-23 14:24 只看该作者
用lcell在综合的时候把它弄成黑盒子.综合完后用quartus来mapping,就可以了.
|
|
|
助工
|
5# 大 中 小 发表于 2007-7-23 15:11 只看该作者
错了!是/* synthesis syn_keep = 1 */请参考synplify的HELP
|
|
|
副教授
|
6# 大 中 小 发表于 2007-7-23 15:58 只看该作者
引用:原帖由 ntlnt 于 2007-7-23 14:14 发表 /* synthesis keep = 1 */方法试过, 本打算加3个非门延时,结果仍然被优化为一个非门了 你可以Quartus的RTL View中比效下面现段程序的区别: 程序1: module delayg(a,b,out); input a,b; output out; wire t/* synthesis keep = 1 */; wire x/* synthesis keep = 1 */; wire y/* synthesis keep = 1 */; wire z/* synthesis keep = 1 */; assign t="a"^b; assign x="t"; assign y="x"; assign z="y"; assign out="z"; endmodule 1.JPG (8.13 KB) 2007-7-23 15:58 程序2: module delayg(a,b,out); input a,b; output out; wire t; wire x; wire y; wire z; assign t="a"^b; assign x="t"; assign y="x"; assign z="y"; assign out="z"; endmodule 2.JPG (3 KB) 2007-7-23 15:58
|
|
|
副教授
|
7# 大 中 小 发表于 2007-7-23 16:09 只看该作者
引用:原帖由 wuhuifeng 于 2007-7-23 15:11 发表 错了!是/* synthesis syn_keep = 1 */请参考synplify的HELP 老兄,quartus综合器用的是/* synthesis keep = 1 */,你说的/*synthesis syn_keep = 1*/是synplify综合器的设置。 不过现在quartus也支持/*synthesis syn_keep = 1*/ 不要随便就说别人错了
|
|
|
高工
|
8# 大 中 小 发表于 2007-7-23 17:31 只看该作者
回复 #7 rose8866 的帖子谢谢rose8866,让我多学了一招.
|
|
|
副教授
|
9# 大 中 小 发表于 2007-7-23 17:41 只看该作者
引用:原帖由 forrest1 于 2007-7-23 17:31 发表 谢谢rose8866,让我多学了一招. 互相学习
|
|
|
高工
|
10# 大 中 小 发表于 2007-7-23 18:20 只看该作者 |
文章评论(0条评论)
登录后参与讨论