如何使用Synplify综合vivado带IP核的工程

文章介绍了使用Synplify进行FPGA设计综合的优势,如减少逻辑资源和优化时序。在Synplify中处理VIVADOIP核的方法包括将IP核设置为黑盒并使用Stub文件。文章还详细描述了在VIVADO工程中处理Synplify产生的网表和IP核的步骤,以及解决VIVADO编译时找不到IP核DCP文件的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Synplify综合的好处

下面的说法来自网上:

  1. 综合时间更好,综合出来所使用的逻辑更少
  2. 综合的时序更好

在IC设计中,使用Synplify综合+Vivado组合比较多。synplify 用于生成网表,然后将网表倒入FPGA中,进行布局布线等操作。

synplify的教程

Libero集成开发环境中Synplify应用与提高-Microsemi(Actel) FPGA开发工具——周立功Libero集成开发
界面还是很简单的
在这里插入图片描述
勾选上Symbolic FSM Compiler和Resource Sharing。 双击logic constraints 打开fdc约束,如下所示

在这里插入图片描述
因为约束主要还是在后面vivado中进行约束,因此在synplify中我只约束了时钟。(这个在前面一张图右上角中,也有设置一次时钟周期)。如果是没有带vivado IP核的工程,就可以点击run生成网表文件了。

如果是有带vivado ip核的,那么还要添加ip核到工程中。(默认是在vivado以及有一个能够运行的工程了,或者也可以建立一个空的工程,要先创建ip核,导出ip核信息,synplify综合才能过。)
在这里插入图片描述
如果问题最下面的问题1,那么需要先reset output products, 在generate生成一次ip核内容。要有.xci文件、stub文件,dcp文件。

在这里插入图片描述
xci文件是后面vivado综合网表的时候使用;stub文件用于配合synplify第三方综合工具推断ip,下面是xilinx对于stub文件的解释。dcp文件

在这里插入图片描述
dcp文件是xilinx加密的hdl ip核代码,dcp参考
在这里插入图片描述

方法1(无效)

Vivado与Synplify联合设计FPGA
在这里插入图片描述
在synplify文件中,import -> add vivado ip -> 添加xci文件, 我试了好久,没有用,synplify综合会出error, 还是无法找到vivado ip核。

方法2

在synplify中,将vivado ip核先设置为黑盒,使用ip核输出的()_stub.v文件来提供相关信息。在文件列表中,把这个()_stub.v文件添加到synplify工程即可。
在这里插入图片描述
Run后在我们输出目录下,会有edf网表文件。在这里插入图片描述

VIVODO工程

和平时工程不同的是,在新建工程的时候,Project Type选择 post-synthesis project(平时设计都是用RTL Project), 然后把edf网表文件添加到工程中。
在这里插入图片描述
添加我们添加ip核信息。这里不是重新创建ip核,而是添加之前synplify使用到的ip核xci文件,他会识别dcp文件添加到工程中一起综合。
最后添加xdc约束文件。工程目录如下图所示。
在这里插入图片描述
最后生成bitstream,下载到FPGA中。

遇到的问题

问题1:vivodo编译提示: Please open this sub-design and generate with synth_checkpoint_mode as ‘Singular’ in original project before adding it to current project. (或者找不到IP核的DCP文件)

解决方法:生成IP核的工程,reset ip核,重新生成一次。

### 使用 SynplifyVivado 联合进行 FPGA 综合设计流程 尽管 Vivado 提供了完整的工具链用于综合、实现和仿真,但在某些情况下可能希望使用 Synplify 进行初步的 RTL 综合。以下是将 Synplify 集成到基于 Vivado 的工作流中的方法: #### 准备环境 为了使 SynplifyVivado 协同工作,需安装并配置好两个软件包。确保两者之间的版本兼容性非常重要。 #### 创建项目结构 建立清晰合理的目录树有助于管理不同阶段产生的文件。建议创建独立的工作空间存放由 Synplify 处理过的网表和其他中间产物。 #### 编写顶层模块 定义整个系统的入口点——即顶层实体(entity)。这一步骤对于后续操作至关重要,因为所有的子组件都将被实例化于此处[^2]。 ```verilog module top_module ( input wire clk, output reg led ); // Internal logic here... endmodule ``` #### 执行 Synplify 综合 利用 Synplify 对上述 Verilog 或 VHDL 描述执行逻辑综合。生成的目标可以是一个优化后的 EDIF 文件或者是标准的 NGC/NGO 格式的网表。 #### 导入至 Vivado 完成外部综合之后,返回到 Vivado 中继续剩余的任务。通过 `read_edif` 命令加载来自 Synplify 输出的结果;如果是 NGC,则直接采用 `import_files` 方法引入。 ```tcl # For EDIF files generated by Synplify read_edif ./path/to/output.edif # Or for NGC files from Synplify add_files -fileset sources_1 path/to/top.ngc ``` #### 完善布局布线 此时可以在 Vivado 内部按照常规方式设置约束条件(XDC)、指定目标器件型号以及启动物理规划过程。注意充分利用特定于所选芯片系列的功能单元以提高性能表现[^3]。 #### 实施位流生成 最后,在确认无误的情况下触发最终装配步骤,从而得到可用于编程下载的比特流数据。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值