生成网表文件(edf文件与dcp文件)

一、Vivado将模块封装为IP的方法(网表文件)

在给别人用自己的工程时可以封装IP,Vivado用封装IP的工具,可以得到像xilinx的ip一样的可以配置参数的IP核,但是用其他工程调用后发现还是能看到源文件,如何将工程源文件加密,暂时没有找到方法,如果知道还请赐教。
而直接用.edif网表文件作为ip的方法如下:
1、建立工程设置顶层模块
将需要封装的模块设置为顶层模块。(shift_bus模块)

2、综合待封装模块
vivado综合时会默认将输入输出端口添加buffer缓存,而封装的模块大多都是用在一个大的模块的内部,综合不能添加iobuf,在ISE的综合选项中有-iobuf选项而在Vivado中该选项是隐藏的,可以在综合设置窗口的Options下面最后一项 More Options一栏写入“-no_iobuf”,然后综合即可。

3、生成.edif网表文件
打开综合后的设计:在Flow Navigator中点击“Open Synthesis Deisgn”
在TCL Console中输入:“write_edif /path/xx.edif” 。特别注意:路径分隔字符为“/”(得到的网表文件为shift_bus.edif)

4、建立wrapper
建立一个与待封装模块同名的.v文件,该文件只描述该模块的接口。(shift_bus.v)

5、调用
将shift_bus.v和shift_bus.edif文件添加到需要调用的工程中,然后直接对shift_bus模块进行例化即可。
在vivado中使用( read_edif 路径/xxx.ngc)读入网表文件到工程中,添加只包含端口信息的文件

二、【划水】Vivado生成网表文件是怎么回事呢?
https://zhuanlan.zhihu.com/p/137433454

三、vivado ip创建并生成网表
https://blog.csdn.net/gwc_master/article/details/109398632?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163693915716780357287136%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163693915716780357287136&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-3-109398632.pc_search_result_control_group&utm_term=%E7%BD%91%E8%A1%A8vivado&spm=1018.2226.3001.4187

四、vivado下将rtl模块做成网表加入工程使用
在fpga开发过程中,往往是模块化的分工合作,大家做好自己的模块再统一添加到顶层。

rtl代码是透明,当你不想公开自己的代码而只想提供一个黑盒子时,就需要想别的办法。

xilinx vivado提供IP封装的功能,但是不能提供加密,所以可行的办法是提供网表来供顶层使用。

模块的网标生成需要注意三个问题:

1、将模块作为顶层综合时,端口会被工具认作是I/O而添加IO BUF;

2、端口的很多信号由于没有驱动所以会被工具优化掉;

3、xilinx工具无法确定网表使用者是否有IP核的licence,所以制作网表的rtl内不能包含xilinx的IP核。

以上问题都能想办法规避,

1、IO BUF可以不用管,工具会将不是顶层模块的端口的IO BUF优化掉,当然你也可以自己去删;
2、在模块的端口添加(KEEP = “TRUE”),保证信号不被优化;
3、一定需要用到xilinx的IP核的话就将IP核作为你的模块的一个平行模块。

网标的生成也很简单,将模块作为顶层综合后,路径下会有checkpoint,而该文件会包含顶层例化的.v和.vhd、网表.edf.。将该文件加入工程替代.v或.vhd即可。

五、在Vivado下利用Tcl编辑综合后的网表
http://www.iot-online.com/jishuwenku/2017/0602/69596.html

六、详解vivado网表文件DCP文件的封装生成、使用与注意事项
https://blog.csdn.net/u014586651/article/details/110653530?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163693915716780357287136%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163693915716780357287136&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1rank_v31_ecpm-17-110653530.pc_search_result_control_group&utm_term=%E7%BD%91%E8%A1%A8vivado&spm=1018.2226.3001.4187#::text=%E8%AF%A6%E8%A7%A3vivado%E7%BD%91%E8%A1%A8%E6%96%87%E4%BB%B6DCP%E6%96%87%E4%BB%B6%E7%9A%84%E5%B0%81%E8%A3%85%E7%94%9F%E6%88%90%E3%80%81%E4%BD%BF%E7%94%A8%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9

