开发者分享|如何在 Post Synthesis 工程中加入 XCI 文件

文章讲述了在Vivado2022.2版本中,如何处理使用第三方工具如SynopsysSynplifyPro或MentorPrecision综合含XilinxIP设计时遇到的问题。当IP的outputproduct与XCI文件的OUTPUTDIR不匹配时,会导致错误。解决方案包括手动调整OUTPUTDIR或在加载XCI文件后重新生成IP的outputproduct,确保IP能成功添加到post-synthesis工程中。
部署运行你感兴趣的模型镜像
关注、星标公众号,精彩内容每日送达

本文作者:AMD 赛灵思工程师 Hong Han

当使用第三方综合器比如 Synopsys® Synplify Pro 或 Mentor® Graphics Precision 来综合包含 AMD Xilinx IP 的设计时,UG896 推荐的方式是创建并定制 IP,生成这些 IP 的 output product (包括 IP 的 dcp);然后把第三方生成的网表文件和 IP XCI 的相关文件都加到 Vivado 的 post-synthesis 工程中。

此时第三方综合器只是综合用户的 RTL 代码,IP 代码的综合实际还是由 Vivado 完成,然后在新的 Vivado 工程中把这些 IP 的网表和第三方综合器生成的顶层网表合并(在 Vivado 中的 link_design 步骤实现)。

第三方综合器由于并不实际综合 IP 的代码,在第三方综合器综合的过程中,只需要提供 IP 的黑盒文件,让第三方综合器了解 IP 模块的接口即可,生成 IP output product 时得到的 stub 文件就是黑盒文件(_stub.v /_stub.vhdl)。

fc2ceca42d85dd98daa465445b846038.png

以下是在 GUI 下创建 Post-synthesis 工程的界面:

9d77f597f5c6b4e25d6457cd2d68e9f1.png

UG896 中提供的示意 Tcl 脚本如下:

da1c7f2305a789f246687df60ef181ac.png

在 Vivado 2022.2,尝试使用以上的脚本编译一个例子工程看看是否会遇到困难。
实验使用的脚本如下:

cf9d32586740ef0b3b4f49dfe394b27e.png

结果 IP char_fifo 没能加到新的工程中,并报出以下的错误:

c87b3ad7943639ac5e1f819babcddfb0.png

之所以报错的原因是为了新建工程,我们移动了 IP 的 XCI 文件,但是却没有移动 IP 原来生成在 gen 目录的 output product。
直接用第三方编译器打开 XCI 文件,查看 outputdir。这是之前的 output product 所在的目录相对于 XCI 文件的目录。

9e1b0733f7ead8b8e3c8b31f4d2e00ec.png

在这里我们尝试手动修改一下 outputdir,改成当前 IP 的 output product 所在的目录 "OUTPUTDIR": [ { "value": "../char_fifo" } ],同时把原来工程中生成的 output product 复制到这个目录中。

在 Vivado TCL CONSOLE 中重新运行一下加 XCI 文件的命令,可以看到以下输出:

5286ee458339184f439aa1e27b21c13c.png

14ea92460aeff3905c708efed9ea5b93.png

这里可以看到 XCI 文件已经加到工程中,同时看到的 warning 是正常的,提醒用户在 post-synthesis 工程中,IP 是锁定的,无法修改。

在一些早期的 Vivado 版本中(Vivado 2022.2没有这个问题),即使 IP XCI 文件中 OUTPUTDIR 所指向的目录的确是 IP output product 存放的目录,依然会报 ERROR: [Project 1-680]。这里给大家介绍一下如何微调脚本解决这个问题。

新的脚本:

44565878fc3fd2a0eb6bc020b8432d59.png

这里差异在于在新工程设置为 post-synthesis 工程之前,先读入 XCI 文件并重新生成 IP 的 output product。这样就不必修改 XCI 文件的 OUTPUTDIR 去指向之前 output product 的目录。

c56b7808735bfcb5f2cbcd3662fc84de.png

使用 tcl 命令生成的工程文件 .xpr 文件可以在 Vivado 界面直接打开(File -> Project -> Open)。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在仿真 `.xci` 文件时,实际上是通过 Vivado 工具生成 IP 核的仿真模型并进行行为级或综合后仿真。`.xci` 文件本身是一个 XML 格式的 IP 配置文件,它定义了 IP 核的参数、路径及生成的文件结构,是进行仿真的基础配置文件之一[^1]。 ### 仿真 XCI 文件的基本流程如下: ### 1. 生成仿真所需的输出文件Vivado 中,首先需要对 `.xci` 文件执行生成输出产品操作,以创建仿真所需的模型和文件: ```tcl generate_target all [get_files your_ip.xci] ``` 该命令会生成包括仿真模型(Verilog 或 VHDL)、约束文件、脚本文件等,确保仿真环境具备完整的信息。 ### 2. 创建仿真工程 可以使用 Vivado 的 `launch_simulation` 命令自动创建仿真工程并启动仿真器(如 ModelSim、Vivado Simulator 等): ```tcl launch_simulation -simset sim_1 ``` 此命令会根据当前项目的仿真设置启动仿真环境,并加载相应的仿真模型和测试平台(testbench)[^2]。 ### 3. 执行行为级仿真(Behavioral Simulation) 行为级仿真是基于 RTL 描述的仿真,不涉及时序信息。此阶段的仿真速度快,适合验证功能逻辑。 ### 4. 执行综合后仿真(Post-Synthesis Timing Simulation) 若需验证综合后的时序行为,可以运行综合后仿真。Vivado 会生成一个 `.dcp` 文件(设计检查点),并结合 `.xci` 文件中定义的约束信息进行时序仿真[^1]。 要生成综合后仿真文件,可使用以下命令: ```tcl launch_runs synth_1 wait_on_run synth_1 launch_simulation -simset sim_1 -mode post-synthesis ``` ### 5. 使用 ModelSim 启动仿真 如果使用 ModelSim 作为仿真工具,Vivado 会自动生成必要的脚本文件(如 `simulate_mti.do`),并启动 ModelSim 进行仿真。在 ModelSim 中可运行如下命令: ```tcl do simulate_mti.do ``` ### 6. 测试平台(Testbench)的准备 确保在仿真前已准备好测试平台文件,该文件应包含对被仿真 IP 的实例化、激励生成及输出监测逻辑。测试平台可以手动编写,也可以通过 Vivado 自动生成模板。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值