国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

玩轉(zhuǎn)Zynq連載20——基于FPGA的模塊化設(shè)計(jì)

發(fā)布時(shí)間:2019-8-31 09:42    發(fā)布者:rousong1989
玩轉(zhuǎn)Zynq連載20——基于FPGA的模塊化設(shè)計(jì)
更多資料共享
騰訊微云鏈接: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è)計(jì)概述
         模塊化設(shè)計(jì)是FPGA設(shè)計(jì)中一個(gè)很重要的技巧,它能夠使一個(gè)大型設(shè)計(jì)的分工協(xié)作、仿真測(cè)試更加容易,代碼維護(hù)或升級(jí)更加便利。
         如圖所示,一般整個(gè)設(shè)計(jì)工程的頂層文件里只做例化,不做邏輯處理。然后一個(gè)頂層下面會(huì)有模塊A、模塊B、模塊C等等,模塊A/B/C下又可以分多個(gè)子模塊實(shí)現(xiàn)。
圖模塊設(shè)計(jì)示意圖
         如此一來(lái),就可以將大規(guī)模復(fù)雜系統(tǒng)按照一定規(guī)則劃分成若干模塊,然后對(duì)每個(gè)模塊進(jìn)行設(shè)計(jì)輸入、綜合與實(shí)現(xiàn),并將實(shí)現(xiàn)結(jié)果約束在預(yù)先設(shè)置好的區(qū)域內(nèi),最后將所有模塊的實(shí)現(xiàn)結(jié)果進(jìn)行整合集成,就能完成整個(gè)系統(tǒng)的設(shè)計(jì)。
         模塊化設(shè)計(jì)的實(shí)現(xiàn)步驟是整個(gè)模塊化設(shè)計(jì)流程中最重要、最特殊的,它包含:
         ●初始預(yù)算,本階段是實(shí)現(xiàn)步驟的第一步,對(duì)整個(gè)模塊化設(shè)計(jì)起著指導(dǎo)性的作用。在初始預(yù)算階段,項(xiàng)目管理者需要為設(shè)計(jì)的整體進(jìn)行位置布局,只有布局合理,才能夠在最大程度上體現(xiàn)模塊化設(shè)計(jì)的優(yōu)勢(shì);反之,如果因布局不合理而在較后的階段需要再次進(jìn)行初始預(yù)算,則需要對(duì)整個(gè)實(shí)現(xiàn)步驟全面返工。
         ●子模塊的設(shè)計(jì)實(shí)現(xiàn),在該階段,每個(gè)項(xiàng)目成員并行完成各自子模塊的實(shí)現(xiàn)。
         ●模塊的最終集成,在該階段項(xiàng)目管理者將頂層的實(shí)現(xiàn)結(jié)果和所有子模塊的實(shí)現(xiàn)結(jié)果進(jìn)行整合集成,完成整個(gè)設(shè)計(jì)的實(shí)現(xiàn)。
         模塊劃分的基本原則是,子模塊功能相對(duì)獨(dú)立,模塊內(nèi)部聯(lián)系盡量緊密,而模塊間的連接盡量簡(jiǎn)單。對(duì)于那些難以滿足模塊劃分準(zhǔn)則的具有強(qiáng)內(nèi)部關(guān)聯(lián)的復(fù)雜設(shè)計(jì),并不適合采用模塊化設(shè)計(jì)方法。
2 模塊化設(shè)計(jì)實(shí)例詳解
    下面以zstar_ex03工程的頂層源碼zstar.v為例,講解在Verilog代碼中如何實(shí)現(xiàn)模塊化設(shè)計(jì)。在zstar.v模塊下面有4個(gè)模塊,包括1個(gè)PLL時(shí)鐘產(chǎn)生模塊,以及3個(gè)控制LED閃爍的模塊。
module zstar(
            input ext_clk_25m, //外部輸入25MHz時(shí)鐘信號(hào)      
            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信號(hào),作為FPGA內(nèi)部的復(fù)位信號(hào),低電平復(fù)位,高電平正常工作
  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)行分頻閃爍,計(jì)數(shù)器為24位                                                           
led_controller  #(24)       uut_led_controller_clk25m(
                               .clk(clk_25m),     //時(shí)鐘信號(hào)
                               .rst_n(sys_rst_n), //復(fù)位信號(hào),低電平有效
                               .sled(led[2])      //LED指示燈接口   
                           );
        
//-------------------------------------
//25MHz時(shí)鐘進(jìn)行分頻閃爍,計(jì)數(shù)器為25位                                                           
led_controller  #(25)       uut_led_controller_clk50m(
                               .clk(clk_50m),     //時(shí)鐘信號(hào)
                               .rst_n(sys_rst_n), //復(fù)位信號(hào),低電平有效
                               .sled(led[1])      //LED指示燈接口   
                           );
        
