tb一下 发表于 2023-5-10 13:43:41

【vivado拓展】单逻辑工程的多开发板适配

【前言】
在FPGA开发过程中,我们可能会遇到同一个工程,需要应用在不同开发板上的情况。这种情况下,最简单也最直接的办法,就是针对每一个开发板创建一个工程。这种方式虽然麻烦,但是不同型号开发板的工程通常都有自己的路径,工程以及文件易于区分。
而除了这种方式外,Vivado也支持单个工程包含多个Synthesis和Implementation,根据这一特点,我们就能实现单个工程的多开发板适配(也可以实现一个工程包含多个设计)。下面我们以ACZ702开发板通过模拟IO实现HDMI的彩条显示工程为例,教大家如何实现ACZ702和ACX720开发板的适配。

【实现步骤】
1.打开工程并运行,这里笔者给出运行后的工程总结界面

从图中我们可以知道工程路径、此时工程适配的芯片型号为xc7z020clg400-1(对应ACZ702开发板)、当前综合实现所对应名称(synth_1和impl_1)。打开工程路径runs文件夹下的impl_1文件夹,其中的bit文件便是烧录到ACZ702开发板中时所需要用到的比特流

2.点击Sources中的“+”,新建一个约束设置,方便后续设计。由于不需要立马添加约束文件,在新建完成后点击cancel即可


3.点击vivado界面下方Design Runs中的“+”,新建Runs。这里,我们可以创建新的综合或实现或者两者都创建,根据自己需求选择即可。

4.在创建页面可以进行相关配置,为了方便区分,这里我们可以将综合重命名为ACX720_synth,将约束配置设置为新建的constrs_2,设置器件型号。将实现重命名为ACX720_imp。随后设置器件型号,勾选make active来启用该实现,其余项保持默认。




5.在工程总览界面中我们看到,此时所运行的综合实现的名称以及对应的运行结果

6.为设计添加引脚分配和约束,并保存(会自动保存在constrs_2中),为方便区分我们可以将约束文件命名为ACX720_IO

7.点击为设计生成bit流

【工程设计切换】
工程中synth_1和impl_1对应设计适配ACZ702开发板,ACX720_synth和ACX720_impl对应设计适配ACX720开发板。使用时只需要在Design Runs中右键对应项Make Active,就能完成工程适配开发板型号的切换。


【上板验证】
两种设计的bit文件保存在各自对应impl文件夹下,如下:

将对应bit烧录进开发板后,显示效果如下:

ACZ702开发板板级验证

ACX720板级验证

【总结】
单逻辑工程的多开发板适配主要是借助vivado工程能够支持多个综合实现的特点,在创建新综合实现之前,建议先新建一个constraint set以减少一些不必要的操作。在实际使用时,用户可以通过Design Runs随时切换设计。

【工程附录】
原ACZ702例程:
修改后,适配ACZ702和ACX720例程:
页: [1]
查看完整版本: 【vivado拓展】单逻辑工程的多开发板适配