在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)全定制ASIC以占用盡可能多的硅面積變得越來(lái)越具有挑戰(zhàn)性

PCB線(xiàn)路板打樣 ? 來(lái)源:LONG ? 2019-08-13 17:02 ? 次閱讀

“設(shè)計(jì)重用”是將高質(zhì)量知識(shí)產(chǎn)權(quán)(IP)從一種ASIC設(shè)計(jì)遷移到另一種ASIC設(shè)計(jì)的過(guò)程。隨著半導(dǎo)體技術(shù)的巨大進(jìn)步,越來(lái)越難以彌合技術(shù)提供與硅生產(chǎn)率允許之間的生產(chǎn)率差距。設(shè)計(jì)全定制ASIC以占用盡可能多的硅面積變得越來(lái)越具有挑戰(zhàn)性。為了實(shí)現(xiàn)最高水平的硅效率,設(shè)計(jì)具有高度可重復(fù)使用設(shè)計(jì)實(shí)體的半定制ASIC已成為當(dāng)今的挑戰(zhàn)。

使用預(yù)先設(shè)計(jì)和預(yù)先驗(yàn)證的設(shè)計(jì)模塊來(lái)實(shí)現(xiàn)高水平的設(shè)計(jì)重用是最有前途的技術(shù)用于縮小可用門(mén)數(shù)與設(shè)計(jì)人員生產(chǎn)率之間的差距。設(shè)計(jì)復(fù)雜的芯片需要基于HDL的設(shè)計(jì)??紤]到設(shè)計(jì)重用的有效HDL生成將幫助您創(chuàng)建可用于多個(gè)芯片設(shè)計(jì)的IP內(nèi)核。

設(shè)計(jì)重用挑戰(zhàn)

重復(fù)使用設(shè)計(jì)帶來(lái)了新的創(chuàng)新挑戰(zhàn)設(shè)計(jì)師。在可重復(fù)使用之前,必須使用設(shè)計(jì),這意味著使用良好的設(shè)計(jì)實(shí)踐進(jìn)行設(shè)計(jì)。必須設(shè)計(jì)一個(gè)可重復(fù)使用的設(shè)計(jì),具有解決一般問(wèn)題的思維方式;編碼良好,評(píng)論和記錄;驗(yàn)證了高度的信心;

由于產(chǎn)品上市時(shí)間緊迫,設(shè)計(jì)人員經(jīng)常繞過(guò)部分或全部這些指導(dǎo)原則,使設(shè)計(jì)幾乎不可重復(fù)使用。但是,遵循這些指導(dǎo)原則可以通過(guò)減少整個(gè)編碼和驗(yàn)證循環(huán)中的迭代來(lái)加速項(xiàng)目的設(shè)計(jì),驗(yàn)證和調(diào)試。設(shè)計(jì)的有效使用和重用在創(chuàng)建具有積極設(shè)計(jì)時(shí)間表的大型ASIC中起著至關(guān)重要的作用。

雖然芯片設(shè)計(jì)人員已經(jīng)使用了HDL一段時(shí)間,但今天的大多數(shù)設(shè)計(jì)都沒(méi)有使用內(nèi)置的“設(shè)計(jì) - 重用“語(yǔ)言的特征。換句話(huà)說(shuō),設(shè)計(jì)師并沒(méi)有完全理解HDL的目的,也沒(méi)有濫用或低估其功能。平均而言,該行業(yè)中只有20%的設(shè)計(jì)是可重復(fù)使用的。隨著對(duì)設(shè)計(jì)重用的需求不斷增加,對(duì)設(shè)計(jì)重用的編碼技術(shù)的重視程度正在提高。本文介紹了使用VHDL的本機(jī)語(yǔ)言特性和與可合成VHDL相關(guān)的設(shè)計(jì)重用技術(shù)開(kāi)發(fā)可重用設(shè)計(jì)。除非另有說(shuō)明,否則所討論的VHDL符合VHDL-87標(biāo)準(zhǔn)。

VHDL功能促進(jìn)可重用性

芯片設(shè)計(jì)人員使用VHDL已超過(guò)十年。在VHDL中開(kāi)發(fā)設(shè)計(jì)的主要目的之一是可重用性,盡管設(shè)計(jì)師直到最近還沒(méi)有有效地使用這種技術(shù)。您可以利用功能豐富的VHDL來(lái)重用技術(shù)。 VHDL功能包括泛型,常量包,生成語(yǔ)句,無(wú)約束數(shù)組,VHDL屬性,用于內(nèi)聯(lián)設(shè)計(jì)分區(qū)的塊語(yǔ)句,用于數(shù)據(jù)捆綁的記錄數(shù)據(jù)類(lèi)型,配置規(guī)范,將端口與已知常量聯(lián)系起來(lái)的能力,離開(kāi)的能力未使用的輸出端口打開(kāi)和未連接,數(shù)組聚合,函數(shù)和過(guò)程。

提示1:泛型

