數(shù)字系統(tǒng)設(shè)計(jì)(上)_第1頁(yè)
數(shù)字系統(tǒng)設(shè)計(jì)(上)_第2頁(yè)
數(shù)字系統(tǒng)設(shè)計(jì)(上)_第3頁(yè)
數(shù)字系統(tǒng)設(shè)計(jì)(上)_第4頁(yè)
數(shù)字系統(tǒng)設(shè)計(jì)(上)_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)字電路設(shè)計(jì)〔上〕主要內(nèi)容數(shù)字系統(tǒng)設(shè)計(jì)局部講座概述常用數(shù)字系統(tǒng)單元設(shè)計(jì)范例常用組合邏輯單元常用時(shí)序邏輯單元常用綜合邏輯設(shè)計(jì)示范數(shù)字系統(tǒng)設(shè)計(jì)技巧舉例〔上〕QuartusII使用流程宏函數(shù)使用三態(tài)門使用課后習(xí)題數(shù)字系統(tǒng)設(shè)計(jì)局部講座說(shuō)明主要講座內(nèi)容常用數(shù)字系統(tǒng)設(shè)計(jì)范例常用數(shù)字系統(tǒng)設(shè)計(jì)技巧數(shù)字系統(tǒng)設(shè)計(jì)本卷須知講座與數(shù)字電路課程教學(xué)的差異課時(shí)安排內(nèi)容覆蓋面能力側(cè)重點(diǎn)數(shù)字系統(tǒng)設(shè)計(jì)局部講座說(shuō)明〔續(xù)〕課后習(xí)題要求兩次課后都有習(xí)題布置作業(yè)電子檔遞交:文件命名要求:姓名+學(xué)號(hào)+作業(yè)名其它PLD設(shè)計(jì)開(kāi)發(fā)平臺(tái)使用自學(xué)為主HDL語(yǔ)言〔不限種類〕自學(xué)為主數(shù)字電路課程內(nèi)容回憶數(shù)制和碼制組合邏輯電路組合邏輯電路的分析組合邏輯電路的設(shè)計(jì)時(shí)序邏輯電路時(shí)序邏輯電路的分析時(shí)序邏輯電路的設(shè)計(jì)培訓(xùn)關(guān)注點(diǎn)培訓(xùn)關(guān)注點(diǎn)數(shù)字電路課程內(nèi)容回憶〔續(xù)〕組合邏輯設(shè)計(jì)流程時(shí)序邏輯設(shè)計(jì)流程數(shù)字電路課程內(nèi)容回憶〔續(xù)〕典型組合邏輯單元案例編碼/譯碼器數(shù)據(jù)選擇器查找表/ROM典型時(shí)序邏輯單元案例計(jì)數(shù)器移位存放器數(shù)字系統(tǒng)設(shè)計(jì)要點(diǎn)編碼/狀態(tài)的優(yōu)化選擇中小規(guī)模的邏輯電路單元拆分基于HDL和PLD器件的邏輯設(shè)計(jì)名詞解釋HDL:HardwareDescriptionLanguagePLD:ProgrammableLogicDevice技術(shù)優(yōu)勢(shì)兼容原邏輯電路設(shè)計(jì)方法增加電路行為描述設(shè)計(jì)方法器件數(shù)量減少、設(shè)計(jì)效率提升、系統(tǒng)可靠性提升組合邏輯電路單元設(shè)計(jì)范例編碼器/譯碼器多路數(shù)據(jù)選擇器編碼器/譯碼器設(shè)計(jì)案例8-3編碼器〔VerilogHDL設(shè)計(jì)〕3-8譯碼器〔電路圖設(shè)計(jì)〕41MUX設(shè)計(jì)案例41MUX〔VHDL設(shè)計(jì)〕41MUX〔電路圖設(shè)計(jì)〕時(shí)序邏輯電路單元設(shè)計(jì)范例計(jì)數(shù)器移位存放器有限狀態(tài)機(jī)計(jì)數(shù)器設(shè)計(jì)案例

