原创 关于verilog 和VHDL的语句优化问题1

2008-4-18 10:21 3308 5 5 分类: FPGA/CPLD

转自:http://www.edacn.net/bbs/thread-94623-1-1.html


 


 


用 verilog 如何描述使quartus 编译不会把加的延时非门(功能上说无用的)优化掉









用 verilog 如何描述使quartus 编译不会把加的延时非门(功能上说无用的)优化掉


想对一个信号加门级延时(打算加若干非门),用 verilog 如何描述使quartus 编译不会把加的
延时非门(功能上说无用的)优化掉。

[ 本帖最后由 ntlnt 于 2007-7-23 09:20 编辑 ]











wire my_wire /* synthesis keep = 1 */;










/* synthesis keep = 1 */方法试过,
本打算加3个非门延时,结果仍然被优化为一个非门了










用lcell


在综合的时候把它弄成黑盒子.综合完后用quartus来mapping,就可以了.










错了!是/* synthesis syn_keep = 1 */请参考synplify的HELP












引用:

原帖由 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
attachimg.gif 20070723_76bb723e5b278a3767beo4mZiuVSRSAh.jpg.thumb.jpg
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
attachimg.gif
2.JPG (3 KB)

2007-7-23 15:58












引用:

原帖由 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*/

不要随便就说别人错了










回复 #7 rose8866 的帖子


谢谢rose8866,让我多学了一招.












引用:

原帖由 forrest1 于 2007-7-23 17:31 发表
谢谢rose8866,让我多学了一招.
互相学习





PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条