使用泛型編寫(xiě)具有不同結(jié)構(gòu)和行為的參數(shù)化模型(參考文獻(xiàn)1)。清單1提供了一個(gè)具有可修改結(jié)構(gòu)和行為的同步計(jì)數(shù)器的簡(jiǎn)單示例。您可以通過(guò)使用VHDL泛型來(lái)完成此修改。此示例說(shuō)明了使用語(yǔ)言的特征進(jìn)行模擬和合成來(lái)修改結(jié)構(gòu)和行為的泛型。您可以通過(guò)打開(kāi)和關(guān)閉泛型來(lái)啟用和禁用選擇性功能。例如,如果在第8行中將COUNT_ENABLE泛型設(shè)置為FALSE,則第32行到第38行中描述的邏輯都不會(huì)被詳細(xì)說(shuō)明或合成,但父設(shè)計(jì)仍然可以具有計(jì)數(shù)啟用。對(duì)OutDelay和DOWN_ COUNT使用不同的值會(huì)更改計(jì)數(shù)器的行為(盡管合成會(huì)忽略O(shè)utDelay),更改BIT_WIDTH或COUNT_ENABLE會(huì)修改設(shè)計(jì)的結(jié)構(gòu)。使用泛型創(chuàng)建設(shè)計(jì)可以在需要不同結(jié)構(gòu)或行為的各種情況下重用設(shè)計(jì)。例如,設(shè)計(jì)可能需要兩個(gè)計(jì)數(shù)器:一個(gè)計(jì)數(shù)到1024,另一個(gè)計(jì)數(shù)到八。設(shè)計(jì)兩個(gè)獨(dú)立的計(jì)數(shù)器 - 一個(gè)是10位寬,一個(gè)是3位寬 - 在設(shè)計(jì),驗(yàn)證和合成時(shí)間方面存在不必要的投資缺點(diǎn)。

如果使用通用方法設(shè)計(jì)計(jì)數(shù)器考慮到重用,您可以節(jié)省大量的設(shè)計(jì),綜合和驗(yàn)證時(shí)間。使用泛型來(lái)參數(shù)化結(jié)構(gòu)和行為對(duì)于設(shè)計(jì)重用應(yīng)用程序至關(guān)重要。以下示例說(shuō)明了清單1中的計(jì)數(shù)器在需要10位遞增計(jì)數(shù)器和3位遞減計(jì)數(shù)器的應(yīng)用程序中的實(shí)例化

清單2中的示例說(shuō)明了以下幾點(diǎn):

第3到第14行將計(jì)數(shù)器實(shí)例化為10位遞增計(jì)數(shù)器,并啟用計(jì)數(shù)啟用邏輯。

TenBit計(jì)數(shù)器實(shí)例化使用命名關(guān)聯(lián)作為其泛型和端口。

實(shí)例化中未映射的通用值假定為默認(rèn)值。

第18行到第30行實(shí)例化與3位遞減計(jì)數(shù)器相同的計(jì)數(shù)器,其中count-enable-logic關(guān)閉。

ThreeBit計(jì)數(shù)器實(shí)例化使用其泛型和端口的位置關(guān)聯(lián)。通常,不建議使用位置關(guān)聯(lián),因?yàn)楦目芍赜迷O(shè)計(jì)中的參數(shù)或端口需要在該設(shè)計(jì)的所有實(shí)例中進(jìn)行相同的修改。

泛型的使用當(dāng)您需要相同設(shè)計(jì)的多個(gè)實(shí)例時(shí),可以極大地幫助您節(jié)省資源和時(shí)間。

使用泛型來(lái)設(shè)計(jì)參數(shù)化不僅有助于創(chuàng)建可重復(fù)使用的設(shè)計(jì)塊,而且還有助于在合成期間刪除不必要的邏輯或修改有用的邏輯。在通過(guò)泛型參數(shù)化設(shè)計(jì)時(shí),一些綜合工具可幫助創(chuàng)建宏和模板。您可以在后續(xù)設(shè)計(jì)中使用由此創(chuàng)建的特征作為庫(kù)元素進(jìn)行模擬或合成。通過(guò)泛型參數(shù)化總線(xiàn)和寄存器寬度是使用泛型的一個(gè)簡(jiǎn)單示例。

考慮清單1中具有以下通用值的計(jì)數(shù)器示例:

設(shè)計(jì)全定制ASIC以占用盡可能多的硅面積變得越來(lái)越具有挑戰(zhàn)性

當(dāng)綜合詳細(xì)說(shuō)明此設(shè)計(jì)時(shí),綜合工具會(huì)忽略O(shè)utDelay的泛型,因?yàn)樵摴ぞ邿o(wú)法處理映射邏輯中的時(shí)間延遲元素。綜合工具使用count_enable邏輯創(chuàng)建一個(gè)2位向下計(jì)數(shù)器,如下例所示。

考慮具有以下泛型的同一計(jì)數(shù)器的另一個(gè)案例:

設(shè)計(jì)全定制ASIC以占用盡可能多的硅面積變得越來(lái)越具有挑戰(zhàn)性

此代碼創(chuàng)建一個(gè)沒(méi)有計(jì)數(shù)啟用邏輯的8位遞增計(jì)數(shù)器。如果門(mén)數(shù)是一個(gè)重要參數(shù),則可以使用此方法有效地優(yōu)化未使用的邏輯。您可以使用這種優(yōu)雅的參數(shù)化方法在設(shè)計(jì),合成和模擬過(guò)程中修改結(jié)構(gòu)(更改BIT_WIDTH)或行為(向上或向下計(jì)數(shù)器,count_enable禁用或啟用)。