可正向、倒向計(jì)數(shù)器異步清零同步置數(shù)計(jì)數(shù)器設(shè)計(jì)案例具體時(shí)序仿真結(jié)果時(shí)鐘三分頻設(shè)計(jì)案例時(shí)鐘三分頻設(shè)計(jì)案例具體時(shí)序仿真結(jié)果有限狀態(tài)機(jī)〔FSM〕設(shè)計(jì)根底FSM分米勒型(Mealy)和摩爾型(Moore)兩種,前者的輸出取決于機(jī)器狀態(tài)和輸入,后者的輸出與輸入無(wú)關(guān)。FSM的設(shè)計(jì)方法有兩類:一種是將狀態(tài)的轉(zhuǎn)移和狀態(tài)的操作寫在同一個(gè)模塊中,另一個(gè)是將狀態(tài)轉(zhuǎn)移單獨(dú)寫成一個(gè)模塊。后者利于綜合器優(yōu)化代碼、布局布線。Moore型FSMalways@(w,state)begin case(state) //Definestatecircle A: if(w) next_state=B; else next_state=A; B: if(w) next_state=C; else next_state=A; C: if(w) next_state=C; else next_state=A; default: next_state=A; endcase z=(state==C); //Defineoutputend//Definethesequentialblockalways@(posedgeclkornegedgerst)begin if(!rst) state<=A; else state<=next_state;endendmoduleA為初始狀態(tài);w為輸入;z為輸出module simple(clk,rst,w,z);input clk,rst,w;output z;reg z;reg[2:1] state,next_state;parameter[2:1]A=2'b00,B=2'b01,C=2'b10;Moore型FSM波形圖Mealy型FSM//Definethenextstateandoutputcombinationcircuitsalways@(w,state)begin case(state) A:if(w)beginz=0;next_state=B;endelsebeginz=0;next_state=A;end B:if(w)beginz=1;next_state=B;endelsebeginz=0;next_state=A;end endcaseendendmodulemodulemealy(clk,rst,w,z);input clk,rst,w;output z;reg z;reg state,next_state;parameterA=1'b0,B=1'b1;//Definethesequentialblockalways@(posedgeclkornegedgerst)beginif(!rst) state<=A;else state<=next_state;endMealy型FSM波形圖流水燈設(shè)計(jì)案例需求分析/設(shè)計(jì)方案流水燈需求分析通過(guò)8個(gè)單色LED實(shí)現(xiàn)流水燈顯示效果流水燈設(shè)計(jì)方案用CASE語(yǔ)句實(shí)現(xiàn)用移位存放器實(shí)現(xiàn)用有限狀態(tài)機(jī)實(shí)現(xiàn)狀態(tài)LED顯示要求Idle●●●●●●●●state0●●●●●●●○state1●●●●●●○○state2●●●●●○○○state3●●●●○○○○state4●●●○○○○○state5●●○○○○○○state6●○○○○○○○state7○○○○○○○○流水燈設(shè)計(jì)之CASE語(yǔ)句實(shí)現(xiàn)modulelamp(rst,clk,state);input rst,clk;output[7:0] state;reg[7:0] state,next_state;parameter Idle=8'b11111111, state0=8'b11111110, state1=8'b11111100, state2=8'b11111000, state3=8'b11110000, state4=8'b11100000, state5=8'b11000000, state6=8'b10000000, state7=8'b00000000;always@(posedgeclkornegedgerst)begin if(!rst) state<=Idle; else state<=next_state;endalways@(state)begin case(state) Idle: next_state<=state0; state0: next_state<=state1; state1: next_state<=state2; state2: next_state<=state3; state3: next_state<=state4; state4: next_state<=state5; state5: next_state<=state6; state6: next_state<=state7; state7: next_state<=Idle; default: next_state<=Idle; endcaseendendmoduleQuestion:如果流水燈效果要求為雙向移動(dòng),本程序如何修改?流水燈波形注1:CPLD實(shí)驗(yàn)板上的LED當(dāng)電平為0時(shí)亮,為1時(shí)滅;注2:實(shí)際的時(shí)鐘需要適當(dāng)降低到人眼可以識(shí)別的變化范圍內(nèi)。流水燈設(shè)計(jì)之移位存放器實(shí)現(xiàn)modulelamp(rst,clk,state);input rst,clk;output[7:0] state;reg[7:0] state,next_state;always@(posedgeclkornegedgerst)begin if(!rst) state<=8'b11111111; else state<=next_state; endalways@(state)begin if(state==8'b000000000) next_state<=8'b11111111; else next_state<=state<<1;endendmoduleQuestions:如果流水燈效果要求為雙向移動(dòng),本程序如何修改?如果流水燈跳變節(jié)奏需要有變化,本程序如何修改?本程序原設(shè)計(jì)本身是否有缺乏?流水燈設(shè)計(jì)之有限狀態(tài)機(jī)實(shí)現(xiàn)modulelamp(rst,clk,w,state);input rst,clk,w;output[7:0]state;reg[7:0] state,next_state;parameterIdle =8'b11111111, state0 =8'b11111110, state1 =8'b11111100, state2 =8'b11111000, state3 =8'b11110000, state4 =8'b11100000, state5 =8'b11000000, state6 =8'b10000000, state7 =8'b00000000;always@(posedgeclkornegedgerst)begin if(!rst) state<=Idle; else state<=next_state;endalways@(stateorw)begin case(state) Idle: begin if(w) next_state<=state0; else next_state<=Idle; end state0:begin if(w) next_state<=state1; else next_state<=state0; end state1: … state2: … …………… state7: … default: next_state<=Idle; endcaseendendmodule三種流水燈設(shè)計(jì)比照移位操作語(yǔ)句設(shè)計(jì)移位操作與流水燈操作統(tǒng)一,程序設(shè)計(jì)簡(jiǎn)易且易于理解CASE語(yǔ)句設(shè)計(jì)狀態(tài)轉(zhuǎn)換條件單一時(shí)的簡(jiǎn)易FSM設(shè)計(jì)方法有限狀態(tài)機(jī)設(shè)計(jì)具備復(fù)雜狀態(tài)轉(zhuǎn)換設(shè)計(jì)能力程序擴(kuò)展能力強(qiáng)程序本身語(yǔ)句復(fù)雜度偏高*有限狀態(tài)機(jī)是邏輯系統(tǒng)設(shè)計(jì)中重要的設(shè)計(jì)手段,需要熟練掌握和靈活應(yīng)用。波形序列發(fā)生器設(shè)計(jì)案例波形序列發(fā)生器設(shè)計(jì)案例〔續(xù)〕波形序列發(fā)生器設(shè)計(jì)案例具體時(shí)序仿真結(jié)果程序設(shè)計(jì)含嵌套式有限狀態(tài)機(jī)設(shè)計(jì)思想交通燈工程設(shè)計(jì)示范〔一〕交通燈工程要求說(shuō)明

