完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`玩转Zynq连载25——[ex04] 基于Zynq PL的自定义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_ex03工程中led_controller.v模块作为一个用户自定义IP核,添加到Vivado的IP Catalog中,然后和标准IP核一样,在Vivado工程中配置添加这个IP核。 2 用户自定义IP核的创建于封装 参考文档《玩转Zynq-工具篇:用户自定义IP核的创建与封装.pdf》,创建一个闪烁频率可设置的LED控制IP核。 3 用户自定义IP核的移植 参考文档《玩转Zynq-工具篇:用户自定义IP核的移植.pdf》,将LED闪烁的IP核移植到应用工程中 4配置、例化IP核 如图所示,双击IP Catalog下的led_controller_ip后,弹出IP配置对话框。可以修改设置输入这个IP核的时钟频率(Clk Frequency)和LED闪烁频率(Led Flash Frequency),完成配置直接点击OK即可。 图IP核配置页面 如图所示,在Project Managerà IP Source面板中,展开新创建的IP核,可以双击led_controller_0.veo打开例化模板,复制到我们的工程逻辑中,修改相应接口即可使用。 图 IP核例化模板 本实例要实现的功能和zstar_ex03实例一样,都是让3个LED工作在不同的时钟频率下,但是控制它们产生相同的LED闪烁频率,同步闪烁。和zstar_ex03实例的顶层源码不同的是,这里例化的LED闪烁子模块是我们自己创建的IP核,其输入时钟频率和LED闪烁频率的设定通过IP核的配置GUI即可完成,无需通过代码传递这些参数。 如前面led_controller_0的IP添加,我们分别添加另外2个IP核led_controller_1和led_controller_2,设置它们的LED闪烁频率(Led Flash Frequency)都是1(Hz),但输入时钟频率分别为50000(50MHz)和100000(100MHz)。然后例化到工程顶层源码中。 本实例工程源码如下。 module zstar( inputext_clk_25m, //外部输入25MHz时钟信号 output[2:0] led //LED指示灯接口 ); //------------------------------------- wire clk_25m; //PLL输出25MHz时钟 wire clk_50m; //PLL输出50MHz时钟 wire clk_100m; //PLL输出100MHz时钟 wire sys_rst_n; //PLL输出的locked信号,作为FPGA内部的复位信号,低电平复位,高电平正常工作 clk_wiz_0 uut_clk_wiz_0 ( // Clock in ports .clk_in1(ext_clk_25m), // input clk_in1 // Clock out ports .clk_out1(clk_25m), //output clk_out1 .clk_out2(clk_50m), //output clk_out2 .clk_out3(clk_100m), // output clk_out3 // Status and controlsignals .reset(1'b0), // input reset .locked(sys_rst_n)); // output locked //------------------------------------- //25MHz时钟进行分频闪烁 led_controller_0 uut_led_controller_clk25m ( .clk(clk_25m), //input wire clk .rst_n(sys_rst_n), //input wire rst_n .sled(led[2]) // outputwire sled ); //------------------------------------- //50MHz时钟进行分频闪烁 led_controller_1 uut_led_controller_clk50m ( .clk(clk_50m), //input wire clk .rst_n(sys_rst_n), //input wire rst_n .sled(led[1]) // outputwire sled ); //------------------------------------- //100MHz时钟进行分频闪烁 led_controller_2 uut_led_controller_clk100m ( .clk(clk_100m), //input wire clk .rst_n(sys_rst_n), //input wire rst_n .sled(led[0]) // outputwire sled ); endmodule 5板级调试 参考文档《玩转Zynq-环境篇:XilinxPlatformCableUSB下载器使用指南.pdf》将“...projectzstar_ex04zstar_ex04zstar.runsimpl_1”文件夹下的zstar.bit文件下载到STAR板上。可以看到3个LED指示灯同步闪烁起来,它们的频率完全一致。 ` |
|
相关推荐
2 个讨论
|
|
只有小组成员才能发言,加入小组>>
885个成员聚集在这个小组
加入小组4542 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2650 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4346 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5276 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5327 浏览 0 评论
1947浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 11:21 , Processed in 0.680302 second(s), Total 71, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号