基于CPLD的汽車尾燈控制器設(shè)計報告_第1頁
基于CPLD的汽車尾燈控制器設(shè)計報告_第2頁
基于CPLD的汽車尾燈控制器設(shè)計報告_第3頁
基于CPLD的汽車尾燈控制器設(shè)計報告_第4頁
基于CPLD的汽車尾燈控制器設(shè)計報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 . . . 實驗一 應(yīng)用QartusII完成點亮LED設(shè)計一、實驗?zāi)康耐ㄟ^此實驗讓用戶逐步了解、熟悉和掌握FPGA開發(fā)軟件QuartusII的使用方法與Verilog HDL的編程方法。本實驗力求以詳細的步驟和講解讓讀者以最快的方式了解EDA技術(shù)開發(fā)以與軟件的使用,從而快速入門并激起讀者對EDA技術(shù)的興趣。二、實驗容本實驗的容是建立可用于控制LED亮/滅的簡單硬件電路,要求點亮SmartSOPC實驗箱上的4個發(fā)光二極管(LED1、LED3、LED5和LED7)。具體包括:1)使用QuartusII建立工程;2)QuartusII工程設(shè)計;3)設(shè)置編譯選項并編譯硬件系統(tǒng);4)下載硬件設(shè)計到目標

2、FPGA;5)觀察LED的狀態(tài)。三、實驗原理FPGA器件同單片機一樣,為用戶提供了許多靈活獨立的輸入/輸出I/O(單元)。FPGA每個I/O口可以配置為輸入、輸出、雙向I/O、集電極開路和三態(tài)門等各種組態(tài)。做為輸出口時,F(xiàn)PGA的I/O口可以吸收最大為24mA的電流,可以直接驅(qū)動發(fā)光二極管LED等器件。所以只要正確分配并鎖定引腳后,在相應(yīng)的引腳上輸出低電平“0”,就可實現(xiàn)點亮該發(fā)光二極管的功能。四、實驗步驟1)使用QuartusII建立工程(1)打開QuartusII軟件并建立工程從FileNew Project Wizard來建立新的工程。工程向?qū)υ捒蛑饕ǎ篴.指定項目目錄、名稱和頂層

3、實體。b.指定項目設(shè)計文件。c.指定該設(shè)計的Altera器件系列(本次實驗涉與芯片為Cyclone系列的EP1C6Q240C8)。d.指定用于該項目的其他EDA工具。e.項目信息報告。(2)建立圖形設(shè)計文件從FileNew打開新建文件對話框,選擇Block/Schematic File單擊OK建立空的圖形設(shè)計文件并保存為led_test.bdf。(3)建立文本編輯文件從FileNew打開新建文件對話框,選擇Verilog HDL File單擊OK建立空的圖形設(shè)計文件并保存為led.v。2)QuartusII工程設(shè)計(1)在Verilog HDL文件中編寫源程序a在Project Navigat

4、or窗口的File標簽中的led.v文件單擊鼠標右鍵,在彈出的對話框中單擊Set as Top-level Entiy選項。將led.v設(shè)置為頂層實體。b.選擇ProcessingStartStart Analysis & Synthesis 進行綜合編譯,也可使用工具欄的綜合編譯按鈕啟動編譯。c.若在編譯過程中發(fā)現(xiàn)錯誤,則找出并改正錯誤,直到編譯成功。(2)從設(shè)計文件創(chuàng)建模塊a在Project Navigator窗口的File標簽中的.bdf文件單擊鼠標右鍵,在彈出的對話框中單擊Set as Top-level Entiy選項。將.bdf設(shè)置為頂層實體。b在FileCreate/Updata

5、項選擇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è)置編譯選項并編譯硬件系統(tǒng)(1)設(shè)置編譯選項(2)編譯硬件系統(tǒng)在Project Navigator窗口的File標簽中的led_test.bdf文件單擊鼠標右鍵,在彈出的對話框中單擊Set as Top-level Entiy選項。將led_test.bdf設(shè)置為頂層實體。選擇ProcessingStar