泛型非常適合指定計(jì)數(shù)器,總線(xiàn),移位寄存器和其他設(shè)計(jì)的寬度,但如清單2所示,您還可以使用泛型來(lái)打開(kāi)和關(guān)閉各種功能。此技術(shù)允許您僅使用適用于當(dāng)前項(xiàng)目的功能。您可以使用泛型來(lái)指定FIFO深度等功能;總線(xiàn)接口,如PCI或ARM系統(tǒng)總線(xiàn);架構(gòu),例如向上/向下計(jì)數(shù)器,基于觸發(fā)器的寄存器與基于鎖存器的寄存器,以及紋波進(jìn)位加法器與進(jìn)位超前加法器;登記地址;寄存器的上電復(fù)位值;寄存器中的支持和保留位;時(shí)鐘分頻電路的時(shí)鐘分頻比;時(shí)鐘樹(shù)中的緩沖區(qū)數(shù)量。

如果使設(shè)計(jì)有點(diǎn)通用,其他人可以更容易地重復(fù)使用它。當(dāng)您在層次結(jié)構(gòu)中使用泛型時(shí),會(huì)出現(xiàn)通用方法的一個(gè)缺點(diǎn)。要將泛型應(yīng)用于層次結(jié)構(gòu)的最低級(jí)別,泛型必須向下傳遞到層次結(jié)構(gòu)中。這種傳遞可能涉及泛型必須經(jīng)歷不使用泛型值的塊。使用泛型的另一個(gè)缺點(diǎn)是,隨著泛型列表的增長(zhǎng),在層次結(jié)構(gòu)中的每個(gè)點(diǎn)處攜帶它們變得更加麻煩。第三個(gè)缺點(diǎn)是一些綜合工具對(duì)泛型的支持有限。例如,綜合工具可能要求所有泛型都是整數(shù)類(lèi)型。避免這些問(wèn)題的一種有效方法是使用一個(gè)常量包。

提示2:常量

VHDL包是一種簡(jiǎn)單的方法,可以對(duì)一組相關(guān)的聲明進(jìn)行分組。共同的目標(biāo)。您可以使用庫(kù)語(yǔ)句使包對(duì)可見(jiàn)的設(shè)計(jì)塊可見(jiàn)。使用庫(kù)語(yǔ)句意味著添加或更改參數(shù)只需要修改一個(gè)包文件。此外,某些綜合工具不允許使用布爾,字符串,枚舉或數(shù)組類(lèi)型進(jìn)行泛型。在這種情況下,使用庫(kù)語(yǔ)句允許您在包中使用常量。大多數(shù)綜合工具允許大多數(shù)數(shù)據(jù)類(lèi)型,并且使用庫(kù)語(yǔ)句允許包對(duì)枚舉數(shù)據(jù)類(lèi)型使用TYPE語(yǔ)句。一個(gè)常量包還允許您在“設(shè)計(jì)感知”測(cè)試平臺(tái)中使用相同的包進(jìn)行設(shè)計(jì)和模擬。

作為使用常量包的示例,請(qǐng)考慮將清單2中的計(jì)數(shù)器更改為使用這樣的包。另外,假設(shè)包位于“pkgs”VHDL庫(kù)中(清單3)。此計(jì)數(shù)器示例顯示使用常量包類(lèi)似于使用泛型進(jìn)行參數(shù)化。此外,使用常量包允許任何設(shè)計(jì)實(shí)體引用包中的參數(shù)而不會(huì)產(chǎn)生任何開(kāi)銷(xiāo)。此外,要更改設(shè)計(jì)的結(jié)構(gòu),您必須僅更改包中的參數(shù)值,并且可以在引用該參數(shù)的所有單元中看到更改。常量包也可以使用子類(lèi)型和枚舉數(shù)據(jù)類(lèi)型來(lái)引用參數(shù)以獲得可重用性和可讀性,并且中央包可以用作參數(shù)化包以參數(shù)化整個(gè)設(shè)計(jì)。此外,使用包使得使用數(shù)組和其他復(fù)合數(shù)據(jù)類(lèi)型進(jìn)行參數(shù)化相對(duì)簡(jiǎn)單。

您可以作為設(shè)計(jì)單元單獨(dú)處理包,獨(dú)立于設(shè)計(jì)創(chuàng)建包,并重用包裝在模型的不同部分。泛型定義中的一些不可合成的構(gòu)造(例如枚舉數(shù)據(jù)類(lèi)型)在包中使用時(shí)可以合成。包可能包含您可能用于參數(shù)化的其他常量和信息,但設(shè)計(jì)仍可能使用此信息。該包用作此類(lèi)共享信息的通用占位符。此外,一組參數(shù)提供了更好的代碼結(jié)構(gòu),提供了有效的組織,并且是自我記錄的。

