国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【FPGA/IC】什么是模塊化設(shè)計(jì)?

這篇具有很好參考價(jià)值的文章主要介紹了【FPGA/IC】什么是模塊化設(shè)計(jì)?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

什么是模塊化設(shè)計(jì)

FPGA/IC設(shè)計(jì)中根據(jù)模塊層次的不同有兩種基本的設(shè)計(jì)方法:

  • 自下而上方法對(duì)設(shè)計(jì)進(jìn)行逐次劃分的過(guò)程是從基本單元出發(fā)的,設(shè)計(jì)樹(shù)最末枝上的單元是已經(jīng)設(shè)計(jì)好的基本單元,或者其他項(xiàng)目開(kāi)發(fā)好的單元或者IP。該方法先對(duì)底層的功能塊進(jìn)行分析,然后使用這些模塊來(lái)搭建規(guī)模更大的功能塊,如此繼續(xù)直至頂層模塊。
  • 自上而下的設(shè)計(jì)是從系統(tǒng)級(jí)開(kāi)始,把系統(tǒng)分為基本單元,然后再把每個(gè)單元?jiǎng)澐譃橄乱粚哟蔚幕締卧?,繼續(xù)劃分知道滿足設(shè)計(jì)要求為止。該方法先定義頂層功能塊,進(jìn)而分析需要哪些構(gòu)成頂層模塊的必要子模塊;然后進(jìn)一步對(duì)各個(gè)子模塊進(jìn)行分解。

設(shè)計(jì)中這兩種方法往往是混用的。設(shè)計(jì)師首先根據(jù)功能定義好頂層模塊,然后依據(jù)一定的標(biāo)準(zhǔn)來(lái)劃分各個(gè)子模塊。同時(shí)對(duì)子模塊進(jìn)行優(yōu)化設(shè)計(jì),并使用這些子模塊來(lái)搭建上層模塊。兩者的工作按相反的方向獨(dú)立進(jìn)行,直至在某一中間點(diǎn)會(huì)合。

在設(shè)計(jì)系統(tǒng)時(shí),首先根據(jù)系統(tǒng)功能需求進(jìn)行分析,然后將復(fù)雜的系統(tǒng)分解為多個(gè)子模塊,這些子模塊還可以再繼續(xù)分解為更下一級(jí)的子模塊,直到滿足設(shè)計(jì)要求。模塊化設(shè)計(jì)可以提高代碼的可讀性,令設(shè)計(jì)思路更清晰,便于大型設(shè)計(jì)的分工合作和獨(dú)立測(cè)試,且有助于設(shè)計(jì)文件的維護(hù)和復(fù)用。

【FPGA/IC】什么是模塊化設(shè)計(jì)?,FPGA設(shè)計(jì)與調(diào)試,fpga開(kāi)發(fā),Xilinx,FPGA,IC,altera

一個(gè)模塊化設(shè)計(jì)實(shí)例

假如現(xiàn)在需要你設(shè)計(jì)一個(gè)數(shù)字電路,它的功能是:開(kāi)發(fā)板數(shù)碼的管默認(rèn)顯示數(shù)字0,每按下一次按鍵key,則數(shù)碼管顯示的數(shù)字+1(顯示10進(jìn)制數(shù)字)。

首先需要的肯定是一個(gè)數(shù)碼管顯示模塊,它可以根據(jù)輸入的數(shù)據(jù),來(lái)顯示對(duì)應(yīng)的數(shù)字。然后需要一個(gè)能檢測(cè)到按鍵被按下的模塊,它每檢測(cè)到按鍵按下一次,都要輸出一個(gè)使能信號(hào)。最后是數(shù)據(jù)累加1模塊,每有一次按鍵模塊使能信號(hào)(表示按了一次按鍵)傳過(guò)來(lái),它都要使數(shù)據(jù)累加1。

