版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 . . . 實(shí)驗(yàn)一 應(yīng)用QartusII完成點(diǎn)亮LED設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康耐ㄟ^此實(shí)驗(yàn)讓用戶逐步了解、熟悉和掌握FPGA開發(fā)軟件QuartusII的使用方法與Verilog HDL的編程方法。本實(shí)驗(yàn)力求以詳細(xì)的步驟和講解讓讀者以最快的方式了解EDA技術(shù)開發(fā)以與軟件的使用,從而快速入門并激起讀者對(duì)EDA技術(shù)的興趣。二、實(shí)驗(yàn)容本實(shí)驗(yàn)的容是建立可用于控制LED亮/滅的簡單硬件電路,要求點(diǎn)亮SmartSOPC實(shí)驗(yàn)箱上的4個(gè)發(fā)光二極管(LED1、LED3、LED5和LED7)。具體包括:1)使用QuartusII建立工程;2)QuartusII工程設(shè)計(jì);3)設(shè)置編譯選項(xiàng)并編譯硬件系統(tǒng);4)下載硬件設(shè)計(jì)到目標(biāo)
2、FPGA;5)觀察LED的狀態(tài)。三、實(shí)驗(yàn)原理FPGA器件同單片機(jī)一樣,為用戶提供了許多靈活獨(dú)立的輸入/輸出I/O(單元)。FPGA每個(gè)I/O口可以配置為輸入、輸出、雙向I/O、集電極開路和三態(tài)門等各種組態(tài)。做為輸出口時(shí),F(xiàn)PGA的I/O口可以吸收最大為24mA的電流,可以直接驅(qū)動(dòng)發(fā)光二極管LED等器件。所以只要正確分配并鎖定引腳后,在相應(yīng)的引腳上輸出低電平“0”,就可實(shí)現(xiàn)點(diǎn)亮該發(fā)光二極管的功能。四、實(shí)驗(yàn)步驟1)使用QuartusII建立工程(1)打開QuartusII軟件并建立工程從FileNew Project Wizard來建立新的工程。工程向?qū)?duì)話框主要包括:a.指定項(xiàng)目目錄、名稱和頂層
3、實(shí)體。b.指定項(xiàng)目設(shè)計(jì)文件。c.指定該設(shè)計(jì)的Altera器件系列(本次實(shí)驗(yàn)涉與芯片為Cyclone系列的EP1C6Q240C8)。d.指定用于該項(xiàng)目的其他EDA工具。e.項(xiàng)目信息報(bào)告。(2)建立圖形設(shè)計(jì)文件從FileNew打開新建文件對(duì)話框,選擇Block/Schematic File單擊OK建立空的圖形設(shè)計(jì)文件并保存為led_test.bdf。(3)建立文本編輯文件從FileNew打開新建文件對(duì)話框,選擇Verilog HDL File單擊OK建立空的圖形設(shè)計(jì)文件并保存為led.v。2)QuartusII工程設(shè)計(jì)(1)在Verilog HDL文件中編寫源程序a在Project Navigat
4、or窗口的File標(biāo)簽中的led.v文件單擊鼠標(biāo)右鍵,在彈出的對(duì)話框中單擊Set as Top-level Entiy選項(xiàng)。將led.v設(shè)置為頂層實(shí)體。b.選擇ProcessingStartStart Analysis & Synthesis 進(jìn)行綜合編譯,也可使用工具欄的綜合編譯按鈕啟動(dòng)編譯。c.若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并改正錯(cuò)誤,直到編譯成功。(2)從設(shè)計(jì)文件創(chuàng)建模塊a在Project Navigator窗口的File標(biāo)簽中的.bdf文件單擊鼠標(biāo)右鍵,在彈出的對(duì)話框中單擊Set as Top-level Entiy選項(xiàng)。將.bdf設(shè)置為頂層實(shí)體。b在FileCreate/Updata
5、項(xiàng)選擇Create Symbol File for Current file ,單擊確定。生成led.bsf文件。(3)添加led.bsf模塊到QuartusII頂層模塊(4)添加引腳和其它基本單元(5)根據(jù)表3.1分配FPGA管腳(6)器件和管腳的其它設(shè)置將沒有用到的管腳設(shè)置為三態(tài)輸入。3)設(shè)置編譯選項(xiàng)并編譯硬件系統(tǒng)(1)設(shè)置編譯選項(xiàng)(2)編譯硬件系統(tǒng)在Project Navigator窗口的File標(biāo)簽中的led_test.bdf文件單擊鼠標(biāo)右鍵,在彈出的對(duì)話框中單擊Set as Top-level Entiy選項(xiàng)。將led_test.bdf設(shè)置為頂層實(shí)體。選擇ProcessingStar
6、t Compilation 進(jìn)行全程編譯,并改正出現(xiàn)的錯(cuò)誤。出現(xiàn)的警告信息忽略不計(jì)。(3)查看編譯報(bào)告4)下載硬件設(shè)計(jì)到目標(biāo)FPGA使用下載電纜連接實(shí)驗(yàn)箱的JTAG口與主計(jì)算機(jī),接通實(shí)驗(yàn)箱電源。下載生成的led_test.sof文件。5)觀察LED的狀態(tài)五、實(shí)驗(yàn)程序module led(led);output7:0led;assign led = 8b10101010;endmodule六、結(jié)果分析觀察LED的狀態(tài),LED1,LED3,LED5,LED7,四個(gè)發(fā)光二極管亮。由于實(shí)驗(yàn)箱上發(fā)光二極管共陽級(jí),所以當(dāng)相應(yīng)引腳輸出為低電平時(shí),發(fā)光二極管亮??梢孕薷某绦蛑械腶ssign語句中的led的取值
7、,實(shí)現(xiàn)將不同位置的led燈的點(diǎn)亮。實(shí)驗(yàn)二 流水燈實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康耐ㄟ^此實(shí)驗(yàn)讓用戶進(jìn)一步了解、熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法與Verilog HDL的編程方法。學(xué)習(xí)簡單時(shí)序電路的設(shè)計(jì)和硬件測試。二、實(shí)驗(yàn)容本實(shí)驗(yàn)的容是建立可用于控制LED流水燈的簡單硬件電路,要求在SmartSOPC實(shí)驗(yàn)箱上實(shí)現(xiàn)LED1-LED8發(fā)光二級(jí)管流水燈顯示。三、實(shí)驗(yàn)原理(1)在LED1-LED8引腳上周期性的輸出流水?dāng)?shù)據(jù),如原來輸出的數(shù)據(jù)是11111100則表示點(diǎn)亮LED1、LED2,流水一次后,輸出的數(shù)據(jù)應(yīng)該為11111000,而此時(shí)則應(yīng)點(diǎn)亮LED1-LED3三個(gè)LED發(fā)光二級(jí)管。就可以實(shí)現(xiàn)LED流水燈
8、。為了觀察方便,流水速率最好在2Hz左右。 (2)int_div分頻模塊說明:int_div模塊是一個(gè)占空比為50%的任意整數(shù)分頻器。輸入時(shí)鐘為clock,輸入時(shí)鐘為clk_out。更改F_DIV和F_DIV_WIDTH的參數(shù)值即可實(shí)現(xiàn)不同的分頻系數(shù)。(3)系統(tǒng)框圖如下:四、實(shí)驗(yàn)步驟1)啟動(dòng)QuartusII建立一個(gè)空白工程,然后命名為led_water.qpf(具體步驟參見實(shí)驗(yàn)一)。2)新建Verilog HDL源程序文件ledwater.v,輸入程序代碼并保存,進(jìn)行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。3)從設(shè)計(jì)文件創(chuàng)建模塊,由ledwater.v生成名為l
9、edwater.bsf的模塊符號(hào)文件。4)將光盤中EDA_Component目錄下的int_div.bsf和int_div.v拷貝到工程目錄文件夾中。5)新建圖形設(shè)計(jì)文件命名為led_water.bdf并保存。6)選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定。7)將led_water.bdf設(shè)置為頂層實(shí)體。對(duì)該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。8)最后拿出跳線短接帽跳接到SmartSOPC實(shí)驗(yàn)箱上JP6的LED0-LED7,使LED1-LED8分別與FPGA引腳50、53-55、176和47-49相連。拿出Altera ByteBlasterII下載電
10、纜,并將此電纜的兩端分別接到PC機(jī)的打印機(jī)并口和QuickSOPC核芯板上的JTAG下載口上,打開電源,執(zhí)行下載命令,把程序下載到FPGA器件中,此時(shí),即可在SmartSOPC實(shí)驗(yàn)箱上看到流水燈。9)更改分頻模塊(int_div)的分頻系數(shù),并重新編譯下載,觀察流水燈的變化。五、實(shí)驗(yàn)程序- 19 - / 19module ledwater(led,clk);output7:0led;inputclk;reg8:0led_r;assign led = led_r7:0; always (posedge clk)beginled_r = led_r 1;if(led_r = 9d0)led_r =
11、16d4800000) Q = 16d0;Q = Q+1b1;end assign clkout = (Q=16d2400000)?1b1:1b0;endmodule六、結(jié)果分析觀察實(shí)驗(yàn)箱上的led燈按照led1led8的順序依次點(diǎn)亮無限循環(huán),從左向右依次點(diǎn)亮。更改分頻系數(shù),修改F_DIV和F_DIV_WIDTH的值,如F_DIV=4800 0000,F(xiàn)_DIV_WIDT=26,則led燈點(diǎn)亮速度較之前有所減慢。若將程序中l(wèi)ed_r=led_r1;改為led_r1;則即可實(shí)現(xiàn)流水方向的改變。除了使用圖形文件的頂層文件格式也可使用文本文件。示例程序如下:module topled (clock,
12、led);input clock;output 7:0led;wire p;int_div u1( .clock(clock),.clk_out(p);ledwater u2(.clk(p),.led(led);endmodule實(shí)驗(yàn)三 鍵盤、LED發(fā)光實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康耐ㄟ^此實(shí)驗(yàn)讓用戶進(jìn)一步了解、熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法與Verilog HDL的編程方法,熟悉以Verilog HDL文件為頂層模塊的設(shè)計(jì)。學(xué)習(xí)和體會(huì)分支條件語句case的使用方法與FPGA I/O口的輸出控制。二、實(shí)驗(yàn)容本實(shí)驗(yàn)的容是要求在SmartSOPC實(shí)驗(yàn)箱上完成對(duì)8個(gè)鍵盤KEY1-KEY8進(jìn)行監(jiān)控,一
13、旦有鍵輸入判斷其鍵值,并點(diǎn)亮相應(yīng)個(gè)發(fā)光二級(jí)管,如若KEY3按下,則點(diǎn)亮LED1-LED3發(fā)光管。三、實(shí)驗(yàn)原理FPGA的所有I/O控制塊允許每個(gè)I/O引腳單獨(dú)配置為輸入口,不過這種配置是系統(tǒng)自動(dòng)完成的,一旦該I/O口被設(shè)置為輸入口使用時(shí)(如定義key0為輸入引腳:input key0;),該I/O控制模塊將直接使三態(tài)緩沖區(qū)的控制端接地,使得該I/O引腳對(duì)外呈高阻態(tài),這樣該I/O引腳即可用作專用輸入引腳。只要正確分配并鎖定引腳后,一旦在KEY1-KEY8中有鍵輸入,在檢測到鍵盤輸入的情況下,繼續(xù)判斷其鍵盤值并作出相應(yīng)的處理。四、實(shí)驗(yàn)步驟1)啟動(dòng)QuartusII建立一個(gè)空白工程,然后命名為keyl
14、ed.qpf(具體步驟參見實(shí)驗(yàn)一)。2)新建Verilog HDL源程序文件keyled.v,輸入程序代碼并保存,進(jìn)行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。3)選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定。4)對(duì)該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。5)最后拿出跳線短接帽跳接到JP6的LED0-LED7、KEY1-KEY8使LED1-LED8和KEY1-KEY8和芯片對(duì)應(yīng)的引腳相連。拿出下載電纜,并將此電纜的兩端分別接到PC機(jī)的并口和QuickSOPC核芯板上的JTAG下載口上,打開電源,執(zhí)行下載命令,把程序下載到FPGA
15、器件中,觀察發(fā)光管LED1-LED8的亮滅狀態(tài),按下KEY1-KEY8的任一鍵,再次觀察發(fā)光管的狀態(tài)。五、實(shí)驗(yàn)程序module keyled(key,led);input7:0 key;output7:0led;reg7:0led_r;reg7:0buffer_r;assign led = led_r;always(key)beginbuffer_r = key;case(buffer_r)8b11111110:led_r = 8b11111110;8b11111101:led_r = 8b11111100;8b11111011:led_r = 8b11111000;8b11110111:le
16、d_r = 8b11110000;8b11101111:led_r = 8b11100000;8b11011111:led_r = 8b11000000;8b10111111:led_r = 8b10000000;8b01111111:led_r = 8b00000000;default:led_r = 8b11111111;endcaseendendmodule六、結(jié)果分析程序下載后管擦發(fā)光管led1到led8處于不亮狀態(tài),按下key1,led1亮,按下key2,led1和led2亮按下key3則led1到led3亮;按下key4則led1到led4都亮實(shí)現(xiàn)鍵盤控制led亮燈。由于核心板只有
17、4個(gè)按鍵所以只能測試key1-key4的功能。實(shí)驗(yàn)四 靜態(tài)數(shù)碼管顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)7段數(shù)碼管顯示譯碼器的設(shè)計(jì),進(jìn)一步了解、熟悉和掌握FPGA開發(fā)軟件QuartusII的使用方法與Verilog HDL的編程方法,學(xué)習(xí)LPM兆功能模塊的調(diào)用。二、實(shí)驗(yàn)容本實(shí)驗(yàn)的容是建立7段譯碼顯示模塊,用于控制LED數(shù)碼管的靜態(tài)顯示。要求在SmartSOPC實(shí)驗(yàn)箱上的數(shù)碼管依次顯示0-9和A-F的16個(gè)字符。三、實(shí)驗(yàn)原理(1)常見的數(shù)碼管有共陰和共陽2中,共陰數(shù)碼管是將8個(gè)發(fā)光二極管的陰極連接在一起作為公共端,共陽級(jí)數(shù)碼管是將8個(gè)發(fā)光二極管的陽極連接在一起最為公共端。公共端常被稱作位碼,而將其他的8位作段碼
18、。(2)本實(shí)驗(yàn)通過分頻模塊int_div分頻得到1Hz的頻率信號(hào),加載于4位計(jì)數(shù)器的時(shí)鐘輸入端,計(jì)數(shù)循環(huán)輸出0-9、A-F 16個(gè)數(shù)。最后通過七段譯碼模塊譯碼后在數(shù)碼管上顯示出來。(3)系統(tǒng)框圖如下:四、實(shí)驗(yàn)步驟1)啟動(dòng)QuartusII建立一個(gè)空白工程,然后命名為sled.qpf(具體步驟參見實(shí)驗(yàn)一)。2)新建Verilog HDL源程序文件decl7s.v,輸入程序代碼并保存,進(jìn)行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。3)從設(shè)計(jì)文件創(chuàng)建模塊,由decl7s.v生成名為decl7s.bsf的模塊符號(hào)文件。4)將光盤中EDA_Component目錄下的int_d
19、iv.bsf和int_div.v拷貝到工程目錄。5)添加4位計(jì)數(shù)器兆功能模塊。從ToolsMegaWizard Plug-In Manager打開添加兆功能模塊向?qū)?,新建兆功能模塊。6)新建圖形設(shè)計(jì)文件命名為sled.bdf并保存。7)選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定。8)將sled.bdf設(shè)置為頂層實(shí)體。對(duì)該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。9)硬件連接、下載程序。五、實(shí)驗(yàn)程序module decl7s(d,seg);input3:0 d;output7:0seg;reg7:0 seg_r;assign seg = seg_r;alway
20、s (d)begincase(d)4h0:seg_r = 8hc0;4h1:seg_r = 8hf9;4h2:seg_r = 8ha4;4h3:seg_r = 8hb0;4h4:seg_r = 8h99;4h5:seg_r = 8h92;4h6:seg_r = 8h82;4h7:seg_r = 8hf8;4h8:seg_r = 8h80;4h9:seg_r = 8h90;4ha:seg_r = 8h88;4hb:seg_r = 8h83;4hc:seg_r = 8hc6;4hd:seg_r = 8ha1;4he:seg_r = 8h86;4hf:seg_r = 8h8e;endcaseende
21、ndmodule六、結(jié)果分析下載后,觀察數(shù)碼管,8個(gè)數(shù)碼管循環(huán)顯示00000000FFFFFFFF,本實(shí)驗(yàn)用共陽極數(shù)碼管,某個(gè)段輸出低電平0,則相應(yīng)段就亮??尚薷某绦蛑?h0:seg_r等式右邊數(shù)值,顯示其他字母符號(hào),如seg_r=8h89則輸出HHHHHHHH實(shí)驗(yàn)五 動(dòng)態(tài)數(shù)碼管顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)動(dòng)態(tài)掃描顯示的原理與電路的設(shè)計(jì)。二、實(shí)驗(yàn)容本實(shí)驗(yàn)的容是建立數(shù)碼管動(dòng)態(tài)掃描顯示模塊,具體容如下:1)在實(shí)驗(yàn)箱上完成LED數(shù)碼管的動(dòng)態(tài)顯示“1-8”8個(gè)數(shù)字。2)放慢掃描速度演示動(dòng)態(tài)顯示的原理過程。三、實(shí)驗(yàn)原理8個(gè)數(shù)碼管,其中每個(gè)數(shù)碼管的8個(gè)段:a、b、c、d、e、f、g、h都分別連到seg0-se
22、g7,8個(gè)數(shù)碼管分別由8個(gè)連通信號(hào)dig0-dig7來選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如果希望8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)dig0-dig7分別被單獨(dú)選通,并在此同時(shí),在段信號(hào)輸入口加上希望在該對(duì)應(yīng)數(shù)據(jù)管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃描就能實(shí)現(xiàn)掃描顯示的目的。雖然每次只有一個(gè)LED顯示,但只要掃描顯示速率夠快,由于人的視覺余輝效應(yīng),使我們?nèi)匀粫?huì)感覺所有的數(shù)碼管都在同時(shí)顯示。四、實(shí)驗(yàn)步驟1)啟動(dòng)QuartusII建立一個(gè)空白工程,然后命名為dled.qpf(具體步驟參見實(shí)驗(yàn)一)。2)新建Verilog HDL源程序文件scan_led.v,輸入程序代碼并保存,進(jìn)行
23、綜合編譯,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。3)從設(shè)計(jì)文件創(chuàng)建模塊,由scan_led.v生成名為scan_led.bsf的模塊符號(hào)文件。4)將光盤中EDA_Component目錄下的int_div.bsf和int_div.v拷貝到工程目錄。5)添加常量兆功能模塊。6)新建圖形設(shè)計(jì)文件命名為dled.bdf并保存。7)選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定。將dled.bdf設(shè)置為頂層實(shí)體。對(duì)該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。硬件連接、下載程序。8)觀察LED數(shù)碼管上的數(shù)字是否為“12345678”,然后把分頻模塊的參
24、數(shù)改為F_DIV_WIDTH:25,再重新編譯下載,觀察這次LED數(shù)碼管上的顯示數(shù)據(jù),可以看到數(shù)據(jù)“12345678”動(dòng)起來了,這正是動(dòng)態(tài)掃描的方法和過程。五、實(shí)驗(yàn)程序module scan_led(clk_1k,d,dig,seg);input clk_1k;input31:0 d;output7:0dig;output7:0 seg;reg7:0 seg_r;reg7:0 dig_r;reg3:0 disp_dat;reg2:0count;assign dig = dig_r;assign seg = seg_r;always (posedge clk_1k) begincount = c
25、ount + 1b1;endalways (posedge clk_1k) begincase(count)3d0:disp_dat = d31:28;3d1:disp_dat = d27:24;3d2:disp_dat = d23:20;3d3:disp_dat = d19:16;3d4:disp_dat = d15:12;3d5:disp_dat = d11:8;3d6:disp_dat = d7:4;3d7:disp_dat = d3:0;endcasecase(count)3d0:dig_r = 8b01111111;3d1:dig_r = 8b10111111;3d2:dig_r =
26、 8b11011111;3d3:dig_r = 8b11101111;3d4:dig_r = 8b11110111;3d5:dig_r = 8b11111011;3d6:dig_r = 8b11111101;3d7:dig_r = 8b11111110;endcaseendalways (disp_dat)begincase(disp_dat)4h0:seg_r = 8hc0;4h1:seg_r = 8hf9;4h2:seg_r = 8ha4;4h3:seg_r = 8hb0;4h4:seg_r = 8h99;4h5:seg_r = 8h92;4h6:seg_r = 8h82;4h7:seg_
27、r = 8hf8;4h8:seg_r = 8h80;4h9:seg_r = 8h90;4ha:seg_r = 8h88;4hb:seg_r = 8h83;4hc:seg_r = 8hc6;4hd:seg_r = 8ha1;4he:seg_r = 8h86;4hf:seg_r = 8h8e;endcaseendendmodule六、結(jié)果分析程序下載后觀察數(shù)碼管現(xiàn)實(shí)的數(shù)字為12345678,一直顯示無變化,無變動(dòng)實(shí)際上18個(gè)數(shù)在依次顯示且不斷循環(huán),因?yàn)轭l率高掃描速度快,人眼感覺不到,感覺所有數(shù)碼管都在同時(shí)顯示。修改分頻模塊的參數(shù)F_DIV:48000000,F_DIV_WIDTH:26,重新編譯下
28、載觀察數(shù)碼管,則可以看到“12345678”,八個(gè)數(shù)字依次輪流顯示每次值有1個(gè)數(shù)碼管顯示其余不顯示。可以看到當(dāng)分頻達(dá)到1KHz左右時(shí)人眼就感覺不到數(shù)碼管的閃爍,給人一種靜態(tài)顯示的錯(cuò)覺,“眼見未必是真”。實(shí)驗(yàn)十 數(shù)控分頻器的設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)數(shù)控分頻器的設(shè)計(jì),分析和測試方法。二、實(shí)驗(yàn)容在實(shí)驗(yàn)箱上實(shí)現(xiàn)數(shù)控分頻器的設(shè)計(jì),在clk輸入64khz的頻率信號(hào)(由int_div模塊分頻得到)或更高;輸出Fout接蜂鳴器,由KEY1/KEY2控制8位預(yù)置數(shù)并在數(shù)碼管1-2上顯示。三、實(shí)驗(yàn)原理數(shù)控分頻器的功能就是當(dāng)輸入端輸入不同的數(shù)據(jù)時(shí),產(chǎn)生不同的分頻比,從而產(chǎn)生不同的頻率值,本例是用計(jì)數(shù)值可并行預(yù)置的加法計(jì)
29、數(shù)器設(shè)計(jì)完成,方法是將計(jì)數(shù)溢出位與預(yù)置數(shù)加載輸入信號(hào)相接即可。四、實(shí)驗(yàn)步驟1)啟動(dòng)QuartusII建立一個(gè)空白工程,然后命名為dvf.qpf。2)將pulse.v、key_led.v、int_div.v文件加入工程。3)新建Verilog HDL源程序文件dvf.v,設(shè)置dvf.v為頂層文件,并保存。4)分配引腳,將未使用的管教設(shè)置為三態(tài)輸入。5)對(duì)該工程文件進(jìn)行全程編譯處理。6)下載程序到FPGA器件,按下鍵KEY1,KEY2,觀察數(shù)碼管,聽蜂鳴器聲音有何變化。五、實(shí)驗(yàn)程序module dvf (clock,key,fout,seg,dig);input clock;input 7:0ke
30、y;output fout;output 7:0seg,dig;wire a;wire 15:0b;int_div U1 (.clock(clock),.clk_out(a);pulse U2 (.clk(a),.data(b15:8),.fout(fout);key_ledU3 (.clock(clock),.key(key),.hex(b),.seg(seg),.dig(dig);endmodule六、結(jié)果分析程序下載后,蜂鳴器發(fā)出聲音,數(shù)碼管1,2顯示數(shù)字,按下key1、key2,數(shù)碼管1、2的數(shù)值改變,均在0f圍。對(duì)應(yīng)不同的顯示數(shù)值蜂鳴器聲音頻率隨數(shù)值變化。實(shí)驗(yàn)十一 8位十進(jìn)制頻率計(jì)的
31、設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康脑O(shè)計(jì)8位十進(jìn)制頻率計(jì),學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)方法。學(xué)習(xí)verilog HDL編程例化語句的使用。二、實(shí)驗(yàn)容在實(shí)驗(yàn)箱上實(shí)現(xiàn)8位二進(jìn)制頻率計(jì)的設(shè)計(jì)被測信號(hào)從freq_input引腳輸入,經(jīng)過檢測后測得的頻率值用數(shù)碼管1-8顯示。被測得頻率信號(hào)由測頻模塊部產(chǎn)生并輸出到外部引腳。三、實(shí)驗(yàn)原理根據(jù)頻率的定義和頻率測量的基本原理,測定信號(hào)的頻率必須有一個(gè)脈寬為1秒的輸入信號(hào)脈沖計(jì)數(shù)允許的信號(hào);1s計(jì)數(shù)結(jié)束后,計(jì)數(shù)值鎖入鎖存器,并為下一測頻計(jì)數(shù)周期做準(zhǔn)備的計(jì)數(shù)器清零。計(jì)數(shù)器由八個(gè)十進(jìn)制計(jì)數(shù)器級(jí)聯(lián)組成。四、實(shí)驗(yàn)步驟1)啟動(dòng)Quartus II新建一個(gè)工程,命名為freqtest.qpf并加入
32、freqtest.v、t10.v、send_led.v文件;2)分配引腳,將未使用的管腳設(shè)為三態(tài)輸入;3)設(shè)freqtest.v為頂層文件,對(duì)該工程進(jìn)行全程編譯處理;4)下載程序列FGPA器件中,拿出連接線將輸出的頻率信號(hào)引腳接到測頻輸入端,觀察數(shù)碼管顯示的數(shù)值。五、實(shí)驗(yàn)程序module freqtest(clock,freq_input,dig,seg,test);input clock;/系統(tǒng)時(shí)鐘input freq_input; /被測信號(hào)輸入 output7:0dig;/數(shù)碼管選擇輸出引腳output7:0 seg;/數(shù)碼管段輸出引腳output9:0 test;/輸出頻率信號(hào),用于測
33、試reg 25:0 counter; /時(shí)鐘分頻計(jì)數(shù)器reg 31:0 freq_result; /頻率測量結(jié)果寄存器reg 31:0 pre_freq; /脈沖計(jì)數(shù)寄存器regrst;wire divide_clk;/1Hz閘門信號(hào)wire clk_scan;/數(shù)碼管掃描顯示時(shí)鐘wire cout1,cout2,cout3,cout4,cout5,cout6,cout7;assign clk_scan = counter15;/動(dòng)態(tài)掃描時(shí)鐘assign test = counter9:0;/輸出頻率信號(hào),用于測試always (posedge clock) beginif (divide_clk) counter = 26d0; else counter = 26d48000000);always (posedge clock) beginif(divide_clk)freq_result = pre_freq;endalways (posedge clock) beginif(divide_clk)rst = 1b1;elserst = 1b0;endcnt10 u1(.clock(freq_input),.rst(rst),.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隧道襯砌力學(xué)性能分析-洞察分析
- 藝術(shù)史與視覺文化研究-洞察分析
- 2025年度花藝設(shè)計(jì)合同:婚禮現(xiàn)場花藝布置與租賃服務(wù)3篇
- 年度軟膠囊劑機(jī)械產(chǎn)業(yè)分析報(bào)告
- 樣本庫信息標(biāo)準(zhǔn)化-洞察分析
- 二零二五年度智慧物流投資合伙協(xié)議3篇
- 2025年度餐廳智能烹飪?cè)O(shè)備研發(fā)與生產(chǎn)合同3篇
- 專業(yè)半成品原材料供應(yīng)合同書:2024版版B版
- 道路運(yùn)輸合同
- 財(cái)務(wù)顧問聘用合同協(xié)議
- 家政服務(wù)與社區(qū)合作方案
- 2024年深圳市龍崗區(qū)城市建設(shè)投資集團(tuán)有限公司招聘筆試真題
- 2024-2025學(xué)年初中七年級(jí)上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 2024-2025學(xué)年北京市朝陽區(qū)高三上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 四川省綿陽市涪城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團(tuán)限公司社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(共380題含答案)
- 《湖南省房屋建筑和市政工程消防質(zhì)量控制技術(shù)標(biāo)準(zhǔn)》
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
評(píng)論
0/150
提交評(píng)論