2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(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)介

1、<p><b>  EDA實(shí)驗(yàn)技術(shù)文檔</b></p><p>  含異步清0和同步時(shí)鐘使能的4位加法計(jì)數(shù)器</p><p><b>  實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)原理</b></p><p>  利用Quartus II建立一個(gè)含計(jì)數(shù)使能、異步復(fù)位的4位加法計(jì)數(shù)器,并進(jìn)行仿真測(cè)試和硬件測(cè)試。</p><

2、p>  由實(shí)驗(yàn)開(kāi)發(fā)板上數(shù)字信號(hào)源Clock0提供一個(gè)輸入為4Hz的時(shí)鐘輸入信號(hào)clk,由開(kāi)發(fā)板上撥擋開(kāi)關(guān)SW1控制計(jì)數(shù)使能端ena并由LED1指示,由核心板上SYS_RST按鍵控制復(fù)位端rst并由LED2指示,進(jìn)位輸出由LED3指示,計(jì)數(shù)值由數(shù)碼管顯示。</p><p><b>  實(shí)驗(yàn)步驟</b></p><p>  1、使用Quartus II建立空白工程,

3、然后命名為cnt_4b.qbf</p><p>  雙擊打開(kāi)桌面上的Altera公司提供的Quartus II7.0(32-Bit)圖標(biāo),顯示如下軟件界面;</p><p>  選擇菜單欄中File>>New Project Wizard來(lái)新建工程,點(diǎn)擊后彈出新建工程向?qū)?duì)話框如下</p><p>  分別提示完成五項(xiàng)工作1)項(xiàng)目名稱與保存路徑2)頂層設(shè)

4、計(jì)實(shí)體名稱3)加入已有文件和相關(guān)庫(kù)4)指定目標(biāo)Altera器件封裝和型號(hào)5)設(shè)置項(xiàng)目的其他EDA工具</p><p>  單擊Next進(jìn)入如下圖所示界面,并按圖新建工程路徑、名稱、頂層實(shí)體</p><p>  在這里,工程名與頂層文件的實(shí)體名同名為cnt_4,文件夾所在路徑名和文件夾名中不能用中文,不能用空格,不能用括號(hào)(),可以用下劃線_或英文字母或數(shù)字,但最好也不要以數(shù)字開(kāi)頭。<

5、/p><p>  單擊Next進(jìn)入如下圖所示界面,這里是添加已有相關(guān)工程文件,這里我們是建立空白工程,所以不需要添加任何文件</p><p>  單擊Next進(jìn)入如下圖所示界面,這一步是對(duì)所用實(shí)驗(yàn)核心板中FPGA器件進(jìn)行設(shè)置,以確保代碼順利編譯和下載。MagicSOPC實(shí)驗(yàn)箱上的FPGA標(biāo)配為:Altera公司CycloneII系列的EP2C35F672。設(shè)置相關(guān)參數(shù)如圖所示。</p&g

6、t;<p>  設(shè)置完成后,單擊Next, 進(jìn)入如下圖所示界面,這里不需要設(shè)置其他EDA工具</p><p>  再單擊Next,出現(xiàn)如下圖所示的工程信息報(bào)告對(duì)話框,提示設(shè)計(jì)者看到工程文件配置信息報(bào)告。最后,單擊Finish,完成新建工程的建立。</p><p>  2、建立文本編程文件</p><p>  1)新建Verilog HDL源程序文件cn

7、t4b.v,輸入程序代碼并保存,(完整的程序參考清單見(jiàn)附錄),進(jìn)行綜合編譯。</p><p>  在第1步,已經(jīng)創(chuàng)建好的設(shè)計(jì)工程后,在菜單欄中File>>New打開(kāi)新建文本對(duì)話框如下圖所示,在新建對(duì)話框中選擇Verilog HDL File,按OK就可建立一個(gè)空的Verilog HDL文件,缺省名為Verilog1.v。</p><p>  再選擇菜單命令中File>&g

