玩轉Zynq連載25——[ex04] 基于Zynq PL的自定義IP核集成

發(fā)布時(shí)間:2019-9-20 11:40    發(fā)布者:rousong1989
玩轉Zynq連載25——[ex04] 基于Zynq PL的自定義IP核集成
更多資料共享
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
1概述
         本實(shí)例將zstar_ex03工程中led_controller.v模塊作為一個(gè)用戶(hù)自定義IP核,添加到VivadoIP Catalog中,然后和標準IP核一樣,在Vivado工程中配置添加這個(gè)IP核。
2 用戶(hù)自定義IP核的創(chuàng )建于封裝
         參考文檔《玩轉Zynq-工具篇:用戶(hù)自定義IP核的創(chuàng )建與封裝.pdf》,創(chuàng )建一個(gè)閃爍頻率可設置的LED控制IP核。
3 用戶(hù)自定義IP核的移植
    參考文檔《玩轉Zynq-工具篇:用戶(hù)自定義IP核的移植.pdf》,將LED閃爍的IP核移植到應用工程中
4配置、例化IP
    如圖所示,雙擊IP Catalog下的led_controller_ip后,彈出IP配置對話(huà)框?梢孕薷脑O置輸入這個(gè)IP核的時(shí)鐘頻率(Clk Frequency)和LED閃爍頻率(Led Flash Frequency),完成配置直接點(diǎn)擊OK即可。
圖IP核配置頁(yè)面
    如圖所示,在Project Manager à IP Source面板中,展開(kāi)新創(chuàng )建的IP核,可以雙擊led_controller_0.veo打開(kāi)例化模板,復制到我們的工程邏輯中,修改相應接口即可使用。
圖 IP核例化模板
    本實(shí)例要實(shí)現的功能和zstar_ex03實(shí)例一樣,都是讓3個(gè)LED工作在不同的時(shí)鐘頻率下,但是控制它們產(chǎn)生相同的LED閃爍頻率,同步閃爍。和zstar_ex03實(shí)例的頂層源碼不同的是,這里例化的LED閃爍子模塊是我們自己創(chuàng )建的IP核,其輸入時(shí)鐘頻率和LED閃爍頻率的設定通過(guò)IP核的配置GUI即可完成,無(wú)需通過(guò)代碼傳遞這些參數。
    如前面led_controller_0的IP添加,我們分別添加另外2個(gè)IP核led_controller_1和led_controller_2,設置它們的LED閃爍頻率(Led Flash Frequency)都是1(Hz),但輸入時(shí)鐘頻率分別為50000(50MHz)和100000(100MHz)。然后例化到工程頂層源碼中。
    本實(shí)例工程源碼如下。
module zstar(
            input ext_clk_25m, //外部輸入25MHz時(shí)鐘信號      
            output[2:0] led    //LED指示燈接口
        );         
                                               
//-------------------------------------
wire clk_25m;   //PLL輸出25MHz時(shí)鐘
wire clk_50m;   //PLL輸出50MHz時(shí)鐘
wire clk_100m;  //PLL輸出100MHz時(shí)鐘
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 control signals
.reset(1'b0), // input reset
.locked(sys_rst_n));      // output locked
//-------------------------------------
//25MHz時(shí)鐘進(jìn)行分頻閃爍                                                      
                           
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])    // output wire sled
);                        
        
//-------------------------------------
//50MHz時(shí)鐘進(jìn)行分頻閃爍                                                              
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])    // output wire sled
);                                 
        
//-------------------------------------
//100MHz時(shí)鐘進(jìn)行分頻閃爍           
                                               
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])    // output wire sled
);         
endmodule
5板級調試
    參考文檔《玩轉Zynq-環(huán)境篇:XilinxPlatformCableUSB下載器使用指南.pdf》將“...\project\zstar_ex04\zstar_ex04\zstar.runs\impl_1”文件夾下的zstar.bit文件下載到STAR板上?梢钥吹3個(gè)LED指示燈同步閃爍起來(lái),它們的頻率完全一致。
本文地址:http://selenalain.com/thread-568870-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页