diff --git a/README.md b/README.md index 8517bdeea337afae250c06a3fc90942b23b812c1..c9262f4c761c358ecd55a38a0749b0259e8cec23 100644 --- a/README.md +++ b/README.md @@ -2,27 +2,15 @@ ## 实验目的 -在本实验中,读者将在实验2的基础上,在深入理解MIPSfpga处理器和AXI总线协议、以及掌握了基于Vivado -IP集成方法搭建MIPSfpga处理器系统的流程的基础上,自己动手实现一个基于AXI总线接口标准的外设模块,并将该模块添加到MIPSfpga处理器系统中。需要按照下述步骤完成相应实验: - -1. 编写并封装一个带中断输出信号的基于AXI4总线接口标准的PWM外设模块IP(注:该模块的中断功能将在后续的实验用到,在本次实验中不会使用); - -2. 将该自定制的接口模块添加到第2章实验2搭建的MIPSfpga处理器硬件平台; - -3. 生成新建的包括该自定制接口模块的MIPSfpga处理器硬件平台比特流文件,并将其烧写到Nexsy4 - DDR开发板; - -4. 编写MIPS C语言程序对MIPSfpga处理器硬件平台进行测试验证。 - -通过本意实验3,读者将会加深对AXI总线标准及其接口规范的理解,掌握基于Vivado IP集成开发流程设计实现处理器自定制外设模块IP的方法,学会编写、编译并调试MIPSfpga处理器外设驱动程序和应用测试程序;最终,为后续设计实现更加复杂的MIPSfpga处理器硬件平台奠定基础。 +在本实验中,将自己动手实现一个基于AXI总线接口标准的外设模块。通过本实验,会加深对AXI总线标准及其接口规范的理解,掌握基于Vivado IP集成开发流程设计实现处理器自定制外设模块IP的方法;最终,为后续设计实现更加复杂的处理器硬件平台奠定基础。 ## 实验内容及步骤 ### 基于AXI4总线接口的自定制外设模块封装 -开始实验前先复制实验2的工程,即将实验2的工程目录MIPSfpga_axi4复制并将复制后目录更名为MIPSfpga_CustomIP,然后按照下述步骤开始实验: +开始实验前先新建一个Vivado工程,这里假设新建的工程名为MIPSfpga_CustomIP,然后按照下述步骤开始实验: -1. 启动Vivado,打开MIPSfpga_CustomIP工程(注:因为只修改了该工程的目录名称,因此该工程的名称仍然是MIPSfpga_axi4),然后选择“Create +1. 启动Vivado,打开MIPSfpga_CustomIP工程,然后选择“Create and Package IP”菜单,如图3-1所示; 2. 出现Create and Package @@ -165,63 +153,6 @@ Peripheral目录下名为PWM_w_Int_v1.0的IP就是我们刚刚自定制的基于 图3-16 IP Catalog中新增的用户自定制IP -### 在MIPSfpga硬件平台中使用自定制IP - -具体实验步骤如下: - -1. 在Vivado中打开MIPSfpga_CustomIP工程,选择“Open Block - Design”菜单,如图3-17所示; - -![](https://gitee.com/hustos/bluetooth-car/raw/lab1/picture/image114.png) - -图3-17 选择Open Block Design打开设计 - -1. 选择“Add IP”,在IP资源库中找到PWM_w_Int_v1.0用户自定制的IP模块,双击添加,并按照图3-18所示连接到MIPSfpga处理器系统(具体连接方法请参看第2章实验2); - -![](https://gitee.com/hustos/bluetooth-car/raw/lab1/picture/image115.png) - -图3-18添加PWM_w_Int_v1.0 IP - -1. IP模块连接完成后,切换到Address - Editor,将PWM_w_Int_v1.0模块的地址设置为0x10C0_0000,即该IP模块的物理地址,如图3-19所示; - -![](https://gitee.com/hustos/bluetooth-car/raw/lab1/picture/image116.png) - -图3-19 设置PWM_w_Int_v1.0外设的地址 - -1. 完成操作后,整个MIPSfpga处理器硬件平台如图3-20所示; - -![](https://gitee.com/hustos/bluetooth-car/raw/lab1/picture/image117.png) - -图3-20 添加自定制IP模块后的MIPSfpga处理器硬件平台 - -1. 选择“Validate Design”,对设计的正确性进行校验;校验过程中如果仅仅只是出现警告,选择“OK”忽略;然后选择“Generate Block Design”菜单,弹出对话框后选择“Generate”更新MIPSfpga_system_wrapper文件; - -2. 相应的修改约束文件,增添新增加的PWM外设模块的引脚绑定; - -3. 最后,点击“Generate Bitstream”按钮,生成比特流(bitstream)文件,比特流文件生成后注意观察时序能否满足要求。 - -### 添加自定制外设模块后硬件平台测试 - -具体实验步骤如下: - -1. 在下载的system_ability目录下找到MIPSfpga_CustomIP_C文件夹,仔细阅读该文件夹下的所有程序和文件; - -2. 在主机上打开一个cmd命令窗口,切换到MIPSfpga_CustomIP_C目录,然后输入“make”命令对程序进行编译(如果需要,可以用“make clean”命令先对编译的程序进行清除,详见1.2.3节)生成elf可执行文件; - -3. 连接Nexys4 DDR开发板的下载线和JTAG调试器,打开Vivado向Nexys4 - DDR开发板烧写添加自定制外设模块后的MIPSfpga硬件平台的比特流; - -4. 再打开一个cmd命令窗口,切换到Codescape_Scripts目录,然后在该命令窗口中输入如下命令,(loadMIPSfpga.bat后面是MIPSfpga_CustomIP_C文件夹所在路径): - -loadMIPSfpga.bat C:\\workspace\\Peripheral_course_2017\\MIPSfpga_CustomIP_C - -1. 与此同时在主机上打开一个串口终端(例如PuTTY.exe),将波特率设置为115200,然后观察程序运行情况,特别要注意观察PWM模块的输出; - -2. 如果程序运行不正确,使用GDB工具进行调试,找出原因后进行修正; - -3. 对MIPSfpga_CustomIP_C文件夹下的程序进行修改和完善,偿试更加全面的测试或添加新的功能,思考能否为PWM外设模块提供相应的驱动程序。 - ## 实验背景及源码附录 ### AXI总线规范