6、t Compilation 進行全程編譯,并改正出現(xiàn)的錯誤。出現(xiàn)的警告信息忽略不計。(3)查看編譯報告4)下載硬件設(shè)計到目標FPGA使用下載電纜連接實驗箱的JTAG口與主計算機,接通實驗箱電源。下載生成的led_test.sof文件。5)觀察LED的狀態(tài)五、實驗程序module led(led);output7:0led;assign led = 8b10101010;endmodule六、結(jié)果分析觀察LED的狀態(tài),LED1,LED3,LED5,LED7,四個發(fā)光二極管亮。由于實驗箱上發(fā)光二極管共陽級,所以當(dāng)相應(yīng)引腳輸出為低電平時,發(fā)光二極管亮??梢孕薷某绦蛑械腶ssign語句中的led的取值

7、,實現(xiàn)將不同位置的led燈的點亮。實驗二 流水燈實驗一、實驗?zāi)康耐ㄟ^此實驗讓用戶進一步了解、熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法與Verilog HDL的編程方法。學(xué)習(xí)簡單時序電路的設(shè)計和硬件測試。二、實驗容本實驗的容是建立可用于控制LED流水燈的簡單硬件電路,要求在SmartSOPC實驗箱上實現(xiàn)LED1-LED8發(fā)光二級管流水燈顯示。三、實驗原理(1)在LED1-LED8引腳上周期性的輸出流水?dāng)?shù)據(jù),如原來輸出的數(shù)據(jù)是11111100則表示點亮LED1、LED2,流水一次后,輸出的數(shù)據(jù)應(yīng)該為11111000,而此時則應(yīng)點亮LED1-LED3三個LED發(fā)光二級管。就可以實現(xiàn)LED流水燈

8、。為了觀察方便,流水速率最好在2Hz左右。 (2)int_div分頻模塊說明:int_div模塊是一個占空比為50%的任意整數(shù)分頻器。輸入時鐘為clock,輸入時鐘為clk_out。更改F_DIV和F_DIV_WIDTH的參數(shù)值即可實現(xiàn)不同的分頻系數(shù)。(3)系統(tǒng)框圖如下:四、實驗步驟1)啟動QuartusII建立一個空白工程,然后命名為led_water.qpf(具體步驟參見實驗一)。2)新建Verilog HDL源程序文件ledwater.v,輸入程序代碼并保存,進行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。3)從設(shè)計文件創(chuàng)建模塊,由ledwater.v生成名為l

9、edwater.bsf的模塊符號文件。4)將光盤中EDA_Component目錄下的int_div.bsf和int_div.v拷貝到工程目錄文件夾中。5)新建圖形設(shè)計文件命名為led_water.bdf并保存。6)選擇目標器件并對相應(yīng)的引腳進行鎖定。7)將led_water.bdf設(shè)置為頂層實體。對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。8)最后拿出跳線短接帽跳接到SmartSOPC實驗箱上JP6的LED0-LED7,使LED1-LED8分別與FPGA引腳50、53-55、176和47-49相連。拿出Altera ByteBlasterII下載電

10、纜,并將此電纜的兩端分別接到PC機的打印機并口和QuickSOPC核芯板上的JTAG下載口上,打開電源,執(zhí)行下載命令,把程序下載到FPGA器件中,此時,即可在SmartSOPC實驗箱上看到流水燈。9)更改分頻模塊(int_div)的分頻系數(shù),并重新編譯下載,觀察流水燈的變化。五、實驗程序- 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é)果分析觀察實驗箱上的led燈按照led1led8的順序依次點亮無限循環(huán),從左向右依次點亮。更改分頻系數(shù),修改F_DIV和F_DIV_WIDTH的值,如F_DIV=4800 0000,F(xiàn)_DIV_WIDT=26,則led燈點亮速度較之前有所減慢。若將程序中l(wèi)ed_r=led_r1;改為led_r1;則即可實現(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實驗三 鍵盤、LED發(fā)光實驗一、實驗?zāi)康耐ㄟ^此實驗讓用戶進一步了解、熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法與Verilog HDL的編程方法,熟悉以Verilog HDL文件為頂層模塊的設(shè)計。學(xué)習(xí)和體會分支條件語句case的使用方法與FPGA I/O口的輸出控制。二、實驗容本實驗的容是要求在SmartSOPC實驗箱上完成對8個鍵盤KEY1-KEY8進行監(jiān)控,一

