後段設計
4.5 VHDL 硬體描述語言簡介
常見的硬體描述語言有VHDL、Verilog以及AHDL三種,其中又以VHDL 與Verilog最常被企業界使用,本研究以VHDL語言為發展之工具。VHDL是 VHSIC Hardware Description Language是超高速機體電路硬體描述語言的意 思,其中的『超高速』不單是指電路的運算速度快,也同時有電路建構迅速的 意 思。 VHDL部 是一 種高 階的 軟體程 式語 言 , 而是一 種高 階設 計自動 化 (High-Level Design Automation,簡稱HLDA)的硬體描述語言,需要搭配自動 化的電腦輔助設計軟體才能對VHDL進行邏輯合成與模擬。
VHDL做早是由美國國防部為開發高速積體電路所需[29],用來整合各家 廠商的電路設計所制定的統一數位系統描述標準,一開始不支援邏輯合成的功 能,但有許多廠商看出未來趨勢,開始各自發展邏輯合成工具,許多晶片設計 公司開始發展硬體描述語言,以允許設計者使用比邏輯閘更高層次的發展工 具,在較短的時間內完成設計工作。最初硬體描述語言僅提供電路模擬之功 能,隨後很快便具有電路合成之能力,進而成為取代邏輯閘層次設計之利器。
儘管如此,由於不同公司的硬體描述語言並不一致,因此晶片設計之成果不能 互通,進而造成了許多積體電路委外設計機構如美國國防部(Department of Defense, DoD)在整合不同公司晶片設計成果上的困擾。有鑑於此,美國國防部 委託IBM、Texas Instrument及Intermetrics等三家公司發展VHDL語言以做為硬 體描述語言之標準,並於1985年發表。隨後此語言於1987年獲得電機電子工程 學會(Institute of Electrical and Electronics Engineering, IEEE)認證為工業標準,
此一標準稱之為IEEE Std 1076-1987。在1993年時,IEEE再次更新VHDL語言,
我們稱此更新後之標準為IEEE Std 1076-1993。
4.5.1 VHDL的優點
1. 提供多種不同的設計方法(design methodology)。
2. 不同的製程特性(technology independence)也不必考量。
3. 可以用來設計各式各樣的數位電路。
4. 它是一種硬體描述語言的標準,設計人員可以用它來交換設計的心 得。
5. VHDL的語法與C語言類似。
4.5.2 VHDL的基本架構
VHDL已普遍應用在數位晶片的設計上,整個VHDL編寫的架構其實就是 再描述一個數位晶片的硬體架構,其架構主要分為四大類:
1. LIBRARY 宣告區:
LIBRARY宣告區主要是用來宣告電路設計檔中所使用的現成電路或定 義套件的所在地,及一個特定的資料夾名稱、
2. USE 宣告區:
LIBRARY是宣告存放套件的資料夾名稱,而資料夾中存放了許多不同 的套件檔,副檔名皆為.vhd。電路設計黨如需使用到某個套件檔時,就必 須使用保留字USE來宣告。
3. 單體(ENTITY)宣告區:
ENTITY宣告區是用來電路設計檔的介面訊號,及晶片的輸入及輸出。
4. 架構(ARCHITECTURE)宣告區:
ARCHITECTURE 電路架構區包含了訊號宣告區與功能描述區兩部 份:
a. 訊號宣告區:
此區域通常為宣告晶片內部電路區塊彼此間的連接訊號(signal)以 及常數訊號(constant)。
b. 功能描述區:
它是VHDL晶片電路設計檔的核心區域,該區域中可使用VHDL的 語法來建構晶片內部電路區塊功能。
圖4-6 VHDL的寫法與架構
在VHDL中提供了三種撰寫程式的方法,分別為資料流模式(Data flow)、行 為模式(Behavior)描述及結構模式(Structure),VHDL語言對於三種基本模式的 描述:
1. 資料流模式(Data flow):在此模式下,所有的敘述句都以平行的方式處 理之,一些比較簡單的組合邏輯電路都是以平行的方式處理輸入信 號,因此,此模式十分合適使用來實現這些組合邏輯電路。
2. 行為模式(Behavior):此模式下的每一個敘述句的執行次序是有先後次 序,因此,此行為模式描述法之語法與一般高階語言如 C 語言之語法 十分相像。行為模式描述法可以有效的描述順序邏輯之電路如正反 器、暫存器、計數器及有限狀態機器等等。
3. 結構模式(Structure):此模式可將其他 VHDL 語言所描述之電路當作為 元件,使用於自己的 VHDL 程式中,因此,在此描述法裡主要是陳述 元件與元件連接的情形。
因此我們可以根據電路的需求及三種結構寫法的優缺點來選擇最快速、適合 的寫法。表4-1為三種寫法的優缺點[30]。
表4-1 VHDL三種寫法的比較
優點 利用布林函數化簡,速度快 資料流模式
缺點 不易描述複雜電路
優點 容易描述複雜電路及維護 行為模式
缺點 所合成出的電路有可能與預期不一 優點 元件間連線情形清楚
結構模式
缺點 不易明瞭電路功能為何