VHDL的描述風(fēng)格.ppt_第1頁(yè)
VHDL的描述風(fēng)格.ppt_第2頁(yè)
VHDL的描述風(fēng)格.ppt_第3頁(yè)
VHDL的描述風(fēng)格.ppt_第4頁(yè)
VHDL的描述風(fēng)格.ppt_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、VHDL的描述風(fēng)格,1 行為描述方式 2 數(shù)據(jù)流描述方式(RTL描述方式) 3 結(jié)構(gòu)化描述方式,VHDL語(yǔ)言是通過結(jié)構(gòu)體具體描述整個(gè)設(shè)計(jì)實(shí)體的邏輯功能。通常結(jié)構(gòu)體有四種不同的描述方式:行為描述方式(behavior)、數(shù)據(jù)流描述方式(dataflow)或寄存器RTL描述方式、結(jié)構(gòu)化描述方式(structural)以及混合描述方式。VHDL通過這四種不同的描述方式從不同的側(cè)面描述結(jié)構(gòu)體的功能。前三種是最基本的描述方式,他們組合起來就成為混合描述方式。 下面結(jié)合一個(gè)全加器來說明這四種描述風(fēng)格,全加器的端口示意圖如圖所示,其輸入輸出關(guān)系如表所示。,全加器的輸入輸出關(guān)系,輸入 輸出 c_in x y

2、c_out sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1,全加器框圖,一、 行為描述方式,行為描述輸入與輸出間轉(zhuǎn)換的行為,不需包含任何結(jié)構(gòu)信息,它對(duì)設(shè)計(jì)實(shí)體按算法的路徑來描述。行為描述在EDA工程中通常被稱為高層次描述,設(shè)計(jì)工程師只需要注意正確的實(shí)體行為、準(zhǔn)確的函數(shù)模型和精確的輸出結(jié)果就可以了,無(wú)需關(guān)注實(shí)體的電路組織和門級(jí)實(shí)現(xiàn)。,例 1 : 1位二進(jìn)制數(shù)全加器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_ad

3、der IS PORT(x,y,c_in : IN STD_LOGIC; Sum, c_out : OUT STD_LOGIC); END full_adder; ARCHITECTURE behav OF full_adder IS BEGIN PROCESS (x, y, c_in) VARIABLE n: INTEGER; CONSTANT sum_vector: STD_LOGIC_VECTOR (0 TO 3) := “0101”; CONSTANT carry_vector: STD_LOGIC_VECTOR (0 TO 3) := “0011”;,BEGIN n := 0; IF

4、 x = 1 THEN n := n+1; END IF; IF y = 1 THEN n:=n+1; END IF; IF c_in = 1 THEN n:=n+1; END IF; - (0 TO 3) sum = sum_vector (n) AFTER 2*tpd; - - sum_vector初值為“0101” c_out = carry_vector (n) AFTER 3*tpd; - - carry_vector初值為“0011” END PROCESS; - (0 TO 3) END behav;,輸入 輸出 c_in x y c_out sum 0 0 0 0 0 0 0

5、1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1,對(duì)照真值表解釋程序,二、數(shù)據(jù)流描述方式 數(shù)據(jù)流描述方式表示行為,也隱含表示結(jié)構(gòu),它描述了數(shù)據(jù)流的運(yùn)動(dòng)路線、運(yùn)動(dòng)方向和運(yùn)動(dòng)結(jié)果。,對(duì)于全加器,用布爾方程描述其邏輯功能如下: s = x XOR y sum = s XOR c_in c_out = (x AND y) OR( s AND c_in),下面是基于上述布爾方程的數(shù)據(jù)流風(fēng)格的描述:,例 2 :全加器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full

6、_adder IS GENERIC(tpd : TIME := 10 ns); PORT(x,y,c_in : IN STD_LOGIC; Sum, c_out : OUT STD_LOGIC); END full_adder; ARCHITECTURE dataflow OF full_adder IS BEGIN s = x XOR y AFTER tpd; sum = s XOR c_in AFTER tpd; c_out = (x AND y) OR( s AND c_in) AFTER 2* tpd; END dataflow;,三、結(jié)構(gòu)描述方式,結(jié)構(gòu)化描述方式就是在多層次的設(shè)計(jì)中,

