實驗六 二選一數(shù)據(jù)選擇器的VHDL設(shè)計_第1頁
實驗六 二選一數(shù)據(jù)選擇器的VHDL設(shè)計_第2頁
實驗六 二選一數(shù)據(jù)選擇器的VHDL設(shè)計_第3頁
實驗六 二選一數(shù)據(jù)選擇器的VHDL設(shè)計_第4頁
實驗六 二選一數(shù)據(jù)選擇器的VHDL設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1任務(wù)分析:數(shù)據(jù)選擇器的功能 1知識準(zhǔn)備:結(jié)構(gòu)體、數(shù)據(jù)對象與運算符2任務(wù)實施:二選一數(shù)據(jù)選擇器設(shè)計3任務(wù)五 二選一數(shù)據(jù)選擇器的VHDL實現(xiàn)12一、任務(wù)分析:數(shù)據(jù)選擇器 在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出來的電路,叫做數(shù)據(jù)選擇器,也稱多路選擇器或多路開關(guān)。數(shù)據(jù)選擇器(MUX)的邏輯功能是在地址選擇信號的控制下,從多路數(shù)據(jù)中選擇一路數(shù)據(jù)作為輸出信號。因此對于一個具有2n個輸入 和1個輸出的多路選擇器,應(yīng)有n個地址選擇變量。2一) 結(jié)構(gòu)體ARCHITECTURE 結(jié)構(gòu)體名 OF 實體名 IS 說明語句;BEGIN 功能描述語句;END ARCHITECTURE 結(jié)構(gòu)體名;功能: 對

2、數(shù)據(jù)類型、常數(shù)、信號、子程序和元件等元素的 說明。 描述實體邏輯行為。二、知識準(zhǔn)備:結(jié)構(gòu)體,數(shù)據(jù)對象與運算符3VHDL結(jié)構(gòu)體術(shù)語說明語句:用于定義結(jié)構(gòu)體中所用的數(shù)據(jù)對象(常量和信號)和子程序,并對所引用的元件加以說明,但不能定義變量。功能描述語句:有五種類型,可以把它們看成結(jié)構(gòu)體的五種子結(jié)構(gòu)。這五種語句結(jié)構(gòu)本身是并行語句,但內(nèi)部可能含有并行運行的邏輯描述語句或順序運行的邏輯描述語句,如進(jìn)程內(nèi)部包含的即為順序語句。五種語句結(jié)構(gòu)分別為塊語句、進(jìn)程語句、信號賦值語句、子程序調(diào)用語句和元件例化語句。 4結(jié)構(gòu)體結(jié)構(gòu)圖由若干并行執(zhí)行語句包裝在一起形成一個子模塊。定義順序語句模塊,用從外部獲得的信號值,或內(nèi)

3、部的運算數(shù)據(jù)向其它的信號進(jìn)行賦值。將設(shè)計實體內(nèi)的處理結(jié)果向定義的信號或界面端口進(jìn)行賦值用以調(diào)用過程或函數(shù),并將獲得的結(jié)果賦值于信號。元件調(diào)用,用來調(diào)用另一個實體所描述的電路。結(jié)構(gòu)體說明語句功能描述語句塊語句進(jìn)程語句信號賦值語句子程序調(diào)用語句元件例化語句5實體和結(jié)構(gòu)體之間的關(guān)系Input 1Input nOutput 1Output n實體ABCDSelMUX_Out26結(jié)構(gòu)體三種描述方法行為描述(behavior process)數(shù)據(jù)流描述(data flow)結(jié)構(gòu)化描述(structure)真值表布爾方程式邏輯電路7結(jié)構(gòu)體行為描述 行為描述是高層次描述方式(類似于真值表),它只描述輸入與輸出

4、之間的邏輯轉(zhuǎn)換關(guān)系,而不涉及具體邏輯電路結(jié)構(gòu)等信息。 主要用于系統(tǒng)數(shù)學(xué)模型的仿真或系統(tǒng)工作原理的仿真。故其大量采用的算術(shù)運算、關(guān)系運算、慣性延時、傳輸延時等描述方式是難于或不能進(jìn)行邏輯綜合的。8Behavior Process描述 architecture one of mux21 isbegin y=a when s=0 else b; end one;真值表高層次的功能描述,不必考慮在具體電路是怎樣實現(xiàn)的。9結(jié)構(gòu)體數(shù)據(jù)流描述 數(shù)據(jù)流描述:也稱寄存器(RTL)描述方式,明確描述了數(shù)據(jù)信號的流動路徑、流動方向和流動結(jié)果。 它采用類似于邏輯函數(shù)式的并行信號賦值語句進(jìn)行描述??梢悦枋鰰r序電路,也可

