版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
邏輯門與邏輯函數(shù)片上微控制系統(tǒng)原理與項(xiàng)目設(shè)計(jì)第二講TheCMOSTransistorCMOStransistor(ASignificantInvention)BasicswitchinmodernICsEnablingustodaytodothingslikeseetheworldonTV,surftheweb,andtalkoncellphones.TwotypesofCMOStransistornMOSandpMOSdoesnotconduct0conducts1gatenMOSdoesnotconduct1gatepMOSconducts0anMOStransistorsymbolconductswhengate=1pMOStransistorsymbolconductswhengate=0TheCMOSTransistor(Cont.)AnanalogyThecurrenttryingtocrossthechannelApersontryingtocrossariverMOSMOStransistorsusemetal(toconnecttransistors),oxide(toinsulate),andsemiconductormaterial.練習(xí):用繼電器實(shí)現(xiàn)與非門NandGame-Buildacomputerfromscratch.實(shí)驗(yàn)1NAND本節(jié)課內(nèi)容課程講授思路布爾邏輯量布爾邏輯運(yùn)算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號(hào)真值表波形圖電路功能信號(hào)代數(shù)式數(shù)學(xué)邏輯真值表由邏輯輸入和邏輯輸出的值組成的表格采用一個(gè)表格將邏輯輸入的所有取值組合按組合值順序排成若干行將每個(gè)組合產(chǎn)生的邏輯輸出值也列出同一行中邏輯真值表
輸入輸出ABF001010101111邏輯真值表
輸入輸出ABF1F20010011110111100邏輯真值表某變量的邏輯非稱為反變量該變量稱為原變量原變量反變量真值表將輸入原變量及其反變量作為新的輸入將輸出原變量及其反變量作為新的輸出重新構(gòu)建真值表探究如何從真值表中獲得邏輯函數(shù)表達(dá)式輸入輸出ABF001110011001100110110010邏輯真值表輸出1分析每一行都有三個(gè)1兩個(gè)為輸入量為1一個(gè)為輸出量為1值為1的輸出量是兩個(gè)為1的輸入量的與運(yùn)算結(jié)果輸入輸出ABF001110011001100110110010
①每個(gè)值為1的輸出都可以由值為1的輸入原變量或反變量進(jìn)行與運(yùn)算獲得。通常把單個(gè)邏輯變量(或反變量)進(jìn)行與運(yùn)算構(gòu)成的項(xiàng)稱為與項(xiàng)。②只要輸入的值使某一與項(xiàng)結(jié)果為1,輸出值就為1,輸出是這些與項(xiàng)的或運(yùn)算。通常把由與項(xiàng)相或構(gòu)成的表達(dá)式稱為與或式。③分析輸出原變量或反變量都可以得到相同的邏輯函數(shù)表達(dá)式。
輸入輸出ABF001110011001100110110010邏輯真值表輸出0分析每一行都有三個(gè)0兩個(gè)為輸入量為0一個(gè)為輸出量為0值為0的輸出量是兩個(gè)為0的輸入量的或運(yùn)算結(jié)果
①每個(gè)值為0的輸出都可以由值為0的輸入原變量或反變量進(jìn)行或運(yùn)算獲得。通常把單個(gè)邏輯變量(或反變量)進(jìn)行或運(yùn)算構(gòu)成的項(xiàng)稱為或項(xiàng)。②只要輸入的值使某一或項(xiàng)結(jié)果為0,輸出值就為0,輸出是這些或項(xiàng)的與運(yùn)算。通常把由或項(xiàng)相與構(gòu)成的表達(dá)式稱為或與式。③分析輸出原變量或反變量都可以得到相同的邏輯函數(shù)表達(dá)式。
課程講授思路布爾邏輯量布爾邏輯運(yùn)算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號(hào)真值表波形圖電路功能信號(hào)代數(shù)式數(shù)學(xué)基本邏輯門與門實(shí)現(xiàn)與運(yùn)算的電路稱為與門(AND)。只有所有輸入都成立,輸出才成立只要有一個(gè)輸入不成立,輸出就不成立兩個(gè)輸入分別為A和B,輸出為F與運(yùn)算代數(shù)表達(dá)式為F=A·B基本邏輯門與門某大門門禁閘機(jī)有證件讀卡器和攝像頭,通過系統(tǒng)進(jìn)行證件認(rèn)證和人臉識(shí)別??刂破鞯墓δ苤挥腥四樧R(shí)別成功且證件認(rèn)證成功,閘機(jī)門才打開,否則閘機(jī)門保持關(guān)閉??刂破髟O(shè)計(jì)人臉識(shí)別成功時(shí)A為1,失敗時(shí)A為0證件認(rèn)證成功時(shí)B為1,失敗時(shí)B為0F為1表示打開,為0時(shí)表示關(guān)閉F=A·B基本邏輯門或門實(shí)現(xiàn)或運(yùn)算的電路稱為或門(OR)只要有一個(gè)輸入成立,輸出就成立只有所有輸入都不成立,輸出才不成立兩個(gè)輸入分別為A和B,輸出為F或運(yùn)算代數(shù)表達(dá)式為F=A+B基本邏輯門或門某大門門禁閘機(jī)有證件讀卡器和攝像頭,通過系統(tǒng)進(jìn)行證件認(rèn)證和人臉識(shí)別??刂破鞯墓δ苤灰四樧R(shí)別成功或證件認(rèn)證成功,閘機(jī)門就打開,否則閘機(jī)門保持關(guān)閉。控制器設(shè)計(jì)人臉識(shí)別成功時(shí)A為1,失敗時(shí)A為0證件認(rèn)證成功時(shí)B為1,失敗時(shí)B為0F為1表示打開,為0時(shí)表示關(guān)閉F=A+B基本邏輯門
節(jié)能臺(tái)燈當(dāng)外部亮度超過規(guī)定強(qiáng)度時(shí)斷開臺(tái)燈電路,否則接通臺(tái)燈光強(qiáng)檢測(cè)結(jié)果為A,光強(qiáng)足夠大時(shí)A為1,否則A為0開關(guān)控制輸出為F,1表示打開,0時(shí)表示關(guān)閉復(fù)合邏輯門
與非門可以實(shí)現(xiàn)一切數(shù)字電路NandGame-Buildacomputerfromscratch.INVANDOR復(fù)合邏輯門
復(fù)合邏輯門與或非門實(shí)現(xiàn)與或非運(yùn)算的電路稱為與或非門
復(fù)合邏輯門
課程講授思路布爾邏輯量布爾邏輯運(yùn)算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號(hào)真值表波形圖電路功能信號(hào)代數(shù)式數(shù)學(xué)變換化簡(jiǎn)優(yōu)化邏輯函數(shù)常用形式邏輯函數(shù)與、或、非與或式或與式與非-與非式或非-或非式與或非式或與非式完備集相互轉(zhuǎn)換邏輯函數(shù)常用形式
邏輯函數(shù)常用形式四個(gè)端口A、B、C、DD不可能是輸出A=B=C=0時(shí),D有0和1兩種取值A(chǔ)不可能是輸出B=C=D=1時(shí),A有0和1兩種取值C不可能是輸出A=B=D=1時(shí),C有0和1兩種取值A(chǔ)、C和D為輸入,B為輸出A01010110B00111100C00101110D00110101邏輯函數(shù)常用形式
ACDBACDB00001000001010110101110001111111A01010110B00111100C00101110D00110101邏輯函數(shù)標(biāo)準(zhǔn)形式與項(xiàng)單個(gè)邏輯變量(或反變量)進(jìn)行與運(yùn)算構(gòu)成的項(xiàng)最小項(xiàng)n個(gè)變量的最小項(xiàng)是n個(gè)變量的“與項(xiàng)”每個(gè)變量都以原變量或反變量的形式出現(xiàn)一次共有2n個(gè)最小項(xiàng)采用符號(hào)mi表示下標(biāo)i是最小項(xiàng)的編號(hào)對(duì)應(yīng)變量取值的等效十進(jìn)制數(shù)iABC與項(xiàng)最小項(xiàng)0000m01001m12010m23011m34100m45101m56110m67111m7iAB與項(xiàng)最小項(xiàng)000m0101m1210m2311m3邏輯函數(shù)標(biāo)準(zhǔn)形式
序號(hào)ABCm0m1m2m3m4m5m6m7000010000000100101000000201000100000301100010000410000001000510100000100611000000010711100000001邏輯函數(shù)標(biāo)準(zhǔn)形式與或式由“與項(xiàng)”相或構(gòu)成的表達(dá)式最小項(xiàng)表達(dá)式所有與項(xiàng)均為最小項(xiàng)的與或表達(dá)式標(biāo)準(zhǔn)與或式F(A,B,C)=AB?C+AB?C?+ABC?F(A,B,C)=m4+m5+m6=Σm(4,5,6)任何一個(gè)邏輯函數(shù)都可以表示為最小項(xiàng)之和的形式將真值表中使函數(shù)值為1的各個(gè)最小項(xiàng)相或最小項(xiàng)表達(dá)式是唯一的最小項(xiàng)表達(dá)式示例函數(shù)F的最小項(xiàng)表達(dá)式F=A?B?C+A?BC?+AB?C?+ABC=Σm(1,2,4,7)函數(shù)F的最小項(xiàng)表達(dá)式F=A?C+BC?+AB?F=Σm(1,2,3,4,5,6)ABCFABCF00001001001110100101110001101111ABCFABCF00001001001110110101110101111110最小項(xiàng)表達(dá)式示例ABCDABCD00011001001010100101110001111110D=Σm(0,2,3,4)
ABCFABCF00001001001010110100110001111111F=Σm(3,4,5,7)最小項(xiàng)表達(dá)式示例手機(jī)來電控制振動(dòng)模式有電話呼入時(shí)發(fā)生振動(dòng)而無響鈴振鈴模式有電話呼入時(shí)發(fā)生響鈴而無振動(dòng)輸入輸出ABYZ0000010010011110電路輸入A:是否有電話呼入1-是,0-否B:是否置振動(dòng)模式1-是,0-否電路輸出Y:是否振動(dòng)1-是,0-否Z:是否響鈴1-是,0-否
邏輯函數(shù)標(biāo)準(zhǔn)形式或項(xiàng)單個(gè)邏輯變量(或反變量)進(jìn)行或運(yùn)算構(gòu)成的項(xiàng)最大項(xiàng)n個(gè)變量的最大項(xiàng)是n個(gè)變量的“或項(xiàng)”每一個(gè)變量都以原變量或反變量的形式出現(xiàn)一次n個(gè)變量可以構(gòu)成2n個(gè)最大項(xiàng)只有一組變量取值使它為0,而變量的其余取值均使它為1符號(hào)Mi表示iABC或項(xiàng)最大項(xiàng)0000M01001M12010M23011M34100M45101M56110M67111M7邏輯函數(shù)標(biāo)準(zhǔn)形式最大項(xiàng)n變量的全部最大項(xiàng)的邏輯乘恒為0,即∏Mi=0n變量的任意兩個(gè)不同的最大項(xiàng)的邏輯和必等于1,即Mi+Mj=1(i≠j)。n變量的每個(gè)最大項(xiàng)有n個(gè)相鄰項(xiàng)或與式由“或項(xiàng)”相與構(gòu)成的表達(dá)式最大項(xiàng)表達(dá)式所有的或項(xiàng)均為最大項(xiàng)的或與式標(biāo)準(zhǔn)或與式ABCFABCF00001001001110100101110001101111F=(A+B+C)(A+B?+C?)(A?+B+C?)(A?+B?+C)=∏M(0,3,5,6)邏輯真值表
輸入輸出ABCF00000010010001111000101111011111具有無關(guān)項(xiàng)的邏輯函數(shù)無關(guān)項(xiàng)邏輯函數(shù)值不確定的輸入變量的某些取值組合約束項(xiàng)(禁止項(xiàng))輸入變量的某些組合不可能出現(xiàn)不允許出現(xiàn)的最小項(xiàng)稱為約束項(xiàng)(或禁止項(xiàng))任意項(xiàng)(隨意項(xiàng))函數(shù)值為1或?yàn)?都可以非完全描述邏輯函數(shù)具有無關(guān)項(xiàng)的邏輯函數(shù)真值表中填?或×、d,表示為0或1均可邏輯表達(dá)式中用約束條件來表示ABCFABCF000010010010101
0101110
011
111
邏輯函數(shù)化簡(jiǎn)
名稱公式1公式2合并律A
B+A
B?=A(A+B)(A+B?)=A吸收律①A+A
B=AA
(A+B)=A吸收律②A+A?
B=A+BA
(A?+B)=A
B吸收律③A
B+A?
C+B
C=A
B+A?
CA
A?=0邏輯函數(shù)化簡(jiǎn)卡諾圖根據(jù)最小項(xiàng)真值表按一定規(guī)則排列的方格圖邏輯函數(shù)的K圖表示任何一個(gè)n變量的邏輯函數(shù)都可以用n變量K圖來表示K圖是真值表的一種特殊形式n變量的K圖包含了n變量的所有最小項(xiàng)將邏輯函數(shù)真值表中每個(gè)最小項(xiàng)的值填入K圖中的相應(yīng)方格邏輯函數(shù)化簡(jiǎn)卡諾圖化簡(jiǎn)合并幾何位置相鄰最小項(xiàng)相接相對(duì)任一行或列的兩頭相重對(duì)折起來位置重合邏輯函數(shù)化簡(jiǎn)
作業(yè):
1.參照課件第30頁(yè)(最小項(xiàng)表達(dá)式示例),改變邏輯定義,重新畫真值表,寫表達(dá)式。
2根據(jù)課件第24頁(yè)(邏輯函數(shù)常用形式)的真值表例子,畫出波形圖、寫出最小項(xiàng)表達(dá)式、最大項(xiàng)表達(dá)式。
3.畫出課件第28、29頁(yè)(最小項(xiàng)表達(dá)式示例)中除最后一個(gè)例子外的波形圖。邏輯電路結(jié)構(gòu)與硬件描述片上微控制系統(tǒng)原理與項(xiàng)目設(shè)計(jì)第三講上節(jié)復(fù)習(xí)課程講授思路布爾邏輯量布爾邏輯運(yùn)算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號(hào)真值表波形圖電路功能信號(hào)代數(shù)式數(shù)學(xué)HDL硬件結(jié)構(gòu)邏輯電路結(jié)構(gòu)因果系統(tǒng)只有輸入發(fā)生變化輸出才可能變化兩種類型組合邏輯電路(組合電路)一個(gè)電路的輸入相同時(shí)輸出也相同任何一時(shí)刻的穩(wěn)態(tài)輸出僅僅取決于該時(shí)刻的輸入,而與電路原來的狀態(tài)無關(guān)時(shí)序邏輯電路(時(shí)序電路)相同輸入在不同時(shí)刻的輸出不同表明邏輯運(yùn)算與時(shí)間有關(guān)任一時(shí)刻的輸出不僅與該時(shí)刻輸入變量有關(guān),而且還與過去時(shí)刻電路內(nèi)部電平有關(guān)具有記憶功能輸入沒變化,輸出不可發(fā)生變化組合電路任何一時(shí)刻的穩(wěn)態(tài)輸出僅僅取決于該時(shí)刻的輸入與電路原來的狀態(tài)無關(guān)無記憶功能數(shù)學(xué)描述X=(x1,…,xn)表示輸入邏輯量Z=(z1,…,zm)表示輸出邏輯量Z=F(X)表示邏輯函數(shù)F=(f1,...,fm)fi是zi與X之間的邏輯函數(shù)
組合電路示例輸入為A、B、C,輸出是F1、F2,試判定它們是否為組合電路輸出組合電路示例通過比較相同的A、B、C組合其輸出是否相同來判定是否為組合邏輯輸出波形真值表A00001111000011110B00110011001100110C01010101010101010F111101100111011001F211100000110000111組合電路示例
輸入輸出ABCF1F2000110011101011/001100100101011011000/111100/1時(shí)序電路任一時(shí)刻的輸出不僅與該時(shí)刻輸入變量有關(guān),而且還與過去時(shí)刻電路內(nèi)部電平有關(guān)具有記憶功能觸發(fā)器具有記憶功能的基本電路狀態(tài)輸出就是所要記憶的數(shù)狀態(tài)轉(zhuǎn)移當(dāng)某輸入信號(hào)發(fā)生某種特定變化時(shí),觸發(fā)器可以從一個(gè)穩(wěn)定狀態(tài)轉(zhuǎn)換到另一個(gè)穩(wěn)定態(tài)觸發(fā)條件觸發(fā)狀態(tài)改變的條件產(chǎn)生狀態(tài)轉(zhuǎn)移的輸入信號(hào)的特征高電平(值為1)、低電平(值為0)、上升沿(從低電平變?yōu)楦唠娖降乃查g,值用
表示)、下降沿(從高電平變?yōu)榈碗娖降乃查g,值用
表示)只有觸發(fā)條件滿足,狀態(tài)才可能發(fā)生變化,否則狀態(tài)不變,即保持操作。時(shí)序電路狀態(tài)當(dāng)前狀態(tài)(現(xiàn)態(tài))Q觸發(fā)時(shí)的狀態(tài)觸發(fā)后的狀態(tài)(次態(tài))Qn+1電路框圖存儲(chǔ)電路采用觸發(fā)器構(gòu)成存儲(chǔ)電路來保存當(dāng)前內(nèi)部信號(hào)供將來使用組合電路將當(dāng)前輸入和當(dāng)前保存的過去產(chǎn)生的內(nèi)部信號(hào)組合產(chǎn)生當(dāng)前輸出和當(dāng)前內(nèi)部信號(hào)時(shí)序電路信號(hào)輸入X=(x1,x2,…,xn)狀態(tài)Q=(q1,q2,…,qj)存儲(chǔ)電路的狀態(tài)輸出組合電路的內(nèi)部輸入輸出Z=(z1,z2,…,zm)激勵(lì)Y=(y1,y2,…,yk)存儲(chǔ)電路的激勵(lì)信號(hào)組合電路的內(nèi)部輸出電路狀態(tài)轉(zhuǎn)移函數(shù)Qn+1=H(X,Q)輸出函數(shù)Z=F(X,Q)激勵(lì)函數(shù)Y=G(X,Q)時(shí)序電路確定輸入輸出及觸發(fā)條件B變化時(shí)A不一定變化A變化時(shí)B一定變化A在B下降沿變化A輸出,B輸入B下降沿觸發(fā)時(shí)序電路確定輸入輸出及觸發(fā)條件B、C不變時(shí)A變化A、C不變時(shí)B變化A不是輸出C在A或B上升沿變化A、B輸入,C輸出A和B上升沿觸發(fā)B不是輸出C變化時(shí)A或B必變化課程講授思路布爾邏輯量布爾邏輯運(yùn)算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號(hào)真值表波形圖電路功能信號(hào)代數(shù)式數(shù)學(xué)HDL硬件結(jié)構(gòu)硬件描述語言邏輯符號(hào)基本器件邏輯運(yùn)算觸發(fā)器專用集成電路功能電路通過連接線將所用的邏輯符號(hào)連接在一起構(gòu)成電路硬件描述語言采用專用語句以文本描述的方式構(gòu)建功能電路減少對(duì)邏輯化簡(jiǎn)的過度依賴直觀地利用規(guī)定的運(yùn)算符來實(shí)現(xiàn)功能有利于大規(guī)模電路的實(shí)現(xiàn)邏輯符號(hào)方式直觀看出邏輯關(guān)系、容易定義連接信號(hào)復(fù)雜的邏輯電路需要太多的符號(hào)及連接線描述麻煩硬件描述語言減少?gòu)?fù)雜邏輯的符號(hào)描述,便于維護(hù)設(shè)計(jì)者不易形成整體框架,不直觀邏輯符號(hào)與硬件描述語言同時(shí)使用兩者本質(zhì)是一致的邏輯符號(hào)描述應(yīng)用在模塊級(jí),用來描述整個(gè)電路的構(gòu)架硬件描述語言側(cè)重于功能級(jí)描述及系統(tǒng)的實(shí)現(xiàn)做到“電路在心中,程序在手中”避免設(shè)計(jì)過度軟件化而導(dǎo)致電路連接關(guān)系較亂。硬件描述語言邏輯符號(hào)硬件描述語言電路描述基本單元:邏輯運(yùn)算、觸發(fā)器、專用集成電路功能電路:通過連接線將所用的邏輯符號(hào)連接在一起構(gòu)成電路采用專用語句以文本描述優(yōu)點(diǎn)可以直觀看出邏輯關(guān)系,并非常容易定義連接信號(hào)可以減少對(duì)邏輯化簡(jiǎn)的過度依賴;可以直觀地利用規(guī)定的運(yùn)算符來實(shí)現(xiàn)功能,有利于大規(guī)模電路的實(shí)現(xiàn);可以減少?gòu)?fù)雜邏輯的符號(hào)描述,并且便于維護(hù)缺點(diǎn)復(fù)雜的邏輯電路需要太多的符號(hào)及連接線,比較麻煩不直觀,設(shè)計(jì)者不易形成整體框架應(yīng)用模塊級(jí),用來描述整個(gè)電路的構(gòu)架功能級(jí)描述及系統(tǒng)的實(shí)現(xiàn)電路在心中,代碼在手中避免設(shè)計(jì)過度軟件化而導(dǎo)致電路連接關(guān)系較亂VerilogHDL模塊最基本設(shè)計(jì)單元模塊聲明由模塊名稱和模塊輸入輸出端口列表組成module模塊名(端口名1,端口名2,...,端口名n);endmodule端口定義輸入input端口名1,端口名2,...,端口名n;輸出output端口名1,端口名2,...,端口名n;雙向inout端口名1,端口名2,...,端口名n;相同類型端口列表x[m],…,x[n]<類型>[m:n]xmoduletest(A,B,C,CP,F1,F2);inputA,B,C,CP;outputF1,F2;wireF1;regF2;always@(posedgeCP)F2<=F1;
assignF1=A&B|C;endmoduleVerilogHDL模塊信號(hào)聲明模塊中所用到的所有信號(hào)都進(jìn)行類型聲明連續(xù)型wire只要輸入有變化,輸出馬上無條件地反映不能作為存儲(chǔ)電路的狀態(tài)例:x是3位連線型信號(hào)wire[2:0]x;寄存器型reg一定要有觸發(fā)輸出才會(huì)反映輸入可以作為存儲(chǔ)電路的狀態(tài),也可以作為組合電路的輸出例:y和z為一寄存器型信號(hào),cnt為4位寄存器型信號(hào)regy,z;reg[3:0]cnt;moduletest(A,B,C,CP,F1,F2);inputA,B,C,CP;outputF1,F2;wireF1;regF2;always@(posedgeCP)F2<=F1;
assignF1=A&B|C;endmoduleVerilogHDL模塊邏輯功能定義持續(xù)賦值語句assign過程賦值塊always調(diào)用元件(元件例化)always語句是上升沿觸發(fā)的存儲(chǔ)電路assign語句是變量A、B、C的組合電路兩條語句是同時(shí)工作的F2鎖存當(dāng)前A、B、C產(chǎn)生的F1moduletest(A,B,C,CP,F1,F2);inputA,B,C,CP;outputF1,F2;wireF1;regF2;always@(posedgeCP)F2<=F1;
assignF1=A&B|C;endmodule所有語句都是并行同時(shí)執(zhí)行,與書寫先后無關(guān)VerilogHDL模塊模板module<頂層模塊名>(<輸入輸出端口列表>);
/*端口聲明*/output輸出端口列表;//輸出端口聲明input輸入端口列表;//輸入端口聲明
/*定義數(shù)據(jù)、信號(hào)類型,函數(shù)聲明*/wire信號(hào)名;reg信號(hào)名;/*邏輯功能定義*/
assign<結(jié)果信號(hào)名>=<表達(dá)式>;always@(<敏感信號(hào)表達(dá)式>)begin//過程賦值end/*例化模塊*/<調(diào)用模塊名><例化模塊名>(<端口列表>);
門元件關(guān)鍵字<例化門元件名>(<端口列表>);endmoduleVerilogHDL-運(yùn)算量常量三種類型整數(shù)、實(shí)數(shù)和字符串4種方式來表示邏輯狀態(tài)0表示邏輯0(低電平)、1表示邏輯1(高電平)、x表示不確定、z表示高阻態(tài)表示格式<位寬>'[b/d/o/h]<值>b、d、o、h分別代表為二、十、八、十六進(jìn)制parameter定義一個(gè)標(biāo)志符,代表一個(gè)常量parameter參數(shù)名1=表達(dá)式1,參數(shù)名2=表達(dá)式2,……;變量采用非負(fù)整數(shù)作為下標(biāo)來定義,變量的位數(shù)也稱為位寬reg[3:0]X;位寬為4的寄存器變量X,每位按先后順序分別標(biāo)識(shí)為X[3]、X[2]、X[1]和X[0]wire[1:4]Y;定義了位寬為4的連線型變量Y,每位按先后順序分別標(biāo)識(shí)為Y[1]、Y[2]、Y[3]和Y[4]8'hab、4'b0110、5'o17、6'd35parameterN=8,M=2;VerilogHDL-運(yùn)算符運(yùn)算符算術(shù)運(yùn)算符+(加)、-(減)、*(乘)、/(除)、%(求模)位運(yùn)算符&(按位與)、|(按位或)、~(按位非)、^(按位異或)、~^(按位同或)邏輯運(yùn)算符&&(邏輯與)、||(邏輯或)、!(邏輯非)關(guān)系運(yùn)算符<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、===(全等于)、!=(不等于)、!==(不全等于)縮位運(yùn)算符&(與)、~&(與非)、|(或)、~|(或非)、^(異或)、~^(同或)單目運(yùn)算,將運(yùn)算量的各位作為邏輯量進(jìn)行運(yùn)算符規(guī)定的操作移位運(yùn)算符<<(左移)、>>(右移)采用0進(jìn)行補(bǔ)充。條件運(yùn)算符運(yùn)算符為“?:”,它是三目運(yùn)算符<條件>?<表達(dá)式1>:<表達(dá)式2>若條件成立,則取表達(dá)式1的值,否則取表達(dá)式2的值。位拼接運(yùn)算符運(yùn)算符為“{}”將{}中的變量拼接為一個(gè)多位的變量重復(fù)拼接符為“{n{}}”重復(fù)n次后面的內(nèi)容后拼接在一起優(yōu)先級(jí)從高到低依次為(!、~)、(*、/、%)、(+、-)、(<<、>>)、(<、<=、>、>=)、(==、!=、===、!==)、(&、~&)、(^、~^)、(|、~|)、&&、||、?:VerilogHDL–行為語句過程語句always@(<觸發(fā)條件列表>)觸發(fā)條件列表也稱為敏感信號(hào)表達(dá)式,觸發(fā)條件寫在敏感信號(hào)表達(dá)式之中,當(dāng)觸發(fā)條件滿足時(shí),其后的語句才能被執(zhí)行觸發(fā)條件列表中的多個(gè)條件之間采用“or”來連接觸發(fā)條件分為兩類電平敏感型邊沿敏感型上升沿(由低電平變到高電平)下降沿(由高電平變到低電平)由一種類型的敏感信號(hào)來觸發(fā)不要將邊沿敏感型信號(hào)和電平敏感型信號(hào)列在一起always@(AorB)always@(A)//A發(fā)生改變時(shí)always@(posedgeA)//A上升沿時(shí)always@(negedgeA)//A下降沿時(shí)always@(*)//任一輸入變化時(shí)VerilogHDL–賦值語句塊語句begin-end賦值語句assign持續(xù)賦值用于組合邏輯的賦值always過程賦值非阻塞賦值在整個(gè)過程塊結(jié)束時(shí)才完成賦值操作并行賦值操作阻塞賦值語句結(jié)束后賦值操作完成串行執(zhí)行assignF=(A&B)|(~A&~C);always@(posedgecp)beginb<=c;a<=b;endalways@(posedgecp)beginb=c;a=b;end//非阻塞賦值示例modulenon_blocking_example;rega,b,c;initialbegina=0;b=0;c=0;a<=1;b<=a;c<=b;endendmodule//阻塞賦值示例moduleblocking_example;rega,b,c;initialbegina=0;b=0;c=0;a=1;b=a;c=bendendmodule//結(jié)果是:a=1,b=1,c=1//在下一個(gè)時(shí)鐘邊緣,結(jié)果是:a=1,b=0,c=0VerilogHDL-條件語句if–else語句①if(表達(dá)式)
語句/語句塊;②if(表達(dá)式)
語句1/語句塊1;else
語句2/語句塊2;③if(表達(dá)式1)
語句1/語句塊1;elseif(表達(dá)式2)
語句2/語句塊2;?elseif(表達(dá)式n)
語句n/語句塊n;else
語句n+1/語句塊n+1;case語句case、casez和casexcase(條件表達(dá)式)值1:語句1;值2:語句2;┇值n:語句n;default:語句n+1;endcase若干個(gè)值的執(zhí)行語句相同,可以將這幾個(gè)值采用“,”相連若為0、x和z則按“假”處理;若為1則按“真”處理case是全等比較,而對(duì)x和z值不敏感判定結(jié)果casecasexcasez01xz01xz01xz01000101110011010001110101x001011110011z000111111111VerilogHDL-組合電路采用assign采用過程賦值使用條件語句設(shè)計(jì)一定要列出所有條件分支if語句一定要加else語句case語句中值沒有全列出時(shí)一定加default語句moduletest(X,Z);input[n:1]X;output[m:1]Y;reg[m:1]Y;always@(*)//輸入變化時(shí)case(X) n’d0:Z<=; n’d1:Z<=;
? n’dN:Z<=; default:Z<=;endcaseendmoduleVerilogHDL-組合電路輸入輸出ABF1F200CC01BC?10BC?11CC輸入輸出輸入輸出ABCF1F2ABCF1F20000010001001111010001011110000111011111moduletest(A,B,C,F1,F2);inputA,B,C;outputF1,F2;regF1,F2;always@(*)case({A,B,C})0,5,6:{F1,F2}<=2'b00;1,2,7:{F1,F2}<=2'b11;3:{F1,F2}<=2'b10;4:{F1,F2}<=2'b01;endcaseendmodulemoduletest(A,B,C,F1,F2);inputA,B,C;outputF1,F2;regF1,F2;always@(*)case({A,B})0,3:{F1,F2}<={C,C};1,2:{F1,F2}<={B,~C};endcaseendmodulemoduletest(A,B,C,D,F1,F2,F3);inputA,B,C,D;outputF1,F2,F3;assign{F1,F2,F3}=A?3'b000:B?3'b010:C?3'b100:{2'b11,~D};endmoduleVerilogHDL-組合電路moduletest(A,B,C,D,F1,F2,F3);inputA,B,C,D;outputF1,F2,F3;regF1,F2,F3;always@(*)casex({A,B,C})3'b1xx:{F1,F2,F3}<=3'b000;3'b01x:{F1,F2,F3}<=3'b010;3'b001:{F1,F2,F3}<=3'b100;3'b000:{F1,F2,F3}<={2'b11,~D};endcaseendmodule輸入輸出ABCDF1F2F31
00001
010001
10000011100000111moduletest(A,B,C,D,F1,F2,F3);inputA,B,C,D;outputF1,F2,F3;regF1,F2,F3;always@(*)if(A){F1,F2,F3}<=3'b000;elseif(B){F1,F2,F3}<=3'b010;elseif(C){F1,F2,F3}<=3'b100;else{F1,F2,F3}<={2'b11,~D};endmoduleVerilogHDL–仿真新建模塊文件xxx.v定義模塊既可以一個(gè)模塊一個(gè)文件,也可以多個(gè)模塊多個(gè)文件但不能出現(xiàn)多個(gè)相同名稱的模塊新建測(cè)試文件xxx_tb.v定義一個(gè)測(cè)試模塊,將所用到的模塊進(jìn)行例化,初始化輸入信號(hào)例化模塊名實(shí)例名(.端口1(信號(hào)1),端口2(信號(hào)2),…,端口M(信號(hào)M));module模塊名(端口1,端口2,…,端口M);┆endmoduletest(A,B,F)testu_0(.A(x),.B(y),.F(z));VerilogHDL–仿真新建測(cè)試文件xxx_tb.v例化初始化采用initial語句對(duì)輸入信號(hào)的描述reg型變量賦初值不帶觸發(fā)條件,過程中的塊語句沿時(shí)間軸只執(zhí)行一次,且所賦值的信號(hào)必須是reg型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 影響摩托車定價(jià)的因素分析-洞察分析
- 虛擬現(xiàn)實(shí)考古實(shí)踐-洞察分析
- 云計(jì)算與大數(shù)據(jù)融合-第1篇-洞察分析
- 香精在康復(fù)醫(yī)療領(lǐng)域的應(yīng)用前景考核試卷
- 物體殘留預(yù)防與干預(yù)-洞察分析
- 土地資源價(jià)值動(dòng)態(tài)監(jiān)測(cè)-洞察分析
- 隧道防水施工工藝優(yōu)化-第1篇-洞察分析
- 倉(cāng)庫(kù)保管員技師論文范文
- 施工現(xiàn)場(chǎng)安全防護(hù)技術(shù)措施
- 四川省2023年普通高中學(xué)業(yè)水平考試物理試卷 含解析
- 2024-2025學(xué)年人教版八年級(jí)上學(xué)期數(shù)學(xué)期末復(fù)習(xí)試題(含答案)
- 2024年醫(yī)院康復(fù)科年度工作總結(jié)(4篇)
- 五金耗材材料項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 防網(wǎng)絡(luò)電信詐騙主題班會(huì)
- 中職無人機(jī)應(yīng)用技術(shù)跨行業(yè)人才培養(yǎng)方案
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 高級(jí)管理招聘面試題與參考回答2024年
- 國(guó)際合作項(xiàng)目風(fēng)險(xiǎn)管理
- 臨床5A護(hù)理模式
- 第一單元《認(rèn)識(shí)物聯(lián)網(wǎng)》第1課 互聯(lián)網(wǎng)和物聯(lián)網(wǎng) 教案 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)七年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論