為某路口設(shè)計(jì)交通燈,控制2組紅、綠、黃指示燈及兩組〔各兩位〕七段碼數(shù)字指示燈。兩組紅、綠、黃指示燈分別控制東西和南北兩個(gè)方向的通行情況。要求設(shè)計(jì)兩種工作狀態(tài):日間正常態(tài)和夜間休息態(tài),由一個(gè)輸入信號(hào)控制兩狀態(tài)之間的切換。夜間休息態(tài)要求數(shù)字燈顯示為“00〞,兩個(gè)方向上都顯示閃爍的黃燈〔0.5Hz左右〕,以示慢行。日間正常態(tài)要求兩方向交替通行,南北方向通行時(shí)間為32秒〔秒為粗略值,相近即可,下同〕,東西方向通行時(shí)間為28秒,兩位數(shù)碼指示燈顯示倒數(shù)計(jì)時(shí),計(jì)數(shù)的最后兩秒在通行方向由綠燈變?yōu)轱@示黃燈,非通行方向保持紅燈不變。交通燈工程設(shè)計(jì)示范〔二〕端口分析輸入:時(shí)鐘信號(hào)日夜模式控制輸出:南北方向交通燈東西方向交通燈南北方向計(jì)時(shí)顯示東西方向計(jì)時(shí)顯示交通燈工程設(shè)計(jì)示范〔三〕功能清單狀態(tài)0(s0)狀態(tài)1(s1)狀態(tài)2(s2)狀態(tài)3(s3)狀態(tài)4(s4)南北方向紅綠燈黃燈(閃爍)綠燈黃燈紅燈紅燈南北方向數(shù)碼管00(閃爍)30~12~128~32~1東西方向紅綠燈黃燈(閃爍)紅燈紅燈綠燈黃燈東西方向數(shù)碼管00(閃爍)32~32~126~12~1注:此處選擇與實(shí)際應(yīng)用接近的倒數(shù)計(jì)數(shù)方案。交通燈工程設(shè)計(jì)示范〔四〕設(shè)計(jì)方案1以MUX為核心設(shè)計(jì)方案2以狀態(tài)機(jī)為核心設(shè)計(jì)方案3狀態(tài)機(jī)嵌套交通燈工程設(shè)計(jì)示范〔五〕硬件實(shí)驗(yàn)平臺(tái)推薦CPLDDSK+交通燈顯示電路CPLDDSK×2設(shè)計(jì)方案二說(shuō)明分頻器clk

