實(shí)驗(yàn)二基于HDL十進(jìn)制計(jì)數(shù)器設(shè)計(jì)_第1頁(yè)
實(shí)驗(yàn)二基于HDL十進(jìn)制計(jì)數(shù)器設(shè)計(jì)_第2頁(yè)
實(shí)驗(yàn)二基于HDL十進(jìn)制計(jì)數(shù)器設(shè)計(jì)_第3頁(yè)
實(shí)驗(yàn)二基于HDL十進(jìn)制計(jì)數(shù)器設(shè)計(jì)_第4頁(yè)
實(shí)驗(yàn)二基于HDL十進(jìn)制計(jì)數(shù)器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(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)介

基于HDL十進(jìn)制計(jì)數(shù)、顯示系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)?zāi)康恼莆栈谡Z(yǔ)言的ISE設(shè)計(jì)全流程;熟悉、應(yīng)用VerilogHDL描述數(shù)字電路;掌握基于Verilog的組合和時(shí)序邏輯電路的設(shè)計(jì)方法。掌握chipscope片內(nèi)邏輯分析儀的使用與調(diào)試方法。設(shè)計(jì)準(zhǔn)備設(shè)計(jì)輸入設(shè)計(jì)處理器件編程功能仿真器件測(cè)試時(shí)序仿真設(shè)計(jì)準(zhǔn)備設(shè)計(jì)任務(wù):具有數(shù)顯輸出的十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)設(shè)計(jì)準(zhǔn)備設(shè)計(jì)任務(wù)表述:輸入信號(hào):clk_50m---系統(tǒng)采樣時(shí)鐘clk-------待計(jì)數(shù)的時(shí)鐘clr---------異步清零信號(hào),當(dāng)clr=1,輸出復(fù)位為0,當(dāng)clr=0,正常計(jì)數(shù)ena---------使能控制信號(hào),當(dāng)ena=1,電路正常累加計(jì)數(shù),否則電路不工作輸出信號(hào):q[6:0]---------驅(qū)動(dòng)數(shù)碼管,顯示計(jì)數(shù)值的個(gè)位COM-----------共陽(yáng)級(jí)數(shù)碼管公共端(接VCC)設(shè)計(jì)準(zhǔn)備需主要設(shè)計(jì)完成兩個(gè)子模塊,一個(gè)是十進(jìn)制計(jì)數(shù)器(cnt10.v),一個(gè)是驅(qū)動(dòng)七段數(shù)碼管的模塊(led.v)。由于實(shí)驗(yàn)板上的按鍵需要消抖,增加一個(gè)消抖模塊debounce_module,待計(jì)數(shù)的時(shí)鐘clk輸入至計(jì)數(shù)器前,先通過(guò)消抖模塊。本設(shè)計(jì)共包括3個(gè)模塊。設(shè)計(jì)準(zhǔn)備十進(jìn)制計(jì)數(shù)器:對(duì)輸入時(shí)鐘進(jìn)行計(jì)數(shù)輸入:CLK-------待計(jì)數(shù)的時(shí)鐘CLR---------異步清零信號(hào),當(dāng)CLR=1,輸出復(fù)位為0,當(dāng)CLR=0,正常計(jì)數(shù)ENA---------使能控制信號(hào),當(dāng)ENA=1,電路正常累加計(jì)數(shù),否則電路不工作輸出:SUM[3:0]----------計(jì)數(shù)值的個(gè)位。即,在CLK上升沿檢測(cè)到SUM=9時(shí),SUM將被置0,開(kāi)始新一輪的計(jì)數(shù)。COUT------------計(jì)數(shù)值的十位進(jìn)位,即:只有在時(shí)鐘CLK上升沿檢測(cè)到SUM=9時(shí),COUT將被置1,其余情況下COUT=0;設(shè)計(jì)準(zhǔn)備LED顯示驅(qū)動(dòng)模塊(led.v)輸入:sum[3:0]-------待顯示的數(shù)值out[6:0]----------驅(qū)動(dòng)數(shù)碼管的七位數(shù)值(注意下表中out的對(duì)應(yīng)位)數(shù)碼輸入sum輸出out對(duì)應(yīng)碼(h)3210Aout[0]Bout[1]Cout[2]Dout[3]Eout[4]Fout[5]Gout[6]00000000000181100011001111CF2001000100109230011000011086401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B8設(shè)計(jì)準(zhǔn)備電源按鍵消抖:通常的按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。根據(jù)實(shí)驗(yàn)板的資料,對(duì)按鍵輸入信號(hào)需進(jìn)行消抖處理。設(shè)計(jì)準(zhǔn)備消抖模塊電平檢查模塊:檢測(cè)輸入的按鍵是否被按下或者釋放,并分別將H2L_Sig,L2H_Sig拉高,并隨后拉低,給出按鍵的操作信息。延時(shí)模塊,對(duì)輸入的信號(hào)變化時(shí)刻進(jìn)行計(jì)時(shí)并觀察信號(hào)的變換情況,對(duì)輸出端口進(jìn)行恰當(dāng)?shù)刭x值實(shí)驗(yàn)資料中給出消抖模塊設(shè)計(jì)源代碼。消抖模塊不要求仿真下面分別設(shè)計(jì)1、十進(jìn)制計(jì)數(shù)器cnt10.v.2、LED驅(qū)動(dòng)模塊led.v3、按鍵消抖模塊4、頂層模塊設(shè)計(jì)設(shè)計(jì)準(zhǔn)備設(shè)計(jì)輸入設(shè)計(jì)處理器件編程功能仿真器件測(cè)試時(shí)序仿真十進(jìn)制計(jì)數(shù)器cnt10.v的設(shè)計(jì)設(shè)計(jì)輸入建立工程:file->NewProject要求:同學(xué)們?cè)贓盤(pán)或者DATA盤(pán)的根目錄下,以自己的學(xué)號(hào)為文件名建立工程選擇Top-level的類(lèi)型是HDL設(shè)計(jì)輸入注意器件、EDA工具的正確選擇設(shè)計(jì)輸入建立工程后,開(kāi)始模塊的設(shè)計(jì)。cnt10.v模塊設(shè)計(jì)1、建立新VerilogHDL模塊編輯窗口設(shè)計(jì)輸入選擇VerilogModule,并輸入合法文件名設(shè)計(jì)輸入在文本編輯窗口輸入代碼設(shè)計(jì)處理在sources窗口選中待綜合模塊cnt10,在process窗口雙擊Synthesize-XST綜合完后可以雙擊Synthesize-XST下的ViewRTLSchematic,得到綜合后的電路圖。1、綜合:功能仿真1)建立仿真激勵(lì)文件功能仿真考慮完備性測(cè)試和減短仿真耗時(shí),將時(shí)鐘周期改為100ns,測(cè)試文件時(shí)間長(zhǎng)度2000ns功能仿真根據(jù)所設(shè)計(jì)的十進(jìn)制計(jì)數(shù)器的各種工作狀態(tài),完成激勵(lì)信號(hào)的編輯功能仿真進(jìn)行仿真:1、選擇sourcesfor:BehavioralSimulation2、選中激勵(lì)源文件3、雙擊simulateBahavioralModel功能仿真分析得到的仿真波形,如有問(wèn)題,對(duì)設(shè)計(jì)進(jìn)行修正由于本次設(shè)計(jì)的時(shí)鐘周期長(zhǎng),對(duì)時(shí)序沒(méi)有要求,故可以省略各子模塊的時(shí)序仿真。LED驅(qū)動(dòng)模塊led.v的設(shè)計(jì)分析下表,(注意輸出out[6:0]與下表數(shù)據(jù)的對(duì)應(yīng)關(guān)系)理解led.v模塊的功能數(shù)碼輸入sum輸出out對(duì)應(yīng)碼(h)3210Aout[0]Bout[1]Cout[2]Dout[3]Eout[4]Fout[5]Gout[6]00000000000181100011001111CF2001000100109230011000011086401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B8LED驅(qū)動(dòng)模塊led.v的設(shè)計(jì)按照與cnt10.v相同的設(shè)計(jì)步驟完成led.v模塊的設(shè)計(jì)輸入、綜合、功能仿真cnt10.v和led.v組合為一個(gè)系統(tǒng)