圖1顯示了不同泛型和常量值的參數(shù)化計(jì)數(shù)器。使用Synopsys設(shè)計(jì)編譯器合成計(jì)數(shù)器,該編譯器具有0.2-μm標(biāo)準(zhǔn)單元庫(kù),在所有合成測(cè)試中BIT_WIDTH參數(shù)設(shè)置為2.

在圖1的計(jì)數(shù)器中,COUNT_ENABLE為false(未連接的en enable信號(hào)),BIT_WIDTH為2,DOWN_COUNT為false(傳統(tǒng)的up-counter)。在圖2的計(jì)數(shù)器中,具有計(jì)數(shù)使能的遞增計(jì)數(shù)器,COUNT_ENABLE為真(連接使能信號(hào)),BIT_WIDTH為2,DOWN_COUNT為假。同樣在圖3的計(jì)數(shù)器中,沒(méi)有啟用的遞減計(jì)數(shù)器,COUNT_ENABLE為假(未連接的啟用信號(hào)),BIT_WIDTH為2,DOWN_COUNT為真。這三個(gè)示例顯示了如何通過(guò)使用不同的泛型和常量值來(lái)修改計(jì)數(shù)器結(jié)構(gòu)和行為,同時(shí)消除不必要的門(mén)。

延遲常量是您聲明但不初始化包中的常量的常量。相反,您在使用常量的設(shè)計(jì)中初始化延遲常量。換句話(huà)說(shuō),你“推遲”常量的綁定。在引用它們之前必須綁定延遲常量,以便對(duì)包的任何更改都不需要設(shè)計(jì)計(jì)數(shù)器重新編譯或重新合成。

使用常量包與使用泛型修改具有相同的效果合成過(guò)程中的結(jié)構(gòu)或行為。常量包還允許您有效地使用復(fù)合數(shù)據(jù)類(lèi)型以提高可讀性,并仍然保留設(shè)計(jì)可合成性。此外,合成使用常量包的設(shè)計(jì)比使用泛型的設(shè)計(jì)更容易。換句話(huà)說(shuō),工程師更容易學(xué)習(xí)如何使合成工具使用常量包而不是使用使用泛型的設(shè)計(jì)。對(duì)于具有復(fù)合數(shù)據(jù)類(lèi)型的設(shè)計(jì),某些綜合工具具有較長(zhǎng)的運(yùn)行時(shí)。

您可以使用一組常量,其方式與使用泛型相同。如果涉及許多參數(shù),常量包比泛型更容易使用。與泛型相比,包通常也更好地支持綜合工具。但是,使用常量包意味著您不能在單個(gè)設(shè)計(jì)單元中使用具有不同參數(shù)的多個(gè)設(shè)計(jì)實(shí)例。相反,您需要為每個(gè)重復(fù)設(shè)計(jì)單元提供唯一的實(shí)體和獨(dú)特的包。此外,使用非延遲常量的包中的更改會(huì)導(dǎo)致重新編譯或重新合成引用包的設(shè)計(jì),即使參數(shù)不影響設(shè)計(jì)也是如此。此外,常量包需要您維護(hù)單獨(dú)的文件或庫(kù)。

在考慮應(yīng)用程序的預(yù)期范圍后,使用常量包與使用泛型進(jìn)行參數(shù)化進(jìn)行比較。作為一般做法,對(duì)于具有許多參數(shù)且在大型設(shè)計(jì)中未多次實(shí)例化的設(shè)計(jì),使用常量包。例如,將主機(jī)/CPU周期轉(zhuǎn)換為存儲(chǔ)器周期的存儲(chǔ)器控??制器設(shè)計(jì)不太可能在設(shè)計(jì)中多次實(shí)例化。這樣的設(shè)計(jì)應(yīng)該使用一組常量。您應(yīng)該將泛型用于總線(xiàn)接口,計(jì)數(shù)器,加法器和線(xiàn)性反饋移位寄存器等設(shè)計(jì)。

技巧3:生成語(yǔ)句

您可以實(shí)現(xiàn)許多數(shù)字系統(tǒng),例如記憶,作為子系統(tǒng)的常規(guī)迭代組合。例如,存儲(chǔ)器包括矩形存儲(chǔ)單元陣列。設(shè)計(jì)人員更喜歡這樣的實(shí)現(xiàn),因?yàn)樗鼈兛梢愿菀椎厣删o湊,經(jīng)過(guò)驗(yàn)證,面積有效的布局,從而降低成本。如果您可以將設(shè)計(jì)表達(dá)為某個(gè)子系統(tǒng)的重復(fù),那么您應(yīng)該能夠描述子系統(tǒng)一次,然后描述如何重復(fù)實(shí)例化,而不是單獨(dú)描述每個(gè)實(shí)例化(參考文獻(xiàn)2)。

