




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系第八章第八章 Verilog 設計進階設計進階8.1 分頻器設計分頻器設計8.2 Verilog 有限狀態機設計有限狀態機設計第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系8.1 分頻器設計分頻器設計分頻器是指使輸出信號頻率為輸入信號頻率整數分分頻器是指使輸出信號頻率為輸入信號頻率整數分之一的電子電路。之一的電子電路。在許多電子設備中如電子鐘、頻率合成器等,需要在許多電子設備中如電子鐘、頻率合成器等,需要各種不同頻率的信號協同工作,常用的方法是以
2、穩各種不同頻率的信號協同工作,常用的方法是以穩定度高的晶體振蕩器為主振源,通過變換得到所需定度高的晶體振蕩器為主振源,通過變換得到所需要的各種頻率成分,分頻器是一種主要變換手段。要的各種頻率成分,分頻器是一種主要變換手段。1.偶數倍偶數倍(2N)分頻分頻 偶分頻比較簡單,假設為偶分頻比較簡單,假設為N分頻,只需計數到分頻,只需計數到N/21,然后時鐘翻轉、計數清零,如此循環就可,然后時鐘翻轉、計數清零,如此循環就可以得到以得到N(偶偶)分頻分頻。第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系例例:module fp_even(clk_out,
3、clk_in,rst);output clk_out; input clk_in,rst;reg 1:0 cnt; reg clk_out;parameter N=6;always (posedge clk_in or negedge rst)beginif(!rst) begin cnt = 0; clk_out = 0; endelse begin if(cnt=N/2-1) begin clk_out = !clk_out; cnt=0; end else cnt = cnt + 1; endend endmodule 可以通過改變參量可以通過改變參量N的值和計數變量的值和計數變量cnt
4、的位寬實現任意偶分頻。的位寬實現任意偶分頻。第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系2.奇數倍奇數倍(2N+1)分頻分頻 用兩個計數器,一個由輸入時鐘上升沿觸發,一個由輸用兩個計數器,一個由輸入時鐘上升沿觸發,一個由輸入時鐘下降沿觸發,最后將兩個計數器的輸出相或,即可得入時鐘下降沿觸發,最后將兩個計數器的輸出相或,即可得到占空比為到占空比為50%的方波波形的方波波形?!纠?module count_N(reset, clk, cout);input clk, reset; output wire cout;reg4:0 m, n;
5、reg cout1, cout2;parameter N=13;always (posedge clk)/時鐘上升沿計數時鐘上升沿計數begin if(!reset) begin cout1=0; m=0; end else begin if(m=N-1) m=0; else m=m+1; if(m(N-1)/2) cout1=1; else cout1=0; end end第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系always (negedge clk)/時鐘下降沿計數時鐘下降沿計數beginif(!reset) begin cout2
6、=0; n=0; endelse begin if(n=N-1) n=0; else n=n+1; if(n(N-1)/2) cout2=1; else cout2=0; endendassign cout=cout1|cout2;/兩個計數器的輸出相或兩個計數器的輸出相或endmodule模模13奇數分頻器功能仿真波形圖(奇數分頻器功能仿真波形圖(Quartus ) 第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系3.半整數半整數(N-0.5)倍分頻倍分頻假設有一個假設有一個5 MHz的時鐘信號,但需要得到的時鐘信號,但需要得到2 MHz的時
7、鐘,的時鐘,分頻比為分頻比為2.5,此時可采用半整數分頻器,此時可采用半整數分頻器。半整數分頻器的設計思想:要實現半整數分頻器的設計思想:要實現N-0.5分頻,可先設計分頻,可先設計一個模一個模N計數器,再設計一個脈沖扣除電路,加在模計數器,再設計一個脈沖扣除電路,加在模N計計數器之后,每來數器之后,每來N個脈沖就扣除半個脈沖,即可實現分頻個脈沖就扣除半個脈沖,即可實現分頻系數為系數為N-0.5的半整數分頻。的半整數分頻。半整數分頻器原理圖如一圖所示,異或門和半整數分頻器原理圖如一圖所示,異或門和2分頻模塊組分頻模塊組成脈沖扣除電路。成脈沖扣除電路。第八章第八章 Verilog 設計進階設計進
8、階材料與能源學院微電子工程系材料與能源學院微電子工程系【例例】:module fdiv5_5(clkin, clr, clkout);input clkin, clr; output reg clkout;reg clk1; wire clk2; integer count;xor xor1(clk2,clkin,clk1); /異或門異或門always(posedge clkout or negedge clr) /2分頻器分頻器begin if(!clr) begin clk1=1b0; end else clk1=clk1;endalways(posedge clk2 or negedg
9、e clr) /模模5分頻器分頻器begin if(!clr)begin count=0; clkout=1b0; endelse if(count=5) /要改變分頻器的模,只需改變要改變分頻器的模,只需改變count的值的值 begin count=0; clkout=1b1; endelse begin count=count+1; clkout=25) begin count=count-25; delete=10; end /不刪除脈沖不刪除脈沖else delete=1b1; end /刪除脈沖刪除脈沖endalways(delete)begin if(delete=1b1) cl
10、k504m=1b1; else clk504m=ckk60m;end第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系always(posedge clk504m or posedge rst)begin if(rst) clkout=0; else if(cnt=2519) begin clkout=clkout; cnt= origin; end else cnt=cnt+1; endalways(insig)begin case(insig)4b0001:origin=2519;/產生產生10kHz信號信號4b0010:origin=125
11、9;/產生產生20kHz信號信號4b0011:origin=839;/產生產生30kHz信號信號4b0100:origin=629;/產生產生40kHz信號信號4b0101:origin=503;/產生產生50kHz信號信號4b0110:origin=419;/產生產生60kHz信號信號4b0111:origin=359;/產生產生70kHz信號信號4b1000:origin=314;/產生產生80kHz信號信號4b1001:origin=279;/產生產生90kHz信號信號4b1010:origin=251;/產生產生100kHz信號信號default: origin=2519;endcas
12、e end endmodule第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系8.2 Verilog 有限狀態機設計有限狀態機設計分析圖示電路實現什么功能分析圖示電路實現什么功能 1.寫出各寫出各時鐘及時鐘及觸發器的觸發器的驅驅動動方程;方程;2.寫出電路的輸出方程;寫出電路的輸出方程;3.寫出各觸發器的狀態方程;寫出各觸發器的狀態方程;4.列出電路的狀態表;列出電路的狀態表;5.畫出電路的狀態圖;畫出電路的狀態圖;6.邏輯功能邏輯功能分析分析。( XZ )第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微
13、電子工程系狀態機狀態機(State Machine)是一個廣義的時序電路,像是一個廣義的時序電路,像移位寄存器、計數器等都算是它的特殊功能類型中移位寄存器、計數器等都算是它的特殊功能類型中的一種。的一種。根據輸入、輸出及狀態之間的關系,狀態機可分兩根據輸入、輸出及狀態之間的關系,狀態機可分兩類,一類是類,一類是Moore狀態機,其輸出值只取決于當前狀態機,其輸出值只取決于當前狀態,與輸入值無關;另一類是狀態,與輸入值無關;另一類是Mealy狀態機,其狀態機,其輸出值不但和當前狀態有關,還和輸入值有關。輸出值不但和當前狀態有關,還和輸入值有關。第八章第八章 Verilog 狀態機設計技術狀態機設
14、計技術材料與能源學院微電子工程系材料與能源學院微電子工程系摩爾型(摩爾型(Moore)狀態機)狀態機 米里型(米里型(Mealy)狀態機)狀態機 第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系狀態機的特點與優勢:狀態機的特點與優勢:1.高效的過程控制模型。它的工作方式是根據控制信號按高效的過程控制模型。它的工作方式是根據控制信號按照預先設定的狀態進行順序運行的,能實現高速、高效照預先設定的狀態進行順序運行的,能實現高速、高效的過程控制。的過程控制。2.容易利用現成的容易利用現成的EDA工具進行優化設計。狀態機構建簡工具進行優化設計。狀態機構建
15、簡單,設計方案相對固定,使得綜合器能提供強大的優化單,設計方案相對固定,使得綜合器能提供強大的優化功能,如自動編碼、完全狀態機生成等。功能,如自動編碼、完全狀態機生成等。3.系統性能穩定。通過構建同步時序邏輯模塊,能解決競系統性能穩定。通過構建同步時序邏輯模塊,能解決競爭冒險。爭冒險。4. 高速性能。高速性能。 比相應的比相應的CPU工作速度高出工作速度高出35個數量級。個數量級。5.高可靠性能。由純硬件電路構成,運行不依賴軟件指令高可靠性能。由純硬件電路構成,運行不依賴軟件指令的逐條執行;有完整的容錯技術;能很快從非法態跳出。的逐條執行;有完整的容錯技術;能很快從非法態跳出。第八章第八章 V
16、erilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系有限狀態機設計的一般步驟有限狀態機設計的一般步驟1.邏輯抽象。得出狀態轉換圖就是把給出的一個實際邏輯抽象。得出狀態轉換圖就是把給出的一個實際邏輯關系表示為時序邏輯函數,可以用狀態轉換表邏輯關系表示為時序邏輯函數,可以用狀態轉換表來描述,也可以用狀態轉換圖來描述。來描述,也可以用狀態轉換圖來描述。2.狀態化簡。如果在狀態轉換圖中出現這樣兩個狀態,狀態化簡。如果在狀態轉換圖中出現這樣兩個狀態,它們在相同的輸入下轉換到同一狀態去,并得到一它們在相同的輸入下轉換到同一狀態去,并得到一樣的輸出,則稱它們為等價狀態。顯然等價
17、狀態是樣的輸出,則稱它們為等價狀態。顯然等價狀態是重復的,可以合并為一個。重復的,可以合并為一個。3.狀態分配。狀態分配又稱狀態編碼。狀態分配。狀態分配又稱狀態編碼。4.選定觸發器的類型并求出狀態方程、驅動方程和輸選定觸發器的類型并求出狀態方程、驅動方程和輸出方程。出方程。5.按照方程得出邏輯圖。按照方程得出邏輯圖。第八章第八章 Verilog 設計進階設計進階材料與能源學院微電子工程系材料與能源學院微電子工程系8.2.1 有限狀態機的有限狀態機的Verilog描述描述1. 用三個過程描述:即現態用三個過程描述:即現態(CS:Current State)、次、次態態(NS:Next State
18、)、輸出邏輯、輸出邏輯(OL:Out Logic)各用一各用一個個always過程描述過程描述 。2. 雙過程描述雙過程描述(CS+NS、OL雙過程描述雙過程描述):使用兩個:使用兩個always過程來描述有限狀態機,一個過程描述現態過程來描述有限狀態機,一個過程描述現態和次態時序邏輯和次態時序邏輯(CS+NS);另一個過程描述輸出邏;另一個過程描述輸出邏輯輯(OL)。3. 雙過程描述雙過程描述(CS、NS+OL雙過程描述雙過程描述):一個過程用:一個過程用來描述現態來描述現態(CS);另一個過程描述次態和輸出邏輯;另一個過程描述次態和輸出邏輯(NS+OL)。4. 單過程描述:在單過程描述方式
19、中,將狀態機的現單過程描述:在單過程描述方式中,將狀態機的現態、次態和輸出態、次態和輸出邏輯邏輯(CS+NS+OL)放在一個放在一個always過程中進行描述過程中進行描述。第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系用三個過程進行描述用三個過程進行描述【例例8.28.2】: :“101”序列檢測器的序列檢測器的Verilog描描述述(CS、NS、OL各一各一)復習數電中學的設計過程:復習數電中學的設計過程:1.1.由給定的邏輯功能確定電路應包含的狀態,并畫出原始狀由給定的邏輯功能確定電路應包含的狀態,并畫出原始狀態圖;態圖;2
20、.2.狀態化簡;狀態化簡;3.3.狀態編碼及畫編碼形式的狀態編碼及畫編碼形式的 狀狀態圖和狀態表;態圖和狀態表;4.4.選擇觸發器;選擇觸發器;5.5.確定各觸發器的驅動方程確定各觸發器的驅動方程 及及電路的輸出方程;電路的輸出方程;6.6.畫邏輯電路圖;畫邏輯電路圖;第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系module fsm1_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state,next_state;parameter S0=2b00,S1=2b
21、01,S2=2b11,S3=2b10; /*狀態編碼,采用格雷(狀態編碼,采用格雷(Gray)編碼方式)編碼方式*/always (posedge clk or posedge clr) / /該過程定義當前狀態該過程定義當前狀態beginif(clr) state=S0; /異步復位,異步復位,s0為起始狀態為起始狀態else state=next_state;endalways (state or x) /該過程定義次態該過程定義次態begincase (state)S0:begin if(x) next_state=S1;else next_state=S0; endS1:beginif
22、(x) next_state=S1;else next_state=S2; end【例例8.28.2】: :“101”序列檢測器的序列檢測器的Verilog描描述述(CS、NS、OL各一各一)第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系S2:beginif(x) next_state=S3;else next_state=S0; endS3:beginif(x) next_state=S1;else next_state=S2; enddefault:next_state=S0; /default語句語句endcaseendal
23、ways (state) /該過程產生輸出邏輯該過程產生輸出邏輯(OL)begin case(state)S3: z=1b1;default:z=1b0;endcaseendendmodule第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系module fsm2_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10; /*狀態編碼,采用格雷(狀態編碼,采用格雷(Gray)編碼方
24、式)編碼方式*/always (posedge clk or posedge clr) / /該過程定義當前狀態該過程定義當前狀態begin if(clr) state=S0; /異步復位,異步復位,s0為起始狀態為起始狀態 else case (state) S0:begin if(x) state=S1; else state=S0; end S1:begin if(x) state=S1; else state=S2; end S2:begin if(x) state=S3; else state=S0; end S3:begin if(x) state=S1; else state=S
25、2; end default: state=S0; end endcase end用兩個過程進行描述用兩個過程進行描述【例例8.38.3】: :“101”序列檢測器的序列檢測器的Verilog描描述述(CS+NS、OL)第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系always (state) /該過程產生輸出邏輯該過程產生輸出邏輯(OL)begin case(state)S3: z=1b1;default:z=1b0;endcaseendendmodule第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微
26、電子工程系材料與能源學院微電子工程系module fsm3_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state,next_state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10; /*狀態編碼,采用格雷(狀態編碼,采用格雷(Gray)編碼方式)編碼方式*/always (posedge clk or posedge clr) / /該過程定義當前狀態該過程定義當前狀態beginif(clr) state=S0; /異步復位,異步復位,s0為起始狀態為起始狀態else state=
27、next_state;end【例例8.4】:“101”序列檢測器的序列檢測器的Verilog描述描述(CS、NS+OL)第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系always (state or x) /該過程定義次態該過程定義次態begincase (state)S0:begin if(x) begin next_state=S1; z=10; end else begin next_state=S0; z=10; end endS1:begin if(x) begin next_state=S1; z=10; end el
28、se begin next_state=S2; z=10; end endS2:begin if(x) begin next_state=S3; z=10; end else begin next_state=S0; z=10; end endS3:begin if(x) begin next_state=S1; z=10; end else begin next_state=S2; z=10; end enddefault: begin next_state=S0; z=10; end endcaseendendmodule第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源
29、學院微電子工程系材料與能源學院微電子工程系用單個用單個過程進行描述過程進行描述【例例8.5】:“101”序列檢測器的序列檢測器的Verilog描述描述(CS+NS+OL)module fsm4_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10; /*狀態編碼,采用格雷狀態編碼,采用格雷(Gray)編碼方式編碼方式*/always (posedge clk or posedge clr)Begin if(clr) state=S0; /
30、異步復位,異步復位,s0為起始狀態為起始狀態else case(state) S0:begin if(x) begin state=S1; z=1b0; end else begin state=S0; z=1b0; end end S1:begin if(x) begin state=S1; z=1b0; end else begin state=S2; z=1b0; end end S2:begin if(x) begin state=S3; z=1b0; end else begin state=S0; z=1b0; end end S3:begin if(x) begin state=
31、S1; z=1b1; end else begin state=S2; z=1b1; end end default:begin state=S0; z=1b0;end /*default語句語句*/ endcaseend endmodule第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系8.2.2 狀態編碼狀態編碼1.順序編碼順序編碼 :使用的觸發器數量最少:使用的觸發器數量最少(N個觸發器個觸發器有有2N狀態狀態),剩余的非法狀態也最少,容錯技術,剩余的非法狀態也最少,容錯技術最為簡單。但耗的組合邏輯資源較多,轉換時間最為簡單。
32、但耗的組合邏輯資源較多,轉換時間較長,易出現毛刺。較長,易出現毛刺。2.格雷編碼:每個相鄰的狀態切換只有一個格雷編碼:每個相鄰的狀態切換只有一個bit的的信號跳變,降低產生毛刺和暫態的可能性。信號跳變,降低產生毛刺和暫態的可能性。3.約翰遜編碼:相鄰的狀態切換只有一個約翰遜編碼:相鄰的狀態切換只有一個bit的信的信號跳變,但號跳變,但N個觸發器只有個觸發器只有2N狀態。狀態。4.獨熱碼:相鄰的狀態切換只有一個獨熱碼:相鄰的狀態切換只有一個bit的信號跳的信號跳變,轉換速度快,工作穩定性好,可節省和簡變,轉換速度快,工作穩定性好,可節省和簡化譯碼電路,但化譯碼電路,但N個觸發器只有個觸發器只有N
33、狀態。狀態。第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系對于對于FPGA器件,常用器件,常用獨熱獨熱碼編碼。碼編碼。在在Quartus 中設置:中設置:Assignments/Settings/ Analysis & Synthesis Settings/More Settings/Existing option Settings/State Machine Precessing/Setting第八章第八章 Ve
34、rilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系8.2.3 狀態編碼狀態編碼 在在Verilog語言中,有兩種方式可用于定義狀態語言中,有兩種方式可用于定義狀態編碼,分別用編碼,分別用parameter和和define語句實現,比如要語句實現,比如要為為state0、state1、state2、state3四個狀態定義碼字四個狀態定義碼字為:為:00、01、11、10,可采用下面兩種方式。,可采用下面兩種方式。方式方式1:用:用parameter參數定義參數定義 parameter tate1=2b00, state2=2b01, state3=2b11, state4=2b10; case(state) state1:; /調用調用 state2:; 第八章第八章 Verilog 狀態機設計技術狀態機設計技術材料與能源學院微電子工程系材料與能源學院微電子工程系方式方式2:用:用define語句定義語句定義define state1 2b00 /不要加分號不要加分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學除雪行動活動方案
- 小組研磨活動方案
- 小學評先樹優活動方案
- 小班年俗活動方案
- 小班發音活動方案
- 展會活動游戲策劃方案
- 居家活動掃地活動方案
- 小學英語特色活動方案
- 小學組織義賣活動方案
- 少兒田徑活動方案
- 基于STM32迷宮機器人設計與實現
- DB65T 8020-2024 房屋建筑與市政基礎設施工程施工現場從業人員配備標準
- 山東省東營市廣饒縣2025屆五下數學期末統考試題含答案
- 某咨詢標桿企業分析(英文版)
- 2025年湖北省技能高考(計算機類)專業知識考試題(附答案)
- 2024年心理咨詢師題庫附參考答案(達標題)
- 公開招聘編外聘用人員報名登記表
- 2025患者十大安全目標
- 《二氧化碳陸地封存工程地質條件適宜性評價及選址指南》
- 初中生田徑隊訓練計劃
- 露天礦山開采工藝及安全技術
評論
0/150
提交評論