完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`玩转Zynq连载23——用户自定义IP核的创建与封装 更多资料共享 腾讯微云链接:https://share.weiyun.com/5s6bA0s 百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取码:ld9c 腾讯微云链接:https://share.weiyun.com/5s6bA0s 百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取码:ld9c 1概述 本节以zstar_ex04文件夹下的led_controller_ip工程为例,演示如何创建一个简单的LED闪烁控制模块的IP核。 创建一个用户自定义IP核,只需要以下3个步骤即可。 2 创建IP核 首先我们在文件夹.../project/zstar_ex04/led_controller_ip文件夹下创建一个新的工程,增加一个名为led_controller.v的verilog源码文件到这个工程中。源码如下。 module led_controller( input clk, //时钟信号 input rst_n, //复位信号,低电平有效 output sled //LED指示灯接口 ); parameter CLK_FREQUENCY =25000; //clk的时钟频率,KHz parameter LED_FLASH_FREQUENCY =1; //LED输出的闪烁频率,Hz `define MAX_CNT (((CLK_FREQUENCY/LED_FLASH_FREQUENCY)*1000)-1) //cnt分频计数最大值 `define MAX_CNT_DIV2 (`MAX_CNT/2-1) //cnt分频计数最大值的一半 //------------------------------------- reg[31:0] cnt; //计数器 //cnt计数器进行循环计数 always @ (posedgeclk or negedgerst_n) if(!rst_n) cnt<=32'd0; else if(cnt<`MAX_CNT) cnt<= cnt+1'b1; else cnt<= 32'd0; assign sled = (cnt< `MAX_CNT_DIV2) ? 1'b1:1'b0; endmodule 注意这个源码实现在时钟和复位信号下,产生固定频率的1个输出LED指示灯闪烁。时钟频率CLK_FREQUENCY和LED闪烁频率LED_FLASH_FREQUENCY都定义为参数(parameter),一会制作IP核的时候都可以配置为GUI供调用IP的用户手动设定。注意,类似的希望让用户可以在GUI上设定的参数,在源码中一定要定义为parameter。 如图所示,该工程中只包含led_controller.v源码文件。创建好工程并添加好工程源码后,建议对工程进行必要的编译,以避免任何的语法错误或者与所支持器件家族有任何不兼容的错误。 图 只包含led_controller.v源码的工程 如图所示,点击工程菜单Tools à Create and Package IP…。 图 Create and PackageIP菜单 弹出Create and PackageIP的第一个页面,点击Next。 弹出如图所示的PackageOptions选择对话框,勾选Package your current project选项,然后点击Next。 图 Package your currentproject选择页面 如图所示,弹出IP路径设置对话框,IP location路径建议设置和源码所在路径完全一致(通常为工程所在目录下的…/zstar.srcs/source_1/new文件夹)。设置好继续点击 Next。 图 生成IP路径选择页面 如图所示,点击Finish。 图 New IP Creation页面 此时,在工程主界面中,如图所示,右侧的Sourcesà Design Sources下增加了IP-XACT文件夹,展开后,可以看到新增了一个component.xml的文件,该文件就对应了图右侧的Package IP –led_controller页面,它存储当前新创建IP核的相关配置信息。 图 工程主界面 如图所示,Package IP –led_controller的第一个配置页面名为Identification,即用户定制IP核相关的配置信息,如IP核供应商(Vendor)、库名称(Library)、IP核名称(Name)、版本号(Version)、IP核显示名称(Display name)、描述(Description)、供应商显示名称(Vendor display name)、公司网址(Company url)等。特别提醒大家别忽略了最下面的Categories项,默认是空白的,若点击右侧的小加号,可以增加一个名称,例如本实例增加了一个名为UserIP的名称选项,将来生成的用户定制IP核在我们的IP核配置面板中将会归类到名为UserIP类别的文件夹下。 图8.33 Identification配置页面 如图所示,Compatibility页面其实在我们刚刚创建这个工程选择好器件家族时就已经确定了,即设定该IP核所支持的器件家族(Family)。 图 Compatibility配置页面 如图所示,这里可以预览IP核包含的相关源码文件,在源码工程中包含的所有Verilog源码或者仿真测试脚本,也都会出现在这里,被集成到IP核中。 图 File Groups配置页面 如图所示,CustomizationParameters配置页面罗列源码中所有可配置的参数(parameter所定义的),大家可以双击这些参数进一步配置。 图 CustomizationParameters配置页面 如我们双击CLK_FREQUENCY参数所在行,弹出如图所示的配置页面。该配置页面中,我们可以配置该参数是否在GUI中可见(Visible in Customization GUI)、是否显示名称(Show Name)等信息,用户可以根据不同参数的实际情况设定。 图 Edit IP Parameter配置页面 如图所示,Ports andInterfaces配置页面显示IP核的对外接口。 图 Ports andInterfaces配置页面 如图所示,Addressing andMemory配置页面则是针对含有总线接口,并且具有多个寄存器需要寻址的IP核,我们的IP核则不需要,所以是空白的。 图Addressing andMemory配置页面 如图所示,CustomizationGUI配置页面则显示当前接口在GUI上的layout和preview信息。 图 Customization GUI配置页面 最后,如图所示,这是Review andPackage配置页面,可以回顾上面的一些设置,并且回去做相应的修改。点击Package IP可以生成IP。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
864个成员聚集在这个小组
加入小组4236 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2402 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
3995 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
4974 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
4744 浏览 0 评论
1738浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 09:27 , Processed in 0.590989 second(s), Total 53, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号