8、t;Save As 改名為cnt4b.v,點(diǎn)擊保存!</p><p>  這里切莫將文件名默認(rèn)為cnt_4b,根據(jù)筆者的經(jīng)驗(yàn)這將造成后續(xù)建立的相對(duì)應(yīng)的模塊符號(hào)無(wú)法正常添加到頂層實(shí)體的圖形設(shè)計(jì)文件中去。</p><p>  在cnt4b.v空白Verilog HDL程序文件中輸入設(shè)計(jì)計(jì)數(shù)程序模塊,輸入無(wú)誤后點(diǎn)擊圖標(biāo)加以保存。詳細(xì)程序文件和說(shuō)明見(jiàn)附錄1!</p><p>

9、;  這里要注意保證程序的模塊名應(yīng)和文件名一致!</p><p>  對(duì)上述的Verilog HDL文件進(jìn)行編譯處理,具體操作如下:</p><p>  如圖所示,在工程向?qū)诖翱谥械腇ile標(biāo)簽中的Led.v文件單擊鼠標(biāo)右鍵,在彈出的菜單中單擊Set at Top-level-Entity選項(xiàng)。將cnt4b.v文件設(shè)置為頂層實(shí)體。這一步很重要,不設(shè)置無(wú)法進(jìn)行b步驟的編譯與綜合</p

10、><p>  選擇菜單欄中Processing>>Start>>Start Analysis&Synthesis進(jìn)行綜合編譯,也可以選擇工具欄上的按鈕啟動(dòng)編譯</p><p>  若在編譯過(guò)程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。若編譯成功會(huì)出現(xiàn)如下圖形:</p><p>  2)再新建Verilog HDL源程序文件decl7

11、s.v,輸入程序代碼并保存,(完整的程序參考清單見(jiàn)附錄),進(jìn)行綜合編譯。</p><p>  相應(yīng)新建保存以及綜合編譯的步驟請(qǐng)參照1)新建cnt4b.v</p><p>  新建文件名decl7s.v的空白Verilog HDL文件</p><p>  在decl7s.v空白Verilog HDL程序文件中輸入顯示計(jì)數(shù)程序模塊,輸入無(wú)誤后點(diǎn)擊圖標(biāo)加以保存。詳細(xì)程序文

12、件和說(shuō)明見(jiàn)附錄2!</p><p>  對(duì)decl7s.v文件進(jìn)行Verilog HDL文件進(jìn)行編譯處理,這里同樣別忘了將文件設(shè)置為頂層實(shí)體文件</p><p>  至此,我們已經(jīng)建立了實(shí)驗(yàn)所需要的加法計(jì)數(shù)模塊和數(shù)碼管靜態(tài)顯示模塊!下面我們要做到就是將文本模塊程序進(jìn)行“封裝”!</p><p>  3、從設(shè)計(jì)文件創(chuàng)建模塊</p><p>  

13、如下圖所示,在工程向?qū)Ю锩娴腇iles標(biāo)簽中的cnt4b.v文件單擊鼠標(biāo)右鍵,在彈出的菜單中單擊Create Symbol Files for Current File選項(xiàng)。之后會(huì)彈出一對(duì)話框提示原理圖文件創(chuàng)建成功,點(diǎn)“確定”按鈕即可創(chuàng)建一個(gè)代表現(xiàn)行一個(gè)代表現(xiàn)行文件功能的符號(hào)文件(cnt4b.bsf)。</p><p>  同理,用同樣的操作步驟,可以輕松的創(chuàng)建對(duì)decl7s.v代表的decl7s.bsf符號(hào)文件

