版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1數(shù)字系統(tǒng)設(shè)計(jì)的核心知識數(shù)字系統(tǒng)設(shè)計(jì)的核心知識 復(fù)雜數(shù)字系統(tǒng)的構(gòu)成;復(fù)雜數(shù)字系統(tǒng)的構(gòu)成; 基本電路和基本電路和 Verilog Verilog 的對應(yīng)關(guān)系;的對應(yīng)關(guān)系; 同步有限狀態(tài)機(jī)在電路中的作用;同步有限狀態(tài)機(jī)在電路中的作用; 時(shí)鐘樹與自動(dòng)綜合技術(shù)時(shí)鐘樹與自動(dòng)綜合技術(shù) 2- 。3數(shù)字邏輯電路的構(gòu)成數(shù)字邏輯電路的構(gòu)成- 組合邏輯組合邏輯:由與、或、非門組成的網(wǎng)絡(luò)。常用的有:由與、或、非門組成的網(wǎng)絡(luò)。常用的有:多路器、數(shù)據(jù)通路開關(guān)、加法器、乘法器等,沒有記憶功多路器、數(shù)據(jù)通路開關(guān)、加法器、乘法器等,沒有記憶功能。能。- 時(shí)序邏輯時(shí)序邏輯: 由多個(gè)觸發(fā)器和多個(gè)組合邏輯塊組成的網(wǎng)由多個(gè)觸發(fā)器和多個(gè)
2、組合邏輯塊組成的網(wǎng)絡(luò)。常用的有:計(jì)數(shù)器、復(fù)雜的數(shù)據(jù)流動(dòng)控制邏輯、運(yùn)算絡(luò)。常用的有:計(jì)數(shù)器、復(fù)雜的數(shù)據(jù)流動(dòng)控制邏輯、運(yùn)算控制邏輯、指令分析和操作控制邏輯。同步時(shí)序邏輯的設(shè)控制邏輯、指令分析和操作控制邏輯。同步時(shí)序邏輯的設(shè)計(jì)是設(shè)計(jì)復(fù)雜的數(shù)字邏輯系統(tǒng)的核心。計(jì)是設(shè)計(jì)復(fù)雜的數(shù)字邏輯系統(tǒng)的核心。- 存儲器和寄存器存儲器和寄存器:用于暫時(shí)存儲數(shù)據(jù)信息。用于暫時(shí)存儲數(shù)據(jù)信息。4組合邏輯舉例之一組合邏輯舉例之一一個(gè)八位數(shù)據(jù)通路控制器一個(gè)八位數(shù)據(jù)通路控制器define ON 1 b 1define OFF 1 b 0 wire ControlSwitch; wire 7:0 out, in; assign ou
3、t = (ControlSwith= ON) ? in : 8 h005in 7:0開關(guān)out7:0tt31 0215 3262 88 0215 32 00 006in7ControlSwitchout7CLOCKDQ7CLOCKin0ControlSwitchout0DQ0out7out078module regena (clock,ena,reset,R,Q);parameter n=8;input n-1:0 R;input clock, ena, reset;output n-1:0 Q;always (posedge clock or negedge reset) if (!rese
4、t) Q=0; else if (ena) Q=R; else Q=Q;endmoduleenaRclockD Q Qreset9R1enawclockD Q QresetQ1D QQ0R0load1011.outbuf712outbuf 7:0開bus7:0tt31 0215 3262 88 0215 32 ZZ ZZLinkBusSwitch關(guān)outbuf713 SelData14Sel0Data0Sel1Data115Data outputAddressAm-1A1A0Am-2writereadData inputsel0sel1sel2m-2 sel2m-1地址譯碼器16qdqdqdq
5、dqdqdqdqdqdqdqdqdclock開關(guān)S1開關(guān)S2組合邏輯組合邏輯寄存器1寄存器2寄存器317clock開關(guān)S5寄存器Cqd開關(guān)S6開關(guān)S3寄存器Bqd開關(guān)S4開關(guān)S1寄存器Aqd開關(guān)S218組合邏輯輸出控制開關(guān)Snin 7:0out 15:0in 7:0 8 d 31 8d 202 16d 93 16d 606延時(shí)10nsSn開關(guān)out15:0ttt19全局時(shí)鐘網(wǎng)絡(luò)觸發(fā)器緩沖器 觸發(fā)器1觸發(fā)器n圖1 全局時(shí)鐘網(wǎng)示意圖 圖2 平衡樹結(jié)構(gòu)示意圖20 由于組合邏輯和布線的延遲引起由于組合邏輯和布線的延遲引起abttcclockabc21 組合邏輯和布線的延遲在組合邏輯中的疊加組合邏輯和布
6、線的延遲在組合邏輯中的疊加ba#2#3#4cedba#2#3#4ced#1#1clock222324clock 10nsS2開關(guān)S1tttSnS3tttS42526同步有限狀態(tài)機(jī)同步有限狀態(tài)機(jī)ena_2ena_3ena_1組合邏輯 1寄存器組組合邏輯 2寄存器組組合邏輯 3寄存器組組合邏輯 N寄存器組input_1 input_2input_n272829圖圖1 時(shí)鐘同步的狀態(tài)機(jī)結(jié)構(gòu)時(shí)鐘同步的狀態(tài)機(jī)結(jié)構(gòu) (Mealy 狀態(tài)機(jī)狀態(tài)機(jī))下一狀態(tài)下一狀態(tài)的邏輯的邏輯 F F輸出邏輯輸出邏輯 G G狀態(tài)狀態(tài)寄存器寄存器 clk 輸入輸入30下一狀下一狀態(tài)的邏態(tài)的邏輯輯 F F輸出邏輯輸出邏輯 G G狀
7、態(tài)狀態(tài)寄存器寄存器圖圖2 時(shí)鐘同步的狀態(tài)機(jī)結(jié)構(gòu)時(shí)鐘同步的狀態(tài)機(jī)結(jié)構(gòu) (Moor狀態(tài)機(jī)狀態(tài)機(jī))31圖圖3 帶流水線輸出的帶流水線輸出的Mealy 狀態(tài)機(jī)狀態(tài)機(jī) 輸出輸出邏輯邏輯 G G 32狀態(tài)轉(zhuǎn)移圖表示狀態(tài)轉(zhuǎn)移圖表示RTLRTL級可綜合的級可綜合的 Verilog Verilog 模塊表示模塊表示33有限狀態(tài)機(jī)的圖形表示有限狀態(tài)機(jī)的圖形表示 圖形表示:狀態(tài)、轉(zhuǎn)移、條件和邏輯開關(guān)圖形表示:狀態(tài)、轉(zhuǎn)移、條件和邏輯開關(guān)圖3.4 狀態(tài)轉(zhuǎn)移圖Idle Start Stop Clear A/K1=0 !A A/K2=1 !Reset /K2=0 K1=0!Reset /K2=0 K1=0!Reset /
8、K2=0 K1=0 |!A / K2=0 K1=1!Reset /K2=0 K1=03435表示方法之一表示方法之一module fsm (Clock, Reset, A, K2, K1);module fsm (Clock, Reset, A, K2, K1);input Clock, Reset, A; input Clock, Reset, A; /定義時(shí)鐘、復(fù)位和輸入信號定義時(shí)鐘、復(fù)位和輸入信號output K2, K1; output K2, K1; /定義輸出控制信號的端口定義輸出控制信號的端口reg K2, K1; reg K2, K1; /定義輸出控制信號的寄存器定義輸出控制信
9、號的寄存器reg 1:0 state; reg 1:0 state; /定義狀態(tài)寄存器定義狀態(tài)寄存器parameter Idle = 2b00, Start = 2b01, parameter Idle = 2b00, Start = 2b01, Stop = 2b10, Clear = 2b11; Stop = 2b10, Clear = 2b11;/定義狀態(tài)變量參數(shù)值定義狀態(tài)變量參數(shù)值 always (posedge Clock or negedge Reset)always (posedge Clock or negedge Reset) if (!Reset) if (!Reset)
10、begin begin /定義復(fù)位后的初始狀態(tài)和輸出值定義復(fù)位后的初始狀態(tài)和輸出值 state = Idle; K2=0; K1=0; state = Idle; K2=0; K1=0; end end36表示方法之一(續(xù))表示方法之一(續(xù))elseelse case (state) case (state) Idle: begin Idle: begin if (A) begin if (A) begin state = Start; state = Start; K1 = 0; K1 = 0; end end else state = Idle; else state = Idle; en
11、d end Start: begin Start: begin if (!A) state = Stop; if (!A) state = Stop; else state = Start; else state = Start; end end37表示方法之一(續(xù))表示方法之一(續(xù)) Stop: begin Stop: begin if (A) begin if (A) begin state = Clear; state = Clear; K2 = 1; K2 = 1; end end else state = Stop; else state = Stop; end end Clear:
12、 begin Clear: begin if (!A) begin if (!A) begin state = Idle; state = Idle; K2=0; K1=1; K2=0; K1=1; end end else state = Clear; else state = Clear; end end endcase endcaseendmodule endmodule 38表示方法之二表示方法之二我們還可以用另一個(gè)我們還可以用另一個(gè) Verilog HDLVerilog HDL模型來表示同一個(gè)有限狀態(tài),模型來表示同一個(gè)有限狀態(tài),見下例。(用可綜合的見下例。(用可綜合的VerilogV
13、erilog模塊設(shè)計(jì)用獨(dú)熱碼表示狀態(tài)的狀態(tài)機(jī))模塊設(shè)計(jì)用獨(dú)熱碼表示狀態(tài)的狀態(tài)機(jī)) module fsm (Clock, Reset, A, K2, K1);module fsm (Clock, Reset, A, K2, K1);input Clock, Reset, A;input Clock, Reset, A;output K2, K1;output K2, K1;reg K2, K1;reg K2, K1;reg 3:0 state;reg 3:0 state;parameter Idle = 4b1000, parameter Idle = 4b1000, Start = 4b010
14、0, Start = 4b0100, Stop = 4b0010, Stop = 4b0010, Clear = 4b0001; Clear = 4b0001; 39表示方法之二(續(xù))表示方法之二(續(xù)) always (posedge clock or negedge Reset) always (posedge clock or negedge Reset) if (!Reset) if (!Reset) begin begin state = Idle; K2=0; K1=0; state = Idle; K2=0; K1=0; end end else else case (state)
15、 case (state) Idle: if (A) begin Idle: if (A) begin state = Start; state = Start; K1 = 0; K1 = 0; end end else state = Idle; else state = Idle; 40表示方法之二(續(xù))表示方法之二(續(xù)) 41表示方法之二(續(xù))表示方法之二(續(xù)) 42在比較復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)過程中,我們往往把狀在比較復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)過程中,我們往往把狀態(tài)的變化與輸出開關(guān)的控制分成兩部分來考慮。態(tài)的變化與輸出開關(guān)的控制分成兩部分來考慮。就象前面講過的就象前面講過的Mealy狀態(tài)機(jī)輸出部分的組
16、合邏狀態(tài)機(jī)輸出部分的組合邏輯。為了調(diào)試方便,還常常把每一個(gè)輸出開關(guān)寫輯。為了調(diào)試方便,還常常把每一個(gè)輸出開關(guān)寫成一個(gè)個(gè)獨(dú)立的成一個(gè)個(gè)獨(dú)立的always組合塊。在調(diào)試多輸出狀組合塊。在調(diào)試多輸出狀態(tài)機(jī)時(shí),這樣做比較容易發(fā)現(xiàn)問題和改正模塊編態(tài)機(jī)時(shí),這樣做比較容易發(fā)現(xiàn)問題和改正模塊編寫中出現(xiàn)的問題。建議同學(xué)們在設(shè)計(jì)復(fù)雜的多輸寫中出現(xiàn)的問題。建議同學(xué)們在設(shè)計(jì)復(fù)雜的多輸出狀態(tài)機(jī)時(shí)采用下面的風(fēng)格舉例,說明如下:出狀態(tài)機(jī)時(shí)采用下面的風(fēng)格舉例,說明如下: 4344454647表示方法之四表示方法之四用輸出指定的碼表示狀態(tài)的狀態(tài)機(jī)用輸出指定的碼表示狀態(tài)的狀態(tài)機(jī) 方法四采用了另一種方法:直接把狀態(tài)碼定義方法四采用
17、了另一種方法:直接把狀態(tài)碼定義為輸出。也就是把狀態(tài)碼的指定與狀態(tài)機(jī)控制為輸出。也就是把狀態(tài)碼的指定與狀態(tài)機(jī)控制的輸出聯(lián)系起來,把狀態(tài)的變化直接用作輸出,的輸出聯(lián)系起來,把狀態(tài)的變化直接用作輸出,這樣做可以提高輸出信號的開關(guān)速度并節(jié)省電這樣做可以提高輸出信號的開關(guān)速度并節(jié)省電路器件。這種設(shè)計(jì)方法常用在高速狀態(tài)機(jī)中。路器件。這種設(shè)計(jì)方法常用在高速狀態(tài)機(jī)中。建議同學(xué)們在設(shè)計(jì)高速狀態(tài)機(jī)時(shí)采用方法四的建議同學(xué)們在設(shè)計(jì)高速狀態(tài)機(jī)時(shí)采用方法四的風(fēng)格。例中風(fēng)格。例中state3 state3 和和state0state0分別表示前分別表示前面兩個(gè)例子中的輸出面兩個(gè)例子中的輸出K2K2和和K1K1。48表示方法
18、之四(續(xù))表示方法之四(續(xù))module fsm (Clock, Reset, A, K2, K1, state);module fsm (Clock, Reset, A, K2, K1, state);input Clock, Reset, A;input Clock, Reset, A;output K2, K1;output K2, K1;output 4:0 state;output 4:0 state;reg 4:0 state ;reg 4:0 state ;assign assign K2= state4; / K2= state4; / 把狀態(tài)變量的最高位用作輸出把狀態(tài)變量的最
19、高位用作輸出K2K2assign assign K1= state0; / K1= state0; / 把狀態(tài)變量的最低位用作輸出把狀態(tài)變量的最低位用作輸出K1K14950表示方法之四(續(xù))表示方法之四(續(xù)) always (posedge Clock or negedge Reset)always (posedge Clock or negedge Reset) if (!Reset) if (!Reset) begin begin state = Idle; state = Idle; end end else elsecase (state)case (state) Idle : if
20、(A) Idle : if (A) state = Start; state = Start; else state = Idle; else state = Idle; Start: if (!A) state = Stop; Start: if (!A) state = Stop; else state = Start; else state = Start;51表示方法之四(續(xù))表示方法之四(續(xù))Stop: if (A)Stop: if (A) state = StopToClear; state = StopToClear; else state = Stop; else state
21、= Stop;StopToClear: state = Clear;StopToClear: state = Clear; Clear: if (!A) Clear: if (!A) state = ClearToIdle; state = ClearToIdle; else state = Clear; else state = Clear; ClearToIdle: state = Idle;ClearToIdle: state = Idle;default: state = Idle;default: state = Idle;endcaseendcaseendmoduleendmodu
22、le52狀態(tài)機(jī)的測試狀態(tài)機(jī)的測試 不同風(fēng)格的描述適合不同規(guī)模的狀態(tài)機(jī)和不同不同風(fēng)格的描述適合不同規(guī)模的狀態(tài)機(jī)和不同的綜合工具,有的風(fēng)格查錯(cuò)和修改較容易,但的綜合工具,有的風(fēng)格查錯(cuò)和修改較容易,但寫簡單的狀態(tài)機(jī)時(shí)比較麻煩。寫簡單的狀態(tài)機(jī)時(shí)比較麻煩。Synopsys公司的公司的綜合器建議使用這種風(fēng)格來描述狀態(tài)機(jī)。綜合器建議使用這種風(fēng)格來描述狀態(tài)機(jī)。 上面四個(gè)例子是同一個(gè)狀態(tài)機(jī)的四種不同的上面四個(gè)例子是同一個(gè)狀態(tài)機(jī)的四種不同的Verilog HDL模型,它們都是可綜合的,在設(shè)模型,它們都是可綜合的,在設(shè)計(jì)復(fù)雜程度不同的狀態(tài)機(jī)時(shí)有它們各自的優(yōu)勢。計(jì)復(fù)雜程度不同的狀態(tài)機(jī)時(shí)有它們各自的優(yōu)勢。如用不同的綜合
23、器對這四個(gè)例子進(jìn)行綜合,綜如用不同的綜合器對這四個(gè)例子進(jìn)行綜合,綜合出的邏輯電路可能會有些不同,但邏輯功能合出的邏輯電路可能會有些不同,但邏輯功能是相同的。下面列出測試這些不同風(fēng)格狀態(tài)機(jī)是相同的。下面列出測試這些不同風(fēng)格狀態(tài)機(jī)的測試模塊,供同學(xué)們參考:的測試模塊,供同學(xué)們參考:5354 狀態(tài)機(jī)的測試模塊狀態(tài)機(jī)的測試模塊 always #50 clock = clock; /產(chǎn)生周期性的時(shí)鐘產(chǎn)生周期性的時(shí)鐘 always (posedge clock) /在每次時(shí)鐘正跳變沿時(shí)刻產(chǎn)生不同的在每次時(shí)鐘正跳變沿時(shí)刻產(chǎn)生不同的a begin #30 a = $random%2; / 每次每次a是是 0還
24、是還是1是隨機(jī)的。是隨機(jī)的。 #(3*50+12); / a 的值維持一段時(shí)間的值維持一段時(shí)間 endinitial begin #100000 $stop; end /系統(tǒng)任務(wù),暫停仿真以便觀察仿真波形。系統(tǒng)任務(wù),暫停仿真以便觀察仿真波形。 /- 調(diào)用被測試模塊調(diào)用被測試模塊t.m - fsm m(.Clock(clock), .Reset(rst),.A(a),.K2(k2),.K1(k1); endmodule55狀態(tài)機(jī)設(shè)計(jì)的總結(jié):狀態(tài)機(jī)設(shè)計(jì)的總結(jié):有限狀態(tài)機(jī)設(shè)計(jì)的一般步驟:有限狀態(tài)機(jī)設(shè)計(jì)的一般步驟: 1) 1) 邏輯抽象,得出狀態(tài)轉(zhuǎn)換圖邏輯抽象,得出狀態(tài)轉(zhuǎn)換圖 2) 2) 狀態(tài)化簡狀態(tài)
25、化簡 3) 3) 狀態(tài)分配狀態(tài)分配 在觸發(fā)器資源豐富的在觸發(fā)器資源豐富的FPGAFPGA或或ASICASIC設(shè)計(jì)中采用設(shè)計(jì)中采用獨(dú)熱編碼(獨(dú)熱編碼(one-hot-codingone-hot-coding)既可以使電路性)既可以使電路性能得到保證又可充分利用其觸發(fā)器數(shù)量多的優(yōu)能得到保證又可充分利用其觸發(fā)器數(shù)量多的優(yōu)勢,也可以采取輸出編碼的狀態(tài)指定來簡化電勢,也可以采取輸出編碼的狀態(tài)指定來簡化電路結(jié)構(gòu),并提高狀態(tài)機(jī)的運(yùn)行速度。路結(jié)構(gòu),并提高狀態(tài)機(jī)的運(yùn)行速度。 4) 4) 選定觸發(fā)器的類型并求出狀態(tài)方程、驅(qū)動(dòng)方選定觸發(fā)器的類型并求出狀態(tài)方程、驅(qū)動(dòng)方程和輸出方程。程和輸出方程。 5) 5) 按照方程得出邏輯圖按照方程得出邏輯圖56狀態(tài)機(jī)設(shè)計(jì)的總結(jié):狀態(tài)機(jī)設(shè)計(jì)的總結(jié): 用用Verilog HDLVerilog HDL來描述有限狀態(tài)機(jī),可以充分發(fā)來描述有限狀態(tài)機(jī),可以充分發(fā)揮硬件描述語言的抽象建模能力,使用揮硬件描述語言的抽象建模能力,使用alwaysalways塊語句和塊語句和casecase(ifif)等條件語句及賦值語句即)等條件語句及賦值語句即可方便地實(shí)現(xiàn)。具體的邏輯化簡及邏輯電路到可方便地實(shí)現(xiàn)。具體的邏輯化簡及邏輯電路到觸發(fā)器映射均可由計(jì)算機(jī)自動(dòng)完成,上述設(shè)計(jì)觸發(fā)器映射均可由計(jì)算機(jī)自動(dòng)完成,上述設(shè)計(jì)步驟中的第步驟中的第2 2步及步及4
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安拆分公司合同管理制度
- 二零二五年度解除勞動(dòng)合同經(jīng)濟(jì)補(bǔ)償金核算與員工培訓(xùn)協(xié)議3篇
- 二零二五年度股權(quán)協(xié)議書大全:股權(quán)投資風(fēng)險(xiǎn)控制協(xié)議3篇
- 二零二五年度子女對父母生活照料與醫(yī)療看護(hù)綜合服務(wù)協(xié)議2篇
- 2025年度連鎖藥店品牌授權(quán)與轉(zhuǎn)讓協(xié)議書3篇
- 二零二五年度新型醫(yī)療設(shè)備價(jià)格保密合同3篇
- 2025年度股東退出與知識產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議2篇
- 二零二五年度農(nóng)業(yè)科技企業(yè)員工勞動(dòng)合同規(guī)范模板2篇
- 2025年度智能車庫租賃合同模板(含車位租賃與停車場環(huán)境改善)3篇
- 2025年度新能源發(fā)電項(xiàng)目轉(zhuǎn)讓合同2篇
- 《XL集團(tuán)破產(chǎn)重整方案設(shè)計(jì)》
- 智慧金融合同施工承諾書
- 【7道期末】安徽省安慶市區(qū)2023-2024學(xué)年七年級上學(xué)期期末道德與法治試題(含解析)
- 2024年01月22094法理學(xué)期末試題答案
- 2024年1月國家開放大學(xué)法律事務(wù)??啤睹穹▽W(xué)(1)》期末紙質(zhì)考試試題及答案
- 煙草執(zhí)法課件教學(xué)課件
- 2024年安全文化建設(shè)實(shí)施方案
- 國家開放大學(xué)電大本科《工程經(jīng)濟(jì)與管理》2023-2024期末試題及答案(試卷號:1141)
- TBT3134-2023機(jī)車車輛驅(qū)動(dòng)齒輪箱 技術(shù)要求
- 河北省石家莊市橋西區(qū)2022-2023學(xué)年七年級上學(xué)期期末地理試卷
- T∕CAMDI 041-2020 增材制造(3D打?。┒ㄖ剖焦强剖中g(shù)導(dǎo)板
評論
0/150
提交評論