第2节 NPI接口开发实例(一)
推荐给好友
打印
加入收藏
更新于2008-05-22 17:39:04

7.2.1 用户IP设计

本实例使用软件程序向DDR RAM写入数据, 并通过MPMC NPI读出。

1. 以文档方式创建基于MPMC NPI的用户IP

1) 建立工程目录(本例程命名为lab4),在lab4目录下创建用户IP子目录(本例程命名为pcores),如下图所示。



图7.2. 1

2) 在pcores目录下创建一个用于演示MPMC NPI接口的子目录(本例程命名为npidisplay_v1_00_a),如下图所示。



图7.2. 2

3) 在npidisplay_v1_00_a目录下创建两个文件夹,分别命名为data和hdl。

提示:文件夹data用于存放用户IP的配置文件,如.prj文件、.mpd文件和.pao文件等,而文件夹hdl用于存放用户IP的HDL代码即.v或者.vhd文件。



图7.2. 3

4) 在hdl目录下创建两个子文件夹,分别命名为verilog和vhdl。本例程使用Verilog语言描述代码,所以进入verilog文件夹,编写verilog代码描述自定义的硬件系统并保存,如下图所示。



图7.2. 4

5) 返回npidisplay_v1_00_a目录并进入data文件夹,使用记事本创建一个用户工程文件,本例程命名为npidisplay.prj,如下图所示。



图7.2. 5

6) 用文本编辑器如写字板等编辑npidisplay.prj文件,如下图所示。



图7.2. 6

7) 使用.prj文件生成.mpd文件,并对其进行修改。

i. 选择开始所有程序Xilinx Platform Studio 9.2iAccessoriesLaunch EDK Shell,在弹出的cygwin窗口内,切换路径至~/lab4/pcores/npidisplay_v1_00_a/data文件夹,如下图所示。



图7.2. 7

ii. 按照下面的格式在cygwin命令提示符下输入命令以生成.mpd文件,注意恰当替换括号中的内容,然后敲回车,如图7.2. 8所示。
psfutil -hdl2mpd <hdlfile> -lang {vhdl|ver} -top <top_entity> -bus <busstd> <bustype> -o <mpdfile>



图7.2. 8

iii. Cygwin窗口将出现提示信息,直至重新跳出命令提示符后,在data文件夹下会出现新生成的.mpd文件,如下图所示。



图7.2. 9

iv. 打开.mpd文件,添加合修改端口配置信息并保存。本例程修改后的.mpd文件如下图所示。



图7.2. 10

8) 创建.pao文件,本例程将其命名为npidisplay_v2_1_0.pao,编辑该文件的内容并保存,编辑后文件内容如下图所示。



图7.2. 11

2. 在EDK中打开该用户IP,并进行编辑

1)打开XPS,并执行File→New Project,弹出如下图所示的对话框后,浏览并找到之前创建的lab4工程目录,单击OK。



图7.2. 12

2)选择开发板型号,并按照第四章所述的步骤创建工程。

3)在配置IO接口对话框中,用户可按照工程实际需求适当选择,本例程只选择RS232_DCE (串行通讯接口)和DDR_SDRAM(内存控制器)接口并配置如图7.2. 13和图7.2. 14所示。



图7.2. 13



图7.2. 14

4)保留其它选项为默认配置,一直单击Next直到出现确认生成嵌入式系统窗口,单击Generate。用户可以看到如下图所示的已成功建立嵌入式系统的提示窗口,单击Finish完成创建。



图7.2. 15

5)在XPS窗口左侧单击IP Catalog选项卡,展开Project Local pcores,可以看到刚才创建的用户IP,如下图所示。双击该IP以添加它的一个实例。



图7.2. 16

6)双击XPS右侧窗口内的DDR_SDRAM选项,对存储器进行设置。本例程在Base Configuration选项卡中将MPMC的1号接口(PORT1)在其下拉列表中设置为NPI,在Port Configuration选项卡中将对应的NPI Width设置为32位宽度,分别如和所示。



图7.2. 17



图7.2. 18

7)现在,展开XPS右侧Bus Interface窗口中的DDR_DSRAM 选项,并将其列表中的MPMC_PIM与用户IP (npidisplay_0)连接,如下图所示。



图7.2. 19

8)单击Ports选项,然后展开用户IP (npidisplay_0),并对其各个端口在其对应的右侧下拉列表中做出设置,本例程设置如下图所示。