7、高層次的設(shè)計(jì)可以調(diào)用低層次的設(shè)計(jì)模塊,或直接用門電路設(shè)計(jì)單元來構(gòu)成一個(gè)復(fù)雜邏輯電路的方法。利用結(jié)構(gòu)化描述方法將已有的設(shè)計(jì)成果方便地用于新的設(shè)計(jì)中,能大大提高設(shè)計(jì)效率。在結(jié)構(gòu)化描述中,建模的焦點(diǎn)是端口及其互連關(guān)系。,三、結(jié)構(gòu)描述方式,結(jié)構(gòu)化描述的建模步驟如下: (1)元件說明 (2)元件例化 (3)元件配置 元件說明用于描述局部接口;元件例化是要相對(duì)于其他元件來放置該元件;元件配置用于指定元件所用的設(shè)計(jì)實(shí)體。,對(duì)于上圖給出的全加器端口結(jié)構(gòu),可以認(rèn)為它是由兩個(gè)半加器和一個(gè)或門組成的 。 基于上圖所示的結(jié)構(gòu),可以寫出全加器的結(jié)構(gòu)化描述設(shè)計(jì)程序如下。,例:全加器的結(jié)構(gòu)化描述 LIBRARY IEEE;

8、 USE IEEE.STD_LOGIC_1164.ALL; ENTITY half_adder IS GENERIC(tpd:TIME:=10 ns); PORT(in1, in2: IN STD_LOGIC; sum, carry: OUT STD_LOGIC); END half_adder; ARCHITECTURE rtl OF half_adder IS BEGIN PROSESS (in1, in2),BEGIN sum = in1 XOR in2 AFTER tpd; carry = in1 AND in2 AFTER tpd; END PROCESS; END rtl; - -

9、半加器設(shè)計(jì)完畢 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or_gate IS GENERIC(tpd:TIME:=10 ns); PORT(in1, in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END or_gate;,ARCHITECTURE rtl OF or_gate IS BEGIN out1 = in1 OR in2 AFTER tpd; END rtl; - - 或門設(shè)計(jì)完畢 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_

10、adder IS GENERIC(tpd:TIME:=10 ns); PORT(x,y,c_in: IN STD_LOGIC; Sum, c_out: OUT STD_LOGIC); END full_adder;,ARCHITECTURE structural OF full_adder IS SIGNAL a, b, c:STD_LOGIC; COMPONENT half_adder PORT(in1, in2: IN STD_LOGIC; sum, carry: OUT STD_LOGIC); END COMPONENT; COMPONENT or_gate PORT(in1, in2:

11、 IN STD_LOGIC; out1: OUT STD_LOGIC); END COMPONENT; FOR u1,u2 : half_adder USE ENTITY WORK.half_adder (rtl); FOR u3: or_gate USE ENTITY WORK. or_gate (trl);,BEGIN u1: half_adder PORT MAP (x, y, b, a); u2: half_adder PORT MAP (c_in, b, sum, c); u3: or_gate PORT MAP (c, a, c_out); END structural;,由上例可

12、見,對(duì)于一個(gè)復(fù)雜的電子系統(tǒng),可以將其分解為若干個(gè)子系統(tǒng),每個(gè)子系統(tǒng)再分解成模塊,形成多層次設(shè)計(jì)。這樣,可以使更多的設(shè)計(jì)者同時(shí)進(jìn)行合作。在多層次設(shè)計(jì)中,每個(gè)層次都可以作為一個(gè)元件,再構(gòu)成一個(gè)模塊或系統(tǒng),可以先分別仿真每個(gè)元件,然后再整體調(diào)試。所以說結(jié)構(gòu)化描述不僅是一種設(shè)計(jì)方法,而且是一種設(shè)計(jì)思想,是大型電子系統(tǒng)高層次設(shè)計(jì)的重要手段。,四、混合描述風(fēng)格,在實(shí)際設(shè)計(jì)工作中,可以采用上述三種描述方式的任意組合,這就是混合描述。同樣還是圖所給出端口結(jié)構(gòu)的全加器模型,其混合描述方式如下。,例:全加器的混合描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTIT

13、Y xor_gate IS GENERIC(tpd:TIME:=10 ns); PORT(in1,in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END xor_gate;,ARCHITECTURE behavioral OF xor_gate IS BEGIN out1 = in1 XOR in2 AFTER tpd; END behavioral; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_adder IS GENERIC(tpd:TIME:=10 ns); PORT(x,y,c_in: IN STD_LOGIC; Sum, c_out: OUT STD_LOGIC); END full_adder;,ARCHITECTURE mix OF full_adder IS COMPONENT xor_gate PORT(in1, in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END COMPONENT

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論