在hello world的vivado工程的基础上,修改硬件配置。
点击“Open Block Design"。将会打开Hello World工程所创建的bd文件:
在hello_world工程的基础上只需要添加IIC的配置:(EMIO:用于扩展FPGA的I/O功能,使其能够与外部设备进行连接和通信。它允许FPGA通过PS部分与外部的低速I/O设备交互。)
根据核心板和底板原理图选择选择正确的引脚约束:
点击OK。
右击IIC_0点击Make External,软件会自动在顶层模块中自动生成与 IIC_0 接口对应的外部引脚:
直接按快捷键 Ctrl+S 保存当前设计。接下来点击下图箭头所指示的按钮,验证当前设计。验证完成后弹出对话框提示没有错误或者关键警告,点击“OK”,如下图所示:
生成顶层文件:在 Sources 窗口中,选中 Design Sources 下的 sysetm.bd, 这就是我们刚刚完成的 Block Design 设计。右键点击 sysetm.bd,在弹出的菜单栏中依次点击“Reset Outpu Products”和“Generate Output Products”:
在“Hierarchy”标签页再次右键点击 system.bd,然后选择“Create HDL Wrapper”:
点击Run Synthesis,直接点击OK:
成功之后会有提示框弹出:选择第二个选项:
打开后的界面如下:
由于我们用了EMIO,所以我们接下来要添加引脚约束,此处可有两种方法添加约束:
方法一:在.xdc文件里以代码的形式添加引脚约束:
由于没有自动生成该文件,所以进行手动创建:
点击Constraints Wizard,出现弹框点击Define Target:
点击Create File:
输入名称,点击OK,再选中,点OK:
此时.xdc约束文件已经建好,点开文件,根据上文原理图在里面添加约束语句:
方法二:通过界面上进行勾选操作:
点击Constraints Wizard后弹框点Cancel,此时界面底下就会有选项:根据上文原理图选择正确的Package Pin,出现提醒default 是因为电压不对,改成LVCMOS33:
点击Run Implementation,点击Yes:提示信息是当设计文件有改动导致之前的综合结果不再有效时,工具会提示用户是否重新进行综合操作,并且在综合完成后会自动进行实现步骤。
由于我们添加了约束,所以导致上一步的Run Synthesis结果改变,此时会弹出
点击保存约束文件:
点击OK:
选择中间的选项则直接跳到了下一步:生成比特流文件:
生成比特流文件成功后直接点击Cancel:
点击File->Export->Export Hardware:
此时选择选项二,包括比特流:
右击创建的平台工程,点击Update Hardware Specification:选择.xsa文件路径,出现以下弹框,点击OK,说明更新成功。好的习惯:更新完之后继续右击平台工程Build一下。
在已有的平台工程上创建新的应用工程参考hell world工程的创建,唯一不同的点在选择模板时选择一个Empty Applicaiton(C)。我们需要手动去写代码,因为软件里没有此项目的模板代码:
创建好后右击Src->new->file:
具体代码见src文件下的文件。
具体实现可参考vitis自带的工程examples:
编译工程成功后,用type-c USB线将开发板的JTAG和电脑连接,使用另外一根type-c USB线将开发板的PS UART和电脑连接。
在电脑上打开串口调试工具MobaXterm,和开发板的PS UART建立连接。
在vitis上进入调试模式:在Debug As,选择第一个。全速运行就可以通过串口看到调试信息
调试结果如下: