Verilog語言與FPGA數(shù)字邏輯設(shè)計_第1頁
Verilog語言與FPGA數(shù)字邏輯設(shè)計_第2頁
Verilog語言與FPGA數(shù)字邏輯設(shè)計_第3頁
Verilog語言與FPGA數(shù)字邏輯設(shè)計_第4頁
Verilog語言與FPGA數(shù)字邏輯設(shè)計_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VerilogHDL與FPGA數(shù)字邏輯設(shè)計報告組成數(shù)字邏輯電路組合邏輯時序邏輯Verilog&FPGA開發(fā)經(jīng)驗Verilog注意事項FPGA調(diào)試經(jīng)驗時序分析基礎(chǔ)輸入/輸出延時與建立/保持時間的計算偽路徑對聽眾要求有一定的數(shù)字電路基礎(chǔ);有Verilog&FPGA設(shè)計經(jīng)歷;精通帶小數(shù)點的加減運算。數(shù)字邏輯電路數(shù)字邏輯電路組合邏輯電路時序邏輯電路組合電路:一個電路,在某一時刻,它的輸出僅僅由該時刻的輸入所決定。(蔡惟錚.基礎(chǔ)電子技術(shù).北京:高等教育出版社,2007)時序電路:一個電路,在某一時刻,它的輸出不僅僅由該時刻的輸入所決定,還取決于過去的輸入。(蔡惟錚.基礎(chǔ)電子技術(shù).北京:高等教育出版社,2007)組合電路:基本邏輯門組合電路由邏輯門組成,是數(shù)字電路的基礎(chǔ)。C=A&B;C=A|B;B=~A;三態(tài)門:數(shù)據(jù)的雙向傳輸與總線的掛接B=(ENA)?A:1’bZ;組合電路:基本邏輯門問題:門電路各種參數(shù)的含義與測量方法?UOHMINUOLMAXUILMAXUIHMINIOHMAXIOLMAXIIHMAXIILMAXTPHLtPLHtPD應(yīng)用:邏輯門的扇出系數(shù)IBIS模型中輸入輸出模型的各種特性曲線……組合電路:其他邏輯門C=~(A&B);C=~(A|B);C=(A&(~B))|((~A)&B);C=A^B;C=~((A&(~B))|((~A)&B));C=~(A^B);常用組合電路:譯碼器譯碼器3-8譯碼器輸入輸出G1G2AN+G2BNCBAY0NY1NY2NY3NY4NY5NY6NY7N0XXXX11111111X1XXX111111111000001111111100011011111110010110111111001111101111101001111011110101111110111011011111101101111111111074138真值表常用組合電路:譯碼器74138邏輯圖常用組合電路:數(shù)據(jù)選擇器數(shù)據(jù)選擇器雙4選1數(shù)據(jù)選擇器數(shù)據(jù)選擇器的RTL符號常用組合電路:數(shù)據(jù)選擇器輸入輸出GNBAY1XX0000C0001C1010C2011C374153真值表74153的1/2邏輯圖常用組合電路:加法器加法器雙全加器加法器的RTL符號常用組合電路:加法器輸入輸出CIABSUMCO0000000110010100110110010101011100111111常用組合電路:加法器74183的1/2邏輯圖常用組合電路:數(shù)值比較器數(shù)值比較器7485數(shù)值比較器比較器的RTL符號常用組合電路:數(shù)值比較器數(shù)值比較器邏輯圖競爭與冒險競爭在組合電路中,同一信號經(jīng)由不同的途徑到達某一匯合點的時間有先有后,這種現(xiàn)象稱為競爭。把門電路兩個輸入信號同時向相反的邏輯電平跳變的現(xiàn)象叫競爭。冒險由競爭引起的電路輸出發(fā)生瞬間錯誤的現(xiàn)象稱為競爭冒險。(如輸出端產(chǎn)生的毛刺)“1”冒險:L=A&A*競爭與冒險“0”冒險:L=A+A*時序數(shù)字電路時序數(shù)字電路是由組合電路和存儲電路兩部分組成。(蔡惟錚.集成電子技術(shù).北京:高等教育出版社,2007)存儲電路一般由觸發(fā)器組成。觸發(fā)器觸發(fā)器:一種具有存儲、記憶一位二進制碼的器件。D鎖存器D觸發(fā)器?同步/異步時序數(shù)字電路時序數(shù)字電路分為同步時序數(shù)字電路和異步時序數(shù)字電路。時序電路同步時序電路異步時序電路同步/異步時序數(shù)字電路同步時序電路:存儲電路中觸發(fā)器的狀態(tài)由同一個時鐘控制。異步時序電路:觸發(fā)器不是由同一個時鐘控制,觸發(fā)器的翻轉(zhuǎn)有先有后。流水線流水線設(shè)計:把規(guī)模較大、層次較多的組合邏輯分成幾個級,在每一級插入寄存器組暫存中間數(shù)據(jù)。K級流水線就是從組合邏輯的輸入到輸出恰好有K級,每級一個寄存器組,上一級的輸出是下一集的輸入,且又無反饋。VerilogHDLHDL(HardwareDescriptionLanguage):硬件描述語言,用于描述數(shù)字電路。Verilog代碼風(fēng)格良好的代碼風(fēng)格有助于綜合工具對邏輯進行優(yōu)化。三態(tài)門三態(tài)信號僅在驅(qū)動頂層的輸出/雙向引腳時可以用。在AlteraFPGA內(nèi)部的信號傳輸時不可以用三態(tài)門。moduletristate(myinput,myenable,mybidir);inputmyinput,myenable;inoutmybidir;assignmybidir=(myenable?myinput:1'bZ);endmodule三態(tài)門my_bidirA三態(tài)門Cyclone系類FPGA的I/O結(jié)構(gòu)

OE

Output

Input內(nèi)部總線掛接數(shù)據(jù)接收邏輯sdram_fifo邏輯cf_fifo邏輯數(shù)據(jù)接收邏輯sdram_fifo邏輯cf_fifo邏輯數(shù)據(jù)接收邏輯sdram_fifo邏輯cf_fifo邏輯usb邏輯S通道E通道A通道USB接口遙測422接收邏輯cf_fifo邏輯FPGA流水線組合邏輯:c0Tc1+Tc2+Tc3=Tc0Max{Tc1,Tc2,Tc3}Tc0<c1DQc2DQc3DQ流水線modulebinary_adder_tree2(a,b,c,d,e,clk,out);parameterwidth=16;input[width-1:0]a,b,c,d,e;inputclk;output[width-1:0]out;assignout=a+b+c+d+e;endmodulemodulebinary_adder_tree2(a,b,c,d,e,clk,out);parameterwidth=16;input[width-1:0]a,b,c,d,e;inputclk;output[width-1:0]out;wire[width-1:0]temp1,temp2,temp4;assigntemp1=a+b;assigntemp2=c+d;assigntemp3=temp1+temp2;assignout=temp3+e;//assignout=(a+b)+(c+d)+e;endmodule流水線modulebinary_adder_tree(a,b,c,d,e,clk,out);parameterwidth=16;input[width-1:0]a,b,c,d,e;inputclk;output[width-1:0]out;wire[width-1:0]sum1,sum2,sum3,sum4;reg[width-1:0]sumreg1,sumreg2,sumreg3,sumreg4;//Registersalways@(posedgeCLK)beginsumreg1<=sum1;sumreg2<=sum2;sumreg3<=sum3;sumreg4<=sum4;end//2-bitadditionsassignsum1=a+b;assignsum2=c+d;assignsum3=sumreg1+sumreg2;assignsum4=sumreg3+e;assignout=sumreg4;endmodulemodulebinary_adder_tree2(a,b,c,d,e,clk,out);parameterwidth=16;input[width-1:0]a,b,c,d,e;inputclk;output[width-1:0]out;assignout=(a+b)+(c+d)+e;endmodule狀態(tài)機狀態(tài)機:注意事項如果狀態(tài)轉(zhuǎn)換邏輯中包含算法,則QuartusII不會將其綜合成狀態(tài)機;如果狀態(tài)變量作為輸出信號,則QuartusII不會將其綜合成狀態(tài)機;QuartusII不會把有符號的變量綜合成狀態(tài)機;推薦用parameter來表示各個狀態(tài),盡量不要直接用數(shù)字。case(state)0:beginif(ena)next_state<=state+2;elsenext_state<=state+1;end1:begin...endcase狀態(tài)機:注意事項狀態(tài)機進入非法狀態(tài)后,就會停止正常工作,直到對狀態(tài)機進行復(fù)位?!癲efault”語句不會使狀態(tài)機從非法狀態(tài)中跳出。導(dǎo)致狀態(tài)機進入非法狀態(tài)的主要原因是控制信號來自于不同的時鐘域。Themostcommoncauseofthissituationisastatemachinethathascontrolinputsthatcomefromanotherclockdomain.case(state) 3'b000:state<=3'b001; 3'b001:state<=3'b010; 3'b010:state<=3'b100; 3'b100:state<=3'b000; default:state<=3'b000;endcase狀態(tài)機預(yù)防措施在QuartusII中啟用“SafeStateMachine”對異步控制信號進行同步處理。參考:《QusrtusIIHandbookVersion9.0》——SectionII:DesignGuideline——SectionIII:Synthesis狀態(tài)機:defaultdefault僅對合法狀態(tài)有效,對非法狀態(tài)無效。Synthesistoolsremoveanylogicgeneratedbyadefaultstateifitisnotreachablebynormalstatemachineoperation.狀態(tài)機編寫規(guī)范case與if-elsecase和if-else一般會被綜合成多路選擇器。If-else通常被綜合成帶優(yōu)先級的多路選擇器。不需要指定選擇順序時,用case代替if-else,信號傳輸延時小。if(cond1)z=a;elseif(cond2)z=b;elseif(cond3)z=c;elsez=d;例1:DSP寫FPGADSP(2407)寫外部存儲器時序圖例1:DSP寫FPGA例1:DSP寫FPGA用2級寄存器做同步處理例1:DSP寫FPGA例2:時鐘測脈寬背景:雙通道AD并行采集ADCCLKOUTIns_AIns_BdataAdataBFPGASWITCHsynsyn例2:時鐘測脈寬延時導(dǎo)致測量誤差A(yù)DCCLKOUTIns_AIns_BSWITCH同步異步信號的扇出系數(shù)為1!例3:default的含義FIFO2CTRL.v邏輯中的6個狀態(tài)狀態(tài)機不在任何一個狀態(tài)例3:default的含義Default狀態(tài)為:WAIT_READ_CMD例3:default的含義最初懷疑QuartusII布局布線出了問題出現(xiàn)概率很??!對異步控制信號進行同步處理。修改Fitter選項例4:同步的缺點——延時高速卡數(shù)據(jù)發(fā)送時序圖兩次同步判斷上升沿例4:同步的缺點——延時同步導(dǎo)致延時例5:競爭與冒險背景介紹高速數(shù)據(jù)采集器組成每塊高速電路板上有2塊CF卡背板×1主控卡×1低速卡×1高速卡×3例5:競爭與冒險用CS[2:0]做3塊高速卡的片選信號用IQ信號區(qū)分電路板上的2塊CF卡問題:當(dāng)讀取高速卡上的Q路CF卡時,發(fā)現(xiàn)I路的CF卡也在上傳數(shù)據(jù)。概率極低:調(diào)試數(shù)月出現(xiàn)過2次。例5:競爭與冒險CS=0且IQ=0時,讀I卡;CS_I=(!CS)&(!IQ)產(chǎn)生“1”冒險時序分析基礎(chǔ)tsuthtcotpdtsuthDQclocktcotpd時序分析基礎(chǔ)Tclkfmax=1/Tclk_mintskewDQDQtsutcotclk1tclk2tcdtndTclk≥(tclk1-tclk2)+tco+tcd+tnd+tsutskew=tclk1-tclk2輸入延時(InputDelay)tinput_delaytcdtndtsu0th0tpd_CLKtsuthtxLaunchclockLatchclockth0≤tinput_delay+tcd+tnd–tpd_clk

tsu0≤Tclk-(tinput_delay+tcd+tnd–tpd_clk)=tCLKs+tco+tBD-tCLKdtinput_delay輸入延時(InputDelay)Tmin_iTmax_itsuthth=tmin_i

≥th0tsu=Tclk-tmax_i

≥tsu0時序分析工具(TimeQuest)用最小輸入延時計算保持時間,用最大輸入延時計算建立時間。Tclk-tsu0≥tinput_delay≥th0輸入延時:練習(xí)

ADC

FPGAclkoutdatatsu≥2.5nsth≥2.0nsfclk=125M

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論