提示:用户IP时钟和Chipscope时钟均需与DDR_SRAM的时钟相同。



图7.2. 20

9)上述步骤完成了基于MPMC NPI的用户IP硬件逻辑的创建,接下来将创建用户IP相应的软件程序。首先在lab4工程目录下创建一个用于存放用户软件工程的子目录,本例程命名为write。进入write目录,创建名为src的文件夹用于存放.c程序。在src目录下创建.c源代码文件,本例程命名为write.c。随后,在XPS窗口左侧选中Applications选项卡,双击Add Software Application Project…,弹出如下图所示的对话框,在Project Name后面的空白处填入要创建的软件工程的名称,本例程命名为write,点击OK进入下一步。



图7.2. 21

10)浏览到上述write→ src目录下,打开刚才创建的write.c文件,如下图所示。



 图7.2. 22

11)write.c文件是空白的,需要用户根据工程需求进行编辑。本例程加入的C代码如下图所示,执行的功能是向DDR RAM写入数据以便测试NPI端口的读操作,仅供参考。编辑完成后保存关闭。



图7.2. 23

12)右键单击Project:TestApp_Memory标题,在弹出菜单中取消选择Mark to Initialize Brams。随后右键单击Project:Write标题,选择Mark to Initialize Brams,结果如下图所示。至此,基于MPMC NPI的用户IP的创建就完成了。



图7.2. 24

7.2.2 硬件验证

用户想验证所创建的IP是否能够按照设计要求正常工作,就需要进行测试。本例程使用超级终端检测和Chipscope逻辑分析两种测试方法,现详述如下。

1) 使用第四章所述的方法从IP Catelog中添加Chipscope逻辑分析仪模块,如下图所示。



图7.2. 25

2) 在XPS窗口 右侧Ports选项卡中展开ICON和ILA,配置端口连接并设置ILA的时钟为DDR_SRAM的时钟,如下图所示。



图7.2. 26

3) 双击chipscope_ila_0,弹出如下图所示的窗口。单击Trigger Unit选项,根据用户需求配置Trigger Unit并设置相应的位宽。本例程设置了5个Trigger Unit(Trigger Unit0至Trigger Unit4),并依次设置其位宽为32、32、1、1、1。



图7.2. 27

4) 展开chipscope_ila_0项,连接配置好的Trigger Unit端口到待测信号,本例程针对TRIG0到TRIG4的连接情况如下图所示。
提示:在连接Trigger Unit端口和待测信号时,必须确保端口和与之相连的信号位宽相同。



图7.2. 28

5) 至此,一个Chipscope逻辑分析仪模块已经被添加到系统并用于观测用户IP信号。下面需要按照第五、六章的步骤编译、综合此系统的软、硬件部分,并生成可供下载的比特流文件,此处不再赘述。

6) 打开超级终端,按照第五章所述的方法设置波特率为9600bit/s,其他参数保留默认值。

7) 连接好电源适配器、USB下载线缆和RS232串口数据线,为开发板上电后,下载您的设计配置芯片。

8) 打开Chipscope 9.2i,加载.cdc文件并开始捕获,本例程捕获信号的波形图如图7.2. 29和图7.2. 30所示。可见,波形完全符合设计要求:用户IP对NPI接口的请求信号C_req一直保持高电平,而当该请求被响应并确认(确认信号C_ack变为高电平)后,用户IP才向NPI接口写入数据。另外,根据错误!未找到引用源。所示的超级终端显示结果,可判定测试成功。



图7.2. 29



图7.2. 30

重要提示:如果用户使用的Xilinx EDK软件版本为EDK 9.2i,请确认您已经应用过EDK 9.2i SP1,同时此版本的EDK需要Xilinx ISE 9.2.03或更高版本的支持——相关的升级补丁可以从www.xilinx.com网站下载。若您的软件没有应用过此升级包,您在DDR读写时会出现错误。具体错误为,使用TESTAPP_MEMORY执行内存测试时,超级终端显示测试失败,如图7.2. 1中的上方所示(各项测试Failed信息)。如果您的EDK 9.2软件经过升级,在相应的.ucf文件结尾处应该有如图7.2. 31所示的附加约束信息,否则说明您的软件没有经过升级。



图7.2. 31



图7.2. 31

 

<<上一节    下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.