14、</p><p><b>  4、波形仿真驗(yàn)證</b></p><p>  這里我們將詳細(xì)介紹在第3部分建立的cnt4b.v計(jì)數(shù)模塊加以波形仿真驗(yàn)證(前仿真)</p><p>  選擇在工程向?qū)Ю锩娴腇iles標(biāo)簽中的cnt4b.v文件,將其設(shè)回頂層實(shí)體文件,然后在進(jìn)行一次綜合編譯(筆者認(rèn)為,是為了能在后續(xù)的Node Finder對(duì)話框找到所需

15、的引腳,而不是其他模塊的引腳,這一點(diǎn)請(qǐng)格外注意?。?lt;/p><p>  選擇菜單欄中File>>New命令,打開(kāi)新建文件對(duì)話框,如下圖所示:選擇Other Files標(biāo)簽頁(yè)從中選擇Vector Waveform File(矢量波形文件),按OK建立空的波形編輯窗口,缺省值為Waveform1.vwf.選擇File>>Save As改名為cnt_4b.vwf并保存。</p>&

16、lt;p>  在如下圖所示的Name標(biāo)簽區(qū)域內(nèi)雙擊鼠標(biāo)左鍵,彈出添加節(jié)點(diǎn)對(duì)話框</p><p>  在上圖中Insert Node or Bus對(duì)話框中單擊Node Finder 按鈕,彈出如下對(duì)話框,這里要進(jìn)行三步設(shè)置</p><p>  Filter>>Pins:all 按List按鈕</p><p><b>  按>>

17、添加所有節(jié)點(diǎn)</b></p><p>  按OK按鈕,這樣就會(huì)彈出一個(gè)未經(jīng)設(shè)置過(guò)的波形圖</p><p>  選擇Edit>>End Time命令,彈出結(jié)束時(shí)間對(duì)話框,在Time框中輸入仿真結(jié)束時(shí)間,這里我們采用默認(rèn)設(shè)置(1us)</p><p><b>  編輯輸入節(jié)點(diǎn)波形。</b></p><p&

18、gt;  筆者認(rèn)為這一步是體現(xiàn)實(shí)驗(yàn)者對(duì)實(shí)驗(yàn)對(duì)象計(jì)數(shù)模塊理解的情況下,根據(jù)自己仿真意圖,去建立輸入節(jié)點(diǎn)的波形,然后通過(guò)功能仿真觀察輸出波形,比對(duì)結(jié)果。</p><p>  如何建立輸入節(jié)點(diǎn)波形?</p><p>  在這里需要使用到上圖最左側(cè)的波形編輯器工具條,具體各個(gè)標(biāo)簽請(qǐng)?jiān)敿?xì)參照EDA實(shí)驗(yàn)與實(shí)踐教程(二)P84</p><p><b>  clk輸入:&

19、lt;/b></p><p>  點(diǎn)擊Name欄中的clk輸入,這樣會(huì)是其高亮度顯示</p><p>  點(diǎn)擊波形編輯器工具條中(時(shí)鐘),彈出如右圖的時(shí)鐘設(shè)置窗口,這里筆者采用默認(rèn)值</p><p><b>  點(diǎn)擊OK</b></p><p>  ena輸入和rst輸入</p><p> 

20、 分別點(diǎn)擊Name欄中的相應(yīng)輸入,在波形圖中,使用工具(或者其他功能工具標(biāo)簽)在合適位置進(jìn)行靈活設(shè)置,具體圖形請(qǐng)參照上圖。</p><p>  選擇Processing>>Simulator Tool命令,彈出如下窗口,按下圖進(jìn)行選擇設(shè)置</p><p><b>  具體步驟如下</b></p><p><b>  1)選

21、擇</b></p><p><b>  2)選擇仿真文件</b></p><p>  3)點(diǎn)擊,若產(chǎn)生功能仿真網(wǎng)表成功,提示如下信息</p><p><b>  4)選擇上</b></p><p>  5)按開(kāi)始仿真,若通過(guò),提示下圖信息:</p><p>  6

22、)按此按鈕打開(kāi)仿真后的波形文件,仿真后得到的波形文件如下圖所示:</p><p>  驗(yàn)證仿真結(jié)果是否與設(shè)計(jì)相符合,如果不符合,需要重新設(shè)計(jì)文件,再進(jìn)行綜合編譯、仿真。指導(dǎo)仿真結(jié)果與設(shè)計(jì)相符合為止</p><p>  5、建立頂層實(shí)體文件------圖形設(shè)計(jì)文件</p><p>  如圖所示,選擇菜單欄中File>>New打開(kāi)新建對(duì)話框,在新建對(duì)話框中選

23、擇Block Diagram/Schematic File,按OK就可建立一個(gè)空的圖形設(shè)計(jì)文件,缺省名為Block1.bdf。</p><p>  如圖所示,選擇菜單欄中File>>Save As打開(kāi)將BDF文件存盤(pán)的對(duì)話框,</p><p>  在這里,一定要接受默認(rèn)的文件名(與頂層實(shí)體名一定要相同),并默認(rèn)Add file to current projext選項(xiàng)選中,以使

