vivado的操作流程

1.新建工程,add 设计文件.v和需要的ip(.xci),vivado的ip可以利用IP cateloge生成,有的时加密的,则只能在vivado下仿真使用;

2.仿真(语法检查功能比较弱,可以用其他工具如verdi先查一下),如果想看的信号不在默认的wave里,可以在scope的模块中add,reset后,再仿真若干时间,就可以看到加入的信号;

3.生成bitfile,会自动重新综合布线,也可以手动重新综合布线,reset;

Vivado软件的使用 一、 建立工程 1.1新建一个工程 或者: 1.2设置工程名字和路径。输入工程名称、选择工程存储路径,并勾选Create project subdirectory选项,为工程在制定存储路径下建立独立的文件夹设置完成后,点击Next。注意: 工程名称和存储路径中不能出现中文和空格,建议工程名称以字母、数字、下划线来组成。 1.3选择RTL Project一项,并勾选Do not specify sources at this time,勾选该选项是为了跳过在新建工程的过程中添加设计源文件。点击Next。根据使用的FPGA开发平台,选择对应的FPGA目标器件. 1.4确认相关信息与设计所用的FPGA器件信息是否一致,一致请点击Finish,不一致,请返回上一步修改。 1.5得到如下的空白的Vivado工程界面,完成空白工程新建 二、 工程设计 2.1设计文件输入,如下图所示,点击Flow Navigator下的Project Manager->Add Sources或中间Sources中的对话框打开设计文件导入添加对话框。 2.2添加设计文件,然后Next 2.3如果有v/vhd文件,可以通过Add File一项添加。在这里,我们要新建文件,所以选择Create File一项。 2.4在Create Source File中输入File Name,点击OK。注:名称中不可出现中文和空格。 2.5在弹出的Define Module中的I/O Port Definition,输入设计模块所需的端口,并设置端口防线,如果端口为总线型,勾选Bus选项,并通过MSB和LSB确定总线宽度。完成后点击OK. 2.6新建的设计文件(此处为flow_led.v)即存在于Source中的Design Source中。双击打开该文件,输入相应的设计代码。 三、 添加约束 添加约束文件,有两种方法可以添加约束文件,一是利用Vivado中planning功能,二是可以直接新建XDC的约束文件,手动输入约束命令。 3.1利用IO planning 3.1.1点击Flow Navigator 中Synthesis中的Run Synthesis,先对工程进行综合。 3.1.2综合完成后,选择Open Synthesized Design,打开综合结果。 3.1.3此处应该出现如下界面,如果没有出现,在图示位置layout中选择IO planning在右下方的选项卡中切换I/O ports 一栏,并在对应的信号后,输出对应的FPGA管脚标号,并制定I/O std。(具体的FPGA约束管脚和IO电平标准,可参考对应板卡的用户手册或原理图)。 3.1.4完成后,点击上方工具栏中的保存按钮,工程提示新建XDC文件或选择工程中已有的XDC文件。在这里,我们要Create a new file,输入File name,点击OK完成约束过程。 3.1.5、此时在Source下的Constraints中会找到新建的XDC文件。 3.2建立XDC文件 3.2.1、点击Add Source ,选择第一项Add or Create Constraints一项,点击Next。 3.2.2、点击Create File ,新建一个XDC文件,输入XDC文件名,点击OK。点击Finish。 3.2.3、双击打开新建好的XDC文件,按照如下规则,输入相应的FPGA管脚约束信息和电平标准。 四、 功能仿真 4.1创建激励测试文件,在Source中右击选择Add source。在Add Source界面中选择第三项Add or Create Simulation Source,点击Next。 4.2选择Creat File,创建一个新的激励测试文件。输入激励测试文件名,点击OK,然后点击Finish。 4.3弹出module端口定义对话框,由于此处是激励文件,不需要有对外的接口,所以为空。点击OK,空白的激励测试文件就建好了。 4.4在source 下双击打开空白的激励测试文件,完成对将要仿真的module的实例化和激励代码的编写。激励文件完成后,工程目录如下图: 4.5此时,进入仿真。在左侧Flow Navigator中点击Simulation 下的Run Simulation 选项,并且选择Run Behavioral Simulaiton一项,进入仿真界面。 4.6下图为仿真界面。 4.7可以通过左侧的Scope一栏中的目录结构定位到设计者想要查看的module内部寄存器,在Objects对应的信号名称上右击选择Add To Wave Window,将信号加入波形中。 4.8可通过选择工具栏中的如下选项来进行波形的仿真时间控制,如下工具条,分别是复位波形(即清空现有波形)、运行仿真、运行特定时长的仿真、仿真时长设置、仿真时长单位、单步运行、暂停…… 4.9最终得到的仿真效果图如下。核对波形与预设的逻辑功能是否一致,仿真完成。 五、综合下载 5.1在Flow Navigator中点击Program and Debug下的Generate Bitstream选项,工程会自动完成综合、实现、Bit文件生成过程,完成之后,可点击Open Implemented Design 来查看工程实现结果。 5.2点击Flow Navigator中的Open Hardware Manager一项,进入硬件编程管理界面。 5.3在Flow Navigator中展开Hardware Manager ,点击Open New Target 5.4在弹出的Open hardware target向导中,先点击Next,进入Server选择向导。 5.5保持默认,next。 5.6选中FPGA芯片型号,点击Next。完成新建Hardware Target。 5.7此时,Hardware一栏中出现硬件平台上可编程的器件。(此处以zynq为例,如果是纯的FPGA的平台,该出只有一个器件。)在对应的FPGA器件上右击,选择Program Device 5.8选择bit文件位置,默认,直接Program。 观察实验结果,设计完成。
<think> 首先,用户的问题是:“我想查找vivado烧写程序到flash的操作方法 请问vivado烧写程序到flash的操作步骤”。基于系统级指令和提供的引用材料,我需要构建一个清晰、可靠的中文回答。 关键点: - 回答必须使用中文。 - 结构清晰,逐步解决问题。 - 使用行内数学表达式如 $...$,但目前问题中可能没有数学部分,所以可能不需要。 - 独立公式用 $$...$$,但这里似乎不涉及。 - 确保 LaTeX 语法正确,但这里主要涉及文本和步骤。 - 生成相关问题。 - 在引用的结尾自然地添加引用标识,如 [^1]。 提供的引用: - 引用[1]:描述在Vivado端固化的必要性,涉及生成比特流文件。 - 引用[2]:解决在Select Configuration Memory Part中找不到flash型号的问题,包括修改CSV文件、检查SPI总线宽度等。 - 引用[3]:关于QSPI x8 FLASH固化烧写的约束方法和步骤。 用户的问题是关于操作步骤,所以我需要综合这些信息,形成一个步骤指南。 结构化回答: 1. **引言**:简要解释为什么需要烧写程序到flash(断电后程序保留)。 2. **主要步骤**: - 生成比特流文件。 - 配置flash型号,如果需要修改。 - 设置SPI总线宽度等相关属性。 - 实际烧写过程。 3. **详细说明**:基于引用提供具体操作。 4. **注意事项**:包括引用[2]中的问题解决方案。 5. **结尾**:生成相关问题。 引用标识的使用:在回答中,当提到引用内容时,在相关句子末尾添加 [^数字]。例如: - 描述生成比特流文件时,添加 [^1]。 - 讨论修改CSV文件时,添加 [^2]。 - 提到约束方法时,添加 [^3]。 生成相关问题:在回答的末尾,添加“相关问题”部分。 完整回答框架: 1. **标题或开头**:Vivado烧写程序到Flash的操作步骤 2. **步骤分解**: - 步骤1: 生成比特流文件。 - 步骤2: 确认Flash型号并配置。 - 步骤3: 设置设备属性(如SPI总线宽度)。 - 步骤4: 执行烧写操作。 3. **注意事项**:基于引用[2],处理常见错误。 4. **结尾**:添加相关问题。 确保语言的流畅性和专业性。 </think> 以下是关于在 Vivado 中烧写程序到 Flash 的操作步骤的完整指南。我将依据您提供的引用材料和标准 Vivado 工作流程,逐步解释整个过程。操作的核心目标是生成比特流文件并将其固化到 Flash,确保 FPGA 上电后能自动加载程序。整个过程分为准备、配置和烧写三个阶段,每个步骤都基于可靠的实践(如引用材料所述)。请确保您已安装 Vivado 工具,并连接好 FPGA 开发板。 ### 操作步骤详解 1. **生成比特流文件** - 首先,在 Vivado 中完成设计(包括综合、实现和生成比特流文件)。 - 打开您的工程,运行 `Synthesis` 和 `Implementation`。 - 右键点击 `Generate Bitstream`,生成 `.bit` 文件。此文件是烧写的基础,用于配置 FPGA[^1]。 - 还需要生成 `.prm`(编程文件)或 `.mcs`(存储器配置文件)。在 `File > Export > Export Bitstream File` 中选择格式(如 `.mcs`),指定输出路径。 2. **确认 Flash 型号并进行配置** - 在烧写前,必须确保 Vivado 识别您的 Flash 型号(例如 W25Q128BV)。如果型号缺失(常见问题),按以下步骤添加: - 关闭 Vivado,找到安装目录下的配置文件(如 `E:\Xilinx\Vivado\2020.2\data\xicom\xicom_cfgmem_part_table.csv`)。 - 用记事本打开该 CSV 文件,添加一行匹配您的 Flash 型号(例如:`823,0,w25q128dv-qspi-x1 x2 x4,- xc7k325t,w25q128fw,qspi,128,x1-single,,Winbond,,1,w25q128dv,w25q`)。保存文件(避免使用 Excel,以免破坏公式)[^2]。 - 重新打开 Vivado,进入 `Open Hardware Manager` > `Program Device` > `Add Configuration Memory Device`。在 `Select Configuration Memory Part` 中,检查是否出现您的 Flash 型号。如果型号已存在,可直接选择。 3. **设置 SPI 总线宽度和设备属性** - 根据硬件设计(如 SPI x1, x2, x4 或 x8),调整 Vivado 设置以避免烧写失败: - 打开 `Implemented Design`(在 `Implementation` 阶段后),进入 `Tools > Edit Device Properties`。 - 在 `Configuration` 选项卡中: - 将 `SPI Bus Width` 从默认值(通常为 x4)修改为匹配硬件的宽度(例如,如果硬件是 SPI x1,则设置为 `1`)。 - 在 `Configuration Modes` 中,选择对应的模式(如 `Master SPI x1` 或 `Master SPI x8`)[^2][^3]。 - 保存设置后,重新生成比特流文件(步骤 1),确保属性生效。 4. **执行烧写操作** - 连接 FPGA 开发板,通过 JTAG 或 USB 接口与 Vivado 通信: - 打开 `Hardware Manager`,右键点击设备,选择 `Add Configuration Memory Device`。 - 选择您的 Flash 型号和 `.mcs` 文件(或 `.bin` 文件)。 - 点击 `Program` 开始烧写。等待进度完成(时间取决于 Flash 大小)。 - 烧写成功后,断电重启 FPGA,验证程序是否自动加载。 - 注意:如果烧写失败,检查错误日志(常见问题包括 SPI 宽度不匹配或 Flash 型号错误)。引用[2] 提供了解决方法,如重新检查 CSV 文件或设备属性[^2]。 5. **关键约束设置(可选但推荐)** - 在您的 FPGA 代码(XDC 约束文件)中添加以下命令,以提高烧写效率和兼容性(特别是对于 QSPI x8 Flash): ```tcl set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property CONFIG_MODE SPIx8 [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 8 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] ``` 这些设置优化了烧写速度和 Flash 利用率[^3]。 ### 注意事项 - **常见问题处理**: - 如果烧写失败或上电加载失败,确认硬件 SPI 宽度(如 x1 或 x4)并匹配 Vivado 设置。 - 确保在修改 CSV 文件或设备属性后关闭并重启 Vivado。 - 引用[2] 强调,错误消息如 "实际检测到的型号与选择型号不一致" 通常表示 Flash 型号配置错误或 SPI 宽度不匹配[^2]。 - **为什么烧写到 Flash**:与直接烧写到 FPGA RAM 不同,Flash 固化能保存程序断电后(便于调试和使用)[^1]。 ### 相关问题 为了帮助您深入了解,以下是一些相关问题: 1. 如何在 Vivado 中调试 Flash 烧写失败的错误? 2. Vivado 烧写 Flash 时如何优化烧写速度和可靠性? 3. 不同 Flash 型号(如 W25Q 系列)在 Vivado 中的兼容性如何解决? 4. Vivado 与 SDK 在程序固化方法上有何区别? 如果您有具体开发板型号或错误细节,我可以提供更针对性的建议。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值