用VerilogHDL將cnt10.v和led.v組合為一個(gè)模塊,完成綜合、功能仿真,分析波形,修正設(shè)計(jì)。消抖模塊設(shè)計(jì)了解消抖模塊的功能,拷貝相關(guān)代碼擬采用實(shí)驗(yàn)板上的50MHZ時(shí)鐘為延遲計(jì)數(shù)時(shí)鐘消抖模塊端口說(shuō)明:

debounce_module(CLK,RSTn,Pin_In,Pin_Out);CLK----50MHZ板上時(shí)鐘,提供給延時(shí)模塊計(jì)時(shí)使用。RSTn----異步復(fù)位信號(hào),RSTn=1,復(fù)位Pin_In---待消抖信號(hào),在本次設(shè)計(jì)是輸入給十進(jìn)制的時(shí)鐘信號(hào)。Pin_Out----消抖后輸出信號(hào),輸?shù)绞M(jìn)制計(jì)數(shù)模塊的時(shí)鐘信號(hào)。頂層模塊設(shè)計(jì)硬件測(cè)試平臺(tái)設(shè)計(jì):

系統(tǒng)輸入:十進(jìn)制計(jì)數(shù)器cnt10模塊中的復(fù)位信號(hào)(clr)通過(guò)撥動(dòng)開(kāi)關(guān)SW3輸入,使能信號(hào)(ena)通過(guò)撥動(dòng)開(kāi)關(guān)SW2輸入,待計(jì)數(shù)時(shí)鐘clk通過(guò)按鍵V16輸入,為保證設(shè)計(jì)效果,將clk通過(guò)消抖模塊處理后,生成的clk_out送到后續(xù)模塊。

