7.3.1 用户IP设计
本实例通过MPMC NPI接口向DDR RAM写入数据。
1.以文档方式创建基于MPMC NPI的用户IP。
1) 建立工程目录,并按照与实例一相同的步骤创建用户IP:在工程目录lab4下创建用户IP子目录pcores,进入pcores目录创建两个文件夹,分别命名为data和hdl,在hdl目录下创建两个文件夹,分别命名为verilog和vhdl。由于本例程使用Verilog语言描述硬件,故在verilog目录下创建、编写并保存用户verilog源代码文件,结果如图7.3. 1所示。
提示:因为本例程直接使用硬件通过NPI接口向DDR RAM写入数据,所以需要编写相应的hdl文件用于产生数据,在本例程中命名为npidatasource.v。
图7.3. 12) 按照实例1所述的方法创建并编辑.prj文件,本例程如下图所示。
图7.3. 23) 按照实例1所述的方法,使用EDK Shell由.prj文件生成.mpd文件,各个步骤分别如图7.3. 3、图7.3. 4、图7.3. 5所示。
图7.3. 3
图7.3. 4
图7.3. 54) 打开上一步生成的.mpd文件,可以看到如下图所示的文件格式。
图7.3. 65) 编辑此.mpd文件,本例程编辑后的文件如下图所示。
图7.3. 76) 创建并编辑.pao文件,本例程所创建的文件和编辑结果均如下图所示。
图7.3. 87) 现在,按照实例1所述的方法,在上述的工程目录中创建新工程,各项设置均与实例1中相同。当用户成功地建立系统后,单击Finish完成创建。
图7.3. 9
7.3.2 在EDK中打开该用户IP并编辑
1) 完成创建后,在XPS左侧窗口的IP Catalog选项中,展开Project Local pcores,可以看到上一步创建的用户IP,如下图所示。双击该IP以添加他的一个实例。
图7.3. 102) 然后按照实例1的方法,双击XPS右侧窗口内的DDR_SDRAM选项,对存储器进行设置,完成设置后在Bus Interface选项中连接DDR_SDRAM与用户IP(npiwriter),如下图所示。
图7.3. 113) 单击选择Ports选项,将用户IP (npiwriter)的CLK端口和RESET端口分别与总线时钟信号与总线RESET信号相连,如下图所示。
提示:用户IP的时钟均与DDR_SRAM时钟相同。
图7.3. 124) 产生电路网表,生成比特文件。
提示:因为本例程采用硬件NPI接口写入DDR,所以无需创建和编写相应的软件程序。
5) 接好电源适配器、USB下载线缆后,给开发板上电并下载设计。
6) 按照第四章所述的方法打开XMD,使用mwr和mrd命令进行调试,得到如图7.3. 14所示的结果。可见,使用mwr命令对连续的十个寄存器写入数据后,读出的数据完全符合相应的npidatasource.v代码。
提示1:XMD中所输入的启示地址可以在Address选项中查找,如图7.3. 13所示。
图7.3. 13
图7.3. 14提示2:本例程使用XMD进行调试时,写入的数据尾四位总是2301,如图7.3. 14所示。这是因为在npidatasource.v代码中,笔者书写了如图7.3. 15中所示的语句,使数据的高四位始终为2301。而32位寄存器的内容总是倒序显示,所以2301成为尾四位。
图7.3. 15
<<完>>

















