对于FPGA编程时的v文件中的寄存器,在SDK编程时需要一些读写操作,以实现PS与PL部分的信息交换。下面用一具体例子记录所需要的步骤 。如若有误请指正。
首先需要将v文件代码封装为带有AXI总线的IP,才能实现PS与PL的通信。步骤如下:
1、vivado中打开工程,Tools->Create and Package IP,下一步;
2、选择封装带有AXI4总线的,如下图:
3、next,填写名称等信息,注意IP保存路径。
4、next,选择总线相关信息,Number of Registers选项为一共需要几个寄存器的信息交换,根据实际情况修改;
5、next,选择Edit IP选项,点击完成,自动打开Package IP界面。
6、此时打开了IP模板,主要有2个v文件,如下图:
7、添加需要封装的v文件到工程,需要注意的是源文件需要copy到第3条设置的路径中(我自己开始没有拷贝过去,后面出错了)
8、打开第二个v文件,在最下面(393行)例化需要封装的模块,时钟信号连接S_AXI_ACLK,复位信号连接S_AXI_ARESETN。需要PS端写操作的端口连接到slv_reg0,slv_reg1……(在此v文件中107行已有定义,如下图1),需要PS读操作的端口在365行修改ÿ