【FPGA/IC】什么是模塊化設(shè)計(jì)?,FPGA設(shè)計(jì)與調(diào)試,fpga開(kāi)發(fā),Xilinx,FPGA,IC,altera

因?yàn)殚_(kāi)發(fā)板上的按鍵是機(jī)械按鍵,按下和松開(kāi)的瞬間都會(huì)存在一定的機(jī)械抖動(dòng),為了正確的檢測(cè)到按鍵被按下,還需要設(shè)計(jì)一個(gè)按鍵消抖模塊,而用下降沿檢測(cè)即可檢測(cè)按鍵是否被按下。由于數(shù)碼管需要顯示的數(shù)字為10進(jìn)制,所以數(shù)據(jù)累加模塊產(chǎn)生的數(shù)據(jù)還需要進(jìn)行BCD轉(zhuǎn)化,這意味著要再設(shè)計(jì)一個(gè)2進(jìn)制轉(zhuǎn)BCD模塊。

【FPGA/IC】什么是模塊化設(shè)計(jì)?,FPGA設(shè)計(jì)與調(diào)試,fpga開(kāi)發(fā),Xilinx,FPGA,IC,altera

這樣一個(gè)系統(tǒng)的逐層分解就完成了??吹竭@你可能會(huì)很不解,就這么一個(gè)簡(jiǎn)單的模塊還需要搞這么麻煩,直接寫(xiě)到一個(gè)模塊不就完事了嗎?雖然理論上任何設(shè)計(jì)都可以在同一個(gè)模塊中完成,但是如果將不同功能、不同層次、不同類型的電路混淆在同一個(gè)模塊中,卻不是一種好的系統(tǒng)設(shè)計(jì)方法,對(duì)于比較復(fù)雜的設(shè)計(jì),將會(huì)導(dǎo)致整個(gè)設(shè)計(jì)雜亂無(wú)章,不利于設(shè)計(jì)的閱讀與維護(hù),也會(huì)給綜合和實(shí)現(xiàn)過(guò)程帶來(lái)許多麻煩。

同時(shí),像按鍵消抖模塊,下降沿檢測(cè)模塊和BCD模塊可能都是初學(xué)者在學(xué)習(xí)過(guò)程中已經(jīng)設(shè)計(jì)過(guò)了的模塊,那么是將這些模塊直接拿過(guò)來(lái)例化方便還是重新寫(xiě)一遍RTL方便?

模塊劃分的方法

模塊劃分的方法和基本原則是:

  1. 子模塊功能相對(duì)獨(dú)立,模塊內(nèi)部聯(lián)系盡量緊密,而模塊間的連接盡量簡(jiǎn)單。子模塊的合理劃分非常重要,應(yīng)該綜合考慮子模塊的功能、結(jié)構(gòu)、時(shí)序、復(fù)雜度等多方面的因素。
  2. 層次不要太深,一般為3~5層即可。在綜合時(shí)綜合工具為了獲得更好的綜合效果,會(huì)默認(rèn)將RTL代碼的層次打平(Flatten)。為了在綜合后仿真和實(shí)現(xiàn)后仿真中較方便地找出一些中間信號(hào),比如子模塊之間的接口信號(hào)等,可 以在綜合工具中設(shè)置保留結(jié)構(gòu)層次,以便于查找和觀察仿真信號(hào)。
  3. 頂層模塊最好只包含對(duì)所有子模塊的組織和調(diào)用,而不要完成復(fù)雜的邏輯功能。比如只寫(xiě)輸入/輸出管腳聲明、模塊的調(diào)用與實(shí)例化、全局時(shí)鐘資源、全局置位/復(fù)位、三態(tài)Buffer和一些簡(jiǎn)單的組合邏輯。
  4. 子模塊之間也可以有接口,但是最好不要建立子模塊間跨層次的接口。例如上圖中模塊 A1到模塊 B1之間不要直接連接,兩者需要交換的信號(hào)可以通過(guò)模塊 A、模塊 B的接口傳遞。這樣可以增加設(shè)計(jì)的可讀性和可維護(hù)性。