您可以使用generate語(yǔ)句有效地生成設(shè)計(jì)的迭代結(jié)構(gòu)。生成語(yǔ)句是并發(fā)VHDL結(jié)構(gòu),可能包含進(jìn)一步的并發(fā)語(yǔ)句以進(jìn)行復(fù)制。當(dāng)您將生成語(yǔ)句與泛型或常量結(jié)合使用時(shí),它們可以有效地生成重復(fù)結(jié)構(gòu)??紤]一種情況,您需要通過(guò)輸出焊盤(pán)使用8個(gè)輸出使能從片內(nèi)驅(qū)動(dòng)32位片外數(shù)據(jù)總線(xiàn)(清單5)。該示例實(shí)例化數(shù)據(jù)總線(xiàn)的32個(gè)填充單元。請(qǐng)注意使用“范圍”和“長(zhǎng)度”屬性。這些屬性還促進(jìn)了重用,因?yàn)樗鼈兪褂孟惹岸x的數(shù)據(jù)總線(xiàn)總線(xiàn)寬度。還要注意在將輸出使能信號(hào)分配給焊盤(pán)單元時(shí)使用“i/4”。綜合工具應(yīng)該足夠智能,可以將除法截?cái)酁檎麛?shù)值,以便將dataoe(3)正確分配給數(shù)據(jù)(31:24),將dataoe(2)分配給數(shù)據(jù)(23:16),依此類(lèi)推。

清單6說(shuō)明了使用帶有并發(fā)語(yǔ)句迭代結(jié)構(gòu)的generate語(yǔ)句來(lái)從觸發(fā)器創(chuàng)建寄存器。您還可以使用generate語(yǔ)句有條件地創(chuàng)建,修改或刪除結(jié)構(gòu)。該技術(shù)涉及代碼級(jí)優(yōu)化,在精化時(shí)間內(nèi)刪除不需要的結(jié)構(gòu)。通過(guò)使用泛型或常量包,此技術(shù)可用于創(chuàng)建可重用的設(shè)計(jì)。

使用條件生成語(yǔ)句,您可以啟用或禁用實(shí)現(xiàn)某些功能的邏輯,而不是手動(dòng)刪除代碼或通過(guò)合成優(yōu)化。作為條件代碼包含和排除的示例,您可以將輸出同步到時(shí)鐘或使用常量CONSTANT SYNC_OUTPUTS組合設(shè)置它:BOOLEAN:TRUE;這種技術(shù)允許您生成同步或組合輸出(清單7)。

generate語(yǔ)句是一個(gè)控制邏輯包含或排除的強(qiáng)大工具。它對(duì)于在迭代結(jié)構(gòu)中重復(fù)使用邏輯塊(例如觸發(fā)器)的設(shè)計(jì)很有用。這些塊形成寄存器,填充單元和許多其他結(jié)構(gòu)。許多設(shè)計(jì)人員使用生成語(yǔ)句來(lái)實(shí)例化單元格,如pad示例所示,但您也可以使用generate語(yǔ)句來(lái)有條件地創(chuàng)建,修改或刪除VHDL代碼的各個(gè)部分。生成語(yǔ)句是促進(jìn)設(shè)計(jì)重用的強(qiáng)大工具。一些顯示生成語(yǔ)句應(yīng)用的示例是選擇基于鎖存器或基于觸發(fā)器的寄存器的實(shí)現(xiàn);在總線(xiàn)仲裁器設(shè)計(jì)中包括固定,循環(huán)或其他仲裁方案;并且僅包括您知道將要使用的中斷控制器的那些位??紤]已注冊(cè)的中斷進(jìn)入中斷控制器的情況。如果這些輸入在被路由到其他寄存器之前經(jīng)過(guò)大量的組合邏輯,則使用generate語(yǔ)句僅包括必要的觸發(fā)器將有助于綜合工具顯著減少門(mén)數(shù)。請(qǐng)注意,某些綜合工具無(wú)法跨觸發(fā)器進(jìn)行優(yōu)化。在這些情況下,即使我們知道輸入(例如未使用的中斷)總是高電平,綜合工具也不能使用此信息來(lái)減少合成設(shè)計(jì)的門(mén)數(shù)。

提示4:端口

在許多情況下,您可以通過(guò)將某些端口綁定到默認(rèn)值來(lái)有選擇地禁用邏輯。當(dāng)采用自上而下的方法進(jìn)行綜合時(shí),綜合工具使用“通過(guò)恒定傳播進(jìn)行優(yōu)化” - 優(yōu)化該路徑并考慮該關(guān)聯(lián)值。您可以稍后從實(shí)體中刪除綁定端口。考慮三門(mén)與門(mén)設(shè)計(jì)(圖4a)。如果將其中一個(gè)輸入連接到零(圖4b),則生成的邏輯將消除所有AND門(mén),輸出F始終為邏輯0。

設(shè)計(jì)全定制ASIC以占用盡可能多的硅面積變得越來(lái)越具有挑戰(zhàn)性

端口輸出也是如此。通過(guò)保持未使用的端口輸出打開(kāi)(zo => open),您可以在采用自上而下的綜合方法時(shí)消除創(chuàng)建這些輸出的邏輯。

技巧5:無(wú)約束數(shù)組

使用無(wú)約束數(shù)組是重用可變寬度實(shí)現(xiàn)設(shè)計(jì)的有用方法。在設(shè)計(jì)中使用“范圍”和“長(zhǎng)度”等屬性時(shí)應(yīng)該小心,以避免運(yùn)行時(shí)和精化時(shí)錯(cuò)誤。無(wú)約束陣列特別適用于地址,數(shù)據(jù)和寄存器寬度。您可以將這些數(shù)組用于函數(shù)和過(guò)程以及實(shí)體端口中的形式參數(shù)。

