构建完整嵌入式系统--PS和PL的合作实验

实验资料可到群或qq进行下载:1073030956或1072008053

本实验的硬件框架为基本嵌入式系统,该系统组成 :

ARM Cortex-A9 PS和三个标准GPIO IP,用于连接板载LED,按钮和开关(PL)。
构建完整嵌入式系统--PS和PL的合作实验

实验步骤:

  1. 添加PYNQ-Z2 Board File,点击http://www.tul.com.tw/ProductsPYNQ-Z2.html进行下载。
    构建完整嵌入式系统--PS和PL的合作实验
  2. 将下载后的PYNQ-Z2文件添加到Vivado 根目录下boards_files中。
    构建完整嵌入式系统--PS和PL的合作实验
  3. 双击桌面图标启动Vivado并点击Create Project新建一个新的设计工程,进入创建引导后,点击 Next 进入下一步。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
  4. 输入工程名,并选择工程目录后,点击Next。
    构建完整嵌入式系统--PS和PL的合作实验
  5. 选择创建类型为RTL Project设计,点击Next。
    构建完整嵌入式系统--PS和PL的合作实验
  6. 在Default Part界面中点击Boards点击PYNQ-Z2,选择该器件点击Next。
    构建完整嵌入式系统--PS和PL的合作实验
  7. 在弹出的New Project Summary中重新检查所选器件型号是否与板卡芯片型号一致,若确认
    无误,点击 Finish 完成工程创建。
    构建完整嵌入式系统--PS和PL的合作实验
  8. 完成工程创建后,进入到工程操作界面,在Flow Navigator栏选择Create Block Design创建
    Block Design设计,并输入设计名,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
  9. 点击Diagram窗口中心➕或右击Diagram窗口空白处选择 (快捷键Ctrl+I),打开添加IP核窗口,输入ZYNQ并双击添加到Diagram中。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
  10. 点击Run Block Automation,自动预设电路配置,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    11.双击ZYNQ模块打开ZYNQ处理器的Customization窗口,显示各种可配置模块,并且可点击各种可配置模块(绿色突出显示)进行更改
    构建完整嵌入式系统--PS和PL的合作实验
    12将I/O外设模块配置为仅支持UART0,点击MIO Configuration面板取消除UART0以外所有外设(ENT0,USB0,SD0,GPIO),点击OK
    构建完整嵌入式系统--PS和PL的合作实验
    13点击“+”号,在Search中输入AXI GPIO,双击进行添加。
    构建完整嵌入式系统--PS和PL的合作实验
    14单击AXI GPIO模块,在属性选项中将名称更改为buttons。
    点击AXI GPIO模块,右键找到Block Properties.
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    15双击AXI GPIO模块打开自定义窗口,点击Board interface选择btns 4bits,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    16点击Run Connection Automation,点击buttons(包括GPIO和S_AXI),点击OK。自动将S_AXI接口连接到ZYNQ M_GP_GP0端口(通过AXI互联模块Interconnect),以及外部接口GPIO。
    注意:从中可以看出PS作为Master设备。外设作为Slave设备。要想了解相关的内容可到该博客中找到“vivado中ZYNQ详解(主要用于PS和PL之间的工作衔接)”文章进行学习。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    17.重复上述过程,添加另一个GPIO,命名为leds,双击进行配置,在Board interface中选择leds 4bits,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    18重复上述过程,添加另一个GPIO,命名为switches,双击进行配置,在Board interface中选择sws 2bits,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    19再次点击Run Connection Automation,选择All Automation,点击OK。
    构建完整嵌入式系统--PS和PL的合作实验
    构建完整嵌入式系统--PS和PL的合作实验
    20设计总体。点击下面按钮重新排一下布局。
    构建完整嵌入式系统--PS和PL的合作实验
    21得到最终布局。