下面是一些劃分模塊的優(yōu)化設(shè)計(jì)方法:

  1. 對(duì)每個(gè)同步時(shí)序設(shè)計(jì)的子模塊的輸出使用寄存器。這種模塊劃分符合時(shí)序約束的習(xí)慣,便于利用約束屬性進(jìn)行時(shí)序約束,可以達(dá)到更好的時(shí)序優(yōu)化效果,
  2. 將相關(guān)的邏輯或者可以復(fù)用的邏輯劃分在同一模塊內(nèi)。這樣可以在最大程度上復(fù)用資源,減少設(shè)計(jì)所消耗的面積。同時(shí)更利于綜合工具優(yōu)化某個(gè)具體功能的時(shí)序關(guān)鍵路徑。
  3. 將不同優(yōu)化目標(biāo)的模塊分開(kāi)。目前很多綜合與實(shí)現(xiàn)工具都支持物理區(qū)域位置約束,以模塊為單元進(jìn)行物理區(qū)域約束,就可以讓綜合工具僅需考慮單一的優(yōu)化目標(biāo),從而使優(yōu)化時(shí)序或面積就更有效。
  4. 可以將時(shí)序約束較松的邏輯歸到同一模塊。有些邏輯的時(shí)序非常寬松,不需要較高的時(shí)序約束。將這些模塊歸類,并指定寬松約束,則可以讓綜合器盡量節(jié)省面積資源和優(yōu)化布局布線。
  5. 將存儲(chǔ)邏輯(RAM、ROM、和 FIFO等)獨(dú)立劃分成模塊。這樣做的好處是便于利用綜合約束屬性顯化指定這些存儲(chǔ)單元的結(jié)構(gòu)和所使用的資源類型,也便于綜合器合理推斷出這些邏輯所使用的固定硬件資源。

總結(jié)

模塊化設(shè)計(jì)的優(yōu)點(diǎn):

  • 代碼具有更好的可讀性,更容易理解設(shè)計(jì)的功能和數(shù)據(jù)之間的流動(dòng),更容易debug
  • 代碼具有更好的可復(fù)用性,能減少多次設(shè)計(jì)之間的重復(fù)工作,避免重復(fù)造輪子,提高工作效率
  • 不同模塊的時(shí)鐘域相對(duì)獨(dú)立,使跨時(shí)鐘域設(shè)計(jì)之間的邊界更清晰

模塊化設(shè)計(jì)是設(shè)計(jì)復(fù)雜數(shù)字系統(tǒng)的重要方法,對(duì)復(fù)雜設(shè)計(jì)的分工、測(cè)試以及代碼的閱讀、維護(hù)和復(fù)用都有好處。模塊劃分非常重要,其關(guān)系到能否最大程度上發(fā)揮項(xiàng)目成員協(xié)同設(shè)計(jì)的能力,更重要的是它直接決定著設(shè)計(jì)的綜合、 實(shí)現(xiàn)的耗時(shí)與效率。

復(fù)用都有好處。模塊劃分非常重要,其關(guān)系到能否最大程度上發(fā)揮項(xiàng)目成員協(xié)同設(shè)計(jì)的能力,更重要的是它直接決定著設(shè)計(jì)的綜合、 實(shí)現(xiàn)的耗時(shí)與效率。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-841342.html


  • ??您有任何問(wèn)題,都可以在評(píng)論區(qū)和我交流??!
  • ??本文由 孤獨(dú)的單刀 原創(chuàng),首發(fā)于CSDN平臺(tái)??,博客主頁(yè):wuzhikai.blog.csdn.net
  • ??您的支持是我持續(xù)創(chuàng)作的最大動(dòng)力!如果本文對(duì)您有幫助,還請(qǐng)多多點(diǎn)贊??、評(píng)論??和收藏?!