24、該文件添加到工程中去。</p><p>  至此,完成了頂層模塊的建立,下面將Verilog HDL文件生成的模塊符號(hào)文件加入到頂層模塊中去!</p><p>  6. 建立4位加法計(jì)數(shù)器頂層模塊原理圖</p><p>  添加cnt4b.bsf模塊到Quartus II頂層模塊</p><p>  在工程向?qū)诖翱谥械腇ile標(biāo)簽中的cnt

25、_4b.bdf文件單擊鼠標(biāo)右鍵,在彈出的菜單中單擊Set at Top-level-Entity選項(xiàng)。將cnt_4b.bdf文件設(shè)置為頂層實(shí)體。</p><p>  在cnt_4b.bdf右側(cè)空白窗口中,任意處雙擊,彈出添加符號(hào)(symbol)的對(duì)話框,如下圖所示:</p><p>  c.單擊OK,Symbol對(duì)話框被關(guān)閉,cnt_4bf符號(hào)被附在鼠標(biāo)的指針上,在cnt_4b.bdf的窗

26、口中的適當(dāng)位置,放下該符號(hào)</p><p>  d.選擇File>>Save來(lái)保存QuartusII頂層文件cnt_4b.bdf</p><p>  添加decl7s.bsf模塊到Quartus II頂層模塊</p><p>  添加方法請(qǐng)參照cnt4b.bsf模塊添加方法b,c,d步驟,所不同的就是選擇的模塊是decl7s.bsf,放在合適的位置上。&

27、lt;/p><p>  添加引腳和其他基本單元,組成完整的頂層模塊圖</p><p>  如上圖所示,在空白設(shè)計(jì)欄最左側(cè)豎向排列著若干圖標(biāo),即所謂的模塊編輯工具欄,具體內(nèi)容詳見(jiàn)EDA實(shí)驗(yàn)與實(shí)踐教程(二)P58</p><p>  我們這里就是使用若干模塊編輯工具欄中按鈕,完成頂層模塊設(shè)計(jì)!具體操作步驟如下:</p><p>  單擊模塊編輯工具欄

28、中按鈕,插入符號(hào)對(duì)話框如下圖所示,這里默認(rèn)選擇了Repeat-insert mode,如此便可以重復(fù)插入相同功能的引腳。</p><p>  在Name欄目中直接輸入input,單擊OK按鈕</p><p>  連續(xù)插入三個(gè)輸入引腳,由于只需要三個(gè)輸入引腳,故浮動(dòng)出現(xiàn)第四個(gè)引腳右鍵單擊出現(xiàn)選擇菜單,點(diǎn)擊Cancel即可取消,如下圖所示</p><p>  d.同樣的

29、方法可以添加5個(gè)輸出引腳(Name欄目中輸入output)、2個(gè)非門(mén)(Name欄目中輸入not)、1個(gè)數(shù)字地(Name欄目中輸入gnd)。拖動(dòng)引腳符號(hào),按下圖進(jìn)行相應(yīng)正確放置</p><p>  在正確放置后,需要用到模塊編輯工具欄中按鈕(畫(huà)線)和按鈕(畫(huà)總線),需要正確使用兩種工具,切莫搞混亂用,否則在編譯的時(shí)候會(huì)報(bào)錯(cuò),尤其是需要注意在數(shù)碼管位碼dig[7..0]由于是8位輸出引腳線,所以需要用總線連接而不能用

30、單線!</p><p>  雙擊各個(gè)引腳符號(hào),進(jìn)行相應(yīng)引腳命名</p><p>  選擇菜單欄中File>>Save保存BDF文件</p><p>  g. 單擊快捷菜單欄中(或者按CTRL+L),開(kāi)始編譯!這一步的目的筆者認(rèn)為主要基于兩點(diǎn)1)檢查上述設(shè)計(jì)的cnt_4b.bdf文件2)方便后續(xù)分配FPGA引腳時(shí)會(huì)自動(dòng)出現(xiàn)所需信號(hào)名,而不需要自己輸入&l

