网站设计制作公司大全,外贸平台网站建设,wordpress后台地址能改,软件程序开发本篇文章包含的内容 一、FPGA工程文件结构二、Modelsim的使用三、Vivado的使用3.1 建立工程3.2 分析 RTL ANALYSIS3.2.1 .xdc约束#xff08;Constraints#xff09;文件的产生 3.3 综合 SYNTHESIS3.4 执行 IMPLEMENTATION3.5 烧录程序3.6 程序固化3.6.1 SPI约束3.6.2 .bin文… 本篇文章包含的内容 一、FPGA工程文件结构二、Modelsim的使用三、Vivado的使用3.1 建立工程3.2 分析 RTL ANALYSIS3.2.1 .xdc约束Constraints文件的产生 3.3 综合 SYNTHESIS3.4 执行 IMPLEMENTATION3.5 烧录程序3.6 程序固化3.6.1 SPI约束3.6.2 .bin文件的产生3.6.3 .mcs文件的产生3.6.4 添加配置的存储器件并配置固化文件 笔者在这里使用的Vivado软件版本是Vivado 2020.2据说该版本比较稳定。参考的课程是正点原子的课程手把手教你学达芬奇达芬奇Pro之FPGA开发篇。文章未完成但是会不定期补充完善笔者学到新的Vivado使用技巧和操作也会更新到此文章中如果篇幅过大就单独写一篇文章说明。 一、FPGA工程文件结构 首先说明一下FPGA工程的文件结构一个科学的文件结构对于工程的管理和维护是十分重要的。笔者使用的文件结构如下
Doc存放说明性文件例如模块功能框图芯片的参考手册波形图README文件等。Sim存放仿真相关文件例如TestBench文件Modelsim工程文件夹使用的仿真模块等。 TB存放TestBench文件。存放Modelsim仿真的文件等。 Rtl存放工程中所有模块的Verilog源码RTL代码。PrjVivado工程文件夹。
二、Modelsim的使用 较为简单暂略之后有时间再补充。
三、Vivado的使用
3.1 建立工程
工程的名字一般和顶层模块的名称保持一致将工程文件的位置确定为Prj文件夹后取消勾选Create project subdirectory。选择RTL Project。添加RTL源文件Verilog代码。添加约束文件可以在工程内手动添加。选择FPGA芯片型号达芬奇为xc7a35tfgg484-2。
3.2 分析 RTL ANALYSIS 点击Open Elaborated Design对代码进行RTL分析。在右上角的菜单中可以原则不同的分析视图
Default Layout打开默认布局代码的逻辑原理图。I/O PlanningIO管脚约束打开之后可以在下面的IO Ports窗口约束管脚及对应的电平标准。按快捷键Ctrls保存后会弹出一个窗口要求建立管脚约束的.xdc文件。.xdc文件的文件名一般和顶层模块名工程名保持一致。.xdc文件也可以自己编写利用相关资料直接在该文件中写约束管脚的代码实现的效果是一模一样的。Floorplanning 分配完IO管脚约束之后就可以点击生成比特流文件了点击后自动完成综合Synthesis和执行Implementation操作。
3.2.1 .xdc约束Constraints文件的产生 .xdc约束文件可以由上面的方法产生也可以在Source窗口直接点击鼠标右键产生。
3.3 综合 SYNTHESIS 所谓综合就是将Verilog的逻辑代码对应到FPGA的底层硬件的操作。在分析RTL Analysis中打开的原理图是一个抽象出的原理图而在综合中打开的原理图是和FPGA的硬件资源直接相关的原理图。
3.4 执行 IMPLEMENTATION 在执行Implementation中可以查看实际的硬件电路连接图。
3.5 烧录程序 点击PROGRAM AND DEBUG中Open Hardware Manager中的Open Target进行自动连接Vivado会自动识别生成的比特流文件.bit。点击下载Program即可下载程序。
3.6 程序固化 通过3.5的在线烧录的方法是无法将程序烧录到板卡上去的只有将编译好的程序烧录到开发板上的 QSPI Flash 中程序才能上电后自动执行。QSPI中的Q是指该芯片的数据线有4位分别是DQ0~DQ3。达芬奇上的Flash除了可以存储程序外还可以存储一些用户数据。 固化烧录文件主要分为以下两种它们都可以由比特流文件.bit产生
.bin文件一般由Vivado软件编译产生存储在特定目录下的二进制文件.mcs文件一般通过Vivado GUI界面操作或TCL命令生成.mcs文件里包含了.bin文件的内容除此之外每行的开始有地址信息最后一个Byte是CRC校验信息。
3.6.1 SPI约束 对于达芬奇开发板而言在工程的.xdc文件中添加以下约束以加快上电后的程序读取速度。
# SPI Configuration
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
# 所有未使用的引脚都上拉
# set_property BITSTREAM.CONFIG.UNUSEDPIN PULLUP [current_design]3.6.2 .bin文件的产生 在Settings中找到Bitstream勾选-bin_file按钮即可在每次生成比特流文件.bit后生成对应的.bin文件。生成的两个文件可以在以下目录中找到 ../Prj/project_name.runs/impl_1/ 3.6.3 .mcs文件的产生 点击菜单栏中的Tools点击Generate Memory Configuration File…打开以下窗口
3.6.4 添加配置的存储器件并配置固化文件 打开Open Hardware Manager并连接好器件后点击菜单栏中的Tools点击Add Configuration Memory Device并选择器件型号打开以下窗口 依次选择制造商大小通信种类和位宽下面的搜索栏中就会出现对应的器件。在这里达芬奇出现的两个器件上面的是3.3V的下面的是1.8V的故选择上面的即可。 选择OK后跟随引导窗口配置固化文件。如果没有跳出窗口也可以在Hardware窗口右击选择Program Configuration Memory Device…打开配置窗口 选择任意方式生成的固化文件均可选择后其他选项保持默认擦除下载程序并校验点击OK就会自动开始下载重启开发板电源即可看到对应的程序现象。如果只需要擦除就仅选择Erase即可。 持续不定期更新完善中…… 原创笔记码字不易欢迎点赞收藏~ 如有谬误敬请在评论区不吝告知感激不尽博主将持续更新有关嵌入式开发、FPGA方面的学习笔记。