




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
李文娟
數字電子技術課程性質:通信、控制等專業必修課程,屬于技術基礎課,且為主干課程。先修課程:《電路》《模擬電子技術》后續課程:《微機接口與通信》《單片機》《嵌入式系統》課程任務:1、掌握數字邏輯與系統的工作原理和分析方法,能對主要的邏輯部件進行分析和設計。
2、學會使用標準的集成電路和高密度可編程邏輯器件。
3、掌握數字系統的基本設計方法,為進一步學習各種超大規模數字集成電路的系統設計打下基礎。參考教材:
1、《數字電路與系統》劉寶琴高等教育出版社
2、《電子技術基礎》閻石高等教育出版社
3、《電子技術基礎》康華光高等教育出版社
4、《數字電路邏輯設計》王毓銀高等教育出版社教材:《數字電子技術基礎簡明教程》主編余孟嘗學時:48學時成績:考試成績80%,平時成績20%實驗:獨立設課16學時一、模擬信號和數字信號
電子電路中的信號可以分為兩大類:模擬信號和數字信號。
模擬信號——時間連續、數值也連續的信號。對模擬信號進行傳輸、處理的電子線路稱為模擬電路。概述
數字信號——時間上和數值上均是離散的信號。
※數字信號只有兩個離散值,常用數字0和1來表示。注意,這里的0和1沒有大小之分,只代表兩種對立的狀態,稱為邏輯0和邏輯1,也稱為二值數字邏輯。二、正邏輯與負邏輯兩種邏輯體制:
(1)正邏輯體制規定:高電平為邏輯1,低電平為邏輯0。
(2)負邏輯體制規定:低電平為邏輯1,高電平為邏輯0。如果采用正邏輯,圖1.1.1所示的數字電壓信號就成為如圖1.1.2所示邏輯信號。三、數字信號的主要參數一個理想的周期性數字信號可用以下參數來描繪:
Vm——信號幅度。它表示電壓波形變化的最大值。
T——信號的重復周期。信號的重復頻率f=1/T。
tw——脈沖寬度。它表示脈沖的作用時間。
q——占空比。它表示脈沖寬度tw占整個周期T的百分比,其定義為:
四、數字電路
傳遞與處理數字信號的電子電路稱為數字電路。
1、數字電路與模擬電路相比主要有下列優點:
(1)數字電路是以二值數字邏輯為基礎的,只有0和1兩個基本數字,易于用電路來實現。(2)由數字電路組成的數字系統工作可靠,精度較高,抗干擾能力強。(3)數字電路不僅能完成數值運算,而且能進行邏輯判斷和運算,這在控制系統中是不可缺少的。(4)數字信息便于長期保存,比如可將數字信息存入磁盤、光盤等長期保存。(5)數字集成電路產品系列多、通用性強、成本低。
2、數字電路的分類(1)按電路結構不同:分立元件電路和集成電路兩大類。(2)按所用器件制作工藝的不同:數字電路可分為雙極型(TTL型)和單極型(MOS型)兩類。(3)按照電路的結構和工作原理的不同:數字電路可分為組合邏輯電路和時序邏輯電路兩類。3、數字電路的學習方法(1)邏輯代數是分析和設計數字電路的重要工具,應熟練掌握。(2)重點掌握各種常用數字邏輯電路的邏輯功能、外部特性及典型應用。對其內部電路結構和工作原理不必過于深究。(3)掌握基本的分析方法。(4)本課程實踐性很強。應重視習題、基礎實驗和綜合實訓等實踐性環節。(5)注意培養和提高查閱有關技術資料和數字集成電路產品手冊的能力。本章重點1、數制的轉換2、邏輯代數的特殊定理、邏輯函數的公式化簡3、利用卡諾圖化簡邏輯函數4、邏輯函數間的轉換一、邏輯代數(布爾代數、開關代數)邏輯:事物因果關系的規律邏輯函數:
邏輯自變量和邏輯結果的關系邏輯變量取值:0、1
分別代表兩種對立的狀態一種狀態另一狀態高電平低電平真假是非有無……1001二、二進制數表示法1.十進制數(Decimal)--逢十進一計數基數:0~9第i位的位權:2.二進制數(Binary)--逢二進一計數基數:0,1第i位的位權:3.二進制數的縮寫形式—八進制數和十六進制數基數:0~7位權:(2)十六進制數
(Hexadecimal)--逢十六進一基數:0~9,A(10),B(11),C(12),D(13),E(14),F(15)位權:任意(N)進制數展開式的普遍形式:—第i位的系數—第i位的權(1)八進制數(Octal)--逢八進一4.幾種常用進制數之間的轉換(1)二-十轉換:將二進制數按位權展開后相加(2)十-二轉換:降冪比較法—
要求熟記20~210
的數值。2021222324252627282921012481632641282565121024157128291685272413快速轉換法:拆分法(26)10=16+8+2=24+23+21=(11010)2411168
4
2
1(2)十-二轉換:降冪比較法2322200※整數部分的轉換:除基取余法用目標數制的基數(R=2)去除十進制數,第一次相除所得余數為目的數的最低位K0,將所得商再除以基數,反復執行上述過程,直到商為“0”,所得余數為目的數的最低位。十-二轉換:方法二(157)10=(?)2※小數部分的轉換:乘基取整法用小數乘以目標數制的基數(R=2),第一次相乘結果的整數部分為目的數的最高位K-1,將其小數部分再乘基數依次記下整數部分,反復進行下去,直到小數部分為“0”或滿足要求的精度為止。2-6例:將十進制數0.723轉換成精度不大于的二進制數。(3)二-八轉換:57(4)八-二轉換:每位8進制數轉換為相應3
位二進制數011001.100111每3位二進制數相當一位8進制數011111101.1101000002341.062(5)二-十六轉換:每4
位二進制數相當一位16進制數A1(6)十六-二轉換:每位16進制數換為相應的4位二進制數
將十進制數轉換成八進制或十六進制數,怎么轉換?思考:編碼:用二進制數表示文字、符號等信息的過程。二進制代碼:編碼后的二進制數。用二進制代碼表示十個數字符號0~9,又稱為BCD
碼(BinaryCoded
Decimal)。幾種常見的BCD代碼:8421碼余
3碼2421碼5211碼余
3循環碼三、二進制代碼二-十進制代碼:0十進制數1234567898421碼余3碼2421(A)碼5211碼余3循環碼00000001001000110100010101100111100010010011010001010110100010011010101111000000000100100011010010111100110111101111011100000001010001000101010101111000100111001101110111111111001001100111110011101010權842124215211幾種常見的BCD代碼四、EDA技術(ElectronicsDesignAutomation)
一種以計算機作為工作平臺,以EDA軟件工具為開發環境,以VHDL
為設計語言,以可編程邏輯器件為實驗載體,以ASIC、SoC芯片為目標器件,以數字系統設計為應用方向的電子產品自動化設計技術。VHDL
是一種硬件描述語言,用軟件編程語言形式描述硬件電路功能,比原理圖方式更方便、更高效地反映電路的功能。1.1.1基本和常用邏輯運算一、三種基本邏輯運算1.基本邏輯關系舉例功能表1.1邏輯代數基本概念、公式和定理滅滅滅亮斷斷斷合合斷合合與邏輯關系開關A開關B燈Y電源ABY(1)電路圖:或邏輯關系開關A開關B燈Y電源功能表滅亮亮亮斷斷斷合合斷合合ABY非邏輯關系開關A燈Y電源R亮滅斷合AY功能表(2)真值表:經過設定變量和狀態賦值后,得到的反映輸入變量與輸出變量之間因果關系的數學表達形式。功能表滅滅滅亮斷斷斷合合斷合合ABY與邏輯關系真值表(Truthtable)000100011011ABY功能表滅亮亮亮斷斷斷合合斷合合ABY亮滅斷合AY功能表真值表011100011011ABY或邏輯關系非邏輯關系真值表1001AY
與邏輯:當決定一事件的所有條件都具備時,事件才發生的邏輯關系。(3)三種基本邏輯關系:
或邏輯:決定一事件結果的諸條件中,只要有一個或一個以上具備時,事件就會發生的邏輯關系。
非邏輯:只要條件具備,事件便不會發生;條件不具備,事件一定發生的邏輯關系。真值表邏輯函數式與門(ANDgate)邏輯符號(1)與運算:ABY&000100011011ABY2.基本邏輯運算(2)或運算:或門(ORgate)真值表邏輯函數式邏輯符號011100011011ABYABY≥1(3)非運算:真值表1001AY邏輯函數式邏輯符號非門(NOTgate)AY1二、邏輯變量與邏輯函數及常用復合邏輯運算1.邏輯變量與邏輯函數在邏輯代數中,用英文字母表示的變量稱為邏輯變量。在二值邏輯中,變量的取值不是1
就是0
。邏輯函數:如果輸入邏輯變量A、B、C???的取值確定之后,輸出邏輯變量Y的值也被唯一確定,則稱Y
是A、B、C???的邏輯函數。并記作原變量和反變量:字母上面無反號的稱為原變量,有反號的叫做反變量。邏輯變量:(1)與非運算
(NAND)(2)或非運算
(NOR)(3)與或非運算
(AND–OR–INVERT)(真值表略)111000011011AB&10002.幾種常用復合邏輯運算ABY1Y2Y1、Y2的真值表AB≥1AB&CD≥1(4)異或運算(Exclusive—OR)(5)同或運算(Exclusive—NOR)(異或非)AB=1011000011011AB=1=A⊙BABY4100100011011ABY5三、基本和常用邏輯運算的邏輯符號曾用符號美國符號ABYABYABYAAY國標符號AB&A1ABYAB≥1國標符號曾用符號美國符號AB&ABYABYABYAB=1ABABYABYAB≥1或:0+0=01+0=11+1=1
與:0·
0=00·
1=01·
1=1
非:二、變量和常量的關系(變量:A、B、C…)或:A+0=AA+1=1與:A·
0=0A·
1=A
非:1.1.2公式和定理一、常量之間的關系(常量:0和1)三、與普通代數相似的定理交換律結合律分配律[例1.1.1]
證明公式[解]方法一:公式法[例1.1.1]
證明公式方法二:真值表法
(將變量的各種取值代入等式兩邊,進行計算并填入表中)
ABC0000010100111001011101110001000100011111000111110011111101011111相等[解]四、邏輯代數的一些特殊定理同一律A+A=AA·
A=A還原律[例1.1.2]
證明:德摩根定理AB0001101100011110110010101110011110001000相等相等德摩根定理
將Y式中“.”換成“+”,“+”換成“.”
“0”換成“1”,“1”換成“0”
原變量換成反變量,反變量換成原變量五、關于等式的兩個重要規則1.代入規則:等式中某一變量都代之以一個邏輯函數,則等式仍然成立。例如,已知(用函數
A+C代替
A)則2.反演規則:不屬于單個變量上的反號應保留不變運算順序:括號乘加注意:例如:已知反演規則的應用:求邏輯函數的反函數則
將Y式中“.”換成“+”,“+”換成“.”
“0”換成“1”,“1”換成“0”
原變量換成反變量,反變量換成原變量已知則運算順序:括號與或不屬于單個變量上的反號應保留不變六、若干常用公式推廣公式(4)證明:推論公式(5)證明:即=A⊙B同理可證A⊙B一、標準與或表達式1.2邏輯函數的化簡方法1.2.1邏輯函數的標準與或式和最簡式標準與或式標準與或式就是最小項之和的形式最小項最簡式[例1.2.1]1.最小項的概念:
包括所有變量的乘積項,每個變量均以原變量或反變量的形式出現一次。(
2變量共有
4個最小項)(
4變量共有
16個最小項)(
n變量共有
2n
個最小項)……(
3變量共有
8個最小項)對應規律:1
原變量
0
反變量2.最小項的性質:0000000100000010000001000000100000010000001000000100000010000000000001010011100101110111ABC(1)任一最小項,只有一組對應變量取值使其值為
1
;ABC
001ABC
101(2)任意兩個最小項的乘積為
0
;(3)全體最小項之和為
1
。變量A、B、C全部最小項的真值表3.最小項是組成邏輯函數的基本單元
任何邏輯函數都是由其變量的若干個最小項構成,都可以表示成為最小項之和的形式。[例1.2.2]
寫出下列函數的標準與或式:[解]相同最小項合并
標準與或表達式是唯一的,一個函數只有一個最小項之和的表達式。函數的標準與或式也可以由其真值表直接寫出:例如,已知Y=A+BC
的真值表ABC00000101001110010111011100011111函數的標準與或式4.最小項的編號:
把與最小項對應的變量取值當成二進制數,與之相應的十進制數,就是該最小項的編號,用mi表示。對應規律:原變量
1
反變量
000000101001110010111011101234567m0m1m2m3m4m5m6m7[例]
寫出下列函數的標準與或式:m7m6m5m4m1m0m8m0與前面m0相重二、邏輯函數的最簡表達式1.最簡與或式:乘積項的個數最少,每個乘積項中相乘的變量個數也最少的與或表達式。例如:2.最簡與非–
與非式:非號最少,每個非號下面相乘的變量個數也最少的與非-與非式。[例1.2.3]
寫出下列函數的最簡與非-與非式:[解]3.最簡或與式:括號個數最少,每個括號中相加的變量的個數也最少的或與式。[例1.2.4]
寫出下列函數的最簡或與式:[解]4.最簡或非–
或非式:非號個數最少,非號下面相加的變量個數也最少的或非–或非式。[例1.2.5]
寫出下列函數的最簡或非–或非式:[解]5.最簡與或非式:非號下面相加的乘積項的個數最少,每個乘積項中相乘的變量個數也最少的與或非式。[例1.2.6]
寫出下列函數的最簡與或非式:[解]結論:只要得到函數的最簡與或式,再用摩根定理進行適當變換,就可以獲得其它幾種類型的最簡式。而最簡與或式一般需要經過化簡才能求得。已知1.2.2邏輯函數的公式化簡法一、并項法:[例1.2.7][例](與或式最簡與或式)公式定理二、吸收法:[例1.2.8][例][例]三、消去法:[例1.2.9][例][例]四、配項消項法:或或[例1.2.10][例1.2.11]冗余項冗余項綜合練習:1.2.3邏輯函數的圖形化簡法一、邏輯變量的卡諾圖(Karnaughmaps)卡諾圖:1.二變量的卡諾圖最小項方格圖(按循環碼排列)(四個最小項)ABAB0101AB01012.變量卡諾圖的畫法三變量的卡諾圖:八個最小項ABC01000110111110卡諾圖的實質:邏輯相鄰幾何相鄰邏輯不相鄰邏輯相鄰邏輯相鄰緊挨著行或列的兩頭對折起來位置重合邏輯相鄰:兩個最小項只有一個變量不同邏輯相鄰的兩個最小項可以合并成一項,并消去一個因子。如:m0m1m2m3m4m5m6m7五變量的卡諾圖:四變量的卡諾圖:十六個最小項ABCD0001111000011110當變量個數超過六個以上時,無法使用圖形法進行化簡。ABCDE00011110000001011010110111101100以此軸為對稱軸(對折后位置重合)m0m1m2m3m4m5m6m7m12m13m14m15m8m9m10m11m0m1m2m3m8m9m10m11m24m25m26m27m16m17m18m19m6m7m4m5m14m15m12m13m30m31m28m29m22m23m20m21幾何相鄰幾何相鄰幾何相鄰三十二個最小項3.變量卡諾圖的特點:用幾何相鄰表示邏輯相鄰(1)幾何相鄰:相接—
緊挨著相對—
行或列的兩頭相重—
對折起來位置重合(2)邏輯相鄰:例如兩個最小項只有一個變量不同化簡方法:卡諾圖的缺點:函數的變量個數不宜超過6個。邏輯相鄰的兩個最小項可以合并成一項,并消去一個因子。4.變量卡諾圖中最小項合并的規律:(1)兩個相鄰最小項合并可以消去一個因子ABC01000111100432ABCD00011110000111101946(2)四個相鄰最小項合并可以消去兩個因子ABCD000111100001111004128321011ABCD0001111000011110571315BD02810(3)八個相鄰最小項合并可以消去三個因子ABCD000111100001111004128321011ABCD0001111000011110571315B02810151394612142n個相鄰最小項合并可以消去n個因子。總結:二、邏輯函數的卡諾圖①根據函數的變量個數畫出相應的卡諾圖。②在函數的每一個乘積項所包含的最小項處都填1,其余位置填0或不填。1.邏輯函數卡諾圖的畫法2.邏輯函數卡諾圖的特點用幾何位置的相鄰,形象地表達了構成函數的各個最小項在邏輯上的相鄰性。優點:缺點:當函數變量多于六個時,畫圖十分麻煩,其優點不復存在,無實用價值。[例1.2.12]畫出函數的卡諾圖3.邏輯函數卡諾圖畫法舉例[解]①根據變量個數畫出函數的卡諾圖ABCD0001111000011110②根據函數的每個乘積項確定函數的最小項,并在相應的位置上填
1。m0、m1、m2、m31111m12、m13、m14、m151111m0、m4、m8、m1211[例1.2.13]畫出函數的卡諾圖[解]①根據變量個數畫出函數的卡諾圖ABCD0001111000011110②根據函數的每個乘積項確定函數的最小項,并在相應的位置上填
1。m4、m51111m9、m11三、用卡諾圖化簡邏輯函數化簡步驟:①畫出函數的卡諾圖②合并最小項:畫包圍圈③寫出最簡與或表達式[例1.2.14]ABCD000111100001111011111111[解]ABCD000111100001111011111111畫包圍圈的原則:①先圈孤立項,再圈僅有一種合并方式的最小項。②圈越大越好,但圈的個數越少越好。③最小項可重復被圈,但每個圈中至少有一個新的最小項。④必需把組成函數的全部最小項圈完,并做認真比較、檢查才能寫出最簡與或式。不正確的畫圈[例][解]①畫函數的卡諾圖ABCD000111100001111011111111②合并最小項:畫包圍圈③寫出最簡與或表達式多余的圈注意:先圈孤立項利用圖形法化簡函數利用圖形法化簡函數[例][解]①畫函數的卡諾圖ABCD00011110000111101111111111②合并最小項:畫包圍圈③寫出最簡與或表達式[例]用圖形法求反函數的最簡與或表達式[解]①畫函數的卡諾圖ABC010001111011110000②合并函數值為0
的最小項③寫出Y的反函數的最簡與或表達式1.2.4具有約束的邏輯函數的化簡一、約束的概念和約束條件(1)約束:輸入變量取值所受的限制例如,邏輯變量A、B、C,分別表示電梯的
升、降、停命令。A=1
表示升,B=1
表示降,C=1
表示停。ABC的可能取值(2)約束項:不會出現的變量取值所對應的最小項。不可能取值0010101000000111011101111.約束、約束項、約束條件(3)約束條件:②在邏輯表達式中,用等于0的條件等式表示。000011101110111由約束項相加所構成的值為0的邏輯表達式。約束項:約束條件:或2.約束條件的表示方法①在真值表和卡諾圖上用叉號(╳)表示。例如,上例中
ABC的不可能取值為二、具有約束的邏輯函數的化簡
化簡具有約束的邏輯函數時,如果充分利用約束條件,可以使表達式大大化簡。1.約束條件在化簡中的應用(1)在公式法中的應用:
可以根據化簡的需要加上或去掉約束項。[例]化簡函數Y=ABC,約束條件[解]問題:當函數較復雜時,公式法不易判斷出哪些約束項應該加上,哪些應該去掉。(2)在圖形法中的應用:
根據卡諾圖的特點(邏輯相鄰,幾何也相鄰),在畫包圍圈時包含或去掉約束項,使函數最簡。[例]化簡函數Y=ABC,約束條件[解]①畫出三變量函數的卡諾圖ABC0100011110②先填最小項,再填約束項,其余填0或不填。1000③利用約束項合并最小項,使包圍圈越大越好,但圈的個數越少越好。④寫出最簡與或式2.變量互相排斥的邏輯函數的化簡互相排斥的變量:在一組變量中,只要有一個變量取值為1,則其他變量的值就一定是0。ABC01000111101011①畫出該函數的卡諾圖②畫包圍圈,合并最小項③寫出最簡與或表達式[例1.2.16]
函數Y
的變量A、B、C是互相排斥的,試用圖形法求出Y
的最簡與或表達式。[解]根據題意可知約束條件[例]化簡邏輯函數化簡步驟:①畫函數的卡諾圖,順序為:ABCD0001111000011110先填1
0111000000②合并最小項,畫圈時╳
既可以當1,又可以當0③寫出最簡與或表達式[解]╳三、化簡舉例[例]
化簡邏輯函數約束條件[解]①畫函數的卡諾圖ABCD00011110000111101111②合并最小項③寫出最簡與或表達式合并時,究竟把╳
作為
1還是作為
0應以得到的包圍圈最大且個數最少為原則。包圍圈內都是約束項無意義(如圖所示)。注意:1.3邏輯函數的表示方法及其相互之間的轉換1.3.1幾種表示邏輯函數的方法一、真值表將變量的各種取值與相應的函數值,以表格的形式一一列舉出來。1.列寫方法ABCY00000101001110010111011100010111例如函數2.主要特點優點:直觀明了,便于將實際邏輯問題抽象成數學表達式。缺點:難以用公式和定理進行運算和變換;變量較多時,列函數真值表較繁瑣。三、邏輯表達式優點:書寫簡潔方便,易用公式和定理進行運算、變換。缺點:邏輯函數較復雜時,難以直接從變量取值看出函數的值。二、卡諾圖ABC010001111011110000優點:便于求出邏輯函數的最簡與或表達式。缺點:只適于表示和化簡變量個數比較少的邏輯函數,也不便于進行運算和變換。真值表的一種方塊圖表達形式,要求變量取值必須按照循環碼的順序排列。用與、或、非等運算表示函數中各個變量之間邏輯關系的代數式子。例如四、邏輯圖ABYC&&優點:最接近實際電路。缺點:不能進行運算和變換,所表示的邏輯關系不直觀。&≥1用基本和常用的邏輯符號表示函數表達式中各個變量之間的運算關系。[例1.3.1]畫出函數的邏輯圖五、波形圖輸入變量和對應的輸出變量隨時間變化的波形。ABY優點:形象直觀地表示了變量取值與函數值在時間上的對應關系。缺點:難以用公式和定理進行運算和變換,當變量個數增多時,畫圖較麻煩。1.3.2幾種表示方法之間的轉換一、真值表函數式邏輯圖[例]
設計一個舉重裁判電路。在一名主裁判(A)和兩名副裁判(B、C)中,必須有兩人以上(必有主裁判)認定運動員的動作合格,試舉才算成功。①真值表函數式
將真值表中使邏輯函數Y=1的輸入變量取值組合所對應的最小項相加,即得Y的邏輯函數式。ABCY00000101001110010111011100000111函數式卡諾圖化簡ABC010001111011010000②函數式邏輯圖ABY&C&≥1真值表函數式二、邏輯圖0110ABY00011011BA&&&&
1.4EDA技術的基礎知識1.4.1VHDL語言基礎一、VHDL的主要構件基本設計單元VHDL—
超高速硬件描述語言(VeryHighSpeedHardwareDescriptionLanguage)實體(Entity)結構體(Architecture)程序包(Package)庫(Library)配置(Configration
)--描述設計單元的外部接口信號--描述設計單元內部結構和行為--存放各設計模塊共享的數據類型、常數、子程序等--專門存放程序包--指定實體所要配置的結構體1.實體功能:實現設計單元的端口說明。語法結構:ENTITY實體名ISPORT(端口名{,端口名}:端口模式數據類型;端口名{,端口名}:端口模式數據類型);END實體名;用英文字母賦予每個引腳的名稱定義引腳上數據傳輸的方向常用端口模式方向說明IN輸入到實體OUT從實體輸出INOUT雙向數據傳輸BUHHER從實體輸出(但可反饋到實體內部)[例1.4.1]2輸入與門的實體說明。ENTITYand2ISPORT(a,b:INSTD_LOGIC;
y:OUTSTD_LOGIC);ENDand2;設計單元端口結果:And2aby2.結構體功能:描述設計單元內部結構和行為,建立輸入輸出關系。語法結構:ARCHITECTURE結構體名OF實體名IS[結構體說明語句]BEGIN[功能描述語句]END結構體名;描述結構體內部“功能描述語句”中要用到的的內部信號、常數、數據類型、函數。(無時可省略)用并行語句形式描述設計單元功能并行語句類型進程語句(PROCESS)塊描述語句(BLOCK)信號賦值語句子程序調用語句元件例化語句ARCHITECTURE結構體名OF實體名IS[結構體說明語句]BEGIN[功能描述語句]END結構體名;[例1.4.2]2輸入與門的結構體描述。ARCHITECTUREoneOFand2ISBEGINy<=aandbENDARCHITECTUREone
;為并行語句,執行順序與其書寫順序無關,在實際電路中所有并行語句功能同時實現。3.庫、程序包和配置(1)庫功能:存儲和放置設計單元(元件、程序包等)。VHDL庫IEEE庫STD庫ASIC庫WORK庫用戶自定義庫常用資源庫含IEEE認可和某些公司提供的如:STD_LOGIC_1164程序包STD_LOGIC_ARITH算術運算包VHDL標準庫存放:STANDARD的程序集合集合定義了多種常用的數據類型資源庫存放:和各種邏輯門一一對應的實體當前作業庫存放:當前設計項目生成的全部文件目錄資源庫存放:用戶自己創建定義的非標準程序包集合和實體。庫說明語句格式:LIBRARY庫名;如:LIBRARYIEEE;(2)程序包存放各設計模塊共享的數據類型、常數、子程序等。功能:語法格式:USELIBRARY庫名.程序包名.項目名;[例]對IEEE庫的1164程序包中所有項目的說明。USEIEEE.STD_LOGIC_1164.ALL;(3)配置CONFIGURATION配置名OF實體名ISFOR被選結構體名
ENDFOR;END配置名;--為實體指定所要配置的結構體功能:語法格式:[例1.4.3]配置語句舉例ENTITYequ2ISPORT(a,b:INSTD_LOGIC_VECTOR(1DOWNTO0);
equ:OUTSTD_LOGIC);ENDequ2;ARCHITECTUREequationOFequ2IS--結構體一
……ENDequation;ARCHITECTUREcon_behaveOFequ2IS--結構體二
……ENDcon_behave
;ARCHITECTUREseq_behaveOFequ2IS--結構體三
……ENDseq_behave
;
實體equ2擁有三個結構體:equation、con_behave
、
seq_behave,可以用配置語句選擇與實體對應的結構體。如選用結構體con_behave,可用以下語句實現:CONFIGURATIONaequbOFequ2ISFORcon_behaveENDFOR;
ENDCONFIGURATION;二、VHDL的數據對象和數據類型1.VHDL數據對象VHDL數據對象信號變量常量(1)常量常量:不變的量,定義時進行賦值,在整個程序中保持不變。語法格式:CONSTANT常量名:數據類型:=表達式;[例1.4.4]常量定義舉例CONSTANTV:INTEGER:=8;(2)變量語法格式:VARIABLE變量名:數據類型[:=表達式];VARIABLEy:INTEGER;[例1.4.5]變量定義舉例(3)信號信號:定義電路中的連線和元件的端口的數據對象。語法格式:SIGNAL信號名:數據類型;SIGNALA:INTEGER;[例1.4.6]信號定義舉例2.VHDL數據類型(1)整數數據類型(INTEGER)
取值范圍:-2147483547~2147483546(2)實數數據類型(REAL)
取值范圍:-1.0E38~1.0E38(3)位數據類型(BIT)
屬于枚舉數據類型,取值為‘1’和‘0’。(4)位矢量數據類型(BIT_VECTOR)
用雙引號括起來的一組位數據,如“10011”,通常用來表示數據總線。(5)布爾數據類型(BOOLEAN)(6)字符數據類型(CHARACTER)ASCII碼的128個字符,書寫時用單引號,區分大小寫,如‘a’、‘A’等。(7)字符串數據類型(STRING)
雙引號括起來的一串字符,如“abgh”。
屬于枚舉數據類型,取值為‘TRUE’和‘FALSE’。常用來表示關系運算和關系運算結果。(8)STD_LOGIC數據類型
屬于枚舉數據類型,取值有以下九種:
‘U’
初始值‘X’
不定
‘0’0‘1’1
‘Z’
高阻‘W’
弱信號不定
‘L’
弱信號0‘H’
弱信號1
‘-’不可能情況(9)STD_LOGIC_VECTOR數據類型
用雙引號括起來的一組STD_LOGIC數據,如“101011”,通常用來表示數據總線。注意:使用STD_LOGIC、STD_LOGIC_VECTOR
數據類型時必須在庫、程序包說明區進行說明。二、VHDL的操作符和表達式(1)算術操作符和算術表達式操作符說明+
加-
減*
乘/
除**
乘方mod
求模rem
求余abs
絕對值A+B-CX*Y/Z[例1.4.8]算術表達式舉例(2)邏輯操作符和邏輯表達式操作符說明and
與or
或nand
與非nor
或非xor
異或xnor
同或not
邏輯非AANDBNOT
Z[例1.4.9]邏輯表達式舉例(3)關系操作符和關系表達式操作符說明=
等于/=
不等于<
小于<=
小于等于>
大于>=
大于等于Y>=GA=B[例1.4.10]關系表達式舉例(4)并置操作符和并置表達式
并置操作符“&”主要用來將操作數或數組組合起來,以形成新的操作數。例“10”&“11”結果為“1011”。二、VHDL基本語句VHDL基本語句順序語句并行語句順序信號賦值語句IF語句CASE語句LOOP語句EXITNEXT塊語句進程語句并行信號賦值語句并行過程調用語句變量賦值語句子程序和子程序調用語句NULL元件聲明例化語句生成語句1.順序描述語句(1)順序信號賦值語句(2)變量賦值語句目標信號<=表達式;目的變量:=表達式;Y<=AANDB;[例1.4.11]順序信號賦值語句舉例Y:=A+B;[例1.4.12]變量賦值語句舉例格式:格式:執行順序與書寫順序一致,只用于進程和子程序中。格式二:IF條件表達式THEN
順序語句;ELSE
順序語句;ENDIF;(3)IF語句(條件控制語句)格式一:IF條件表達式THEN
順序語句;ENDIF;IFa=‘1’THENc<=b;ENDIF;[例]格式三:IF條件表達式THEN
順序語句;ELSIF條件表達式THEN
順序語句;……ELSE
順序語句;ENDIF;語法格式:CASE表達式ISWHEN選擇值=>順序語句;WHEN選擇值=>順序語句;…[WHENOTHERS=>順序語句;]ENDCASE;(3)CASE語句“選擇值”的取值應“選擇唯一,覆蓋全集”。“選擇值”的具體表示形式有以下四種:WHEN值=>順序語句;WHEN值|值|…|值=>順序語句;WHEN值TO值=>順序語句;WHENOTHERS=>順序語句;SIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);…CASEsISWHEN“00”=>z<=a;WHEN“01”=>z<=b;WHEN“10”=>z<=c;WHEN“11”=>z<=d;WHENOTHERS=>z<=‘X’;ENDCASE;[例1.4.13]用CASE語句設計4選1數據選擇器的程序片段無條件LOOP語句語法格式:[LOOP標號:]LOOP
順序語句;ENDLOOP[LOOP標號];(5)LOOP語句FOR…LOOP語句語法格式:[LOOP標號:]FOR循環變量IN循環次數范圍LOOP
順序語句;ENDLOOP[LOOP標號];臨時變量,不必事先定義。規定順序語句的執行次數,從循環變量初值開始每執行一次遞增1,直至最大值。WHILE…LOOP語句語法格式:[LOOP標號:]WHILE條件表達式LOOP
順序語句;ENDLOOP[LOOP標號];需引入其它控制語句才能退出循環,如exit、next等。abcd:WHILE(i<10)LOOPsun:=i+sum;i=i+1;ENDLOOPabcd;[例1.4.14]WHILE…LOOP應用舉例(6)NEXT語句NEXT[WHEN條件];loop2:LOOPb:=b+1;NEXTWHENb<10;…ENDLOOPloop2;[例1.4.15]NEXT語句舉例格式:滿足條件時中止當前循環,開始下一次循環。(7)EXIT語句EXIT[標號][WHEN條件];FORiIN1DOWNTO0LOOPIF(a(i)=‘1’ANDb(i)=‘0’)THENa_less_than_b<=false;EXIT;ELSIF(a(i)=‘0’ANDb(i)=‘1’)THENa_less_than_b<=true;EXIT;ELSENULL;ENDIF;ENDLOOP;[例1.4.16]EXIT語句在比較器中的應用格式:滿足條件時提前退出循環。函數定義語句的語法格式:FOUNCTION<函數名>(參數表)RETURN<數據類型>ISBEGIN
順序語句;RETURN[返回變量名];END<函數名>;(3)子程序和子程序調用語句VHDL子程序過程(PROCEDURE)函數(FOUNCTION)函數調用語句的語法格式:函數名(實際參數表);FOUNCTIONmin(x,y:INTEGER)RETURNINTEGERISBEGINIFx<yTHENRETURNx;ELSERETURNy;ENDIF;ENDmin;[例1.4.17]比較器函數形式的程序設計實例
函數的參數只能是方式為IN的輸入信號,函數只能有一個返回值。
過程的參數可以為IN、OUT和INOUT方式,在進行參數說明時除了說明其名稱、數據類型,還要說明其端口方式。過程定義語句的語法格式:PROCEDURE<過程名>(參數表)ISBEGIN
順序語句;END<過程名>;過程調用語句的語法格式:過程名(實際參數表);PROCEDUREswap(data:INOUTdata_array;low,high:ininteger)ISVARIABLEtmp:data_element;BEGINIF(data(low)>data(high))THENtmp:=data(low);data(low):=data(high);data(high):=tmp;ENDIF;ENDswap;[例1.4.18]比較器過程形式的程序設計實例[例1.4.19]用過程調用語句調用過程swapswap(datain,1,2);1.并行語句[塊標號:]BLOCK[(塊保護表達式)][塊說明語句;]BEGIN并行語句;ENDBLOCK[塊標號];(1)BLOCK語句
當滿足條件時,多個語句同時被執行,與書寫順序無關。
功能:將一大段并行語句劃分為若干子模塊,提高了程序的可讀性。BLOCK語句的語法格式:塊保護表達式是布爾表達式,當其為真時,該塊中的語句被執行。ARCHITECTUREconnectOFmuxISSIGNALtmp1,tmp2,tmp3:BIT;BEGINBLOCKBEGINtmp1<=d0ANDnotsel;tmp2<=d1OR(notsel);tmp3<=tmp1ORtmp2;q<=tmp3;ENDBLOCK;ENDconnect;[例1.4.20]用BLOCK語句設計2選1數據選擇器。(2)進程語句(PROCESS)[進程名:]PROCESS(敏感信號表)[說明語句;]BEGIN順序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論