- 熱門關(guān)鍵詞:
- 武漢LED顯示屏
- 武漢LED電子屏
- 武漢LED廣告屏
- LED顯示屏安裝
- LED顯示屏批發(fā)
前端設(shè)計(front-end) 一般是指芯片從RTL設(shè)計到生成可以布局布線的門級網(wǎng)表(Netist) 的階段,按照工作內(nèi)容進行劃分,主要包括設(shè)計、驗證和綜合三大部分,如圖2.4所示。
在前端設(shè)計之前,需要對芯片的系統(tǒng)和功能進行規(guī)范和定義,其中涉及到的工作有撰寫規(guī)格書(Spec), 進行系統(tǒng)框架規(guī)范與功能設(shè)計等。系統(tǒng)的規(guī)范是對電子系統(tǒng)性能的整體描述,是對系統(tǒng)較高層次的抽象描述,主要包括系統(tǒng)的功能、性能、設(shè)計模式、物理尺寸、制造工藝等方面。功能設(shè)計則是為了確定系統(tǒng)功能的可實行方案,一-般需要給出系統(tǒng)時序圖以及各個子模塊之間的數(shù)據(jù)流程圖,并附上簡單的說明文字,如此才能更加清楚地說明系統(tǒng)內(nèi)部的設(shè)計及結(jié)構(gòu)。同時,為了讓整個設(shè)計更加容易理解,在描述完設(shè)計預(yù)期功能后,還需對系統(tǒng)內(nèi)各個模塊及其連接關(guān)系也進行描述說明。另外,從系統(tǒng)的應(yīng)用角度來看,描述還需要說明設(shè)計的適用場合、功能特性以及I/O接口間的數(shù)據(jù)變換。
前端的RTL設(shè)計
數(shù)字前端設(shè)計需要借助特定的EDA工具。早期的硬件IC系統(tǒng)通常采用原理圖輸入的方法進行設(shè)計,雖然這種方法直觀、可控性好,并且效率也較高,但設(shè)計復(fù)雜,可移植性差,在大規(guī)模設(shè)計時耗時耗力。隨著芯片邏輯規(guī)模的不斷攀升和計算機技術(shù)的發(fā)展,這種落后的設(shè)計方式越來越顯得力不從心,取而代之的是計算機代碼輸入的方式,即硬件描述語言HDL (Hardware Description Language)逐漸成為主流設(shè)計硬件IC系統(tǒng)的方法。 本文RTL設(shè)計采用的就是Verilog HDL語言,如圖2.5所示,為SPI接口協(xié)議的部分Verilog 硬件描述語言。
寄存器傳輸級(RTL)是一種對數(shù)字邏輯電路的抽象模型層級,是對信號在寄存器之間的變換過程的建模,也是建模信號在總線上的傳輸過程的建模,能合 理的模擬同步數(shù)字系統(tǒng)的工作過程。RTL編碼設(shè)計的好壞及其規(guī)范性直接影響后續(xù)工作的迭代次數(shù)及產(chǎn)品的較終質(zhì)量,在整個芯片設(shè)計過程中占有非常關(guān)鍵的地位。RTL長期以來是“可綜合”的較高抽象層級,和同步數(shù)字系統(tǒng)設(shè)計方法學(xué)高度契合,目前依然是EDA工具支持較完善的一個抽象層級。
RTL設(shè)計中需要注意很多問題,比如異步設(shè)計問題、時鐘設(shè)計問題、可綜合性、電路的面積及響應(yīng)速度等,這些都是RTL編碼中的常見問題。
前端的驗證
RTL編碼完后的驗證工作,遵循三個原則:隨機化,高覆蓋率,可測試性。.在數(shù)字芯片開發(fā)過程中,驗證占有十分重要的地位,可以說,一邊開發(fā)一 邊驗證,其目的就是在無延遲的理想情況下,通過大量的仿真,發(fā)現(xiàn)電路設(shè)計過程中人為或者非人為引起的BUG。驗證在芯片設(shè)計中又稱為“前仿”。
目前芯片的驗證環(huán)境主要為UVM,全稱為通用驗證方法論,其前身是OVM.UVM是通用的驗證平臺,基于它能夠產(chǎn)生大量、復(fù)雜且可定制化的隨機激勵,可顯著提高大型驗證工程的擴展性和協(xié)作性。舉例說明,UVM框架如軟件開發(fā)過程中的分層結(jié)構(gòu),只要定義好統(tǒng)一的接口,工程中的各個層次就可以分配給不同的研發(fā)團隊進行開發(fā)。驗證的項目同樣如此,即使產(chǎn)生激勵的工程有改動,也不會影響到“觀察波形”的團隊。而UVM在驗證工作中如同一個管家,可以將“輸入激勵”和“觀察波形”的過程統(tǒng)一管理了起來。如圖2.6所示,為基于UVM開發(fā)的驗證示意圖,其中DUT為待驗證模塊,產(chǎn)生激勵模塊即編寫的TestBench。 激勵信號傳入DUT中,輸出需要觀察的波形或者結(jié)果,通過與預(yù)期的結(jié)果比較的過程,來判斷編寫的RTL代碼是否正確。
芯片驗證一般有以下兩個層面,一個是 RTL級或者Netlist, 這個也是一般意義上的芯片驗證工作,不但對Verilog語言編寫的RTL進行驗證,也要對前后端工具處理的Netlist文件進行驗證,保證芯片的功能滿足要求以及RTL編碼正確;另一個是FPGA級的,某種意義上講也是RTL,不同的是該級需下載到了FPGA中,借助硬件環(huán)境來做實驗驗證。
驗證的工作量在芯片設(shè)計中一般會占據(jù)了大部分時間和精力,因為無論哪一種驗證,都需要搭建測試平臺(Test Bench),讓驗證平臺能夠從軟件結(jié)構(gòu)上來模擬芯片的工作環(huán)境。測試平臺中的被測芯片是RTL級的數(shù)字模塊,測試向量或施加的激勵可以是Verilog硬件描述語言,該語言本身就具有行為級描述功能,能夠滿足大部分測試平臺搭建和測試激勵產(chǎn)生的工作。但由于測試激勵是串行的,即按時間順序進入和流出芯片,因此驗證中也越來越多地使用--些軟件上的技術(shù),比如面向?qū)ο蟮木幊碳夹g(shù),目前常用的驗證語言有SystemVerilog,SpecmanE等。
前端的綜合
綜合(Synthesis)是將高層次的RTL級編碼轉(zhuǎn)換為Nestist (門級網(wǎng)表)的過程,網(wǎng)表中包含了RTL中所有的邏輯信息,此外還可能有DFT (Design For Test)、clocking gating、 IO等信息,用于后端布局布線等流程。日前主流的綜合工具為Synopsys公司發(fā)布的“Design Compiler”軟件,簡稱“DC”。它通過改進電路延遲時間的計算方法,能夠顯著地縮短設(shè)計時間和提高設(shè)計性能。
綜合一般由三部分組成, 分別是翻譯(Translate). 邏輯優(yōu)化(Optimizing)和映射(mapping)。 如圖2.7所示,為綜合過程的示意圖。如圖2.8所示,為綜合需要用到的庫及文件。
其中,翻譯是將RTL級的VerilogHDL代碼轉(zhuǎn)換成GTECH庫中單元表示的網(wǎng)表;邏輯優(yōu)化是與工藝無關(guān)的階段,指運用布爾變換或代數(shù)變換技術(shù),根據(jù)設(shè).計者設(shè)定的時延、面積、線負(fù)載模型等綜合約束條件來對門級網(wǎng)表做進一步邏輯優(yōu)化的過程:映射通常是指將GTECH庫元件映射到某- -特定的半導(dǎo)體工藝上,此時門級網(wǎng)表中就包含了相關(guān)的工藝參數(shù)。(注:文中提到的GTECH庫是Synopsys公司提供的通用的、獨立于工藝的元件庫)
綜合的目的是為了將RTL代碼映射為與工藝庫(由Foundry提供)相關(guān)的網(wǎng)表,同時為實現(xiàn)芯片設(shè)計工作中性能、功耗和面積等要求的平衡而進行優(yōu)化, 為此需設(shè)定時間、環(huán)境、面積等方面的約束,由此使較終的流片滿足市場需求。其中較重要的部分是時序的設(shè)計,只要滿足時序約束條件,才能使芯片工作正常。而時序設(shè)計的實質(zhì)則是滿足每一個觸發(fā)器建立時間(Setup) 和保持時間(Hold)的要求。定義如下:
(1)建立時間:觸發(fā)器在時鐘上升沿到來之前,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的較小時間。
(2)保持時間:觸發(fā)器在時鐘上升沿到來之后,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的較小時間。
這是因為觸發(fā)器內(nèi)部數(shù)據(jù)的采樣需要一定的時間,如果不滿足建立和保持時間,觸發(fā)器會進入亞穩(wěn)態(tài),輸出不穩(wěn)定的結(jié)果,數(shù)據(jù)將在0和1之間變化,需要經(jīng)過一段恢復(fù)時間輸出數(shù)據(jù)才能穩(wěn)定,但穩(wěn)定后的數(shù)據(jù)又不一定是所需要的值。
為此,綜合過程需要多種工具來保障對時序的要求。比如可測試性設(shè)計(DFT)、形式驗證(Formal Verification)、靜態(tài)時序分析( Static Timing Analysis,STA)、功能仿真( Functional Simulation)等。如圖2.9所示,為綜合所需工具的流程示意圖。
值得一提的是, 從邏輯綜合開始,基本每做一步大的調(diào)整,都會進行STA, .特別是插入了時鐘樹(Clock Tree)后,需要后端工具( ICC/Encounter)反標(biāo)出的標(biāo)準(zhǔn)延遲文件(SDF)來進行分析,在延遲等近似芯片實際I作的條件下進行時序仿真(后仿),觀察功能是否仍能保持正常。