系統(tǒng)輸出:向十位的進(jìn)位可以鎖于發(fā)光二極管(比如:LD4)數(shù)碼管驅(qū)動(dòng)的七位信號(hào)可輸出到D5,B6,E7,F(xiàn)7,B4,A4,C5等引腳。為簡(jiǎn)化設(shè)計(jì),消抖模塊的復(fù)位信號(hào)、使能信號(hào)與cnt10模塊共用頂層模塊設(shè)計(jì)用VerilogHDL代碼描述模塊的連接,構(gòu)成如下圖所示的系統(tǒng):頂層模塊處理HDL代碼完成后,綜合。頂層模塊不需要仿真。頂層模塊處理引腳鎖定:信號(hào)名引腳號(hào)信號(hào)名引腳號(hào)信號(hào)名引腳號(hào)clrN17AC5EB6enaH18BB4FE7clkV16CA4GA6clk_50mC9DF7COMD5頂層模塊處理由于clk沒(méi)鎖于ISE默認(rèn)的時(shí)鐘輸入引腳上,需要添加“CLOCK_DEDICATED_ROUTE=FALSE;”為了更好的消抖效果,需要在V16輸入端口加入下拉電阻,即需加“PULLDOWN”。所以在約束文件(.ucf)中clk的鎖定應(yīng)為為:1)、NET“clk”LOC=“V16”|PULLDOWN|CLOCK_DEDICATED_ROUTE=FALSE;”:或者2)NET“clk”LOC=“V16”|PULLDOWN;NET"clk"CLOCK_DEDICATED_ROUTE=FALSE;用戶約束文件(*.ucf)參考:NET"clk"LOC=V16| IOSTANDARD=LVCMOS33|PULLDOWN; NET"clk_50m"LOC=C9|IOSTANDARD=LVCMOS33; NET"clr"LOC=N17| IOSTANDARD=LVCMOS33; NET"ena"LOC=H18| IOSTANDARD=LVCMOS33; NET"q[0]"LOC=C5| IOSTANDARD=LVCMOS33;#DATA0 aNET"q[1]"LOC=B4| IOSTANDARD=LVCMOS33;#DATA1 bNET"q[2]"LOC=A4| IOSTANDARD=LVCMOS33;#DATA2 cNET"q[3]"LOC=F7| IOSTANDARD=LVCMOS33; #DATA3 dNET"q[4]"LOC=B6| IOSTANDARD=LVCMOS33;#DATA4 eNET"q[5]"LOC=E7| IOSTANDARD=LVCMOS33;#DATA5 fNET"q[6]"LOC=A6| IOSTANDARD=LVCMOS33; #DATA6 gNET"COM"LOC=D5| IOSTANDARD=LVCMOS33;#DATA7DIG 頂層模塊處理雙擊ImplementDesign,進(jìn)行布局布線下載雙擊GenerateProgrammingFile生成下載文件雙擊ConfigureTargetDevice點(diǎn)擊OK下載點(diǎn)擊Finish下載下載對(duì)隨后的兩個(gè)器件,一個(gè)是Prom,一個(gè)是CPLD,選擇Bypass。下載彈出對(duì)話框,點(diǎn)擊OK下載下載后,改變撥動(dòng)開(kāi)關(guān)和按鍵,觀察結(jié)果Chipscope在線調(diào)試Chipscope是Xilinx推出的一款在線調(diào)試軟件,如圖,通過(guò)JTAG仿真器將FPGA芯片中實(shí)際運(yùn)行的各種參數(shù)通過(guò)配置,傳回ISE套件中的chipscope軟件類(lèi)似于示波器,chipscope提供觸發(fā)深度,觸發(fā)方式等一系列設(shè)置,同時(shí)提供數(shù)據(jù)采樣觀察窗口Chipscope調(diào)試開(kāi)始–新建.cdc文件在HDL工程中添加chipscopefile,選擇ChipScopeDefinitionandConnectionFile,filename取名segChipscope-配置.cdc文件在原有的HDL工程下出現(xiàn)新建seg.cdc文件,可以在chipscope植入

