




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 1,基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)電工電子工程基礎(chǔ),loy.,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 2,3 可綜合VerilogHDL設(shè)計(jì),3.1 FPGA中邏輯設(shè)計(jì)的一些概念和原則 3.2 組合邏輯的建模 3.3 時(shí)序邏輯的建模 3.4 存儲(chǔ)器的建模與使用 3.5 有限狀態(tài)機(jī)的建模 3.6 課堂操作實(shí)驗(yàn),Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 3,3.1 FPGA中邏輯設(shè)計(jì)的一些概念和原則,3.1.1 一些基本概念 3.1.2 同步設(shè)計(jì) 3.1.3 串并操作 3.1.4
2、 流水線 3.1.5 異步時(shí)鐘域處理,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 4,3.1.1 一些基本概念,3.1.1.1 面積和速度,面積:是指一個(gè)設(shè)計(jì)所消耗FPGA,可理解為一個(gè)設(shè)計(jì)在FPGA中占用的“面積”。主要由LE衡量,還包括RAM和DSP塊等。 速度:是指一個(gè)設(shè)計(jì)在FPGA芯片上能穩(wěn)定運(yùn)行的最高頻率。 “面積”和“速度”是一對(duì)對(duì)立統(tǒng)一的矛盾體??梢杂酶嗟倪壿嬞Y源實(shí)現(xiàn)更快速的處理,也可以犧牲速度用較少的邏輯資源“面積”和“速度”互換。科學(xué)的設(shè)計(jì)目標(biāo)是:在滿足設(shè)計(jì)時(shí)序要求的前提下,占用最小的芯片面積;或者在所規(guī)定的面積下,使設(shè)計(jì)的時(shí)序余量更大,頻率更高。,
3、Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 5,3.1.1 一些基本概念,3.1.1.1 Verilog描述的邏輯的并行性,Verilog很多語法規(guī)則和C語言相似,但兩者有本質(zhì)區(qū)別! 在編寫Verilog代碼時(shí),要始終記住:“我在描述一個(gè)硬件電路的連接,而不是順序執(zhí)行的代碼?!?,對(duì)于一個(gè)硬件電路,在Verilog描述中各部分語句的“執(zhí)行”是并發(fā)的。 一個(gè)HDL代碼的優(yōu)劣的最終評(píng)價(jià)標(biāo)準(zhǔn)是其描述實(shí)現(xiàn)的硬件電路的性能(包括面積和速度兩個(gè)方面),而不能只是片面地追求代碼的簡潔。 在編寫Verilog代碼前,應(yīng)先對(duì)系統(tǒng)要實(shí)現(xiàn)的硬件電路的連接在大體上和關(guān)鍵點(diǎn)上有一個(gè)明確地規(guī)劃。硬件
4、描述語言是描述硬件的,要實(shí)現(xiàn)對(duì)硬件實(shí)現(xiàn)“胸有成竹”,才能描述得好。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 6,3.1.1 一些基本概念,3.1.1.1 合理分配模塊,在設(shè)計(jì)一個(gè)較大的系統(tǒng)時(shí),往往需要將系統(tǒng)分為多個(gè)模塊。模塊的劃分是需要合理考慮的。 按實(shí)際功能劃分模塊。 劃分出來的模塊的端口意義盡量簡明。 一個(gè)模塊自成一體,調(diào)用模塊者絕對(duì)不需要知道模塊內(nèi)部原理,絕對(duì)不需要干涉內(nèi)部工作過程。 模塊規(guī)模合理。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 7,3.1.1 一些基本概念,3.1.1.1 合理利用資源,在設(shè)計(jì)一個(gè)電子系統(tǒng)時(shí),要了解,什么
5、樣的功能適合用LE實(shí)現(xiàn),什么樣的功能時(shí)候由DSP、CPU實(shí)現(xiàn)(包括FPGA內(nèi)部的DSP、CPU)。實(shí)時(shí)性要求高、頻率高、大量并行的功能模塊適合使用傳統(tǒng)的FPGA邏輯實(shí)現(xiàn)。 在FPGA內(nèi)部設(shè)計(jì)時(shí),要對(duì)的FPGA全局有宏觀上的合理安排,比如時(shí)鐘、模塊組織結(jié)構(gòu)、RAM的利用、面積和速度等問題。 善于利用片內(nèi)RAM、乘法器。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 8,3.1.2 同步設(shè)計(jì),3.1.2.1 同步和異步設(shè)計(jì),異步數(shù)字電路: 電路的核心邏輯用組合電路實(shí)現(xiàn); 電路的主要信號(hào)并不依賴任何一個(gè)時(shí)鐘性信號(hào); 容易產(chǎn)生毛刺,出現(xiàn)競爭冒險(xiǎn); 不利于器件移植、不利于時(shí)序分析與
6、驗(yàn)證。 同步數(shù)字電路: 電路核心邏輯用各種觸發(fā)器實(shí)現(xiàn); 電路的主要信號(hào)都是由某個(gè)時(shí)鐘沿驅(qū)動(dòng)產(chǎn)生的; 可以很好地避免毛刺; 有利于器件移植和時(shí)序分析及驗(yàn)證。 可編程器件成本越來越低,綜合效果越來越強(qiáng),現(xiàn)代PLD設(shè)計(jì)首選同步時(shí)序設(shè)計(jì)方式!,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 9,3.1.2 同步設(shè)計(jì),3.1.2.2 同步設(shè)計(jì)的原則,所有信號(hào)均由時(shí)鐘驅(qū)動(dòng),并且在同一個(gè)設(shè)計(jì)內(nèi),最好只由同一個(gè)時(shí)鐘驅(qū)動(dòng)。 在同步設(shè)計(jì)中,一切邏輯均可簡化為由下面的結(jié)構(gòu)羅列而成,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 10,3.1.2 同步設(shè)計(jì),3.1.2.3 建立
7、時(shí)間和保持時(shí)間,建立時(shí)間(TSU):在時(shí)鐘有效沿之前數(shù)據(jù)必須保持穩(wěn)定的最小時(shí)間 保持時(shí)間(TH):在時(shí)鐘有效沿之后數(shù)據(jù)必須保持穩(wěn)定的最小時(shí)間 建立時(shí)間和保持時(shí)間形成一個(gè)時(shí)間窗,在此窗之內(nèi),數(shù)據(jù)必須保持穩(wěn)定。 同步設(shè)計(jì)的速度限制,根本上源于建立時(shí)間和保持時(shí)間的要求,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 11,3.1.2 同步設(shè)計(jì),3.1.2.4 統(tǒng)一時(shí)鐘和時(shí)鐘使能!,在同一個(gè)設(shè)計(jì)中,盡量讓所有的模塊使用同一時(shí)鐘,讓所有的“always(xxxedge clk)”中的clk是同一個(gè)clk。 系統(tǒng)中不同部分的信號(hào)速率可能不一樣,使用時(shí)鐘使能控制處理速率。,例如:要讓一個(gè)
8、模塊以1/8時(shí)鐘工作:,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 12,3.1.2 同步設(shè)計(jì),3.1.2.4 統(tǒng)一時(shí)鐘和數(shù)據(jù)使能!,數(shù)據(jù)流處理模塊的端口建議,使用于一切對(duì)單個(gè)數(shù)據(jù)處理需要數(shù)個(gè)、甚至不確定數(shù)目的時(shí)鐘周期的情況。,Clk:工作時(shí)鐘 ARst:異步復(fù)位 DataIn:數(shù)據(jù)輸入 DataEn:輸入數(shù)據(jù)有效 DataOut:數(shù)據(jù)輸出 DataValid:輸出數(shù)據(jù)有效指示 每一級(jí)的DataValid接至后級(jí)的DataEn。 DataEn有效時(shí),采入數(shù)據(jù)進(jìn)行處理。 處理完數(shù)據(jù)輸出的同時(shí)讓DataValid有效,通知下級(jí)。,Spring 2010,可綜合Verilog
9、HDL設(shè)計(jì),Slide 13,3.1.3 串并操作,“串并操作”是面積速度互換原則的直接體現(xiàn)。 將串行轉(zhuǎn)換為并行,一般旨在通過復(fù)制邏輯,提高整個(gè)設(shè)計(jì)的設(shè)計(jì)吞吐量,其本質(zhì)是通過面積的消耗提高系統(tǒng)的工作速率。 將并行轉(zhuǎn)換為串行,一般旨在節(jié)約資源,因?yàn)樵O(shè)計(jì)速度有足夠的余量,通過提高串行通道的工作速率而節(jié)約了面積,其本質(zhì)是通過速度的提高節(jié)約芯片面積。如串行加法器,乘法器,除法器等。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 14,3.1.4 流水線,流水線處理是高速設(shè)計(jì)中的常用設(shè)計(jì)手段,是面積換取速度原則的又一具體體現(xiàn)。 時(shí)序邏輯處理數(shù)據(jù)流就是天然的流水線結(jié)構(gòu)。 流水線的結(jié)構(gòu)
10、示例:,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 15,3.1.4 流水線,流水線示例:Y=|A|*100-100,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 16,3.1.5 異步時(shí)鐘域處理,如果連續(xù)兩個(gè)數(shù)據(jù)處理模塊需要使用不同的時(shí)鐘,前級(jí)的數(shù)據(jù)由一個(gè)時(shí)鐘驅(qū)動(dòng)輸出,而后級(jí)的輸入?yún)s有另一個(gè)時(shí)鐘采入。這時(shí)出現(xiàn)時(shí)鐘異步。 異步域數(shù)據(jù)同步也是FPGA設(shè)計(jì)的一個(gè)較常見問題,處理不好往往會(huì)影響系統(tǒng)穩(wěn)定。 異步時(shí)鐘域同步的表現(xiàn)形式: 同頻異相問題,兩個(gè)時(shí)鐘域頻率相同,但相差不固定。 異頻問題,兩個(gè)時(shí)鐘域的頻率不同。,Spring 2010,可綜合Veril
11、ogHDL設(shè)計(jì),Slide 17,3.1.5 異步時(shí)鐘域處理,一般同步方法: 兩級(jí)寄存器采樣,即用后級(jí)時(shí)鐘對(duì)前級(jí)數(shù)據(jù)采樣兩次。這種做法可以有效地減少亞穩(wěn)態(tài)的傳播,使后級(jí)電平都是有效電平值,但不一定是正確電平值。該方法適用于對(duì)錯(cuò)誤不敏感的同頻異相時(shí)鐘域數(shù)據(jù)的同步。 使用FIFO,可以可靠解決異步時(shí)鐘域數(shù)據(jù)的同步問題,注意數(shù)據(jù)滿和空:前級(jí)時(shí)鐘大于后級(jí)時(shí)鐘,注意寫滿;前級(jí)時(shí)鐘小于后級(jí)時(shí)鐘,注意讀空。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 18,3.1.5 異步時(shí)鐘域處理,特殊情況轉(zhuǎn)換低頻時(shí)鐘為時(shí)鐘使能: 如果低頻時(shí)鐘頻率遠(yuǎn)低于高頻時(shí)鐘,建議用高頻時(shí)鐘將低頻時(shí)鐘同步為單周
12、期使能信號(hào)。 典型例子: 用外部處理器(或用NIOS PIO)與FPGA邏輯交互。外部處理器送來的時(shí)鐘可能很慢。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 19,3.2 組合邏輯的建模,3.2.1 方法一數(shù)據(jù)流建模 參數(shù)化的奇偶校驗(yàn)器 3.2.2 方法二行為建模 BCD7段譯碼器 3.2.3 方法三結(jié)構(gòu)建模 雙向信號(hào)接口,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 20,3.2.1 組合邏輯的數(shù)據(jù)流建模,參數(shù)化的奇偶校驗(yàn)器的建模 module ParityGenerator(DataIn,OddPar,EvenPar); parameter N
13、BITS=4; input NBITS-1:0 DataIn; output OddPar,EvenPar; assign EvenPar=DataIn; assign OddPar=EvenPar; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 21,3.2.2 組合邏輯的行為建模,BCD7段譯碼器的建模 module bcd2led(a,b,c,d,e,f,g,D3,D2,D1,D0); output a,b,c,d,e,f,g; input D3,D2,D1,D0; reg a,b,c,d,e,f,g; always(D3 or D2 or D1
14、 or D0) begin case(D3,D2,D1,D0) 4d0: a,b,c,d,e,f,g=7b1111110; 4d1: a,b,c,d,e,f,g=7b0110000; 4d2: a,b,c,d,e,f,g=7b1101101; 4d3: a,b,c,d,e,f,g=7b1111001; 4d4: a,b,c,d,e,f,g=7b0110011; 4d5: a,b,c,d,e,f,g=7b1011011; 4d6: a,b,c,d,e,f,g=7b1011111; 4d7: a,b,c,d,e,f,g=7b1110000; 4d8: a,b,c,d,e,f,g=7b1111111
15、; 4d9: a,b,c,d,e,f,g=7b1111011; default: a,b,c,d,e,f,g=7b0000000; endcase end endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 22,3.2.3 組合邏輯的結(jié)構(gòu)建模,雙向信號(hào)接口的建模 module EE_SSTL(O,I,IO,E,BI); output O; input I,E,BI; inout IO; wire q1; bufif1 g1(IO,I,E); bufif1 g2(q1,IO,BI); buf g3(O,q1); endmodule,Spring 2010,可
16、綜合VerilogHDL設(shè)計(jì),Slide 23,3.3 時(shí)序邏輯的建模,3.3.1 觸發(fā)器建模 異步清零或置位 同步清零或置位 3.3.2 鎖存器建模 異步清零或置位 3.3.3 計(jì)數(shù)器建模 二進(jìn)制計(jì)數(shù)器 模N計(jì)數(shù)器 格雷碼計(jì)數(shù)器 3.3.4 移位寄存器建模 3.3.5 一些設(shè)計(jì)的注意事項(xiàng),Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 24,3.3.1 觸發(fā)器建模,3.3.1.1 異步置位清零D觸發(fā)器 module AsyncPreClrDFF(clk,clear,preset,data,q); input clk,clear,data,preset; output q;
17、 reg q; always(posedge clk or posedge clear or posedge preset) if(preset) q=1b1; else if(clear) q=1b0; else q=data; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 25,3.3.1 觸發(fā)器建模,3.3.1.2 同步置位清零D觸發(fā)器 module SyncPreClrDFF(clk,clear,preset,data,q); input clk,clear,data,preset; output q; reg q; always(negedg
18、e clk) if(preset) q=1b1; else if(clear) q=1b0; else q=data; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 26,3.3.2 鎖存器建模,3.3.2.1 異步置位清零鎖存器 module AsyncPreClrLatch(clk,clear,preset,data,q); input clk,clear,data,preset; output q; reg q; always(clk or clear or preset or data) if(preset) q=1b1; else if(cl
19、ear) q=1b0; else if(clk) q=data; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 27,3.3.3 計(jì)數(shù)器建模,3.3.3.1 二進(jìn)制計(jì)數(shù)器 module BinaryCounter(Ck,UpDown,PresetClear,LoadData,DataIn,Q,QN); parameter NBITS=2; input Ck,UpDown,PresetClear,LoadData; input NBITS-1:0 DataIn; output NBITS-1:0 Q,QN; reg NBITS-1:0 Counter;
20、always(posedge Ck) if(PresetClear) Counter=0; else if(LoadData) Counter=DataIn; else if(UpDown) Counter=Counter+1; else Counter=Counter-1; assign Q=Counter; assign QN=Counter; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 28,3.3.3 計(jì)數(shù)器建模,3.3.3.2 模N計(jì)數(shù)器 module ModuloN_Cntr(Clock,Clear,Q,QBAR); parameter
21、NBITS=2,UPTO=3; input Clock,Clear; output NBITS-1:0 Q,QBAR; reg NBITS-1:0 Counter; always(posedge Clock) if(Clear) Counter=0; else Counter=(Counter+1)%UPTO; assign Q=Counter; assign QBAR=Counter; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 29,3.3.3 計(jì)數(shù)器建模,3.3.3.3 格雷碼計(jì)數(shù)器 轉(zhuǎn)換規(guī)則:格雷碼最高位與二進(jìn)制碼最高位相同;格雷碼的次高位是
22、其二進(jìn)制碼的最高位和次高位異或的結(jié)果;依次類推,直到最低位。 module GrayCounter(ClockG,Clear,Q,QN); parameter NBITS=2; input ClockG,Clear; output 1:NBITS Q,QN; reg 1:NBITS Counter,GrayCount; integer K; always(posedge ClockG) if(Clear) Counter=0; else Counter=Counter+1; always(Counter) begin GrayCount1=Counter1; for(K=2;K=NBITS;K
23、=K+1) GrayCountK=CounterK-1CounterK; end assign Q=GrayCount; assign QN=GrayCount; endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 30,3.3.4 移位寄存器建模,3.3.3.4 3位通用移位寄存器的綜合模型 具備功能:保持、左移、右移、載入。 module UnivShiftRegister(Clock,Clear,LeftIn,RightIn,S0,S1,ParIn,Q); input Clock,Clear,LeftIn,RightIn,S0,S1; input 2:
24、0 ParIn; output 2:0 Q; reg 2:0 Q; always(negedge Clear or posedge Clock) if(!Clear) Q=3b000; else case(S0,S1) 2b00: ; 2b01: Q=Q1:0,RightIn; 2b10: Q=LeftIn,Q2:1; 2b11: Q=ParIn; endcase endmodule,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 31,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.1 避免組合邏輯反饋環(huán)路 組合邏輯反饋環(huán)路( Combinational Loops)是 PL
25、D設(shè)計(jì)的大忌!它最容易因振蕩、毛刺、時(shí)序違規(guī)等引起整個(gè)系統(tǒng)的不穩(wěn)定和不可靠。 處理方法: 牢記任何反饋環(huán)路必須包含寄存器。 檢查綜合、實(shí)現(xiàn)報(bào)告的Warning信息,發(fā)現(xiàn)Combinational Loops后進(jìn)行相應(yīng)修改。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 32,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.2 替換延遲鏈 延遲鏈?zhǔn)钱惒綍r(shí)序設(shè)計(jì)的常用手段,特別是在早期PLD設(shè)計(jì)和當(dāng)代ASIC設(shè)計(jì)中,經(jīng)常使用Delay Chains實(shí)現(xiàn)兩個(gè)結(jié)點(diǎn)間的延遲調(diào)整。當(dāng)代PLD設(shè)計(jì)推薦使用同步實(shí)現(xiàn)設(shè)計(jì)方法,一般要避免使用異步的Delay Chains。 在同步時(shí)序設(shè)計(jì)中,取
26、代異步Delay Chains的最常用方法是用分頻或倍頻的時(shí)鐘或者同步計(jì)數(shù)器完成所需延遲。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 33,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.3 替換異步脈沖產(chǎn)生單元:,在異步設(shè)計(jì)中,常用Delay Chains完成脈沖產(chǎn)生:,常用的同步脈沖產(chǎn)生方法:,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 34,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.4 慎用鎖存器 同步邏輯設(shè)計(jì)要避免使用Latch。 綜合出與設(shè)計(jì)意圖不吻合的Latch結(jié)構(gòu)的主要原因有: 在設(shè)計(jì)組合邏輯時(shí),使用不完全的條件判斷語句,如if沒有
27、else,或不完整的case語句; 設(shè)計(jì)中存在組合邏輯的反饋環(huán)路。 防止產(chǎn)生非目的性Latch的方法: 使用完備的ifelse語句; 檢查設(shè)計(jì)中是否含有組合邏輯反饋環(huán)路; 為每個(gè)輸入條件設(shè)計(jì)輸出操作,對(duì)case語句設(shè)置默認(rèn)操作; 使用case語句時(shí),特別是在設(shè)計(jì)狀態(tài)機(jī)時(shí),盡量附加綜合約束屬性,綜合為完全條件case語句(full case)。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 35,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.5 同步時(shí)序電路推薦的時(shí)鐘設(shè)計(jì)方法 時(shí)鐘經(jīng)全局時(shí)鐘輸入引腳輸入,通過FPGA內(nèi)部專用PLL進(jìn)行分頻/倍頻(一般可實(shí)現(xiàn)小數(shù)分頻倍頻)、移相
28、等調(diào)整與運(yùn)算,然后經(jīng)FPGA內(nèi)部全局時(shí)鐘布線資源(一般為全銅工藝)驅(qū)動(dòng)到達(dá)芯片內(nèi)所有寄存器和其它模塊的時(shí)鐘輸入端。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 36,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.6 內(nèi)部邏輯產(chǎn)生的時(shí)鐘 如果需要使用內(nèi)部邏輯產(chǎn)生時(shí)鐘,必須要在組合邏輯產(chǎn)生的時(shí)鐘后插入寄存器。,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 37,3.3.5 一些設(shè)計(jì)的注意事項(xiàng),3.3.5.7 門控時(shí)鐘的使用問題 門控時(shí)鐘即Gated Clock,是IC設(shè)計(jì)的一種常用減少功耗的手段。但是Gated Clock不是同步時(shí)序電路,其門控邏輯會(huì)污
29、染Clock的質(zhì)量。 門控時(shí)鐘改進(jìn)電路:,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 38,3.4 存儲(chǔ)器的建模與使用,最好把存儲(chǔ)器建模成一個(gè)元件。通常,綜合工具不能有效地設(shè)計(jì)出存儲(chǔ)器。一般采用更傳統(tǒng)的技術(shù)來建立存儲(chǔ)器。一旦建立了存儲(chǔ)器模塊,就可以在綜合模型中使用模塊實(shí)例化語句來實(shí)例化該模塊。 層次設(shè)計(jì)方法和圖文混合設(shè)計(jì)的概念 實(shí)例:查找表乘法器,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 39,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 40,3.4.1 存儲(chǔ)器的使用步驟,Spring 20
30、10,可綜合VerilogHDL設(shè)計(jì),Slide 41,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 42,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 43,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 44,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 45,3.4.1 存儲(chǔ)器的使用步驟,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 46,3.4.2 圖形輸入,S
31、pring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 47,3.4.3 建立存儲(chǔ)器初始化文件,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 48,3.4.4 設(shè)定存儲(chǔ)器初始化數(shù)據(jù),Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 49,3.4.5 仿真結(jié)果,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 50,3.5 有限狀態(tài)機(jī)的建模,3.5.1 有限狀態(tài)機(jī)的概念 3.5.2 有限狀態(tài)機(jī)的設(shè)計(jì)步驟 3.5.3 有限狀態(tài)機(jī)的狀態(tài)編碼 3.5.4 有限狀態(tài)機(jī)的設(shè)計(jì)方法 3.5.5 有限狀態(tài)機(jī)的建模實(shí)例序列檢測器,Spring
32、2010,可綜合VerilogHDL設(shè)計(jì),Slide 51,3.5.1 有限狀態(tài)機(jī)的概念,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 52,3.5.2 有限狀態(tài)機(jī)的設(shè)計(jì)步驟,1、邏輯抽象,得出狀態(tài)轉(zhuǎn)換圖 2、狀態(tài)化簡 3、狀態(tài)分配 4、選定觸發(fā)器類型,求出狀態(tài)方程,驅(qū)動(dòng)方程,輸出方程 5、按照方程得出邏輯圖 用Verilog語言描述,大部分工作都由計(jì)算機(jī)自動(dòng)完成,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 53,3.5.3 有限狀態(tài)機(jī)的狀態(tài)編碼,二進(jìn)制編碼或格雷碼 獨(dú)熱碼 CPLD格雷碼 FPGA獨(dú)熱碼,Spring 2010,可綜合Verilo
33、gHDL設(shè)計(jì),Slide 54,3.5.4 有限狀態(tài)機(jī)的設(shè)計(jì)方法,三段式狀態(tài)機(jī)的設(shè)計(jì)方法 狀態(tài)轉(zhuǎn)移塊(時(shí)序) 狀態(tài)驅(qū)動(dòng)塊(組合) 狀態(tài)輸出塊(組合),Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 55,3.5.5 序列檢測器,檢測到序列110,輸出1,否則0 狀態(tài)轉(zhuǎn)換圖: (S0:輸入一個(gè)0;S1:收到一個(gè)1;S2:連續(xù)收到兩個(gè)1;S3:連續(xù)收到110),Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 56,3.5.5 序列檢測器,狀態(tài)轉(zhuǎn)移塊 parameter 3:0 s0=4b0001,s1=4b0010,s2=4b0100,s3=4b1000;
34、/獨(dú)熱碼 reg 3:0 current_state,next_state; always (posedge clk) /狀態(tài)轉(zhuǎn)移塊 begin if(!nclr) current_state=s0; else current_state=next_state; end,Spring 2010,可綜合VerilogHDL設(shè)計(jì),Slide 57,3.5.5 序列檢測器,狀態(tài)驅(qū)動(dòng)塊 always (current_state or data) / 狀態(tài)驅(qū)動(dòng)塊 begin case(current_state) s0: next_state=(data=1)?s1:s0); s1: next_state=(data=1)?s2:s0); s2: next_state=(data=1)?s2:s3); s3: next_st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年AED應(yīng)急急救知識(shí)培訓(xùn)試題及答案解析
- 激光雷達(dá)技術(shù)在交通尾流優(yōu)化領(lǐng)域的創(chuàng)新與市場應(yīng)用前景
- 農(nóng)村土地征收工作流程-企業(yè)管理
- 旅游行業(yè)產(chǎn)品價(jià)格管理制度流程
- 九年級(jí)化學(xué)上冊教學(xué)質(zhì)量監(jiān)控計(jì)劃
- 老齡化背景下老年人營養(yǎng)餐定制服務(wù)的行業(yè)發(fā)展趨勢預(yù)測
- 2025至2030中國自動(dòng)切紙機(jī)行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 2025至2030中國膏藥貼劑行業(yè)市場深度調(diào)研及投資價(jià)值與投資前景報(bào)告
- 2025至2030中國脂質(zhì)調(diào)節(jié)劑行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國胎心檢測儀行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報(bào)告
- 解熱鎮(zhèn)痛抗炎藥非甾體抗炎藥專家講座
- DB44-T 2410-2023紅樹林生態(tài)修復(fù)工程評(píng)價(jià)技術(shù)規(guī)程
- YY/T 1830-2022電動(dòng)氣壓止血儀
- 臨床、口腔醫(yī)師申報(bào)衛(wèi)生高級(jí)職稱工作量登記表
- GB/T 10045-2018非合金鋼及細(xì)晶粒鋼藥芯焊絲
- GB 7099-2015食品安全國家標(biāo)準(zhǔn)糕點(diǎn)、面包
- 2023年納雍縣財(cái)政局系統(tǒng)事業(yè)單位招聘筆試題庫及答案解析
- 2023年廣東省普通高中學(xué)業(yè)水平考試及參考答案
- 建筑工程模板施工工藝技術(shù)要點(diǎn)講義豐富課件
- 浙江省建設(shè)領(lǐng)域簡易勞動(dòng)合同(A4版本)
- 位置度公差以及其計(jì)算
評(píng)論
0/150
提交評(píng)論