clk_second交通燈主控模塊clk

DaySN[2..0]

EW[2..0]

LED_ns[7..0]

LED_ew[7..0]

七段碼譯碼器DB

SEG

DB

SEG

DB

SEG

DB

SEG

1

2

3

4

clk

change兩對(duì)數(shù)碼管兩組紅綠燈設(shè)計(jì)方案二說(shuō)明〔續(xù)〕狀態(tài)1〔夜間〕黃燈閃爍狀態(tài)0〔南北綠〕主計(jì)數(shù)器從30到1狀態(tài)2〔南北黃〕從計(jì)數(shù)器從2到1狀態(tài)3〔東西綠〕主計(jì)數(shù)器從26到1狀態(tài)4〔東西黃〕從計(jì)數(shù)器從2到1設(shè)計(jì)方案二說(shuō)明〔續(xù)〕七段碼顯示模塊譯碼器〔case語(yǔ)句優(yōu)先〕分頻模塊計(jì)數(shù)器主控模塊核心狀態(tài)機(jī)主/從計(jì)數(shù)器模塊帶置數(shù)/使能控制的遞減計(jì)數(shù)器其它綜合邏輯設(shè)計(jì)案例列舉電子鐘設(shè)計(jì)試設(shè)計(jì)一個(gè)電子鐘,正常情況下能顯示小時(shí)和分鐘信息〔四位七段碼〕,中間間隔2個(gè)LED燈每秒閃爍一次,當(dāng)按某一按鍵后七段碼切換為秒數(shù)顯示。串并轉(zhuǎn)換試設(shè)計(jì)一個(gè)串并轉(zhuǎn)換電路模塊,能實(shí)現(xiàn)串行數(shù)據(jù)到8位并行數(shù)據(jù)的轉(zhuǎn)換功能〔輸入:clk,reset,en,datas;輸出:[7:0]datap〕,注意數(shù)據(jù)緩沖設(shè)計(jì)。QuartusII軟件使用QuartusII是個(gè)集成的PLD設(shè)計(jì)開(kāi)發(fā)環(huán)境,功能涵蓋設(shè)計(jì)輸入、設(shè)計(jì)編譯、設(shè)計(jì)仿真、編程下載等各個(gè)設(shè)計(jì)流程需要QuartusII支持第三方EDA廠家的設(shè)計(jì)工具輸入QuartusII界面簡(jiǎn)介Fig.1QuartusII根本界面利用向?qū)Ы⑿鹿こ?1)Step1:在File菜單中選擇NewProjectWizard...選項(xiàng)啟開(kāi)工程向?qū)Аig.2QuartusII工程名稱、路徑、頂層文件設(shè)定窗口分別指定創(chuàng)立工程的路徑,工程名和頂層文件名。工程名和頂層文件可以一致也可以不同。一個(gè)工程中可以有多個(gè)文件,但只能有一個(gè)頂層文件。利用向?qū)Ы⑿鹿こ?2)Step2:點(diǎn)擊Next>按鈕,頁(yè)面二是在新建的工程中添加已有VerilogHDL文件的。Step3:點(diǎn)擊Next>按鈕,進(jìn)入頁(yè)面三,完成器件選擇。圖3、QuartusII中器件選擇窗口利用向?qū)Ы⑿鹿こ?3)Step4:后面兩步分別是對(duì)EDA工具的設(shè)定和工程綜述,都不作任何操作。點(diǎn)擊Finish完成工程創(chuàng)立。圖4、QuartusII工程設(shè)定完成綜述窗口新建一個(gè)VerilogHDL文件QuartusII中包含完整的文本編輯程序〔TextEditor〕,在此用VerilogHDL來(lái)編寫源程序新建一個(gè)VerilogHDL文件,可以通過(guò)快捷按鈕快捷鍵Ctrl+N從File菜單中選擇New...彈出頁(yè)式對(duì)話框后選擇DeviceDesignFiles頁(yè)面的VerilogHDLFile,點(diǎn)擊OK按鈕。VerilogHDL程序輸入在用戶區(qū)VerilogHDL文件窗口中輸入源程序,保存時(shí)文件名與實(shí)體名保持一致。modulebasic_ddf(d,clk,q,qd);input d,clk;output q,qd;reg q,qd;

