摘要:通過傳統數字系統設計和使用VHDL硬件描述語言設計數字系統的比較,闡述使用VHDL設計數字系統的設計思想、設計方法及設計實現,突現其優越性和發展趨勢。
關鍵詞:VHDL硬件描述語言;數字系統設計;行為描述;RTL描述;綜合;仿真
當今社會是數字化的社會,是數字系統廣泛應用的社會。數字電子技術在不斷地進行更新換代,數字系統的設計發生了翻天覆地的變化。VHDL硬件描述語言、ASIC專用集成電路,FPGA現場可編程門陣列\\CPLD復雜可編程邏輯器件、SOPC可編程片上系統、EDA電子設計自動化等概念徹底改變著我們的知識領域和設計思想。
傳統的數字系統硬件設計方法采用自下而上的設計思想:根據系統對硬件的要求,設計是從選擇具體元器件開始,并用這些元器件進行邏輯電路設計,完成系統各獨立功能模塊設計后,再將各功能模塊連接起來,完成整個系統的硬件設計。
例如,要設計一個六進制計數器,將其中的010和101兩種狀態禁止。該六進制計數器的狀態圖為

從表1狀態轉換表可以發現,Q2的次態是Q1的現態,Q1的次態是Q0的現態。因此,Q2、Q1可用D觸發器實現。Q0的輸出關系稍復雜,現選用JK觸發器實現。而且從表2的狀態關系可以發現,Q2、Q1現態的或非運算就是了,而Q2、Q1現態的運算就是K。得Q2、Q1、Q0的狀態方程為:

傳統的電路設計方法要求設計者在設計電路前寫出電路的邏輯表達式或真值表,這項工作的困難在系統比較復雜時顯得尤為突出,而且設計只能選用已有的通用元器件,使電路的設計受到很大的限制,另外仿真和調試通常只能在完成系統硬件設計后才能進行,存在的問題只能在后期才能被發現,甚至有可能要重新設計系統,使設計周期大大增加。
VHDL硬件描述語言的出現和完善徹底顛覆了傳統的電路設計方法,它采用自上向下的設計方法:從系統對硬件的要求出發,自上而下分三個層次對系統硬件進行設計。
第一層次是行為描述。所謂行為描述,就是對整個系統的邏輯關系或工作模型進行描述(即算法描述)。以上述的六進制計數器為例,其VHDL行為描述程序如下:

當該程序仿真通過以后,說明六進制計數器模型是正確的。該工作模型只說明了系統的輸入輸出引腳和系統的邏輯行為,很難直接映射到具體邏輯元件結構的硬件實現。
第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數據流描述),是一種趨于實際電路的描述方式,要想得到硬件的具體實現,必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。以下六進制計數器的RTL方式描述程序中的結構體就直接描述了JK觸發器,D觸發器,與門和或非門之間的連接關系。


第三層次是邏輯綜合。RTL方式描述的VHDL程序通過仿真后在這一層次利用邏輯綜合工具,轉換成用基本邏輯元件表示的文件(門級網絡表),也可將邏輯綜合結果以原理圖方式輸出。最后進行門級仿真,定時檢查。
從上述三個層次可見,RTL描述是抽象的行為描述和邏輯綜合之間的橋梁,設計過程中必須將行為描述翻譯成RTL描述,但從上述RTL描述程序可見,如果人工去翻譯,這將是一項艱巨的任務,費時費力,而且也容易出錯。另外RTL描述只能反映一種特定的硬件結構,而這種硬件結構一定是最合理最優化的。隨著EDA技術的發展,這一切現在只需要交給綜合器去完成。
綜合器是能夠自動將一種設計表示形式轉換成另一種設計表示形式的計算機程序,它可以將高層次的描述轉換成低層次的描述。利用硬件描述語言進行電路設計的過程中每兩個層次之間都是一種綜合,都是一種描述轉化成另一種描述的過程,都可以通過綜合器來實現。從行為描述轉換到RTL描述是行為綜合,從RTL描述轉換到邏輯門級網絡表是邏輯綜合,從門級網絡表轉換到版圖描述(ASIC設計)或轉換到FPGA的配置網表文件是版圖綜合或結構綜合。綜合器在實現綜合的過程中并不是固定的一對一機械式的“翻譯”,設計者可以根據設計庫,工藝庫制定各類的約束條件,由綜合器選擇最優的方式完成電路結構實現電路功能。目前,應用于FPGA/CPLD設計的性能良好的綜合器有Synopsys公司的FPGA Compiler Ⅱ綜合器、Synplicity公司的Synplith Pro綜合器、Exemplar Logic公司的LeonardoSpectrum綜合器。
傳統的設計必須完成硬件電路設計后才能進行仿真,而利用VHDL硬件描述語言進行設計可以在不同的級別分別進行仿真:行為級仿真,RTL級仿真,門級時序仿真等。哪一層次仿真不通過,返回哪一層次進行修改,大大縮短了系統設計的周期,節省資源。Model Technology公司的ModelSim仿真工具就是其中一種出色的流行的仿真工作。它能單獨或綜合完成上述的各種仿真,仿真執行速度較快。通過仿真后完成的硬件設計可以借助適配器(布局布線器)和下載器(編程器)把設計下載到ASIC或FPGA上設計成新的專用集成電路。
至此,可以把實際應用中的系統設計歸納成以下步驟:VHDL行為描述,功能仿真,綜合優化,綜合后仿真,適配,時序仿真,下載和硬件調試。這些單獨的設計步驟隨著EDA技術的發展,我們現在只需要根據系統要求編寫VHDL行為描述程序,其他的都可以通過VHDL設計工具軟件去完成,如Altera公司的Quartus Ⅱ和Xilinx公司的ISE工具軟件。這些設計平臺除了本身具有綜合和仿真的功能外,還能引入第三方綜合器和仿真工具輔助設計,功能強大。
EDA技術的不斷發展,集成電路規模的越來越大,FPGA/CPLDD的不斷推出和創新,數字系統的設計將越來越復雜,VHDL作為EDA技術的重要組成部分,使用VHDL語言來設計數字系統是不可逆轉的趨勢,其可以描述復雜的電路系統,支持對大規模設計的分解,可由多人、多項目組來共同承擔和完成,標準化的規則和風格,設計的可再利用,可以在設計平臺上進行編輯、編譯、綜合、仿真、適配、下載和硬件調試并最終實現硬件電路系統等等的優越性也會越來越突出。
參考文獻:
[1] 侯伯亨,顧新.VHDL硬件描述語言與數字邏輯電路設計.西安電子科技大學出版社,2004.
[2] 潘松,黃繼業.EDA技術與VHDL.清華大學出版社,2006.