13、旦有鍵輸入判斷其鍵值,并點亮相應(yīng)個發(fā)光二級管,如若KEY3按下,則點亮LED1-LED3發(fā)光管。三、實驗原理FPGA的所有I/O控制塊允許每個I/O引腳單獨配置為輸入口,不過這種配置是系統(tǒng)自動完成的,一旦該I/O口被設(shè)置為輸入口使用時(如定義key0為輸入引腳:input key0;),該I/O控制模塊將直接使三態(tài)緩沖區(qū)的控制端接地,使得該I/O引腳對外呈高阻態(tài),這樣該I/O引腳即可用作專用輸入引腳。只要正確分配并鎖定引腳后,一旦在KEY1-KEY8中有鍵輸入,在檢測到鍵盤輸入的情況下,繼續(xù)判斷其鍵盤值并作出相應(yīng)的處理。四、實驗步驟1)啟動QuartusII建立一個空白工程,然后命名為keyl

14、ed.qpf(具體步驟參見實驗一)。2)新建Verilog HDL源程序文件keyled.v,輸入程序代碼并保存,進行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。3)選擇目標器件并對相應(yīng)的引腳進行鎖定。4)對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。5)最后拿出跳線短接帽跳接到JP6的LED0-LED7、KEY1-KEY8使LED1-LED8和KEY1-KEY8和芯片對應(yīng)的引腳相連。拿出下載電纜,并將此電纜的兩端分別接到PC機的并口和QuickSOPC核芯板上的JTAG下載口上,打開電源,執(zhí)行下載命令,把程序下載到FPGA

15、器件中,觀察發(fā)光管LED1-LED8的亮滅狀態(tài),按下KEY1-KEY8的任一鍵,再次觀察發(fā)光管的狀態(tài)。五、實驗程序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都亮實現(xiàn)鍵盤控制led亮燈。由于核心板只有

17、4個按鍵所以只能測試key1-key4的功能。實驗四 靜態(tài)數(shù)碼管顯示實驗一、實驗?zāi)康膶W(xué)習(xí)7段數(shù)碼管顯示譯碼器的設(shè)計,進一步了解、熟悉和掌握FPGA開發(fā)軟件QuartusII的使用方法與Verilog HDL的編程方法,學(xué)習(xí)LPM兆功能模塊的調(diào)用。二、實驗容本實驗的容是建立7段譯碼顯示模塊,用于控制LED數(shù)碼管的靜態(tài)顯示。要求在SmartSOPC實驗箱上的數(shù)碼管依次顯示0-9和A-F的16個字符。三、實驗原理(1)常見的數(shù)碼管有共陰和共陽2中,共陰數(shù)碼管是將8個發(fā)光二極管的陰極連接在一起作為公共端,共陽級數(shù)碼管是將8個發(fā)光二極管的陽極連接在一起最為公共端。公共端常被稱作位碼,而將其他的8位作段碼

18、。(2)本實驗通過分頻模塊int_div分頻得到1Hz的頻率信號,加載于4位計數(shù)器的時鐘輸入端,計數(shù)循環(huán)輸出0-9、A-F 16個數(shù)。最后通過七段譯碼模塊譯碼后在數(shù)碼管上顯示出來。(3)系統(tǒng)框圖如下:四、實驗步驟1)啟動QuartusII建立一個空白工程,然后命名為sled.qpf(具體步驟參見實驗一)。2)新建Verilog HDL源程序文件decl7s.v,輸入程序代碼并保存,進行綜合編譯,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。3)從設(shè)計文件創(chuàng)建模塊,由decl7s.v生成名為decl7s.bsf的模塊符號文件。4)將光盤中EDA_Component目錄下的int_d