31、t;/p><p>  7. 選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定</p><p>  在這里選擇的器件為Altera公司Cyclone II系列的EP2C35F672C8芯片,具體操作在</p><p>  單擊菜單欄中Assignments>>Device,如下圖所示。進(jìn)行如下操作:</p><p>  Family>>C

32、yclone II</p><p>  Package>>FBGA</p><p>  Pin count>>672</p><p>  Speed grade>>8</p><p>  Available device>> EP2C35F672C8項(xiàng)</p><p> 

33、 注意:這里其實(shí)已經(jīng)在一開(kāi)始建立空白工程的時(shí)候完成,所以只需要進(jìn)行再次的確認(rèn)和修改</p><p>  在上圖點(diǎn)擊 Device&Pin Options,打開(kāi)Device&Pin Options對(duì)話框。在對(duì)話框中選擇Configuration標(biāo)簽頁(yè)按下圖進(jìn)行設(shè)置,即采用串行配置器件EPCS16的主動(dòng)配置方式。</p><p>  在對(duì)話框中選擇Unused Pins標(biāo)簽頁(yè)按

34、下圖進(jìn)行沒(méi)有使用引腳的設(shè)置,按照下圖設(shè)置將未使用引腳設(shè)置為高阻輸入,這樣上電后FPGA的所有不使用引腳后進(jìn)入高阻抗?fàn)顟B(tài)。</p><p>  筆者認(rèn)為:這一步是相當(dāng)關(guān)鍵,它可以避免多外設(shè)連接時(shí)造成的總線沖突,不至于造成讀數(shù)據(jù)錯(cuò)誤,甚至更嚴(yán)重的長(zhǎng)時(shí)間的器件過(guò)熱而燒毀,所以一定要將未定義的管腳設(shè)置為AS input tri-stated(三態(tài)輸入)方式</p><p>  點(diǎn)擊確認(rèn)和OK即可退

35、出選擇器件設(shè)置完成</p><p>  本實(shí)驗(yàn)中各引腳的命名以及與目標(biāo)FPGA器件引腳號(hào)的關(guān)系如下表,我們就根據(jù)自己核心板選擇相應(yīng)的引腳進(jìn)行分配。</p><p>  MagicSOPC部分引腳索引表</p><p>  注意:ena信號(hào)是撥擋開(kāi)關(guān)的輸入,I/O Bank 工作電壓是2.5V,所以在I/O電平也應(yīng)設(shè)置為2.5。</p><p>

36、;  單擊菜單欄中Assignments>>Pin,如下圖所示。進(jìn)行如下操作:</p><p>  根據(jù)MagicSOPC部分引腳索引表在Location欄中輸入對(duì)應(yīng)管腳號(hào)</p><p>  核對(duì)完成后在菜單欄中File>>close,便可以退回到主界面cnt_4b.bdf頂層文件中</p><p>  至此我們已經(jīng)完成了在QuartusI

37、I上的軟件設(shè)計(jì)和相關(guān)設(shè)置,下一步就是全局編譯了!</p><p>  8. 全程編譯和下載程序</p><p>  點(diǎn)擊工具欄中,對(duì)整個(gè)工程文件進(jìn)行全程編譯處理,若在編譯過(guò)程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。</p><p>  在編譯系統(tǒng)過(guò)程中,狀態(tài)窗口顯示整個(gè)編譯進(jìn)行及每個(gè)編譯階段所用的時(shí)間。在編譯結(jié)果顯示在Compilation Report窗口

38、中。</p><p>  在編譯工程中可能產(chǎn)生很多警告信息,但這個(gè)不會(huì)影響設(shè)計(jì)結(jié)果!比如在本實(shí)驗(yàn)中,筆者在自己的電腦上運(yùn)行該編譯過(guò)程39秒,產(chǎn)生了13個(gè)警告信息。這些信息可以根據(jù)軟件手冊(cè)和提示得到一定的解決!對(duì)話框提示”Info: Quartus II Full Compilation was successful. 0 errors, 13 warnings”</p><p>  點(diǎn)擊確

