雖然現在verilog語言更流行一些,但是因爲某種原因,我還是準備用VHDL語言來解決問題,所以就要專門學一下VHDL。想必硬件描述語言肯定是大同小異的。這篇筆記算是參考文獻中《Fundamentals of Digital Logic with VHDL Design》的閱讀筆記。
目的
VHDL語言的出現主要有兩個目的:
- 可以用它像精確得描述數字電路的細節,結構。
- 可以用它來模擬數字電路的行爲。
VHDL編碼的最小基本組成部分
我們可以這個基本組成部分理解爲一個小的獨立的模塊,也可以想象爲一塊小芯片,有外面的引腳,作爲和外面的模塊發生交互,也有內部結構,實現邏輯功能,所以VHDL的編寫也是包含這兩個部分,即實體(ENTITY),還有結構(ARCHITECTURE)。
-
實體(ENTIRY) 是用來定義所謂的引腳,可以定義爲輸出(OUT)或者輸入(IN),基本的最小的數據單位爲BIT,即爲二進制裏的一個位。
ENTITY example1 IS PORT ( x1, x2, x3 : IN BIT ; f : OUT BIT ) ; END example1 ;
我們定義了一個叫example1的實體,端口(PORT)的x1, x2, x3被設置爲輸入,要用IN來表示;f爲輸出,要用OUT來表示。他們都是BIT類型的數據類型,在他們各自的行最後加上BIT關鍵字,標識他們都是BIT類型。最後統一用關鍵字PORT把他們用括號包起來。
-
結構(ARCHITECTURE) 是用來實現模塊裏的實際邏輯功能,主要是將實體裏定義的信號引腳用一定的邏輯操作連接起來,基本的邏輯操作用and,or,not,即與門,或門,非門,然後將計算的信號通過
<=
將輸出信號交給輸出的端口, 這個符號叫做信號賦值操作符(Signal Assignment Operator)。ARCHITECTURE LogicFunc OF example1 IS BEGIN f <= (x1 AND x2) OR (NOT x2 AND x3) ; END LogicFunc ;
如上面語句顯示,先是關鍵字ARCHITECTURE打頭,後面是名字LogicFunc,然後OF後面跟着前面定義的實體的名字。信號賦值操作符右面的表達式叫做邏輯表達式(Logic Expressions),是一種賦值語句,當然VHDL還有其他類型的賦值語句,我們以後再說。
最後貼上上面的模塊的邏輯電路圖:
參考
《Fundamentals of Digital Logic with VHDL Design》