VHDL允許使用無(wú)約束數(shù)組類(lèi)型,使您可以指定索引值的類(lèi)型而無(wú)需指定索引邊界。無(wú)約束數(shù)組可用于制作只需修改其位寬即可在不同應(yīng)用程序中重用的設(shè)計(jì)。前面的計(jì)數(shù)器示例使用無(wú)約束數(shù)組作為計(jì)數(shù)輸出(清單8)。此技術(shù)允許您將計(jì)數(shù)器實(shí)體連接到任何大小的數(shù)組信號(hào)或任何范圍的索引值。注意使用VHDL屬性“range”來(lái)創(chuàng)建與端口計(jì)數(shù)具有相同寬度和范圍規(guī)范的信號(hào)。您無(wú)法自己合成此設(shè)計(jì),并且必須在頂級(jí)實(shí)體中實(shí)例化它以將數(shù)組值綁定到有限范圍(清單9)。您必須以自上而下的方式合成清單9中的代碼,以便您可以將計(jì)數(shù)器與設(shè)計(jì)的其余部分合成。

無(wú)約束數(shù)組的另一種用法出現(xiàn)在函數(shù)和過(guò)程中。您應(yīng)該盡可能一般地編寫(xiě)為合成而設(shè)計(jì)的函數(shù)和過(guò)程,而與位寬無(wú)關(guān)??紤]二進(jìn)制代碼到格雷碼轉(zhuǎn)換器的示例。要從二進(jìn)制代碼創(chuàng)建格雷碼,請(qǐng)使用圖5a中的算法。圖5b是如何將二進(jìn)制100轉(zhuǎn)換為其灰度代碼等效值110的示??例。表1示出了圖5a的算法創(chuàng)建的3位二進(jìn)制值的格雷碼。您可以針對(duì)3位案例對(duì)此算法進(jìn)行硬編碼和優(yōu)化。當(dāng)設(shè)計(jì)必須容納更多計(jì)數(shù)時(shí),函數(shù)必須更改,要求您重新驗(yàn)證所有邏輯。編寫(xiě)?yīng)毩⒂谖幌蛄块L(zhǎng)度的通用函數(shù)可以實(shí)現(xiàn)有效的重用。清單10是二進(jìn)制代碼到格雷碼轉(zhuǎn)換器的與位寬無(wú)關(guān)的實(shí)現(xiàn)。再舉一個(gè)例子,考慮IEEE std_logic庫(kù)中的函數(shù)和過(guò)程。大多數(shù)這些函數(shù)和過(guò)程都是使用無(wú)約束數(shù)組實(shí)現(xiàn)的,以支持有效的重用。

技巧6:VHDL屬性

復(fù)合類(lèi)型的一些屬性在創(chuàng)建可重用設(shè)計(jì)時(shí)很有用。屬性“左”,“右”,“范圍”,“長(zhǎng)度”,“低”和“高”是可綜合的,并使代碼獨(dú)立于數(shù)據(jù)類(lèi)型。請(qǐng)參閱使用無(wú)約束數(shù)組的示例(清單8和清單9),其中函數(shù)Gray2bin和實(shí)體計(jì)數(shù)器使用“range”屬性來(lái)提升可重用性。

提示7:配置規(guī)范

您使用配置規(guī)范將組件實(shí)例綁定到設(shè)計(jì)實(shí)體。您還可以使用這些配置傳遞參數(shù)(如測(cè)試平臺(tái)中最頂層的泛型),為實(shí)體選擇體系結(jié)構(gòu),或覆蓋實(shí)例化中的端口映射。某些綜合工具不支持配置規(guī)范。

考慮前面的計(jì)數(shù)器示例,該示例說(shuō)明了泛型用于參數(shù)化。清單11說(shuō)明了另一個(gè)使用generate語(yǔ)句緩沖計(jì)數(shù)器輸出的體系結(jié)構(gòu)的計(jì)數(shù)器?,F(xiàn)在,計(jì)數(shù)器在頂級(jí)設(shè)計(jì)中使用計(jì)數(shù)器的兩個(gè)實(shí)例進(jìn)行實(shí)例化。配置規(guī)范在實(shí)體頂部配置計(jì)數(shù)器,如清單13所示。配置規(guī)范允許您配置設(shè)計(jì)層次結(jié)構(gòu)的各個(gè)級(jí)別。

提示8:塊語(yǔ)句

塊語(yǔ)句是VHDL結(jié)構(gòu),允許內(nèi)聯(lián)設(shè)計(jì)分區(qū)。例如,如果對(duì)設(shè)計(jì)進(jìn)行分區(qū)以使數(shù)據(jù)路徑存在于單獨(dú)的VHDL實(shí)體中,則可以使用塊語(yǔ)句對(duì)該實(shí)體的體系結(jié)構(gòu)進(jìn)行分區(qū)。塊語(yǔ)句是一種對(duì)相關(guān)邏輯進(jìn)行分組的方法。塊語(yǔ)句還提供了在塊內(nèi)聲明信號(hào)的能力,如果刪除塊,則不必要的信號(hào)在代碼中不會(huì)保持未連接狀態(tài)。您可以將generate語(yǔ)句與block語(yǔ)句組合以選擇性地包含或排除塊。

