芯片設計抽象層及其設計風格

設計抽象層

在瞭解Verilog語言的更多細節之前,我們最好先了解一下芯片設計中的不同抽象層。
最上層是系統級的架構,它定義了各種子塊,並根據功能對它們進行分組,例如,一個處理器集羣將有多個內核、緩存塊和緩存一致性邏輯。所有這些都將被封裝並表示爲一個具有輸入輸出信號的單塊。

如下圖爲頂層架構:

頂層架構

在下一階段,每個子塊都用硬件描述語言來準確描述每個獨立塊的功能。在這個階段,低級別的實現細節,如電路原理圖、技術庫等被忽略。例如,一個控制器塊最終會有多個Verilog文件,每個文件描述其功能的一個較小的部分。

子塊描述

然後將 HDL轉換爲門級原理圖,其中還包括表徵觸發器等數字元素的技術庫。例如,用於D 鎖存器的數字電路包含以某種方式排列的與非門, 使得D和E 輸入的所有組合都產生真值表給出的輸出Q。

D鎖存器的門級原理圖

真值表基本上給出了所有輸入信號電平以及由此產生的輸出電平的列表,下面給出的是一個帶使能引腳的D鎖存器,硬件原理圖也可以通過布爾邏輯和K map從真值表中得出。但是,對於處理器和控制器等比較複雜的數字塊,按照這種方法是不實用的。

D鎖存器的真值表

與非門的實現是通過連接特定格式的 CMOS 晶體管完成的。在此水平上, 在設計過程中要考慮晶體管的溝道寬度, Vdd 和驅動輸出電容性負載的能力。

與非以及或非門

最後一步是使用 EDA 工具在硅中佈局這些晶體管, 以便可以對其進行製造。在此級別上, 將需要一些設備和技術知識,因爲不同的佈局最終會具有不同的物理特性,例如電阻和電容等。

硅上製造

設計風格

接下來,在數字模塊的設計中主要遵循兩種樣式,即自上而下和自下而上的方法。

自頂向下

在這種樣式中,首先定義一個頂層塊,並標識構建頂層塊所需的子模塊。類似地,每個子塊被進一步劃分爲較小的組件,並且該過程一直持續到我們到達葉單元或無法進一步劃分的階段爲止。

自下而上

在這種情況下,首先要確定可用的構件,然後將它們按照一定的方式組合和連接起來,以構建更大的單元,並用於拼湊頂層構件。

通常情況下,這兩種流程的結合使用。

在系統級的設計中,設計人員將每個功能塊的邏輯實現併合成爲門,在這一點上遵循自上而下的風格。
然而,這些門是按照自下而上的流程建立起來的,即以儘可能小的塊的物理佈局來實現最好的面積、性能和功率。這些標準單元也有一個硬件原理圖,可以用來獲取各種信息,如上升和下降時間,功率和其他延遲。這些單元可以提供給合成工具,在需要的地方選擇和實例化它們。

參考資料

Design Abstraction Layers

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章