当前位置: 首页 > news >正文

VIVADO生成DCP和EDF指南


VIVADO生成DCP和EDF


文章目录

  • VIVADO生成DCP和EDF
  • 前言
  • 一、DCP封装
  • 二、EDF封装


前言


详细步骤就不贴图了,网上一大堆

在Vivado中,常用的三种封装形式有三种:

● IP
● edif
● dcp

在下文之前,先看几个概念

  • out_of_context:和global相对,out_of_context就是将上下文分离,在综合的时候,只是将这个module作为一个整体,类似IP生成的时候,选择global就会将IP修改部分和未修改部分整合起来一起综合和优化,而out_of_context就只是将这一块或者修改部分进行综合和优化
  • -no_iobuf:将综合属性设置为这个,就是外部接口不会被优化为IOBUF,因为生成的DCP或者网表,一般是内部的接口,而IOBUF是外部PORT使用的。

一、DCP封装

DCP文件是Vivado独有的一种相当于FPGA设计中的HDL源文件的加密压缩文件

  • 注意这里的加密压缩文件可以理解为一个加密的Verilog文件。这里主要和edf网表文件做区分。
  • DCP文件可以类似Verilog的使用方式。而edf文件就是门级网表,其特征就是不能进行功能仿真。
  • 此外,为什么DCP和edf在综合的时候要设置 -mode out_of_context 属性(就是和上下文分离)或者 -no_iobuf,就是因为iobuf只有port才有,而网表或者dcp是内部使用的。

此外,dcp需要注意的点:

  • 如果有parameter,则将值设置为常量
  • DCP中若有IP,需要设置为不常见,不然外部有相同名称的IP会出问题

步骤1:将xdc disable;(我们在生成某些IP的时候,可以看到里面会有XDC和DCP,这里的DCP就会带有XDC的约束)
步骤2:设置综合属性为 -mode out_of_context
步骤3:设置要封装的代码为顶层。
步骤4:综合
步骤5:打开综合设计(打开之后再写脚本,不然会出错)

在TCL中输入命令(或者在GUI界面的FILE菜单栏找到checkpoint)生成以下文件:(因为dcp是压缩文件,所以可以直接类似Verilog直接使用)
dcp压缩文件(可仿真,可综合,可生成bit):

write_checkpoint add_driver.dcp

仅包含端口文件(仅仅是端口):

write_verilog -mode synth_stub add_driver_stub.v

或者生成仿真的网表文件:(只能进行功能仿真,不能被综合)

write_verilog -force -mode funcsim add_driver.v

生成网表的.v文件(可仿真,可综合,可生成bit):

write_verilog add_driver_netlist_v.v

其实在project_1.runs\synth_1路径下也可以找到顶层的DCP文件
对于同名的文件,但又只想做仿真,可以在文件general中设置为仅仅仿真
在生成bit流时,需要取消-mode out_of_context,否则会报错

二、EDF封装

EDF封装和DCP类似:区别在于EDF文件是不可以直接被用的,而是需要借助生成的.V文件
步骤1:将xdc disable;
步骤2:设置综合属性为 -mode out_of_context
步骤3:设置要封装的代码为顶层。
步骤4:综合
步骤5:打开综合设计(打开之后再写脚本,不然会出错)

http://www.lryc.cn/news/532849.html

相关文章:

  • Python中字节顺序、大小与对齐方式:深入理解计算机内存的底层奥秘
  • 在亚马逊云科技上云原生部署DeepSeek-R1模型(上)
  • Redis实现分布式锁详解
  • 表单标签(使用场景注册页面)
  • c++ template-3
  • 【创建模式-单例模式(Singleton Pattern)】
  • 攻防世界你猜猜
  • 【Axure教程】标签版分级多选下拉列表
  • DeepSeek图解10页PDF
  • Centos7 停止维护,docker 安装
  • 日志级别修改不慎引发的一场CPU灾难
  • FPGA实现SDI视频缩放转UltraScale GTH光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持
  • 二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号
  • 利用 Python 爬虫获取按关键字搜索淘宝商品的完整指南
  • 什么是幂等性
  • 群晖NAS如何通过WebDAV和内网穿透实现Joplin笔记远程同步
  • 示例:JAVA调用deepseek
  • 【提示工程】:如何有效与大语言模型互动
  • 操作系统—经典同步问题
  • profinet工业通信协议网关:提升钢铁冶炼智能制造效率的利器
  • Vue基础:计算属性(描述依赖响应式状态的复杂逻辑)
  • leetcode:1534. 统计好三元组(python3解法)
  • BUU27 [SUCTF 2019]CheckIn1
  • unity学习30:Audio Source, Audio clip 音效和音乐
  • 【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)
  • openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能
  • 深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品
  • STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI
  • C++ Primer 成员访问运算符
  • 芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接