七、VIVADO网表文件DCP,edf
为了便于模块化设计,同时保护自己的知识产权,Xilinx VIVADO 提供两种代码封装方法:DCP文件和edf文件。
DCP文件生成方法:
1、将需要生成DCP的模块设置为顶层,打开综合设置,在more option中填入 -mode out_of_context,删除所有约束文件(约束文件会被封装在DCP中,并且优先级最高),开始综合;
2、综合完成后在runs\synth_1文件夹下可找到DCP文件,但该DCP文件在实际使用中会有诸多限制,如模块内部有IP核或其他DCP文件,则可能出现错误,如何实现DCP嵌套IP可参照以下步骤;
3、DCP嵌套,为了保证DCP嵌套后能正常被调用综合,在第1步中在综合前可将所有IP核设置为globle模式,在完成综合后打开综合设计,在TCL命令框中输入:write_checkpoint -force D:/x/xxx.dcp,其中xxx为模块名称,这样就可以生成完整的dcp文件。

EDF(网表)文件生成方法:
1、将需要生成DCP的模块设置为顶层,打开综合设置,在more option中填入 -mode out_of_context,删除所有约束文件,开始综合;
2、在完成综合后打开综合设计,在TCL命令框中输入:write_edif D:/x/xxx.edf生成edf文件,输入write_verilog -mode synth_stub D:/x/xxx_stub.edf生成黑盒接口文件,应为edf文件不像DCP文件,可以单独被调用,edf文件必须配合.v的黑盒接口才能被调用;
3、关于设计模块内包含IP核或edf的设计,不建议使用edf封装,很可能报IP错误,若实在需要使用,可在TCL命令框中输入:write_edif -force D:/x/xxx.edf生成edf文件,可一定程度上减少报错,但不能保证。

DCP和edf比较:
1、DCP文件对软件版本及其敏感,高版本软件生成的DCP无法在低版本软件使用;
2、采用一定手段,DCP可实现IP、DCP嵌套,但EDF实现嵌套的能力较弱。

八、使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)
https://blog.csdn.net/weixin_44384867/article/details/86591338?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163693915716780357287136%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163693915716780357287136&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1rank_v31_ecpm-19-86591338.pc_search_result_control_group&utm_term=%E7%BD%91%E8%A1%A8vivado&spm=1018.2226.3001.4187#::text=%E5%88%9B%E4%BD%9C-,%E4%BD%BF%E7%94%A8Vivado%E5%B0%86%E5%8C%85%E5%90%ABXilinx%20IP%E7%9A%84%E7%94%A8%E6%88%B7%E6%A8%A1%E5%9D%97%E5%B0%81%E8%A3%85%E6%88%90%E7%BD%91%E8%A1%A8%E6%96%87%E4%BB%B6%EF%BC%88%E4%B9%9F%E9%80%82%E7%94%A8%E4%B8%8D%E5%8C%85%E5%90%ABXilinx%20IP%E7%9A%84%E7%94%A8%E6%88%B7%E6%A8%A1%E5%9D%97%EF%BC%89,-%E7%BD%AE%E9%A1%B6%20AI

九、write_edif
EDF文件可以直接导入Vivado,而无需Verilog源文件。
好处:
(1) 避免沙雕队友修改源代码,则可以直接提交EDF网表文件。
(2) 避免用户剽窃劳动成果,保护自己的知识产权。
(3) 对于无需更改的设计复用,直接用EDF网表会贼方便。
1 vivado write_edif
目的:将当前网络列表导出为EDIF文件。
语法:
在这里插入图片描述
举例:
write_edif C:/Data/edifOut.edn 将整个设计的EDIF网表文件写入指定的文件名
write_edif -pblocks [get_pblocks] C:/Data/FPGA_Design/ 获取输出设计中所有Pblock的EDIF网表。这些文件将被写入指定的目录。
Pblocks:手工布局的本质是对指定逻辑单元设定面积约束,在Vivado下就是对其画一个Pblock。Pblock的大小限定了该逻辑单元所能使用的FPGA资源;Pblock的位置限定了该逻辑单元在FPGA中的位置;Pblock中所包含的FPGA资源类型限定了该逻辑单元所能使用的资源。

2 操作步骤
(1)将需要封装的模块设置为顶层模块
(2)综合或实现需要生成edif的verilog或vhdl源文件。
(3)open Elaborated Design or Open Synthesized Design or Open Implemented Design
  (4) tcl console:write_edif xx.edf
  (5) tcl console:write_verilog -mode synth_stub xx_stub.v
  (6) 调用 xx.edf和xx_stub.v

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的体育馆管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此体育馆管理系统利用当下成熟完善的SpringBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、场地管理、场地订单管理、字典管理、赛事管理、赛事收藏管理、赛事评价管理、赛事订单管理、商品管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。体育馆管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:体育馆管理系统;SpringBoot框架;Mysql;自动化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值