5、描述組合電路。是完全能夠進(jìn)行邏輯綜合的描述方式。10architecture one of mux21 isbegin y=(a and (not s) ) or (b and s);end one;Data Flow描述邏輯函數(shù)式11結(jié)構(gòu)體結(jié)構(gòu)化描述 結(jié)構(gòu)化描述:復(fù)雜數(shù)字邏輯系統(tǒng)的層次化設(shè)計法。設(shè)計中,高層次的設(shè)計模塊調(diào)用低層次的設(shè)計模塊,或直接用門電路設(shè)計單元來設(shè)計一復(fù)雜的邏輯電路。12architecture one of mux21 is signal d,e:bit; begin d=a and (not s); e=b and s; y=d or e; end one;Struct

6、ure描述邏輯圖13三種描述方式的比較描述方式優(yōu)點缺點適用場合結(jié)構(gòu)化描述連接關(guān)系清晰,電路模塊化清晰繁瑣、復(fù)雜層次化設(shè)計數(shù)據(jù)流描述布爾函數(shù)定義明白邏輯方程難以獲得小門數(shù)設(shè)計行為描述邏輯關(guān)系描述清晰不一定能綜合系統(tǒng)建模、復(fù)雜的電路14二) 數(shù)據(jù)對象(data objects) 是數(shù)據(jù)類型的載體,共有三種形式的對象:Constant(常量)Variable(變量)Signal(信號)15Constant width: integer := 7;Constant Vcc: REAL:=5.0; Constant D: Std_Logic_Vector(3 Downto 0):= ”0000”;不能在

7、程序中改變;增強程序的可讀性,便于修改程序;常量的使用范圍取決于其定義位置,可在Library、Entity、Architecture、Process中進(jìn)行定義,其有效范圍也相應(yīng)限定。1、常量(Constant)定義格式為:Constant 常量名:數(shù)據(jù)類型 :=表達(dá)式; 162、 變量 變量是一個局部量,用于對中間數(shù)據(jù)的臨時存儲,并不一定代表電路的某一硬件,沒有物理意義。定義格式為:Variable 變量名:數(shù)據(jù)類型:=設(shè)定值; 如:Variable a: integer := 0;變量賦值語句的語法格式為: 變量名 := 表達(dá)式(設(shè)定值); 如:a := b and c;17變量賦值整體賦

8、值:temp := “10101010”;temp := “AA” ; 逐位賦值:temp(7) := 1;多位賦值temp (7 downto 4) := “1010”;多位賦值用雙引號逐位賦值用單引號賦值標(biāo)志183、信號 信號數(shù)據(jù)對象,代表電路內(nèi)部線路,其在元件之間起互連作用,沒有方向性,可給它賦值,也可當(dāng)作輸入。定義格式為: Signal 信號名:數(shù)據(jù)類型:=設(shè)定值; 如:Signal A : Std_logic_vector(3 Downto 0) := “0000”; 信號賦值語句的語法格式為: 信號名=表達(dá)式(設(shè)定值);A = “1010”19信號賦值SIGNAL temp : S

9、td_Logic_Vector (7 downto 0);整體賦值:temp = “10101010”;temp = “AA” ; 逐位賦值:temp(7) = 1;多位賦值:temp (7 downto 4) = “1010”;多位賦值用雙引號逐位賦值用單引號賦值標(biāo)志20信號、變量、常量對比(一)、定義Signal clk: std_logic; Variable data: std_logic_vector(7 downto 0);Constant width: integer :=7 ;(二)、賦值方式clk = 1; (非立即)data := “1010”; (立即)(三)、邏輯功能信

