版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第八章可編程邏輯電路第一頁,共42頁。8.1概述高密度可編程邏輯器件HDPLD有:CPLD、FPGA。低密度可編程邏輯器件LDPLD有:PROM、PLA、PAL和GAL。常見的PLD器件有:PROM、PLA、PAL、GAL、CPLD和FPGA等。PLD(ProgrammableLogicDevices)是一種“與-或”兩級結(jié)構(gòu)的邏輯器件。一、PLD器件概念及分類2第二頁,共42頁。輸入緩沖電路與陣列或陣列輸出緩沖電路輸入輸出二、PLD的基本結(jié)構(gòu)3第三頁,共42頁。三、PLD電路的表示方法及有關(guān)符號AAA1AAA(2)PLD與門表示法ABCF=ABC&(1)PLD緩沖表示法4第四頁,共42頁。F=A+B+CABC≥1硬線連接×被編程(接通)單元被刪除(開斷)單元(4)PLD連接的表示法(3)PLD或門表示法5第五頁,共42頁。與或陣列是PLD器件中最基本的結(jié)構(gòu),通過改變“與陣列”和“或陣列”的內(nèi)部連接就可實現(xiàn)不同的邏輯功能。器件名與陣列或陣列輸出電路PROM固定可編程固定PLA可編程可編程固定PAL可編程固定固定GAL可編程固定可組態(tài)四、與或陣列6第六頁,共42頁。五、宏單元與或陣列在PLD器件中只能實現(xiàn)組合邏輯電路的功能,PLD器件的時序電路功能則由包含觸發(fā)器或寄存器的邏輯宏單元實現(xiàn)。邏輯宏單元(OutputLogicMicroCell)的作用為:(1)提供時序電路需要的寄存器或觸發(fā)器;(2)提供多種形式的輸入/輸出方式;(3)提供內(nèi)部信號反饋,控制輸出邏輯極性;(4)分配控制信號,如寄存器的時鐘和復(fù)位信號,三態(tài)門的輸出使能信號。7第七頁,共42頁。電路行為的先后順序通過時鐘節(jié)拍順序來體現(xiàn)。8.1用VerilogHDL設(shè)計邏輯電路VerilogHDL是一種硬件語言,最終是為了產(chǎn)生實際的硬件電路或?qū)τ布娐愤M行仿真。利用VerilogHDL編程時,要時刻牢記Verilog是硬件語言,要時刻將VerilogHDL語句與硬件電路對應(yīng)起來;電路在物理上是并行工作(只要電源接通,所有電路都同時工作),要求在VerilogHDL的module中,所有描述語句(包括連續(xù)賦值語句assign、行為語句塊always/initial、模塊實例化)都是并發(fā)執(zhí)行的;8第八頁,共42頁。創(chuàng)建靈活,可以創(chuàng)建組合邏輯和時序邏輯電路;能夠?qū)崿F(xiàn)端口到端口時延、路徑時延、設(shè)計的時序檢查;能夠描述多層次設(shè)計,設(shè)計規(guī)??纱罂尚。蝗藱C對話方便(設(shè)計者與EDA工具間交互),ASIC和FPGA設(shè)計師可用它來編寫可綜合的代碼;;可以創(chuàng)建測試激勵Testbench(特殊型module);提供強有力的文件讀寫能力;可以顯式地對并發(fā)和定時進行建模;描述系統(tǒng)的結(jié)構(gòu),做高層次的仿真;驗證工程師編寫各種層次的測試模塊對具體電路設(shè)計工程師所設(shè)計的模塊進行全面細(xì)致的驗證;庫模型的設(shè)計:可以用于描述ASIC和FPGA的基本單元(Cell)部件,也可以描述復(fù)雜的宏單元(MacroCell);VerilogHDL語言的描述能力能夠通過使用編程語言接口(PLI)機制進一步擴展。Verilog的主要功能9第九頁,共42頁。Verilog的多種描述方式提供了多種描述方式:開關(guān)級描述方式(開關(guān)級建模)、門級描述方式(門級建模)、數(shù)據(jù)流級描述方式(數(shù)據(jù)流級建模)和行為級描述方式(行為級建模);設(shè)計能在多個抽象級別上進行:開關(guān)級、門級、RTL級、算法級等。10第十頁,共42頁。(1)Verilog的開關(guān)級描述方式能夠使用內(nèi)置開關(guān)級原語對設(shè)計完整建模;開關(guān)級基本結(jié)構(gòu)模型:內(nèi)置pmos、nmos等。(2)Verilog的門級描述方式能夠使用內(nèi)置門級原語對設(shè)計完整建模;門級基本結(jié)構(gòu)模型:內(nèi)置and、or、nand等。(3)Verilog的數(shù)據(jù)流級描述方式能夠使用內(nèi)置數(shù)據(jù)流級原語assign和位運算符對設(shè)計完整建模;位運算符有:&、︳、~、?、~?等。11第十一頁,共42頁。(4)Verilog的行為級描述方式能夠使用結(jié)構(gòu)和算法對設(shè)計完整建模;常用語句有:initial(只執(zhí)行一次)always(循環(huán)執(zhí)行)還提供一些高級語言結(jié)構(gòu),如if語句、case語句、循環(huán)語句等。12第十二頁,共42頁。8.2VerilogHDL基本語法VerilogHDL的數(shù)值有四類:0(邏輯0)、1(邏輯1)、Z/z(高阻)、X/x(未知)。1)整數(shù)型常量定義格式:<位寬><’進制><數(shù)字>1、數(shù)值其中:o(O)表示八進制;b(B)表示二進制;d(D)表示十進制;h(H)表示十六進制。2、常量注意:單引號和進制之間不能有空格。例:3’b001、3’b01、8’b1111001、’b001。13第十三頁,共42頁。由十進制計數(shù)法或科學(xué)計數(shù)法的形式組成。2)實數(shù)型常量例:12.56、1.345、1234.6567。例:1.56E2、5E-3。3)字符串型常量由雙引號內(nèi)的字符序列組成,用一串8位二進制ASCII碼的形式表示,每一個8位二進制ASCII碼表示一個字符。例:”hello”、”abc”。14第十四頁,共42頁。3、數(shù)據(jù)類型及變量數(shù)據(jù)類型與基本邏輯單元建庫有關(guān),由半導(dǎo)體廠家和EDA工具廠家共同提供。VerilogHDL有兩大類數(shù)據(jù)類型1)線網(wǎng)類型netstype表示Verilog結(jié)構(gòu)化元件間的物理連線。它的值由驅(qū)動元件的值決定,例如:連續(xù)賦值或門的輸出。如果沒有驅(qū)動元件連接到線網(wǎng),線網(wǎng)的缺省值為Z(高阻)。registertype表示一個抽象的數(shù)據(jù)存儲單元,它只能在always語句和initial語句中被賦值,并且它的值從一個賦值到另一個賦值被保存下來。寄存器類型的變量的缺省值為X(未知)。2)寄存器(變量)類型15第十五頁,共42頁。nets型變量指輸出始終根據(jù)輸入變化而更新其值的變量,一般是指硬件電路中的各種物理連接。1)線網(wǎng)類型VerilogHDL中提供了多種nets型變量,但最常用的是wire型變量。VerilogHDL模塊中的輸入/輸出信號類型缺省時自動定義為wire型。wire型變量的定義格式如下:wire變量名1,變量名2,……,變量名n;例1:wirea,b;//定義了兩個1位的wire型變量a,b例2:wire[7:0]databus;//定義了8位寬度的數(shù)據(jù)總線16第十六頁,共42頁。2)寄存器(變量)類型register型變量對應(yīng)的是具有狀態(tài)保持作用的電路元件,如觸發(fā)器、寄存器等。register型變量與nets型變量的根本區(qū)別:register型變量需要被明確地賦值,并且在被重新賦值前一直保持原值。所以在設(shè)計中要將register型變量放在過程塊語句(如Initial,always)中賦值。reg型變量的定義格式如下:reg變量名1,變量名2,……,變量名n;例2:reg[7:0]data;//定義data為8位寬的數(shù)據(jù)例1:rega,b;//定義了兩個一位的reg型變量a,b17第十七頁,共42頁。8.2.4VerilogHDL的基本結(jié)構(gòu)1、Verilog-HDL語法基礎(chǔ)(1)注釋要用“/*”與“*/”,或在注釋前用“//”。(2)標(biāo)識符(如實例中的模塊名)可用英文及下劃線,標(biāo)識符的開始不可用數(shù)字,大小寫文字有區(qū)別。(3)module與endmodule相呼應(yīng),成對出現(xiàn)。(4)input定義輸入信號變量。(5)output定義輸出信號變量。(6)在門級描述中,調(diào)用Verilog-HDL具有的內(nèi)置門實例語句,描述順序為“(輸出,輸入1,輸入2········);”的形式。18第十八頁,共42頁。(7)在數(shù)據(jù)流描述方式中,以保留字assign和位運算符來描述邏輯表達式。(8)最后寫入endmodule,注意行末沒有“;”。2、模塊的定義module
模塊名(端口參數(shù)):moduleG(A,B,F):
端口定義---inputA,B;outputF;
寄存器定義---regC;
線網(wǎng)定義------netD;
內(nèi)置門原語---andG1(F,A,B);
或assign語句--assignF=A&B;endmodule19第十九頁,共42頁。例:右圖為一個2輸入與門模塊,其模塊名AND_G2,輸入為A、B,輸出為F。&A
BF模塊AND_G2方法一稱為門級描述方式或結(jié)構(gòu)級的建模moduleAND_G2(A,B,F);inputA,B;outputF;andU1(F,A,B);endmodule在Verilog-HDL中,屬于內(nèi)置門實例語句的有:and(與)、nand(與非)、or(或)、nor(或非)、xor(異或)、xnor(同或)、buf(緩沖器)。20第二十頁,共42頁。方法二稱為數(shù)據(jù)流級描述方式或數(shù)據(jù)流級建模moduleAND_G2(A,B,F);inputA,B;outputF;assignF=A&B;endmodule在這里用assign來描述電路的邏輯功能,這里用了位運算符“&”。位運算符的種類和功能有:&:AND;︳:OR;~:NOT;?:XOR;~?:XNOR位運算的優(yōu)先順序如下:~、&、?、~?、︳21第二十一頁,共42頁。8.4基本邏輯門電路的VerilogHDL1、或門邏輯電路的描述
B≥1F模塊OR_G2AmoduleOR_G2(A,B,F);inputA,B;outputF;orU2(F,A,B);endmodule方法一方法二moduleOR_G2(A,B,F);inputA,B;outputF;assignF=A|B;endmodule22第二十二頁,共42頁。2、非門邏輯電路的描述方法一方法二
1F模塊NOT_GAmoduleNOT_G(A,F);inputA;outputF;notU4(F,A);endmodulemoduleNOT_G(A,F);inputA;outputF;assignF=~A;endmodule23第二十三頁,共42頁。
B&F模塊NAND_G2A3、與非門邏輯電路的描述方法一方法二moduleNAND_G2(A,B,F);inputA,B;outputF;nandU5(F,A,B);endmodulemoduleNAND_G2(A,B,F);inputA,B;outputF;assignF=~(A&B);endmodule24第二十四頁,共42頁。4、或非門邏輯電路的描述方法一方法二
B≥1F模塊NOR_G2AmoduleNOR_G2(A,B,F);inputA,B;outputF;norU6(F,A,B);endmodulemoduleNOR_G2(A,B,F);inputA,B;outputF;assignF=~(A|B);endmodule25第二十五頁,共42頁。5、緩沖器邏輯電路的描述方法一方法二
F模塊BUF_GAmoduleBUF_G(A,F);inputA;outputF;bufU7(F,A);endmodulemoduleBUF_G(A,F);inputA;outputF;assignF=A;endmodule26第二十六頁,共42頁。6、與或非門邏輯電路的描述moduleG2(A,B,C,D,F);//模塊名為G2inputA,B,C,D;//定義輸入端口
outputF;//定義輸出端口
assignF=~((A&B)|(C&D));//功能描述endmodule方法二ABCDF≥1
&27第二十七頁,共42頁。moduleG2(A,B,C,D,F);//模塊名為G2inputA,B,C,D;//定義輸入端口
outputF;//定義輸出端口
wireAandB,CandD;//線網(wǎng)定義
andU1(AandB,A,B);andU2(CandD,C,D);norU3(F,AandB,CandD);//功能描述endmodule方法一ABCDF≥1
&28第二十八頁,共42頁。8.5用VerilogHDL的描述方式1、設(shè)計一個4選1數(shù)據(jù)選擇器電路(MUX)D0D1D2D3A1A0YmoduleMUX4_1(Y,D0,D1,D2,D3,A0,A1);input[3:0]D0,D1,D2,D3;outputY;input[1:0]A0,A1;方法一:數(shù)據(jù)流級描述方式endmoduleassignY=((~A1)&(~A0)&D0)|((~A1)&A0&D1)|(A1&(~A0)&D2)|(A1&A0&D3);29第二十九頁,共42頁。moduleMUX4_1(Y,D0,D1,D2,D3,A0,A1);input[3:0]D0,D1,D2,D3;outputY;input[1:0]A0,A1;方法二:門級描述方式endmodulenotU1(A0n,A0);wireA0n,A1n,and1,and2,and3,and4;andU3(and1,A1n,A0n,D0);notU2(A1n,A1);andU4(and2,A1n,A0,D1);andU5(and3,A1,A0n,D2);andU6(and4,A1,A0,D3);orU7(Y,and1,and2,and3,and4);30第三十頁,共42頁。方法三:行為級描述方式過程塊結(jié)構(gòu)的定義initial
語句塊;1、initial過程塊在0時刻開始執(zhí)行,只執(zhí)行一次。always@(敏感事件表)
語句塊;2、always過程塊在0時刻開始無限循環(huán),反復(fù)執(zhí)行。31第三十一頁,共42頁。分支語句if(條件表達式1)語句1;
elseif(條件表達式2)語句2;……else語句n;1、if_else語句case(控制表達式)
分支項表達式1:語句1;
分支項表達式2:語句2;
……default:語句n;endcase2、case語句32第三十二頁,共42頁。D0D1D2D3A1A0Y4選1數(shù)據(jù)選擇器有:33第三十三頁,共42頁。2’b01:Y=D1;case(A)2’b00:Y=D0;endmodule2’b11:Y=D3;2’b10:Y=D2;endcase方法三:行為級描述方式moduleMUX4_1(Y,D0,D1,D2,D3,A);input[3:0]D0,D1,D2,D3;outputregY;input[1:0]A;always@(D0orD1orD2orD3orA)使用case語句實現(xiàn)34第三十四頁,共42頁。使用if_else語句實現(xiàn)if(A==2’b00)Y=D0;elseif(A==2’b01)Y=D1;endmoduleelseY=D3;elseif(A==2’b10)Y=D2;moduleMUX4_1(Y,D0,D1,D2,D3,A);input[3:0]D0,D1,D2,D3;outputregY;input[1:0]A;always@(D0orD1orD2orD3orA)35第三十五頁,共42頁。3線—8線譯碼器74LS138(T4138)的真值表如下:2、設(shè)計一個3線-8線譯碼器電路A2A1A0Z7Z6Z5Z4Z3Z2Z1Z0000111111100011111110101011111011011111101111001110111110111011111110101111111110111111136第三十六頁,共42頁。1:out=8’b11111101;case(in)0:out=8’b11111110;endmodule3:out=8’b11110111;2:out=8’b11111011;endcasemoduledecoder3_8(out,in);outputreg[7:0]out;input[2:0]in;always@(in)5:out=8’b11011111;4:out=8’b11101111;7:out=8’b01111111;6:out=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶市潼南區(qū)202-2026學(xué)年九年級上學(xué)期期末語文試題(含答案)(含解析)
- 2026福建福州市水路運輸應(yīng)急保障中心編外人員招聘1人備考題庫及答案詳解1套
- 2026浙江紹興市產(chǎn)融科技服務(wù)有限公司項目制人員招聘2人備考題庫及完整答案詳解一套
- 畜禽幼崽保育與飼養(yǎng)技術(shù)手冊
- 2026西北工業(yè)大學(xué)計算機學(xué)院計算與藝術(shù)交叉研究中心非事業(yè)編制人員招聘1人備考題庫(陜西)附答案詳解
- 2026海南??谑旋埲A區(qū)公費師范生招聘2人備考題庫參考答案詳解
- 2026年影視后期剪輯特效制作課程
- 2026年1月浙江省高考(首考)化學(xué)試題(含標(biāo)準(zhǔn)答案及解析)
- 超重失重課件
- 職業(yè)噪聲暴露的健康管理路徑
- 四川省遂寧市2026屆高三上學(xué)期一診考試英語試卷(含答案無聽力音頻有聽力原文)
- 福建省寧德市2025-2026學(xué)年高三上學(xué)期期末考試語文試題(含答案)
- 建筑施工行業(yè)2026年春節(jié)節(jié)前全員安全教育培訓(xùn)
- 2026屆高考語文復(fù)習(xí):小說人物形象復(fù)習(xí)
- 2026年山東省煙草專賣局(公司)高校畢業(yè)生招聘流程筆試備考試題及答案解析
- 八年級下冊《昆蟲記》核心閱讀思考題(附答案解析)
- 2025年中職藝術(shù)設(shè)計(設(shè)計理論)試題及答案
- 鐵路交通法律法規(guī)課件
- 2025年體育行業(yè)專家聘用合同范本
- 對于尼龍件用水煮的原因分析
- ECMO患者血糖控制與胰島素泵管理方案
評論
0/150
提交評論