构建完整嵌入式系统--PS和PL的合作实验
22验证是否将地址分配给三个GPIO,验证设计是否有误。
构建完整嵌入式系统--PS和PL的合作实验
23在Source窗口右键software_hardware.bd文件,选择Generate Ouput Products。
构建完整嵌入式系统--PS和PL的合作实验
24并在弹出Generate Ouput Products对话框内选择Out of context per IP,选择Generate。
构建完整嵌入式系统--PS和PL的合作实验
25在 Source 窗口右键 software_hardware.bd 文件,选择 Create HDL Wrapper为 IP 子系统生成一个顶层文件。
构建完整嵌入式系统--PS和PL的合作实验
26在弹出的 Create HDL Wrapper 中默认选择第二项,点击 OK 完成创建,并可以在 Source 窗口看到生成了包含有 system.bd 的 software_hardware_wrapper.v 的顶层文件。
构建完整嵌入式系统--PS和PL的合作实验
27在Flow Navigator执行Generator Bitstream,生成Bit文件。
构建完整嵌入式系统--PS和PL的合作实验
28在弹出Bitstream Generation Completed选择View Reports或者直接点击Cancel。
构建完整嵌入式系统--PS和PL的合作实验
29.点击菜单栏 File>>Export>>Export Hardware,将生成的硬件导出,为后面进行软件应用开发做好准备。
构建完整嵌入式系统--PS和PL的合作实验
30.在点击Export Hardware后,需要勾选Include bitstream,以确保导出的硬件信息会包含有bit文件。
构建完整嵌入式系统--PS和PL的合作实验

软件方面的应用

31.点击File >> Launch SDK,并在弹出的对话框中点击OK,启动SDK工具。
构建完整嵌入式系统--PS和PL的合作实验
32.SDK工具成功启动后,会进入以下界面,可以在左侧Project Explorer中找到software_hardware_wrapper_hw_plaform_0,其中包含有导出的bit文件与相关硬件信息。
构建完整嵌入式系统--PS和PL的合作实验
33.点击File >> New >> Board Support Package 创建板级支持包,点击Finish,点击OK。
注意:点击OK后要注意console窗口的反应,如果console有反应则代表正常,当console内显示结束后再进行下一步。如果console在创建完Board Support Package 板级支持包后没有反应,则必须重新建立Board Support Package 板级支持包。
构建完整嵌入式系统--PS和PL的合作实验
构建完整嵌入式系统--PS和PL的合作实验
34.点击File >> New >> Application Project 创建新工程,命名为lab1,点击Next。
构建完整嵌入式系统--PS和PL的合作实验
构建完整嵌入式系统--PS和PL的合作实验
35.选择lab1>>src 右击src文件,选择Import。
构建完整嵌入式系统--PS和PL的合作实验
36.在Import窗口中选择General文件,双击 File System 添加C文件。
构建完整嵌入式系统--PS和PL的合作实验
37.选择C文件路径(Lab1\source),添加C文件,点击Finish。
构建完整嵌入式系统--PS和PL的合作实验
38.更改错误,在standalone_bsp_0/ps7_cortexa9_0/include/xparameters.h
构建完整嵌入式系统--PS和PL的合作实验
构建完整嵌入式系统--PS和PL的合作实验

硬件测试

39.通过USB数据线连接PYNQ板卡与电脑,并打开开关将板卡上电,并等待板卡指示灯亮起,表示上电完成,板卡处于启动等在下载状态。
40.点击“+”,添加串口,进行程序下载检测。
构建完整嵌入式系统--PS和PL的合作实验
41.在工具栏中点击Program FPGA按键 ,或菜单栏点击Xilinx >> Program FPGA,打开Program FPGA窗口,将Hardware Platform选择为system_wrapper_Hw_platform_0,Bitstream选择为 software_hardware_wrapper.bit。点击Program。
构建完整嵌入式系统--PS和PL的合作实验
构建完整嵌入式系统--PS和PL的合作实验
42.右击Lab1,然后选择Run as ,再选择launch on hardware.
构建完整嵌入式系统--PS和PL的合作实验
43.注意:板卡SW0,SW1不能置为1,调节为“00”状态,并且跳线帽需要调节至JTAG处。
构建完整嵌入式系统--PS和PL的合作实验
44.打开SDK Terminal窗口。窗口出现以下字样表示正常,程序开始运行。
构建完整嵌入式系统--PS和PL的合作实验
45.测试硬件,按动板子上的四个开关时,开关上方对应的LED会亮。
构建完整嵌入式系统--PS和PL的合作实验
46.板卡SW0,SW1置为1,调节为“11”状态,退出实验程序。
构建完整嵌入式系统--PS和PL的合作实验