always @(posedgeclk)beginq<=d;qd<=~d;endendmodule

對(duì)源程序進(jìn)行語(yǔ)法檢查和編譯使用快捷按鈕,對(duì)以上程序進(jìn)行分析綜合,檢查語(yǔ)法標(biāo)準(zhǔn);如果沒(méi)有問(wèn)題那么編譯整個(gè)程序,使用如果出現(xiàn)問(wèn)題,那么對(duì)源程序進(jìn)行修改,直至沒(méi)有問(wèn)題為止。仿真QuartusII內(nèi)置波形編輯程序〔WaveformEditor〕可以生成和編輯波形設(shè)計(jì)文件。QuartusII中的仿真包括功能仿真和時(shí)序仿真。兩種仿真操作類似,只需在Tools菜單中選擇SimulaterTool,在其Simulatermode中進(jìn)行選擇即可圖5、QuartusII工程仿真設(shè)定窗口時(shí)序仿真(1)Step1、新建一個(gè)波形文件:該過(guò)程與新建VerilogHDL文件類似,只是在彈出頁(yè)式對(duì)話框后選擇OtherFiles頁(yè)面的VectorWaveformFile。時(shí)序仿真(2)Step2、在波形文件中參加所需觀察波形的管腳:在Name中單擊右鍵,選擇InsertNodeorbus...選項(xiàng),出現(xiàn)InsertNodeorbus對(duì)話框,此時(shí)可在該對(duì)話框的Name欄直接鍵入所需仿真的管腳名,也可點(diǎn)擊NodeFinder...按鈕,將所有需仿真的管腳一起導(dǎo)入。圖6、QuartusII建立待仿真文件時(shí)的管腳及內(nèi)部信號(hào)選擇窗口時(shí)序仿真(3)Step3、給輸入管腳指定仿真波形

:分別選中輸入管腳,使用波形編輯器:對(duì)其輸入波形進(jìn)行編輯。最后保存波形文件圖7、QuartusII中編輯完成的待仿真波形文件時(shí)序仿真(5)對(duì)basic_ddf的仿真結(jié)果說(shuō)明仿真結(jié)果在時(shí)間20ns時(shí),輸入信號(hào)d已經(jīng)是1狀態(tài),但是由于時(shí)鐘脈沖信號(hào)clk這時(shí)不是處于上升沿,所以必須等到時(shí)間軸30ns的地方,才會(huì)讓輸出信號(hào)q變成1,不過(guò)由于芯片的傳輸延遲效應(yīng),最后是在37ns處才會(huì)產(chǎn)生1。在時(shí)間軸90ns處,輸入信號(hào)d和時(shí)鐘脈沖信號(hào)同時(shí)出現(xiàn)是1狀態(tài),但這上升沿的瞬間十分短暫,有仿真結(jié)果知道,輸出信號(hào)q必須等到下一個(gè)時(shí)鐘上升沿之后才會(huì)出現(xiàn)1狀態(tài)。在時(shí)間軸160ns之后,由于沒(méi)有時(shí)鐘脈沖信號(hào)clk,這時(shí)不管d的輸入信號(hào)為何,輸出信號(hào)q始終保持不變。*.pof文件的生成(1)圖9、QuartusII工程管理中的管腳分配窗口程序中管腳名實(shí)際管腳說(shuō)明dPin96擴(kuò)展口J6的第一腳clkPin18全局時(shí)鐘qPin107擴(kuò)展口J5的第一腳qbPin106擴(kuò)展口J5的第三腳表1根本D觸發(fā)器管腳分配*.pof文件的生成

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論