19、iv.bsf和int_div.v拷貝到工程目錄。5)添加4位計數(shù)器兆功能模塊。從ToolsMegaWizard Plug-In Manager打開添加兆功能模塊向?qū)?,新建兆功能模塊。6)新建圖形設(shè)計文件命名為sled.bdf并保存。7)選擇目標器件并對相應(yīng)的引腳進行鎖定。8)將sled.bdf設(shè)置為頂層實體。對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。9)硬件連接、下載程序。五、實驗程序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個數(shù)碼管循環(huán)顯示00000000FFFFFFFF,本實驗用共陽極數(shù)碼管,某個段輸出低電平0,則相應(yīng)段就亮。可修改程序中4h0:seg_r等式右邊數(shù)值,顯示其他字母符號,如seg_r=8h89則輸出HHHHHHHH實驗五 動態(tài)數(shù)碼管顯示實驗一、實驗?zāi)康膶W(xué)習(xí)動態(tài)掃描顯示的原理與電路的設(shè)計。二、實驗容本實驗的容是建立數(shù)碼管動態(tài)掃描顯示模塊,具體容如下:1)在實驗箱上完成LED數(shù)碼管的動態(tài)顯示“1-8”8個數(shù)字。2)放慢掃描速度演示動態(tài)顯示的原理過程。三、實驗原理8個數(shù)碼管,其中每個數(shù)碼管的8個段:a、b、c、d、e、f、g、h都分別連到seg0-se

22、g7,8個數(shù)碼管分別由8個連通信號dig0-dig7來選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如果希望8個數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個選通信號dig0-dig7分別被單獨選通,并在此同時,在段信號輸入口加上希望在該對應(yīng)數(shù)據(jù)管上顯示的數(shù)據(jù),于是隨著選通信號的掃描就能實現(xiàn)掃描顯示的目的。雖然每次只有一個LED顯示,但只要掃描顯示速率夠快,由于人的視覺余輝效應(yīng),使我們?nèi)匀粫杏X所有的數(shù)碼管都在同時顯示。四、實驗步驟1)啟動QuartusII建立一個空白工程,然后命名為dled.qpf(具體步驟參見實驗一)。2)新建Verilog HDL源程序文件scan_led.v,輸入程序代碼并保存,進行

23、綜合編譯,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。3)從設(shè)計文件創(chuàng)建模塊,由scan_led.v生成名為scan_led.bsf的模塊符號文件。4)將光盤中EDA_Component目錄下的int_div.bsf和int_div.v拷貝到工程目錄。5)添加常量兆功能模塊。6)新建圖形設(shè)計文件命名為dled.bdf并保存。7)選擇目標器件并對相應(yīng)的引腳進行鎖定。將dled.bdf設(shè)置為頂層實體。對該工程文件進行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯誤,則找出并更正錯誤,直至編譯成功為止。硬件連接、下載程序。8)觀察LED數(shù)碼管上的數(shù)字是否為“12345678”,然后把分頻模塊的參

24、數(shù)改為F_DIV_WIDTH:25,再重新編譯下載,觀察這次LED數(shù)碼管上的顯示數(shù)據(jù),可以看到數(shù)據(jù)“12345678”動起來了,這正是動態(tài)掃描的方法和過程。五、實驗程序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ù)字為12345678,一直顯示無變化,無變動實際上18個數(shù)在依次顯示且不斷循環(huán),因為頻率高掃描速度快,人眼感覺不到,感覺所有數(shù)碼管都在同時顯示。修改分頻模塊的參數(shù)F_DIV:48000000,F_DIV_WIDTH:26,重新編譯下