//-------------------------------------
//25MHz時(shí)鐘進(jìn)行分頻閃爍,計(jì)數(shù)器為26位                                                           
led_controller  #(26)       uut_led_controller_clk100m(
                               .clk(clk_100m),    //時(shí)鐘信號(hào)
                               .rst_n(sys_rst_n), //復(fù)位信號(hào),低電平有效
                               .sled(led[0])      //LED指示燈接口   
                           );      
endmodule
★ 語(yǔ)法要點(diǎn)
    注意zstar.v模塊的代碼中例化了4個(gè)子模塊,這是一個(gè)不折不扣的模塊化設(shè)計(jì)工程。下面是對(duì)led_controller.v模塊的一個(gè)例化代碼。
led_controller  #(24)       uut_led_controller_clk25m(
                               .clk(clk_25m),     //時(shí)鐘信號(hào)
                               .rst_n(sys_rst_n), //復(fù)位信號(hào),低電平有效
                               .sled(led[2])      //LED指示燈接口   
                           );
    以上面這段代碼為例,模塊例化大體有下面幾個(gè)要點(diǎn):
    ● led_controller是原始工程源碼本身的模塊名稱(chēng)。
    ● uut_led_controller_clk25m的名稱(chēng)是可以隨意起的,只要不和已有的名稱(chēng)重名即可,它表示我們對(duì)當(dāng)前例化工程led_controller.v的唯一識(shí)別名。在這個(gè)工程中,我們看到led_controller.v模塊被例化了多次,但它和uut_led_controller_clk25m對(duì)應(yīng)位置的命名是不一樣的,而且必須是不一樣的,表示工程中有多個(gè)完全一樣的功能模塊。這和軟件程序里面的調(diào)用不一樣,軟件程序由于運(yùn)行起來(lái)總是串行的,所以多次調(diào)用同一個(gè)函數(shù)時(shí),這個(gè)函數(shù)可以只占一個(gè)函數(shù)所需的物理存儲(chǔ)空間即可;但是FPGA是并行處理的,它的模塊例化,哪怕是完全一樣的模塊,往往也是需要多個(gè)完全一樣的物理資源與余對(duì)應(yīng)的。
    ● “.clk(clk_25m),”是接口的映射,“.(),”是固定格式。clk是led_controller.v模塊內(nèi)部的接口,clk_25m是zstar.v模塊的接口。
    如圖所示,當(dāng)工程編譯后,我們便可以在工程管理窗口中看到整個(gè)工程的模塊結(jié)構(gòu)。在zstar.v模塊下面對(duì)應(yīng)了4個(gè)子模塊。
圖 at7_ex03模塊結(jié)構(gòu)
    led_controller.v模塊代碼如下。
module led_controller(
            input clk,      //時(shí)鐘信號(hào)
            input rst_n,    //復(fù)位信號(hào),低電平有效
            output sled     //LED指示燈接口   
        );                                                
   
parameter CNT_HIGH = 24;   //計(jì)數(shù)器最高位
//-------------------------------------
reg[(CNT_HIGH-1):0] cnt;       //24位計(jì)數(shù)器      
    //cnt計(jì)數(shù)器進(jìn)行循環(huán)計(jì)數(shù)
always @ (posedgeclk or negedgerst_n)                                 
    if(!rst_n) cnt<= 0;                                       
    else cnt<= cnt+1'b1;                                                  
assign sled = cnt[CNT_HIGH-1];         
endmodule
本文地址:http://www.qingdxww.cn/thread-568000-1-1.html     【打印本頁(yè)】

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

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 為何選擇集成電平轉(zhuǎn)換?
  • 無(wú)線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程2
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品观看视频免费完整版 | 成人免费网址在线观看黄动漫 | 国产成人精品一区二区免费 | 国产精品欧美亚洲韩国日本不卡 | 国产精品午夜国产小视频 | 在线观看免费视频黄 | 欧美精品在线视频 | www.日本高清视频.com | 最新国产三级久久 | 二级片免费看 | 亚洲日本一区二区 | 久久九九精品一区二区 | 噜噜噜色| 91香蕉官网| 日本黄色网址免费 | 亚欧洲精品在线视频免费观看 | 国产精品国产自线拍手机观看 | 中国20岁小伙男男gay | 在线亚洲观看 | 国产精品视频福利一区二区 | 最近韩国日本免费 | 大伊香蕉精品视频在线75 | 狠狠操穴 | 亚洲国产日韩在线人高清不卡 | https黄视 | 四虎影院.com| 精品久久一 | 91福利刘玥国产在线观看 | 日韩欧美一区二区中文字幕 | 香蕉久草视频 | 免费观看的毛片 | 国产精品二区高清在线 | 最新地址四虎www4hutv | 综合色在线| 奇米一区二区 | 久久er视频| 最新更新国内自拍视频 | 一区二区在线播放视频 | 欧美日韩在线视频播放 | 男女污网站| 操一操日一日 |