ISE14.7工程移植到VIVADO

2024-06-05 07:18
文章标签 移植 工程 vivado ise14.7

本文主要是介绍ISE14.7工程移植到VIVADO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vivado是Xilinx继ISE之后的FPGA开发环境,但是两者的工程存在较大差异,并不能直接转换。

这里主要参考Xilnx手册UG911 (v2018.2) June 6, 2018做相关整理及记录。其中原工程中PL部分的源文件自然可以直接导入,主要问题难点在PS部分:

0、工程导入:这个功能只能导入一部分文件

1、导入zynq soc

首先新建一个空白block design,添加zynq soc,如下图执行XPS导入:

有些参数还需要自己手动比对添加:

 

 

 

 

 

2、对于原ISE中的IP但在VIVADO中没有的,可以利用源码的方式添加:

原ISE中的库路径如下:主要都是VHDL源码(VHDL其实和Verilog类似,只是格式比较繁琐,主要分为:entity[模块头部说明]/architecture[模块主体])

 

 比如:AXI Slave Burst这个IP我在VIVADO ip catalog并没有找到:也许改了名字,这是我有疑问的地方

 

 

 

 

 

 

 关于VHDL文件使用说明,如果不手动在文件属性栏指定编译的lib库的名字,则默认为work:

UG901 (v2019.1) June 12, 2019 Synthesis

 手动指定VHDL的编译库,实际操作发现只能一个一个文档修改:

https://www.cnblogs.com/garylee/archive/2012/11/16/2773596.html

 

 

 在第1步中zynq soc部分虽然已经同步过来但是其它子模块仍然需要自己手动添加:

ISE中的XPS的操作和VIVADO差距比较大:

ISE中的graphical view不同与vivado diagram,它只能用来查看当前连接的情况,并不能对ip模块进行操作,

 实际操作需要切到其它页面:

 

 手动查看原IP参数,依次在vivado中添加进来。

 一般来说有源文件的代码都可以在Diagram中右击Add Module,添加进来,但有一些却不可以:

根据UG994中描述:将鼠标悬停在不能添加的文件上面会有相关提示(不过有时候也没有)

 

 导出AXI总线的问题:这个没有找到很好的解决办法,但是应该不影响实际功能:

 导出的AXI总线是没有时钟引出的,需要手动导出关联,如果只有一条可以通过如下方法解决:

https://www.cnblogs.com/kingstacker/p/11595978.html

 

 如果有多条则没有很好的办法来消除警告。

 

关于Diagram中模块内部使用不引出到引脚操作:比如

 

 

 

3、ucf转xdc

主要有两种方案一种利用综合的网表使用write_xdc命令来生成位置约束:

 另一种方法借助excel手动将UCF约束转为XDC约束

 

 导入效果如下:

接下来需要一系列操作:

(1)删除空行

 

(2)刷选字段

 如上两步基本可以较方便的把位置约束提取出来了。不得不说Excel确实是好东西!

 每一种约束描述,具体可以参看UG911中描述:如KEEPER使用综合保留属性,防止综合时信号优化

 

 

 

最后需要移植的工程太复杂,一般还是用原来的环境:ISE14.7的安装要求如下:

UG631 (v14.7) July 10, 2020

 

 

 参考连接:

1、https://china.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug911-vivado-migration.pdf

2、对于vivado block design操作可以参考文档:UG994 (v2021.1) June 16, 2021Designing IP Subsystems Using IP Integrator
 

这篇关于ISE14.7工程移植到VIVADO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032420

相关文章

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

二、Maven工程的创建--JavaSEJavaEE

1、idea创建Maven JavaSE工程:  2、idea创建Maven JavaEE工程:   (1)手动创建 (2)插件方式创建 在idea里安装插件JBLJavaToWeb; 选择需要生成的项目文件后,右击: 项目的webapp文件夹出现小蓝点,代表成功。

三、Maven工程的构建

首先,创建和构建是两个概念。 构建是指将源代码、依赖库和资源文件等转换为可执行或可部署的应用程序的过程。 在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员更加专注于应用程序的开发和维护,而不必关心应用程序的构建细节。 同时,项目构建还能将多人写的代码聚合,并能够自动化项目的构建和部署,

我在高职教STM32——准备HAL库工程模板(1)

新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过更换库就意味着教学内容有很大变化,自己也就迟迟没有迈出调整这一步。现在,是时候做出变化了,笔者计划保持教学项

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

java工程的导入jar包

由于现在学习java web,java工程导入jar包都忘记了。 在此想记录一下:工程项目名:右击 -- Build Path --add External Archives 点击会弹出一个框 ,选择你要导入的jar路径就可以了。

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向