39、定即可!如上圖所示</p><p><b>  查看編譯報(bào)告</b></p><p>  在下載程序之前,請(qǐng)?jiān)趯?shí)驗(yàn)箱上確保數(shù)字信號(hào)源(在核心板臨邊右側(cè))的JP11的短路帽是處于ON位置,JP7中CLOCK0的短路帽處于4hz位置。</p><p>  這里還要特別提示CLOCK0~CLOCK3對(duì)應(yīng)的排針左邊由不同頻率的數(shù)字信號(hào),排針右邊是連到一

40、起的,所以每組信號(hào)源只能插一個(gè)短路帽,否則可能會(huì)損害芯片!</p><p>  下載硬件設(shè)計(jì)到目標(biāo)FPGA</p><p>  方式一 成功編譯硬件系統(tǒng)后,將產(chǎn)生cnt_4b.sof的FPGA配置文件輸出。本步驟簡(jiǎn)單介紹利用JTAG方式下載到目標(biāo)FPGA器件的步驟。</p><p>  通過(guò)Z-Blaster下載電纜連接實(shí)驗(yàn)箱JTAG口和主計(jì)算機(jī),接通實(shí)驗(yàn)箱電源&l

41、t;/p><p>  在QuartusII軟件中選擇Tools>>Programmer,或者點(diǎn)擊工具欄按鈕。打開(kāi)編程器窗口并自動(dòng)打開(kāi)配置文件(cnt_4b.sof),如下圖所示。</p><p>  確保編程器窗口左上角的Hardware Setup欄中硬件已經(jīng)安裝</p><p><b>  選擇JTAG模式</b></p>

42、;<p>  確保Program/Configure下的方框選中</p><p>  單擊開(kāi)始使用配置文件對(duì)FPGA進(jìn)行配置,Progress欄顯示配置進(jìn)度。</p><p>  方式二 成功編譯硬件系統(tǒng)后,將產(chǎn)生cnt_4b.pof的FPGA配置文件輸出。本步驟簡(jiǎn)單介紹利用AS方式下載到目標(biāo)FPGA器件的步驟。</p><p>  a.通過(guò)Z-Bl

43、aster下載電纜連接實(shí)驗(yàn)箱AS口和主計(jì)算機(jī),接通實(shí)驗(yàn)箱電源</p><p>  b.在QuartusII軟件中選擇Tools>>Programmer,或者點(diǎn)擊工具欄按鈕。</p><p>  c.確保編程器窗口左上角的Hardware Setup欄中硬件已經(jīng)安裝</p><p>  d.選擇AS模式,由于筆者之前默認(rèn)的JTAG方式下載,所以需要手動(dòng)添加

44、cnt_4b.pof文件</p><p>  點(diǎn)擊彈出對(duì)話框選擇cnt_4b.pof文件后點(diǎn)擊打開(kāi),這樣就將需要的文件添加進(jìn)去(如果之前有SOF文件,需要先選中文件后按按鈕加以刪除)</p><p>  e.確保Program/Configure下的方框選中</p><p>  f.單擊開(kāi)始使用配置文件對(duì)FPGA進(jìn)行配置,Progress欄顯示配置進(jìn)度。</p

45、><p>  這里方式一是利用JTAG方式,掉電后FPGA中的配置數(shù)據(jù)將丟失,因?yàn)榕渲梦募鎯?chǔ)在RAM中,下載速度相對(duì)主從AS下載較快。方式二是利用AS方式,它可以將配置文件寫(xiě)入掉電保持的EPCS中,在上電時(shí)使用EPCS對(duì)FOGA進(jìn)行配置。</p><p>  另外,在選擇下載方式前,一定要保持電源關(guān)閉,避免出現(xiàn)手指觸碰芯片管腳!</p><p>  9. 實(shí)驗(yàn)結(jié)果與實(shí)

46、驗(yàn)現(xiàn)象</p><p><b>  實(shí)現(xiàn)現(xiàn)象與分析:</b></p><p>  數(shù)字信號(hào)源為4Hz狀態(tài)下,計(jì)數(shù)值以這樣的頻率遞增并在八位數(shù)碼管顯示0,1,2,3,4,5,6,7,8,9,A,B,C,D,F,1,2………..,每當(dāng)遞增至F值時(shí),LED3燈亮,表示由進(jìn)位輸出。</p><p>  將SW1上撥到0處,顯示當(dāng)前值,停止計(jì)數(shù)</

