开发板环境:vivado 2017.1 ,开发板型号xc7z020clg400-1,这个工程主要功能是使用拔码开关 U20 的三个开关来触发 PL 中断,并且通过串口打印出已经触发的中断按键。 Step1 这是已经新建好的vivdao 工程 Step2 点击Flow Navigator 下的Create Block Desion新建一个Block Desion 在弹出的对话框中可以自己填写新建的Block Desion名称,我这里选择默认名称不更改,点击OK 已经新建好的Block Desion如下图所示 Step 3 点击工作区的Add IP添加IP核,在弹出的搜索栏Search中输入zynq,发现可以搜到ZYNQ IP核, 双击这个ZYNQ核添加到工作区内 添加好的ZYNQ核如下图所示 Step4 双击ZYNQ IP核添加tcl配置文件,然后点击OK(如果不知道怎样添加请参考hello_world工程里面有详细步骤) 配置后的ZYNQ核如下图所示 Step 5 点击Run Block Automation进行自动布线 在弹出的对话框中点击OK 自动布线完成后如下图所示 Step 6 再次点击工作区的Add IP添加IP核,在弹出的搜索栏Search中输入concat,将搜到的concat核 双击这个ZYNQ核添加到工作区内 添加好的concat核如下图所示 双击这个concat核将Number of Ports设置为3,然后点击OK(这里只有三个中断输入所以设置为3) 用同样的方法在搜索栏Search中输入vector,将搜到的vector核双击添加到工作区内 所要的核添加完成如下图所示 双击这个vector核将C_SIZE设置为1,然后点击OK 用同样的方法添加另外两个vector核,添加完成后如下图所示 按照下图中的接法将这几个IP核连接起来 再在这个OP引脚上右击选择Make Extermal将OP1的引脚引出来 用同样的方法将其它两个OP的引脚引出来,如下图所示 将第一个OP1引脚改名为SW1,将第二个OP1引脚改名为SW2,将第三个OP1引脚改名为SW3 引脚改完后如下图所示 Step7 右击 design_1->Generate Ouput Products 生成综合文件 在弹出的对话框中点击Generate Step8 右击 design_1->Create HDL Wrapper 生成顶层文件 在弹出的对话框中点击OK 顶层文件生成后如下图所示 Step9 将我提供网盘提供的工程的xdc文件复制到当前这个工程里面,如下图所示 Step10 点击Generate Bitstream产生bit文件 点击Yes 点击OK 在弹出的对话框中可以看出bit文件生成成功 ,点击Cancel关闭对话框 Step11 点击菜单栏上的 File->Export->Export Hardware 导出硬件配置文件 在弹出的对话框中勾选Include bitstream ,然后点击OK Step12 点击菜单栏上的 File->Launch SDK->OK启动SDK 点击OK Step13 点击菜单栏上的 File->New->Application Project新建工程新建一个fsbl 在弹出的对话框中填写fsbl 在工程模板中选择Zynq FSBL Step14 再次点击菜单栏上的 File->New->Application Project 新建工程 在弹出的对话框中填写工程名为pl_int 在工程模板中选择Hello World 将网盘里提供的工程代码复制到这个新建的hello_world里面如下图所示 按住ctrl键点击这个XPAR_PS7_SCUGIC_0_DEVICE_ID ,然后进入这个xparameters.h这个文件 在这个xparameters.h文件中添加将这三个 : #define XPAR_FABRIC_UTIL_VECTOR_LOGIC_0_RES_INTR 61 #define XPAR_FABRIC_UTIL_VECTOR_LOGIC_2_RES_INTR 63 中断添加进去,然后按ctrl+S保存 Step15 右击 pl_int工程->Create boot Image, 生成BOOT.bin启动文件 在弹出的对话框中点击Create Image 将生成的BOOT.bin文件拷贝到SD卡插到开发板运行 可以看到当我们拨动拨码开关就会产生中断,并且串口会打印出相应的按键 |