在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13418|回复: 14

[求助] ngo文件的使用

[复制链接]
发表于 2012-9-17 09:13:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
设计的ngo文件如何加入到新的工程中使用,而且不需要源代码
发表于 2012-9-17 13:11:54 | 显示全部楼层
直接在ISE中添加源文件就可以了。
 楼主| 发表于 2012-9-18 09:24:50 | 显示全部楼层
我用的是lattice软件,为什么产生的ngo文件不可以用啊,是不是要设置什么啊
发表于 2012-9-18 12:50:14 | 显示全部楼层
大概是这样的,NGO本身是个ISE和LATTICE可以识别的网表文件(或者更后面一点的文件),你在引用的时候,在RTL代码里面要设个空模块,或直接用那个(名字).v,可以看下里面的内容,就是input output port信号,然后就是综合器关闭,然后再打开的两行语句,就是告诉综合器把这个模块综合成黑盒。 然后在后端MAP和PAR阶段,在用到这个模块的时候,直接调用工程目录下的这外(名字).ngo,就MAP过去了。

所以你得要使用的.v文件,同时要把.ngo放在工程目录下两步。
 楼主| 发表于 2012-9-19 12:06:44 | 显示全部楼层
回复 4# eaglelsb


    我调用一个模块可以map过去,如果我在顶层调用二个模块是,就说我的系统时钟不能驱动多个模块的输入时钟,如果是用的源代码,就没有这个问题,但是用NGO文件就不行。怎么使其能map过去啊
发表于 2012-9-19 18:47:43 | 显示全部楼层
回复 5# 574920045


   你用的是BUFR区域时钟,还是BUFG全局时钟?另外NGO生成的CORE要调用的是硬核资源吧?也就是位置是固定的?比如RAM, DCM之类的资源它都是有位置的。

既然是提示不能驱动多叶钟,那先把时钟改成BUFG来看看,同时对于某些资源,其时钟来源是IO列的,然后内部再做其它处理,如果你同时例化两个,那可以将就其中一个的位置,那另一个资源却无法过去,因为不能调用资源列的BUFR或BUFG,这种情况较少见。

你用的NGO是什么资源?
 楼主| 发表于 2012-9-20 09:28:02 | 显示全部楼层
我的顶层是module top_led(clk,cout);
input clk;
output [1:0]cout;
led1 led1(
              .clk(clk),
              .cout(cout[0])     
);
led2 led2(
              .clk(clk),
              .cout(cout[1])     
     );

endmodule
模块端口列表是
module  led1(clk,cout)/*synthesis syn_black_box*/ ;
input clk;
output cout;
endmodule

module  led2(clk,cout)/*synthesis syn_black_box*/ ;
input clk;
output cout;
endmodule
我的ngo文件是用synplify pro 生成的edn文件,然后用lattice daimond编译edn文件生成的。最后建立新工程在工程中加上ngo,端口列表文件,顶层文件,/*synthesis syn_black_box*/ 写在synplify pro工程文件的代码中。ERROR - map: IO buffer clk drives IO buffer led2/clk_pad directly, but this is not possible是我顶层文件的问题还是我生成ngo文件的问题啊
 楼主| 发表于 2012-9-20 09:28:58 | 显示全部楼层
回复 6# eaglelsb


    我的顶层是module top_led(clk,cout);
input clk;
output [1:0]cout;
led1 led1(
              .clk(clk),
              .cout(cout[0])     
);
led2 led2(
              .clk(clk),
              .cout(cout[1])     
     );

endmodule
模块端口列表是
module  led1(clk,cout)/*synthesis syn_black_box*/ ;
input clk;
output cout;
endmodule

module  led2(clk,cout)/*synthesis syn_black_box*/ ;
input clk;
output cout;
endmodule
我的ngo文件是用synplify pro 生成的edn文件,然后用lattice daimond编译edn文件生成的。最后建立新工程在工程中加上ngo,端口列表文件,顶层文件,/*synthesis syn_black_box*/ 写在synplify pro工程文件的代码中。ERROR - map: IO buffer clk drives IO buffer led2/clk_pad directly, but this is not possible是我顶层文件的问题还是我生成ngo文件的问题啊
 楼主| 发表于 2012-9-20 09:34:39 | 显示全部楼层
回复 6# eaglelsb


    我在网上看到的大多是赛林思的设计生成ngo网表文件,在综合设置中将IO buffer选项去掉,这样设计就不会出现我类似的情况了,但是我在lattice diamond中没有找到类似的设计设置。不知道我的设计是不是赛灵思的生成ngo网表文件那样就行了,还是有其他问题。
发表于 2012-9-20 10:36:02 | 显示全部楼层
回复 9# 574920045

我的ngo文件是用synplify pro 生成的edn文件,然后用lattice daimond编译edn文件生成的。

问题可能出在这儿,你直接使用EDN看看,不要编译成NGO后再加进去。


这是我的猜想,不知道是否成功,你先试试,通过了我再说原因。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-14 05:19 , Processed in 0.029447 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表