47、p><p>  按下核心板上RST,計(jì)數(shù)值清零,顯示為0</p><p><b>  RTL級(jí)圖</b></p><p>  Technology Map Viewer Preprocess</p><p><b>  實(shí)驗(yàn)心得與注意事項(xiàng)</b></p><p>  1)本實(shí)現(xiàn)關(guān)

48、鍵部分是cnt4b.v文件的設(shè)計(jì),下面圖形是筆者在做cnt4b.v文件綜合編譯后得到的帶異步復(fù)位的4位加法計(jì)數(shù)器RTL圖</p><p>  現(xiàn)在結(jié)合計(jì)數(shù)模塊的源程序加以說(shuō)明:</p><p>  圖中間的四位鎖存器,rst是異步清零信號(hào),低電平有效;clk為時(shí)鐘脈沖信號(hào),是計(jì)數(shù)加的頻率給定。ena是計(jì)數(shù)使能信號(hào),當(dāng)為高電平的時(shí)候鎖存信號(hào)。</p><p>  需要

49、說(shuō)明的是:程序計(jì)數(shù)模塊中always如何產(chǎn)生鎖存器?</p><p>  always @(posedge clk or negedge rst)</p><p><b>  begin</b></p><p>  if(rst == 1'b0)//異步清零,低電平有效</p><p>  c

50、nt <= 4'h0;</p><p>  else if (ena == 1'b1)//同步使能計(jì)數(shù),高電平有效</p><p>  cnt <= cnt + 1'b1;</p><p><b>  end</b></p><p>  仔細(xì)閱讀上述代碼既可以發(fā)現(xiàn)如下問(wèn)

51、題:</p><p>  Always塊,else if語(yǔ)句保證了ena == 1'b1(高電平)時(shí),執(zhí)行計(jì)數(shù)功能。而沒(méi)有寫(xiě)出ena == 1'b0時(shí)的結(jié)果,那么其實(shí),如果在給定的條件下變量沒(méi)有賦值,這個(gè)變量將保持原值,也就是會(huì)說(shuō)生成一個(gè)鎖存器,這里的話就是當(dāng)將ena==0時(shí),cnt值保持不變,不會(huì)根據(jù)時(shí)鐘信號(hào)累加!</p><p><b>  2)</b&

52、gt;</p><p>  數(shù)字信號(hào)源:能產(chǎn)生0.5Hz~100MHz多組數(shù)字信號(hào)源,分CLOCK0~CLOCK3四組信號(hào)輸 出,通過(guò)短路帽跳線分別可選擇不同的時(shí)鐘信號(hào)輸入到FPGA,CLOCK0~CLOCK3對(duì)應(yīng)的排針左邊為不同頻率的數(shù)字信號(hào),排針右邊是連到一起的,所以每組信號(hào)源只能插一個(gè)短路帽,否則可能會(huì)損壞芯片。 使用時(shí)要將數(shù)字信號(hào)源的電源開(kāi)關(guān)JP11的短路帽跳到ON位置。</p><p

53、>  FPGA編程 :通過(guò)JTAG接口下載FPGA程序時(shí),最好將下載器插在主板上的JTAG接口,不要插在核心板的JTAG接口上,以防插反;如果使用AS接口下載程序時(shí),一定要斷電后才能把下載器插到AS接口,確保不插反才能上電。 下載線接插最好按照以下流程:先將10Pin的仿真下載線(連著下載器)插到FPGA的JTAG或AS接口,然后再將下載器另一端的USB線插到電腦上。</p><p>  其他注意事項(xiàng),見(jiàn)計(jì)

54、數(shù)文檔紅色字體處!</p><p><b>  附錄1 計(jì)數(shù)模塊</b></p><p>  module cnt4b(clk,rst,ena,dout,cout); //模塊名cnt4b</p><p>  input clk,rst,ena;//輸入信號(hào)</p><p>  ou