ILA和ICONIP核,雙擊seg.cdc文件,進(jìn)入配置界面。Chipscope-設(shè)置觸發(fā)端口、類(lèi)型等進(jìn)入配置界面,每個(gè)觸發(fā)端口ILA核可支持多路比特?cái)?shù)據(jù),最多可有16個(gè)端口,觸發(fā)匹配類(lèi)型共有6種。這里配置根據(jù)需要調(diào)試的數(shù)據(jù)個(gè)數(shù)、類(lèi)型決定。Chipscope-設(shè)置采樣深度設(shè)置采樣深度,即為一次采樣數(shù)據(jù)所顯示的深度、個(gè)數(shù)。深度范圍512-16384,采樣深度越深,耗費(fèi)資源越多。然后點(diǎn)擊NetConnections標(biāo)簽,設(shè)置設(shè)置觸發(fā)時(shí)鐘與觸發(fā)信號(hào)界面。Chipscope-設(shè)置采樣信號(hào)選擇ModifyConnections選項(xiàng),進(jìn)入采樣時(shí)鐘和觸發(fā)信號(hào)設(shè)置,采樣時(shí)鐘用于捕捉觸發(fā)信號(hào)Chipscope-設(shè)置采樣時(shí)鐘設(shè)置觸發(fā)時(shí)鐘,一般選擇系統(tǒng)頻率最高的主時(shí)鐘注:Netselections中每個(gè)channel必須有添加有信號(hào),否則綜合要報(bào)錯(cuò)同樣設(shè)置觸發(fā)信號(hào),將TPO與TP1端口中的每個(gè)channel都添加,此處TP0監(jiān)測(cè)clk、clr、ena、coutTP1監(jiān)測(cè)的數(shù)碼管七段信號(hào)q[7:0]、以及COMChipscope-設(shè)置觸發(fā)數(shù)據(jù)注:一般選擇緩沖后的信號(hào),例如q_0_OBUFChipscope-JTAG掃描設(shè)置好以后保存退出,綜合與實(shí)現(xiàn),雙擊圖中AnalyzeD

溫馨提示

  • 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)論