到了這里,關(guān)于【FPGA/IC】什么是模塊化設(shè)計(jì)?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 什么是模塊化?為什么要進(jìn)行模塊化開(kāi)發(fā)?

    模塊化是一種軟件開(kāi)發(fā)的設(shè)計(jì)模式,它將一個(gè)大型的軟件系統(tǒng)劃分成多個(gè)獨(dú)立的模塊,每個(gè)模塊都有自己的功能和接口,并且能夠與其他模塊獨(dú)立地工作。 ?先來(lái)一段八股文 模塊化開(kāi)發(fā)可以帶來(lái)以下好處: 提高代碼的復(fù)用性:模塊化可以將代碼劃分成可重用的部分,降低代

    2023年04月12日
    瀏覽(32)
  • 設(shè)計(jì)規(guī)則:模塊化的力量

    這是一本比較冷門(mén)的書(shū) 《設(shè)計(jì)規(guī)則:模塊化的力量》 ,雖然豆瓣上只有58個(gè)評(píng)價(jià),但是確實(shí)能學(xué)到很多東西。 這本書(shū)對(duì)我非常深遠(yuǎn)。不是是投資,創(chuàng)業(yè),還是其他領(lǐng)域,模塊化思想都能幫上你。這本書(shū)告訴我們生萬(wàn)物的規(guī)則。 書(shū)籍電子版PDF (建議及時(shí)保存,避免被 和諧 )

    2024年02月05日
    瀏覽(19)
  • 【C語(yǔ)言】用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)

    【C語(yǔ)言】用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)

    前言:如果把所有的程序代碼都寫(xiě)在一個(gè)主函數(shù)( main函數(shù) )中,就會(huì)使主函數(shù)變得龐雜、頭緒不清,使閱讀和維護(hù)程序變得困難。此外,有時(shí)程序中要多次實(shí)現(xiàn)某一功能,如果重新編寫(xiě)實(shí)現(xiàn)此功能就會(huì)使得程序冗長(zhǎng)、不精煉。 ?? 博主CSDN主頁(yè):衛(wèi)衛(wèi)衛(wèi)的個(gè)人主頁(yè) ?? ?? 專欄分

    2024年02月08日
    瀏覽(641)
  • Python中的模塊化編程與軟件架構(gòu)設(shè)計(jì)

    Python中的模塊化編程與軟件架構(gòu)設(shè)計(jì)

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家?!军c(diǎn)擊進(jìn)入巨牛的人工智能學(xué)習(xí)網(wǎng)站】。 在軟件開(kāi)發(fā)中,模塊化編程和良好的軟件架構(gòu)設(shè)計(jì)是確保項(xiàng)目可維護(hù)性、可擴(kuò)展性和可重用性的關(guān)鍵。Python作為一種靈活且功能豐富的編程語(yǔ)

    2024年04月29日
    瀏覽(36)
  • PCB模塊化設(shè)計(jì)05——晶體晶振PCB布局布線設(shè)計(jì)規(guī)范

    PCB模塊化設(shè)計(jì)05——晶體晶振PCB布局布線設(shè)計(jì)規(guī)范

    1、布局整體緊湊,一般放置在主控的同一側(cè),靠近主控IC。 2、布局是盡量使電容分支要短(目的:減小寄生電容,) 3、晶振電路一般采用π型濾波形式,放置在晶振的前面。 1)走線采取類差分走線; 2)晶體走線需加粗處理:8-12mil,晶振按照普通單端阻抗線走線即可;

    2024年02月12日
    瀏覽(97)
  • 如何在Vue中進(jìn)行單元測(cè)試?什么是Vue的模塊化開(kāi)發(fā)?

    在Vue中進(jìn)行單元測(cè)試可以提高代碼的可維護(hù)性和可讀性,同時(shí)也能夠幫助開(kāi)發(fā)者更快地找到代碼中的問(wèn)題和潛在的錯(cuò)誤。下面是一些在Vue中進(jìn)行單元測(cè)試的步驟: 安裝單元測(cè)試工具 首先需要安裝一個(gè)單元測(cè)試工具,例如Jest或Mocha??梢允褂胣pm或yarn進(jìn)行安裝。 創(chuàng)建測(cè)試文件

    2024年02月12日
    瀏覽(25)
  • PCB模塊化設(shè)計(jì)09——RJ45-以太網(wǎng)口PCB布局布線設(shè)計(jì)規(guī)范

    PCB模塊化設(shè)計(jì)09——RJ45-以太網(wǎng)口PCB布局布線設(shè)計(jì)規(guī)范

    以太網(wǎng)(Ethernet)是一種計(jì)算機(jī)局域網(wǎng)組網(wǎng)技術(shù),該技術(shù)基于IEEE制定的IEEE 802.3標(biāo)準(zhǔn),它規(guī)定了包括物理層的連線、電信號(hào)和介質(zhì)訪問(wèn)層協(xié)議的內(nèi)容。 以太網(wǎng)是當(dāng)前應(yīng)用最普遍的局域網(wǎng)技術(shù)。Ethernet的接口是實(shí)質(zhì)是MAC通過(guò)MII總線控制PHY的過(guò)程。 以太網(wǎng)接口電路主要由MAC控制器

    2024年02月10日
    瀏覽(21)
  • 【嘉立創(chuàng)EDA-PCB設(shè)計(jì)指南】4.模塊化布局

    【嘉立創(chuàng)EDA-PCB設(shè)計(jì)指南】4.模塊化布局

    前言: 本文對(duì)本專欄中的【立創(chuàng)EDA-PCB設(shè)計(jì)指南】前面繪制的原理圖進(jìn)行模塊化布局,首先進(jìn)行預(yù)布局(將每個(gè)模塊放一起),然后進(jìn)行精細(xì)化布局(按照原理圖來(lái)精細(xì)化布局)。 目錄 模塊化預(yù)布局 模塊化精細(xì)布局 原理圖如下所示。 精細(xì)化布局后的PCB效果如下。?

    2024年01月22日
    瀏覽(31)
  • IBM引入模塊化設(shè)計(jì)助力波音與摩根大通快速實(shí)現(xiàn)量子計(jì)算服務(wù)

    IBM引入模塊化設(shè)計(jì)助力波音與摩根大通快速實(shí)現(xiàn)量子計(jì)算服務(wù)

    ?(圖片來(lái)源:網(wǎng)絡(luò)) 經(jīng)典計(jì)算機(jī)具有局限性,無(wú)法完成某些特定任務(wù),例如準(zhǔn)確預(yù)測(cè)金融市場(chǎng)或開(kāi)發(fā)藥物來(lái)對(duì)抗新興疾病,而量子計(jì)算能打破“僵局”。 部署IBM Quantum量子系統(tǒng)的負(fù)責(zé)人Chris Lirakis 說(shuō):“量子計(jì)算不僅提高了速度,而且能解決我們以前無(wú)法解決的問(wèn)題?!?/p>

    2024年02月05日
    瀏覽(44)
  • Node.js開(kāi)發(fā)、CommondJS 、ES-Module模塊化設(shè)計(jì)

    Node.js開(kāi)發(fā)、CommondJS 、ES-Module模塊化設(shè)計(jì)

    目錄 ?Node.js是什么 基礎(chǔ)使用 Node的REPL 全局變量 ?模塊化設(shè)計(jì) CommondJS規(guī)范 ?基礎(chǔ)使用exports和module.exports require ?CommondJS優(yōu)缺點(diǎn) AMD和CMD規(guī)范 ES_Module ?基本使用方法 導(dǎo)出 導(dǎo)入 ?結(jié)合使用 默認(rèn)導(dǎo)出 ES Module解析流程 ?Node與瀏覽器的對(duì)比 ?在瀏覽器中,HTML與CSS交給Blink處理,如果其

    2023年04月21日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包