28、載觀察數(shù)碼管,則可以看到“12345678”,八個數(shù)字依次輪流顯示每次值有1個數(shù)碼管顯示其余不顯示??梢钥吹疆?dāng)分頻達到1KHz左右時人眼就感覺不到數(shù)碼管的閃爍,給人一種靜態(tài)顯示的錯覺,“眼見未必是真”。實驗十 數(shù)控分頻器的設(shè)計一、實驗?zāi)康膶W(xué)習(xí)數(shù)控分頻器的設(shè)計,分析和測試方法。二、實驗容在實驗箱上實現(xiàn)數(shù)控分頻器的設(shè)計,在clk輸入64khz的頻率信號(由int_div模塊分頻得到)或更高;輸出Fout接蜂鳴器,由KEY1/KEY2控制8位預(yù)置數(shù)并在數(shù)碼管1-2上顯示。三、實驗原理數(shù)控分頻器的功能就是當(dāng)輸入端輸入不同的數(shù)據(jù)時,產(chǎn)生不同的分頻比,從而產(chǎn)生不同的頻率值,本例是用計數(shù)值可并行預(yù)置的加法計

29、數(shù)器設(shè)計完成,方法是將計數(shù)溢出位與預(yù)置數(shù)加載輸入信號相接即可。四、實驗步驟1)啟動QuartusII建立一個空白工程,然后命名為dvf.qpf。2)將pulse.v、key_led.v、int_div.v文件加入工程。3)新建Verilog HDL源程序文件dvf.v,設(shè)置dvf.v為頂層文件,并保存。4)分配引腳,將未使用的管教設(shè)置為三態(tài)輸入。5)對該工程文件進行全程編譯處理。6)下載程序到FPGA器件,按下鍵KEY1,KEY2,觀察數(shù)碼管,聽蜂鳴器聲音有何變化。五、實驗程序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圍。對應(yīng)不同的顯示數(shù)值蜂鳴器聲音頻率隨數(shù)值變化。實驗十一 8位十進制頻率計的

31、設(shè)計一、實驗?zāi)康脑O(shè)計8位十進制頻率計,學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計方法。學(xué)習(xí)verilog HDL編程例化語句的使用。二、實驗容在實驗箱上實現(xiàn)8位二進制頻率計的設(shè)計被測信號從freq_input引腳輸入,經(jīng)過檢測后測得的頻率值用數(shù)碼管1-8顯示。被測得頻率信號由測頻模塊部產(chǎn)生并輸出到外部引腳。三、實驗原理根據(jù)頻率的定義和頻率測量的基本原理,測定信號的頻率必須有一個脈寬為1秒的輸入信號脈沖計數(shù)允許的信號;1s計數(shù)結(jié)束后,計數(shù)值鎖入鎖存器,并為下一測頻計數(shù)周期做準備的計數(shù)器清零。計數(shù)器由八個十進制計數(shù)器級聯(lián)組成。四、實驗步驟1)啟動Quartus II新建一個工程,命名為freqtest.qpf并加入

32、freqtest.v、t10.v、send_led.v文件;2)分配引腳,將未使用的管腳設(shè)為三態(tài)輸入;3)設(shè)freqtest.v為頂層文件,對該工程進行全程編譯處理;4)下載程序列FGPA器件中,拿出連接線將輸出的頻率信號引腳接到測頻輸入端,觀察數(shù)碼管顯示的數(shù)值。五、實驗程序module freqtest(clock,freq_input,dig,seg,test);input clock;/系統(tǒng)時鐘input freq_input; /被測信號輸入 output7:0dig;/數(shù)碼管選擇輸出引腳output7:0 seg;/數(shù)碼管段輸出引腳output9:0 test;/輸出頻率信號,用于測

33、試reg 25:0 counter; /時鐘分頻計數(shù)器reg 31:0 freq_result; /頻率測量結(jié)果寄存器reg 31:0 pre_freq; /脈沖計數(shù)寄存器regrst;wire divide_clk;/1Hz閘門信號wire clk_scan;/數(shù)碼管掃描顯示時鐘wire cout1,cout2,cout3,cout4,cout5,cout6,cout7;assign clk_scan = counter15;/動態(tài)掃描時鐘assign test = counter9:0;/輸出頻率信號,用于測試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等.壓縮文件請下載最新的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

提交評論