集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: 小舍YZ

在XPS中定制用户设备的IP

[复制链接]
 楼主| 小舍YZ 发表于 2017-7-10 15:58:46 | 显示全部楼层
(10)模板语言选择窗口

XPS支持VHDL和Verilog HDL这两种语言,但大多数模板和系统模块都有VHDL语言编制。如果使用VHDL编写用户逻辑,则可参考XPS中大量的实例;如果选用Verilog,则需要混合编译,且没有太多参考。不过XPS工具对混合编译有很好的支持,不会影响到用户逻辑的功能。
模板语言选择窗口有三个选项,其相应的功能如下所述:

① Generate stub ‘User_logic’ template in Verilog instead of VHDL:选择Verilog作为模板中用户逻辑的设计语言,默认值为不选,如果要用Verilog实现相关逻辑,则需手动选中该项。

② Generate ISE and XST project files to help you implement the peripheral using XST flow:选择生成ISE工程文件,帮助用户在ISE环境中完成用户逻辑设计,默认为选中。

③ Generate template driver files to help you implement software interface:选择生成软件驱动模板,帮助用户生成必要的驱动软件。本例选择如图9-58所示,点击“Next”按键,进入下一页。

图9-58 外设代码实现的选择界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 15:59:30 | 显示全部楼层
(11)完成定制IP的生成

至此,代码模板已经生成成功,XPS会列出用户逻辑的各项参数,如图9-59所示。如果确认无误,点击“Finish”按键,完成模板创建;否则点击“Back”,返回到相应页面修改参数。

图9-59 定制IP的完成界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:00:18 | 显示全部楼层
完成以上步骤后,已经定制了IP Core的共性部分,会生成相关的诸多文件,包括软件驱动和硬件结构代码。其中,软件驱动部分位于XPS工程文件下drivers文件夹下的my_led8_v1 _00a文件夹中;硬件结构代码位于XPS工程文件下pcores文件夹下的my_led8_v1_00a文件夹中。
(12)实现定制IP Core的用户逻辑部分

以上步骤只完成了IP Core的声明及其和OPB总线端口的连接,没有实现任何用户逻辑。因此用户需要在模板中添加用户逻辑,完成对OPB总线的响应。

① 查看向导生成的用户逻辑的模版文件

在XPS中,选择“File > Open”,在“pcores\my_led8_v1_00a\hdl\vhdl和verilog”目录中分别列出了“my_led8.vhd”和“user_logic.v”文件;打开user_logic.v文件,可以看到用户逻辑的模块声明代码,如图9-60所示。

图9-60 模板文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:01:06 | 显示全部楼层
由于模板创建的是CoreConnect兼容结构,因此不需要为其添加任何额外的逻辑。对于定制IP而言,所作的只是对“user_logic.v”文件的修改。

② 在“user_logic.v”文件中添加用户逻辑的端口

在user_logic.v中,注释语句“-- DO NOT EDIT BELOW THIS LINE ---------------------”和“-- DO NOT EDIT ABOVE THIS LINE ---------------------”之间的端口为总线端口,不能修改,否则需要再次按照上述步骤重新声明IP Core。用户只能在端口声明的固定位置添加,如下所示:
// -- ADD USER PORTS BELOW THIS LINE ---------------
// --USER ports added here
my_led;
// -- ADD USER PORTS ABOVE THIS LINE ---------------

并在代码段中添加位宽和方向声明,如下所示:

output [0 : C_DWIDTH-1] my_led;

③ 在“user_logic.v”文件中添加用户逻辑

assign my_led = slv_reg0;

其中slv_reg0为一个8比特的寄存器,分别驱动8个LED灯。此外,my_led8.vhd例化了IPIF模块和user_logic.v,由于修改了user_logic.v,因此也需要修改my_led8.vhd文件,添加相应的端口信号并更新user_logic.v的例化模块。

(14)修改MPD文件

每个系统外围设备都有相应的MPD(Microprocessor Peripheral Description)文件。MPD文件含有这个系统外设所有可用的端口和硬件参数。对于自定义的外设模块,需要自己定义MPD文件。外设向导会自动创建MPD文件模板,需要进一步修改才能使用。
MPD文件位于工程的“pcores\my_led8_v1_00a\data”文件夹中。在XPS软件中是不可写的,因此需要利用文本编辑器打开。在##Port行后添加下列语句:

PORT my_led = "", DIR = O, VEC = [0:7]

保存MPD文件。至此,就完成了一个用户定制外设IP Core的建立。

4.添加定制IP Core到XPS工程中

添加用户外设和创建外设的命令是一样的,都是通过菜单Hardware的“Create or Import Peripherall”命令来实现的,只是在图9-49所示的界面中,要选择选项“Import existing peripheral”。下面通过添加已创建的LED外设的实例来详细说明其操作过程。

例9-7 将例9-6创建的LED外设添加到XPS工程中。
(1)点击Hardware菜单的“Create or Import Peripherall”命令,在图9-61所示页面中选择“Import existing peripheral”,点击“Next”按键进入一下页。
(2)选择将创建的外设my_led8加入XPS工程,点击“Next”按键进下一页。
(3)在源文件类型选择窗口的“HDL Source files”栏,点击“Next”按键进下一页。

图9-61 模板文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:01:45 | 显示全部楼层
(4)在外设源代码属性窗口中选择实现语言类型。由于外设是由VHDL和Verilog两种语言实现的,因此要选择实现语言为Mixed类型,其余配置如图9-62所示。其中mpd文件和XST工程的选择是不可缺少的,点击“Next”按键进下一页。

图9-62 源代码属性设置窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:02:23 | 显示全部楼层
(5)在源代码分析窗口9-63中,XPS通过pao文件读取相应语句,完成语法分析,如果该步出现语法错误,相关错误会在XPS的控制台窗口输出,并中断导入过程。同样,如果用户发现列举的库文件有遗漏,也可在此添加,点击“Next”按键进下一页。

图9-63 源代码分析窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:03:01 | 显示全部楼层
(6)总线接口窗口列出了IP和所使用的总线以及相关信号。由于在创建时,将LED挂在OPB总线上,因此图9-64中选中了OPB总线。这一步一般用户进行核查即可,无需修改,点击“Next”按键进下一页。

图9-64 总线接口窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:03:40 | 显示全部楼层
(7)SOPB接口窗口如图9-65所示,列出了所有的IP和OPB总线相关信号的连接线以及相应命名。该步是由XPS自动完成的,无需修改,点击“Next”按键进下一页。

图9-65 SPOB总线端口窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:04:16 | 显示全部楼层
(8)SOPB总线参数接口如图9-66所示,可设置IP核寄存器和用户寄存器的地址空间。由于LED模块没有存储空间,因此只用设置寄存器空间,点击“Next”按键进下一页。

图9-66 SPOB总线参数窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-10 16:05:04 | 显示全部楼层
(9)中断配置窗口如图9-67所示。可指定哪个信号作为中断信号,支持多信号中断,有4类中断方式:下降沿(Falling edge sentitive)、上升沿(Rising edge sentitive)、高电平(High level sentitive)以及低电平(Low level sentitive),点击“Next”按键进下一页。

图9-67 中断支持配置窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 09:54 , Processed in 0.070937 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表