55、tput[3:0]dout;//計(jì)數(shù)輸出</p><p>  output cout;//進(jìn)位輸出</p><p>  reg[3:0]cnt;//計(jì)數(shù)器</p><p>  assign cout = &cnt;//進(jìn)位輸出 &</p><p&g

56、t;  assign dout = cnt;//計(jì)數(shù)器輸出</p><p>  always @(posedge clk or negedge rst)</p><p><b>  begin</b></p><p>  if(rst == 1'b0)//異步清零,低電平有效</p>

57、<p>  cnt <= 4'h0;</p><p>  else if (ena == 1'b1)//同步使能計(jì)數(shù),高電平有效</p><p>  cnt <= cnt + 1'b1;</p><p><b>  end</b></p><p><b

58、>  endmodule</b></p><p>  模塊名一定要與所建立的文件名相一致,否則會(huì)出現(xiàn)編譯異常!</p><p>  assign模塊以及always模塊之間的并行執(zhí)行的關(guān)系,時(shí)序上同步!但always模塊內(nèi)部由順利執(zhí)行的關(guān)系!這也是FPGA不同與C語(yǔ)言的很重要的一點(diǎn)!</p><p>  assign cout = &cnt

59、;對(duì)于這條語(yǔ)句中,用到了縮減運(yùn)算符&,它是對(duì)單個(gè)操作數(shù)進(jìn)行與遞推運(yùn)算,最后的運(yùn)算結(jié)果是一位的二進(jìn)制數(shù)。筆者理解為</p><p>  assign cout = &cnt相當(dāng)于assign cout = ((cnt[0]&cnt[1])&cnt[2])&cnt[3],這樣就保證了當(dāng)計(jì)數(shù)值加1到F(全1),出現(xiàn)進(jìn)位信號(hào)高電平。</p><p>  r

60、eg[3:0]cnt;寄存器變量只有在always塊或者是initial塊中能夠使用,always塊在仿真過(guò)程中不斷重復(fù)執(zhí)行,至于能否執(zhí)行里面的代碼取決于后面的敏感變量表的參量clk或者是rst是否發(fā)生變化</p><p><b>  附錄2</b></p><p>  module decl7s(d,seg);//模塊名decl7s</p>

61、<p>  input[3:0] d;//輸入4位二進(jìn)制碼</p><p>  output[7:0]seg;//七段譯碼輸出</p><p>  reg[7:0] seg_r;//定義數(shù)碼管輸出寄存器</p><p>  assign seg = seg_r;//輸出數(shù)碼管譯碼結(jié)果</p>

62、;<p>  always @(d)</p><p><b>  begin</b></p><p>  case(d)//七段譯碼</p><p>  4'h0:seg_r = 8'hc0;//顯示0</p><p>  4'h1:seg_r = 8'

63、;hf9;//顯示1</p><p>  4'h2:seg_r = 8'ha4;//顯示2</p><p>  4'h3:seg_r = 8'hb0;//顯示3</p><p>  4'h4:seg_r = 8'h99;//顯示4</p><p>  4'

64、h5:seg_r = 8'h92;//顯示5</p><p>  4'h6:seg_r = 8'h82;//顯示6</p><p>  4'h7:seg_r = 8'hf8;//顯示7</p><p>  4'h8:seg_r = 8'h80;//顯示8</p>&

65、lt;p>  4'h9:seg_r = 8'h90;//顯示9</p><p>  4'ha:seg_r = 8'h88;//顯示a</p><p>  4'hb:seg_r = 8'h83;//顯示b</p><p>  4'hc:seg_r = 8'hc6;//

66、顯示c</p><p>  4'hd:seg_r = 8'ha1;//顯示d</p><p>  4'he:seg_r = 8'h86;//顯示e</p><p>  4'hf:seg_r = 8'h8e;//顯示f</p><p><b>  endcase&

67、lt;/b></p><p><b>  end</b></p><p><b>  endmodule</b></p><p><b>  分析</b></p><p>  前面計(jì)數(shù)模塊輸出的計(jì)數(shù)值正是顯示模塊的輸入值集,即4bit的d變量值。</p>&

溫馨提示

  • 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ù)僅提供信息存儲(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)論