利用Xilinx FSL总线自定义IP核(上)

一、创建IP核
首先打开XPS,建立一个工程之后(选择AXI总线),建立工程之后,点击project——>creat and import peripheral wizard界面如下:以点亮一个led为例

点击next 选择creat templates for a new peripheral

next,默认选择 to an XPS project

next,取名为led_ip。版本号也很重要,最初为1.00

next,选择FSL总线,AXI比较常用,这里重点介绍FSL总线。

next,这里IP只有输出的功能,所以只有从模式,所以第二个不勾选,如果IP核功能为ADC采集信号,就要勾选!
第一个数字的意思是FIFO的深度,软核先输出到FIFO,FIFO再输出到外界。这里FIFO深度设置为1.

next,第一个一定要勾选,表示底层文件使用Verilog语言而不是VHDL。习惯用VHDL也可以不勾选。

next,Driver settings 默认 继续next,点击finish完成IP核创建。

IP核创建完成,还要完成自定义的功能,下面自定义核功能,实现点亮一个LED灯的作用。

二、自定义核功能
打开microblaze工程目录下的pcores\led_ip_v1_00_a\devl\projnav,双击led_ip.xise打开工程,如图:

首先添加输出led作为输出管脚,在82行,106分别添加以下两行,意思不多说。
FSL_S_Data是总线数据,是需要的数据,103行改为[31:0],
111行添加一行定义,用于接受总线数据。

66行添加一行,意思是将总线数据传给data。

新建一个Verilog文件,保存位置在hdl\verilog目录下。如图:

内容如下,便是data只要不为0 点亮led

在led_ip.v添加如下程序段:

表示将led_ip.v mylogic.v结合起来。

最后编译一下工程,在没有错位的情况下回到XPS。

三、IP核最后准备
点击project——>creat and import peripheral next 选择imort existing peripherial,然后选择上次定义的led_ip


next,弹出一个窗口,点击yes

选择hdl

选择第三个选择,点击browse,选择.pao文件


添加源代码

选择FSL从模式

去掉勾选 不让led作为中断

一直next 知道finish。那么IP核就定义成功了。
至此,自定义IP核添加成功!!!

文章转载自:qianhaifeng2012的博客