技巧9:未使用的端口

在分層設(shè)計(jì)中,如果您不使用某些端口實(shí)體,然后通常的做法是將它們連接到虛擬信號(hào)。從自上而下的綜合方法來(lái)看,這種情況使得合成器假設(shè)您已將信號(hào)連接到網(wǎng)絡(luò)。您可以通過(guò)保持端口未連接或通過(guò)使用VHDL關(guān)鍵字指定“打開(kāi)”來(lái)避免此問(wèn)題。

提示10:預(yù)處理器

在許多情況下,設(shè)計(jì)人員無(wú)法使用他們想要的內(nèi)容可用的功能。在某些情況下,希望只看到與設(shè)計(jì)相關(guān)的代碼。在這種情況下,您可以使用預(yù)處理器通過(guò)使用預(yù)處理程序指令來(lái)添加,刪除或修改特定應(yīng)用程序的代碼。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    高密度IC設(shè)計(jì)中ASIC與FPGA選擇誰(shuí)

    IC設(shè)計(jì)面臨的日益嚴(yán)重的挑戰(zhàn),上面的觀點(diǎn)并不重要。隨著ASIC設(shè)計(jì)人員進(jìn)入每一個(gè)新的工藝過(guò)程,設(shè)計(jì)變得越來(lái)越復(fù)雜,軟件的內(nèi)容增加了,驗(yàn)證所需的時(shí)間
    發(fā)表于 07-15 07:00

    用子系統(tǒng)過(guò)流檢測(cè)和監(jiān)視重新審視系統(tǒng)級(jí)管理

    系統(tǒng)管理如果設(shè)計(jì)師想要盡可能地提高性能和用戶(hù)體驗(yàn),那么管理系統(tǒng)的熱性能是現(xiàn)代電子系統(tǒng)中十分關(guān)鍵的內(nèi)容。隨著系統(tǒng)功能變得越來(lái)越強(qiáng)大,并且在很多情況下尺寸也越來(lái)越小,管理散熱系統(tǒng)配置已經(jīng)成
    發(fā)表于 05-12 07:19

    FPGA原型驗(yàn)證的技術(shù)進(jìn)階之路

    Tape Out并回片后都可以進(jìn)行驅(qū)動(dòng)和應(yīng)用的開(kāi)發(fā)。目前ASIC的設(shè)計(jì)變得越來(lái)越大,越來(lái)越復(fù)雜,單片F(xiàn)PGA已不能滿(mǎn)足原型驗(yàn)證要求,片F(xiàn)P
    發(fā)表于 08-21 05:00

    MCU和MPU之間的區(qū)別變得越來(lái)越模糊

    由于內(nèi)存架構(gòu)的變化,兩者之間的界限正在變得模糊。事實(shí)上,可以通過(guò)多種方式區(qū)分微處理器和微控制器,只是業(yè)界尚未對(duì)他們的區(qū)分標(biāo)準(zhǔn)達(dá)成共識(shí)。不過(guò)已經(jīng)有一些人得出結(jié)論,目前兩者之間的準(zhǔn)確區(qū)分都已經(jīng)不再重要了?!敖陙?lái),MCU和MPU之間的區(qū)別變得
    發(fā)表于 11-01 08:49

    如何使用Wemos D1 mini制作一款簡(jiǎn)單但具有挑戰(zhàn)性的游戲?

    我使用 Wemos D1 mini 制作了一款簡(jiǎn)單但具有挑戰(zhàn)性的游戲。 我盡量使說(shuō)明盡可能詳細(xì),但如果您對(duì)此有任何疑問(wèn),請(qǐng)告訴我。 您所要做的就是將魔杖從電線(xiàn)的一端拿到另一端。它有一個(gè) OLED
    發(fā)表于 05-23 06:14

    Android高效內(nèi)存:讓圖片占用盡可能少的內(nèi)存

    在做內(nèi)存優(yōu)化的時(shí)候,我們發(fā)現(xiàn)除了解決內(nèi)存泄露問(wèn)題,剩下的就只有想辦法減少真實(shí)的內(nèi)存占用。而在App中,大部分內(nèi)存可能被我們圖片占用了,所以減少圖片的內(nèi)存占用可以帶來(lái)直接的效果。
    的頭像 發(fā)表于 06-02 11:05 ?5099次閱讀

    FPGA和ASIC、DSP及ARM有什么不一樣,有哪些應(yīng)用優(yōu)勢(shì)

    )設(shè)計(jì)方法和半定制(semi-custom)設(shè)計(jì)方法。半定制設(shè)計(jì)又可分為門(mén)陣列設(shè)計(jì)、標(biāo)準(zhǔn)單元設(shè)計(jì)、可編程邏輯設(shè)計(jì)等等。定制方法是完全由設(shè)計(jì)師根據(jù)工藝,
    發(fā)表于 07-16 17:47 ?3859次閱讀

    目前LED顯示屏市場(chǎng)變得越來(lái)越大,應(yīng)用越來(lái)越廣泛

    近年來(lái),LED顯示屏市場(chǎng)變得越來(lái)越大,應(yīng)用越來(lái)越廣泛。也有越來(lái)越多的LED顯示屏廠家。除了知名LED顯示屏公司外,還有許多小型制造商。盡管市場(chǎng)越來(lái)越
    發(fā)表于 08-25 16:07 ?954次閱讀

    ASIC和DSP及ARM與FPGA的特點(diǎn)和區(qū)別說(shuō)明

    )設(shè)計(jì)方法和半定制(semi-custom)設(shè)計(jì)方法。半定制設(shè)計(jì)又可分為門(mén)陣列設(shè)計(jì)、標(biāo)準(zhǔn)單元設(shè)計(jì)、可編程邏輯設(shè)計(jì)等等。定制方法是完全由設(shè)計(jì)師根據(jù)工藝,
    發(fā)表于 12-22 13:15 ?5次下載

    如何盡可能地加強(qiáng)Linux的安全和隱私

    本指南旨在說(shuō)明如何盡可能地加強(qiáng)Linux的安全和隱私,并且不限于任何特定的指南。 免責(zé)聲明:如果您不確定自己在做什么,請(qǐng)不要嘗試在本文中使用任何內(nèi)容。 本指南僅關(guān)注安全和隱私
    的頭像 發(fā)表于 04-25 14:58 ?2657次閱讀

    工業(yè)自動(dòng)化企業(yè)如何使用Dialog ASIC滿(mǎn)足頗具挑戰(zhàn)性的功耗要求

    本案例分享介紹了一家工業(yè)自動(dòng)化企業(yè)如何使用Dialog ASIC來(lái)滿(mǎn)足其頗具挑戰(zhàn)性的功耗要求。
    的頭像 發(fā)表于 12-25 17:41 ?2936次閱讀

    滿(mǎn)足當(dāng)今外殼設(shè)計(jì)具有挑戰(zhàn)性的性能和散熱要求

      國(guó)防和航空航天加固型系統(tǒng)市場(chǎng)需要在極端環(huán)境條件下提供廣泛的計(jì)算能力??傮w而言,應(yīng)用程序需要更多的處理能力;不可避免的是,隨著處理能力的增長(zhǎng),熱管理變得越來(lái)越具有挑戰(zhàn)性。
    的頭像 發(fā)表于 10-28 11:16 ?920次閱讀

    通過(guò)縮短測(cè)試時(shí)間減少ASIC設(shè)計(jì)中的DFT占位面積

    ASIC,如名稱(chēng)所定義,是為特定應(yīng)用而設(shè)計(jì)的。可以使用不同的技術(shù)來(lái)創(chuàng)建ASIC,但由于高可靠和低成本,CMOS很常見(jiàn)。對(duì)于ASIC(SoC設(shè)計(jì)),功耗、性能(時(shí)間)和
    的頭像 發(fā)表于 11-23 16:09 ?1501次閱讀
    通過(guò)縮短測(cè)試時(shí)間減少<b class='flag-5'>ASIC</b>設(shè)計(jì)中的DFT占位<b class='flag-5'>面積</b>

    變得越來(lái)越重要的智能電網(wǎng)

    智能電網(wǎng)變得越來(lái)越重要。這就是為什么
    的頭像 發(fā)表于 12-30 09:40 ?808次閱讀

    為什么智能手表的氣密檢測(cè)儀變得越來(lái)越重要?

    智能手表已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,它們不僅提供了許多實(shí)用的功能,如健康跟蹤、消息通知、電話(huà)、支付等,而且在設(shè)計(jì)上也越來(lái)越時(shí)尚。然而,這種設(shè)備的復(fù)雜和它們所暴露在的環(huán)境(水分、塵土等)使得它們更容易受到損壞。這就是為什么智能手表的氣密
    的頭像 發(fā)表于 08-21 15:48 ?1017次閱讀
    主站蜘蛛池模板: 午夜一区二区三区 | 天堂影 | 久久精品视频99精品视频150 | 69久久| 一道精品一区二区三区 | 性欧美人与zooz| 插插插叉叉叉 | 国产成人精品一区 | 欧美激情二区三区 | 中文字幕在线一区二区三区 | 爱操视频在线观看 | 午夜影院美女 | 色屁屁www影院免费观看视频 | 男男互攻h啪肉np文厉世 | 呦交小u女国产秘密入口 | h小视频在线观看网 | 一区国产传媒国产精品 | 热99久久| 狠狠五月深爱婷婷网 | 亚洲色图在线播放 | 久久久噜噜噜www成人网 | 91国内在线观看 | 久久天堂网| 国产在视频线精品视频2021 | 看全色黄大色大片免费 | 性生大片免费观看无遮挡 | 你懂的在线视频观看 | 亚洲欧美日韩国产一区二区三区精品 | 四虎影视最新网址 | 恨恨操| 色多多视频在线观看 | 我不卡午夜| 九九视频热 | 特级全黄一级毛片免费 | 欧美性性性性性ⅹxxbbbb | 欧美日韩中文字幕在线 | 欧美又粗又长又湿又黄的视频 | 日本资源在线观看 | a爱视频 | 国产香蕉在线精彩视频 | 成人午夜视频免费看欧美 |