10、號可以代表電路的內(nèi)部連接,而變量僅僅是電路內(nèi)部的數(shù)據(jù)交換。21(五)、適用范圍信號:實體、結(jié)構(gòu)體、程序包變量:定義了變量的進(jìn)程、子程序的順序語句中常量:視其定義的位置而定若常量定義在實體中,適用范圍是實體所對應(yīng)的所有結(jié)構(gòu)體。若常量定義在結(jié)構(gòu)體中,適用范圍就是本結(jié)構(gòu)體。(四)、定義區(qū)域信號:實體、結(jié)構(gòu)體、程序包變量:進(jìn)程、子程序常量:實體、結(jié)構(gòu)體、程序包、塊、進(jìn)程、子程序22能進(jìn)行邏輯運算的數(shù)據(jù)類型:bit、bit_vector、boolean、 std_logic、std_logic_vector1、邏輯操作符三) VHDL語言的操作符(operator)23注意,邏輯運算符的左右兩邊以及代入

11、的信號的數(shù)據(jù)類型必須是相同的。當(dāng)一個語句中存在多個邏輯表達(dá)式時,除了NOT運算符,其他6種運算符沒有優(yōu)先級之分,在設(shè)計中應(yīng)注意根據(jù)實際邏輯表達(dá)式設(shè)置括號。邏輯運算符應(yīng)用舉例y=a XOR b; -邏輯表達(dá)式 y=aby=a AND b AND c AND d; -邏輯表達(dá)式 y=abcdy101011結(jié)果為真) = 等于/= 不等于 小于= 小于或等于(也用于信號的賦值操作) 大于= 大于或等于253、算術(shù)運算符+ :加,:減; + :正,:負(fù)* :乘, /:除 ,REM 求余 , MOD求模:整數(shù)和實數(shù),ABS:求絕對值* 乘方:左邊可以是整數(shù)或浮點數(shù),右邊必須是整數(shù),且只有在左邊為浮點數(shù)時

12、,右邊才可以為負(fù)數(shù)。其中取模,取余,取絕對值和乘方運算的操作數(shù)只能是整型,其他的可以是整數(shù)和實數(shù)型。264、并置運算符 VHDL語言中的并置運算符為“&”,用于位的連接,形成位矢量。也可以進(jìn)行多個矢量的連接,以構(gòu)成位長更大的位矢量。并置運算符應(yīng)用舉例。SIGNAL data_1: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_2: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_3: STD_LOGIC_VECTOR(7 DOWNTO 0);data_1=0000;data_2=1111;data_3= data_1&dat

13、a_2;運算后,data_3的結(jié)果為00001111。275、移位運算符SLL是將向量左移,右邊移空位補0;SRL是將向量右移,左邊移空位補0;SLA是將向量左移,右邊第一位數(shù)值保持不變;SRA是將向量右移,左邊第一位數(shù)值保持不變;ROL和ROR是自循環(huán)移位方式。28移位運算符操作示意圖29移位運算符應(yīng)用舉例:A=0101;B=A SLL 1;-B=1010C=A SRL 1;-C=0010D=A SLA 1;-D=1011E=A SRA 1;-E=0010F=A ROL 1;-F=1010G=A ROR 1;-G=101030數(shù)據(jù)類型必須一致表達(dá)式中有多個運算符時一般要加括號,但and、or

14、等除外VHDL操作符優(yōu)先級6、運算符的優(yōu)先級31 signal d1,d2,s : integer; SIGNAL a ,b,c : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d,e,f,g : STD_LOGIC_VECTOR (1 DOWNTO 0) ; SIGNAL h,i,j,k : STD_LOGIC ; SIGNAL l,m,n,o,p : BOOLEAN ; . s=a and b; - integer 不能進(jìn)行邏輯運算 a=b AND c; - a、b、c的數(shù)據(jù)類型同屬4位長的位矢量 d=e OR f OR g ; - 兩個操作符OR相同,不

15、需括號 h=(i NAND j)NAND k ; - NAND必須加括號 l=(m XOR n)AND(o XOR p); - 操作符不同,必須加括號 h=i AND j AND k ; - 兩個操作符都是AND,不必加括號 h=i AND j OR k ; - 兩個操作符不同,未加括號,表達(dá)錯誤 a=b AND e ; - 操作數(shù)b與e的位矢長度不一致,表達(dá)錯誤 h=i OR l ; - 數(shù)據(jù)類型不同,表達(dá)錯誤。32【例1】 ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ;END ENTITY mux21a ;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ;任務(wù)實施:二選一數(shù)據(jù)選擇器設(shè)計333【例2】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGINd = a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論