版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、西北工業(yè)大學程設計報告目:波形發(fā)生器學院:總了信息學院班級:08041202學生(學號):2012301995學生():雨日期:2014年1月20日Word 文檔摘要本設計基于FPGA開發(fā)板,利用硬件描述語言Verilog進行編程, 通過DDS數(shù)字頻率合成實現(xiàn)頻率可調(diào)的正弦波、三角波、方波簡易 發(fā)生器。本文所設計的容就是基于 Altera公司的現(xiàn)場可編程門陣列(FPGA 實現(xiàn)數(shù)字信號發(fā)生器的設計,F(xiàn)PGA具有密度高,功耗低,體積小, 可靠性高等特點,設計時可以不必過多考慮具體硬件連接; 本設計中 應用Verilog硬件描述語言進行描述,使該數(shù)字信號發(fā)生器可以產(chǎn)生 正弦波、方波、三角波、鋸齒波四
2、個獨立的波形,并能對所產(chǎn)生的四 種波形的頻率和進行調(diào)節(jié)。設計輸出頻率圍是1kz10kHz步進是1KHZ,測量的結(jié)果在數(shù)碼管上顯示 。關鍵詞:FPGA Verilog PS2協(xié)議 IIC 協(xié)議 PCF8591Word 文檔目 錄目錄課程設計目的?? 設計任務與要求??4? 方案設計與論證???? 單元電路設計與參數(shù)計算 ??7? 遇到問題的解決方法?? 結(jié)論與心得?? 參考文獻? 附錄?Word 文檔題目:波形發(fā)生器, 課程設計目的1)鞏固和加深所學電子技術課程的基本知識,提高綜合運用所學知識的能力;2)培養(yǎng)學生根據(jù)課題需要選用參考書、 查閱手冊、圖表和文獻資 料的能力,提高學生獨立解決工程實際
3、問題的能力;3)通過設計方案的分析比較、設計計算、元件選繹及電路安裝調(diào) 試等環(huán)節(jié).初步掌握單實用電路的工程設計方法;4)提高學生的動手能力.掌握常用儀器設備的正確使用方法,學 會對簡單實用電路的實驗調(diào)試和對整機指標的測試方法;5) 了解與課題有關的電路以及元器件的工程技術規(guī),能按課程設計任務書的要求編寫設計說明書,能正確反映設計和實驗成果,能 正確繪制電路圖等.二、設計任務與要求一) 任務:利用Verilog HDL或VHDL硬件描述語言及FPGA開發(fā)板實現(xiàn)波Word 文檔形發(fā)生器和學號循環(huán)顯示。二)設計要求:1、顯示學號1) 采用數(shù)碼管顯示;2) 循環(huán)顯示2個人的學號后四位;2、根據(jù)按鍵輸出
4、波形1)根據(jù)按鍵輸入不同,分別輸出正弦波、方波、三角波(頻率= 1KHz);2)根據(jù)按鍵改變頻率(頻率變化圍:1KHz-10KHz,每次頻率變化1KHz);3)輸出頻率在數(shù)碼管上顯示三、 方案設計與論證1、顯示學號:直接給數(shù)碼管賦值顯示學號,設計時鐘頻率,控制跳變。1)頻率部分:開發(fā)板的時鐘脈沖是 50MHz,作為顯示脈沖頻率太高,因而首先進行分頻,分到肉眼可辨別的頻率;2)顯示計數(shù)部分:要求循環(huán)顯示兩人的學號后四位,當 CP脈沖的上升沿到來的時候?qū)ζ溥M行計數(shù),直到 cnt 32d49_999_9993)數(shù)碼管顯示部分:對于2 )中的CP脈沖上升沿的計數(shù),前兩個數(shù)碼管顯示輸出19部分,后兩面數(shù)
5、碼管當cnt = 32d24_999_999的時候顯示79,否則顯示88,即能實現(xiàn)學號后四位的循環(huán)顯示W(wǎng)ord 文檔2、根據(jù)按鍵輸出波形(一) 總體方案實現(xiàn)及系統(tǒng)框圖該設計以FPGA開發(fā)平臺為核心,將各波形的幅值/相位量化數(shù) 據(jù)存儲在ROM,按照設定頻率,以相應頻率控制字 k為步進,對相 位進行累加,以累加相位值作為地址碼讀取存放在存儲器的波形數(shù) 據(jù),經(jīng)D/A轉(zhuǎn)換和幅度控制、濾波即可得到所需波形。波形發(fā)生器 采取全數(shù)字化結(jié)構(gòu),用硬件描述語言 Verilog設計實現(xiàn)其頻率可調(diào)可 顯示。經(jīng)開發(fā)平臺的D/A轉(zhuǎn)化和外加濾波整形處理波形數(shù)據(jù),理論 上能夠?qū)崿F(xiàn)任意頻率的各種波形。DDS電路一般由參考時鐘、
6、相位累加器、波形存儲器、D/A轉(zhuǎn)換Word 文檔其中,fc為參考時鐘頻率,K為頻率控制字,N為相位累加器位數(shù),A為波形存儲器位數(shù),D為波形存儲器的數(shù)據(jù)位字長和 D/A轉(zhuǎn)換 器位數(shù)。(二)直接數(shù)字頻率合成技術原理DDS系統(tǒng)中的參考時鐘通常由一個高穩(wěn)定度的晶體振蕩器來產(chǎn) 生,用來作為整個系統(tǒng)各個組成部分的同步時鐘。頻率控制字(Frequency Control Word , FCW)實際上是二進制編碼的相位增量 值,它作為相位累加器的輸入累加值。 相位累加器由加法器和寄存器 級聯(lián)構(gòu)成,它將寄存器的輸出反饋到加法器的輸入端實現(xiàn)累加的功 能。在每一個時鐘脈沖fc,相位累加器把頻率字K累加一次,累加器
7、的輸出相應增加一個步長的相位增量, 由此可以看出,相位累加器的 輸出數(shù)據(jù)實質(zhì)上是以K為步長的線性遞增序列(在相位累加器產(chǎn)生溢 出以前),它反映了合成信號的相位信息。相位累加器的輸出與波形 存儲器的地址線相連,相當于對波形存儲器進行查表,這樣就可以把 存儲在波形存儲器中的信號抽樣值(二進制編碼值)查出。在系統(tǒng)時 鐘脈沖的作用下,相位累加器不停的累加,即不停的查表。波形存儲 器的輸出數(shù)據(jù)送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器將數(shù)字量形式的波形幅度 值轉(zhuǎn)換成所要求合成頻率的模擬量形式信號,從而將波形重新合成出 來。若波形存儲器中存放的是正弦波幅度量化數(shù)據(jù),那么 D/A轉(zhuǎn)換Word 文檔器的輸出是近似正弦波的
8、階梯波,還需要后級的低通平滑濾波器進一步抑制不必要的雜波就可以得到頻譜比較純凈的正弦波信號。圖 2.6所示為DDS各個部分的輸出信號由于受到字長的限制,相位累加器累加到一定值后,就會產(chǎn)生一 次累加溢出,這樣波形存儲器的地址就會循環(huán)一次, 輸出波形循環(huán)一 周。相位累加器的溢出頻率即為合成信號的頻率。可見,頻率控制字 K越大,相位累加器產(chǎn)生溢出的速度越快,輸出頻率也就越高。故改 變頻率字(即相位增量),就可以改變相位累加器的溢出時間,在參考頻率不變的條件下就可以改變輸出信號的頻率。器輸出DA的出器輸出圖2.6 DDS各部分輸出波形DDS系統(tǒng)的優(yōu)點有很多,它的很多特性是其他頻率合成技術所沒 有的,其
9、中最主要的特性有以下三點:(1) DDS技術可以用于產(chǎn)生任意波形基于前面對DDS系統(tǒng)的基本結(jié)構(gòu)分析,很容易理解,只要改變 存儲在波形存儲器中的波形數(shù)據(jù),就可以改變輸出波形。所以對于任 何周期性波形,只要滿足采樣定理,都可以利用DDS技術來實現(xiàn)。(2) DDS系統(tǒng)具有很高的頻率分辨率DDS系統(tǒng)輸出頻率的分辨率和頻點數(shù)隨相位累加器的位數(shù)成指 數(shù)增長,由式(2-21)可知,在系統(tǒng)時鐘頻率不變的情況下,只要增大 相位累加器的位數(shù)N ,就可以得到幾乎是任意小的頻率分辨率,可以滿足精細頻率控制的要求。DDS如此精細的頻率分辨率,使其輸出頻 率已十分逼近連續(xù)變化。(3) 輸出頻率切換速度快且相位保持連續(xù)與鎖
10、相頻率合成相比,由于 DDS系統(tǒng)是一個開環(huán)系統(tǒng),所以當 一個新的頻率控制字送到時,它會迅速合成這個新的頻率,實際的頻 率切換時間可以達ns級。同時,頻率切換時,DDS系統(tǒng)的輸出波形 的相位是連續(xù)的。DDS系統(tǒng)的頻率字改變時,輸出波形的變化過程可 以用圖2.12描述。Word 文檔圖2.12頻率控制字改變時累加器的輸出值和輸出波形的變化(仿真) 在波形輸出到P點時,頻率字發(fā)生了改變(變?。?,相位累加器 的累加值即相位步進變小,其輸出值斜率也變小,系統(tǒng)的輸出波形的 頻率也在同時刻變小。DDS系統(tǒng)在頻率字發(fā)生改變后的一個時鐘周 期,其輸出頻率就可以就轉(zhuǎn)換到了新的頻率上, 也即在頻率字的值改 變以后,
11、累加器在經(jīng)過一個時鐘周期后就按照新的頻率字進行累加, 開始合成新的頻率。所以我們可以認為 DDS的頻率切換是在一個系 統(tǒng)時鐘周期完成的,系統(tǒng)時鐘頻率越高,切換速度越快。另外,從前面對DDS技術原理的分析可知,要改變輸出頻率, 實際上改變的是頻率字,也就是相位增量。當頻率字的值從Ki改變?yōu)?K2之后,相位累加器是在已有的累積相位上,再對K2進行累加,相位函數(shù)曲線是連續(xù)的。從圖 2.12也可以看出,只是在頻率字改變的 瞬間相位函數(shù)曲線的斜率發(fā)生了突變,相位值并沒有發(fā)生跳躍,因此 DDS能夠在頻率切換的過程中保持相位連續(xù),輸出波形能夠平滑地從 一個頻率過渡到另外一個頻率。(三)1總體設計模塊1 )按
12、鍵控制模塊鍵盤的處理器如果發(fā)現(xiàn)有鍵被按下或釋放將發(fā)送掃描碼的信息包到計算機。掃描碼有兩種不同的類型:通碼和斷碼。當一個鍵被按下就發(fā)送通碼,當一個鍵被釋放就發(fā)送斷碼。每個按鍵被分配了唯一的通Word 文檔 碼和斷碼。2)波形控制模塊(1)波形產(chǎn)生模塊分別產(chǎn)生三角波,方波,正弦波三種波形,對三種波形在一個周 期采取其中的255個樣點數(shù)據(jù),clock為系統(tǒng)時鐘信號(2)波形顯示模塊IIC總線并行轉(zhuǎn)串行模塊,利用其 D/A轉(zhuǎn)換模塊從而實現(xiàn)其產(chǎn) 生的波形在示波器上顯示IIC通信中只涉及兩條信號線,時鐘線SCL和數(shù)據(jù)線SDA。時鐘線的下降沿鎖存數(shù)據(jù)。當 SCL高電平時,把SDA從高電平拉倒低 電平,則表示
13、開始通信;反之,把 SDA從低電平拉倒高電平,則表 示通信結(jié)束。起始信號5骯L(I機)SDASDA主機D/A轉(zhuǎn)換模塊:利用8591器件實現(xiàn)數(shù)據(jù)D/A轉(zhuǎn)換,最終將波形顯示在波形顯示器上。其中要利用SCL, SDA, VCC, GND, D/A等主要接口,用 FPGA實Word 文檔IIC總線,實現(xiàn)和PCF8591連接,并用8591進行D/A轉(zhuǎn)換,實現(xiàn)波行輸出Fig.8 DfA Dorversion sequence.3)數(shù)碼管顯示部分:開發(fā)板的時鐘脈沖是50MHz,要現(xiàn)的是1KHz 到10KHz以步長為1KHz進行變化,所以對50MHz進行10種分頻; 要求對應顯示十個頻率,因而利用按鍵按下的次
14、數(shù)進行模10計數(shù),每計一次數(shù),將對應頻率進行輸出顯示。Word 文檔四、單元電路設計與參數(shù)計算1、顯示學號時鐘脈沖為50MHZ,將其分為占空比為50%勺頻率時鐘信號得到的頻率為1HZ的時鐘信號作為學號顯示的頻率2、根據(jù)按鍵輸出波形DDS輸出頻率關系式計算:輸出頻率1kHz , M=50000輸出頻率2kHz , M=25000輸出頻率3kHz , M=16666輸出頻率4kHz , M=12500輸出頻率5kHz , M=10000Word 文檔輸出頻率6kHz , M=08333輸出頻率7kHz , M=07142輸出頻率8kHz , M=06250輸出頻率9kHz , M=05555輸出頻
15、率 10kHz , M=05000依次為三角波,方波,正玄波的頻率產(chǎn)生數(shù)碼管顯示通過頻率控制字的大小換算頻率,控制數(shù)碼管的顯示五、遇到問題的解決方法1、這個問題著實困擾了我們很長時間,之前學習過C+,微機匯編等語言,對一些簡單的問題進行編程。突然接觸一門新的語言, 對我們來說比較陌生甚至讓人很不適應,尤為特殊的是Verilog HDL主要為了實現(xiàn)硬件功能,和上述其他語言還是有很大的不同。 加之本 學期完成數(shù)電實驗主要用 VHDL語言,因此十分陌生。在花了數(shù)天時 間看其語法后,發(fā)現(xiàn)還是與通用語言有許多共通之處的, 只不過是表 示方法不同而已,只要注意語言之間語法別串用, 設計思路還是大體 相同,
16、我們需要寫好正確并編譯無誤的程序并分配合適的管腳,實現(xiàn)功能還是相對簡單的。總的來說,在初步入門之后,我們才發(fā)現(xiàn) Verilog HDL的易讀性和通用性有多強。2、正弦波的波形剛開始不是很正確, 原因是采樣時取值只用了正 半周的數(shù)據(jù)。解決方法:重新計算采樣值,改變程序里面的采樣值3、我們在開始設計前瀏覽了一定的相關書籍,學習硬件描述預言,查閱開發(fā)板的數(shù)據(jù)手冊,詳細了解開發(fā)板的模塊、功能。Word 文檔4、對于題目的要求難以構(gòu)思,無從下手。開始設計時,對于整個程序的框架還很模糊,于是上網(wǎng)查閱了不少關 于基于FPGA的波形發(fā)生器的實例,發(fā)現(xiàn)應用 DDS技術可以很好的 解決這一問題。查閱資料了解 DD
17、S的其基本原理后基于本次設計的 要求提出了我們自己的方案。5、但是對于波形發(fā)生器所涉及的 PS2協(xié)議和顯示部分所用到的IIC協(xié)議,我們無從下手,后來通過網(wǎng)上下載程序不斷的修改程序,終于調(diào)試出了三種波形,但還是未能實現(xiàn)通過按鍵不同來產(chǎn)生的不同通 碼控制信號,從而來改變?nèi)N波形的輸出,最后只能設計出通過接不 同的針腳從而來實現(xiàn)三種波形的轉(zhuǎn)換!6、正弦波的波形顯示出現(xiàn)了錯誤,其中有一部分的波形不穩(wěn)定,出現(xiàn)了誤差,甚至有時候調(diào)不出來波形,與杜邦線,示波器以及針腳,芯片都有一定的關系7、頻率計算出錯,調(diào)試程序后發(fā)現(xiàn)步進值達不到要求,檢查后發(fā)現(xiàn)頻率控制字值設置錯誤。六、結(jié)論與心得對于我們來說,課程設計是一
18、次學習的機會。因為總會遇到一些 自己從來沒有遇到的問題,鍛煉了自己解決問題的能力,也學會了與 人合作。這次課設讓我加深了對 verilog語言的理解,因為掌握不熟練,常會犯一些低級錯誤,在做的過程中,理解,并運用到實際中,真的Word 文檔 提升了自己的能力。當調(diào)試出錯時,我們認真分析問題,并請教老師和同學,找到問題,并解決。做設計是個綜合的工程,需要從整體把握,將復雜逐漸變?yōu)楹唵危?做到最后,我們發(fā)現(xiàn)一開始的困難都不算什么了, 因為我們更深的理 解了設計概念和方法。本設計實現(xiàn)了可以輸出三種波形發(fā)生器, 結(jié)果證明,頻率可以改 變,并且可以通過數(shù)碼管顯示,所以該設計正確有效。本系統(tǒng)仍然有 著很多
19、可改進的地方,比如可以拓展為輸出幅值可調(diào)的波形, 或者輸 出任意波形以更貼近實際情況;采樣點數(shù)可以進一步提高,提高波形 的準確度。在以后的學習中,我們會更加認真,用心。把知識靈活運用。真 正做到設計。七、參考文獻1永瑞 等著.電子測量技術基礎.:電子科技大學.2004. 1-152林占江,林放著.電子測量儀器原理與使用.電子工業(yè).2006. 1-213學峰,胡長江.功能各異的各種任意波形發(fā)生器.國外電子測量技術.2000,4.17-184毛敏.基于DDS的高精度方波信號發(fā)生器的研究.電子科技大學工學碩士論文.2006. 5-65有正 等著.頻率合成技術.:人民郵電.1984. 1-33 6杜慧
20、敏、全良著基于 Verilog的FPGA設計基礎電子科技大學7王金明Verilog HDL程序設計教程人民郵電8PCF8591芯片手冊【9】DEO芯片手冊Word 文檔附錄:(各模塊程序代碼)1、顯示學號module abc_fp(clk,a1,a2,a3,a4);input clk;output6:0 a1;output6:0 a2;output6:0 a3;output6:0 a4;reg31:0t;always (posedge clk )if(cnt 32d49_999_999)t =t+1b1;elset = 32d0;assign a1 = 7b1001111;assign a2
21、= 7b0000100;assign a3 = (cnt = 32d24_999_999) ? 7b0001111:7b0000000;assign a4 = (cnt = 32d24_999_999) ? 7b0000100:7b0000000;Word 文檔Endmodule2、波形發(fā)生器module verilog_iicps2(clk,rst_n,ps2k_clk,ps2k_data,ps2_byte,ps2_byte1,ps2_state,led_out,led_out1,scl,sda,scl1,scl2,sda1,sda2,scpl,scpl_fb,scpl_sin,led_ou
22、t 2);input clk;/ 時鐘 50MHzinput rst_n;/ 復位信號input ps2k_clk;/ps2 接口時鐘信號input ps2k_data;/ps2 數(shù)據(jù)信號output 7:0 ps2_byte; /1byte 數(shù)值,按鍵掃描output 7:0 ps2_byte1;output ps2_state;鍵盤當前狀態(tài)ps2_state=1表示當前有鍵被按下output led_out;output led_out1;output led_out2;output scl;output sda;output scl1;Word 文檔output sdal;output
23、scl2;output sda2;output 7:0 scpl;output 7:0 scpl_fb;output 7:0 scpl_sin;reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; /ps2k_clk 狀態(tài)寄存reg 24:0 count2;reg 24:0 count1;reg 24:0 count3;reg 24:0 count_4;reg 24:0 count5;reg 24:0 count1_fb;reg 24:0 count1_sin;reg div_clk;reg led_out;reg led_out1;reg led_out2;reg
24、 plxs_clk;reg sin_clk;reg7:0 numb;Word 文檔reg7:0 numb_fb;reg7:0 numb_sin;reg7:0 data;reg7:0 data_sin;reg7:0 data_fb;reg 8:0 count_data;reg 8:0 count_datafb;reg 8:0 count_datasin;reg scl;reg scl1;reg scl2;reg sda;reg sda1;reg sda2;reg flag;reg 7:0 scpl;reg 7:0 scpl_fb;reg 7:0 scpl_sin;reg 19:0 count_j
25、c;reg 19:0 count_jcfb;reg 19:0 count_jcsin;reg 7:0t;Word 文檔reg 7:0t2;reg 19:0 count_pl;reg 19:0 fb_pl;reg 19:0 sin_pl;reg g_clk;wire neg_ps2k_clk; /ps2k_clk 下降沿標志位always (posedge clk or negedge rst_n)beginif(!rst_n) beginps2k_clk_r0 =1b0;ps2k_clk_r1 =1b0;ps2k_clk_r2 =1b0;endelse beginps2k_clk_r0 =ps
26、2k_clk;ps2k_clk_r1 =ps2k_clk_r0;ps2k_clk_r2 =ps2k_clk_r1;endendWord 文檔assign neg_ps2k_clk=-ps2k_clk_r1 & ps2k_clk_r2;檢測下降沿 1 有效reg7:0 ps2_byte_r; /pc接收ps2 一個字節(jié)數(shù)據(jù)存儲器reg7:0 temp_data; /當前接收數(shù)據(jù)寄存器reg3:0 num;/計數(shù)寄存器 always (posedge clk or negedge rst_n)beginif(!rst_n) beginnum=4d0;temp_data=8d0;endelse if
27、(neg_ps2k_clk)begin / 檢測到下降沿case (num)4d0: num=num+1b1;起始位不采樣4d1: beginnum=num+1b1;temp_data0=ps2k_data; /bit0end4d2: beginnum=num+1b1;temp_data1=ps2k_data; /bit1Word 文檔end4d3: beginnum=num+1b1;temp_data2=ps2k_data; /.end4d4: beginnum=num+1b1;temp_data3=ps2k_data;end4d5: beginnum=num+1b1;temp_data4=
28、ps2k_data;end4d6: beginnum=num+1b1;temp_data5=ps2k_data;end4d7: beginnum=num+1b1;temp_data6=ps2k_data; /bit6end4d8: beginWord 文檔num=num+1b1;temp_data7=ps2k_data; /bit7end4d9: beginnum=num+1b1;/奇偶校驗不處理end4d10:beginnum=4d0; 結(jié)束位num清零enddefault: ;/應答位不處理endcaseendendreg key_f0; /松鍵標志位,置1表示接收到數(shù)據(jù)8hf0,再接收到
29、下一個數(shù)據(jù)后清零?reg ps2_state_r; /鍵盤當前狀態(tài),ps2_state_r=1表示有鍵被按下/reg flag=0;always (posedge clk or negedge rst_n) begin /接收數(shù)據(jù)的相應處理,這里只對1byte的鍵值進行處理if(!rst_n)beginWord 文檔key_f0 = 1b0;ps2_state_r = 1b0;endelse if(num=4d10) begin/剛傳送完一個字節(jié)數(shù)據(jù)if(temp_data=8hf0)key_f0=1b1;else beginif(!key_f0)begin/說明有鍵按下ps2_state_r
30、=1b1;ps2_byte_r=temp_data;/ 鎖存當前鍵值/ if(flag) transport =temp_data;/ flag=flag+1b1;endelse beginps2_state_r=1b0;key_f0=1b0;endendendend always (negedge ps2_state_r)beginif(ps2_state_r=0)Word 文檔transport =ps2_byte_r;end reg7:0 transport;reg7:0 ps2_asci;接收數(shù)據(jù)的相應 ASCII碼reg7:0 ps2_asci1;reg count;always (
31、ps2_byte_r) begincount=count+1;/ if(count=1)begincase (ps2_byte_r) /鍵值轉(zhuǎn)換為ASCII碼,這里做的比較簡單8h45: ps2_asci = zero;8h16: ps2_asci = one;8h1E: ps2_asci = two;8h26: ps2_asci = three;8h25: ps2_asci = four;8h2E: ps2_asci = five;8h36: ps2_asci = six;8h3D: ps2_asci = seven;8h3E: ps2_asci = eight;8h46: ps2_asci
32、 = nine;Word 文檔default: ps2_asci = nothing;endcase/end/else ps2_asci = nothing;endalways (posedge ps2_state_r) beginif(ps2_state_r=1)begincase (transport)/鍵值轉(zhuǎn)換為ASCII碼,這里做的比較簡單8h45: ps2_asci1 = zero;8h16: ps2_asci1 = one;8h1E: ps2_asci1 = two;8h26: ps2_asci1 = three;8h25: ps2_asci1 = four;8h2E: ps2_a
33、sci1 = five;8h36: ps2_asci1 = six;8h3D: ps2_asci1 = seven;8h3E: ps2_asci1 = eight;8h46: ps2_asci1 = nine;default:ps2_asci1 = nothing;endcaseendWord 文檔else ps2_asci1 = nothing;end assign ps2_byte = ps2_asci;assign ps2_byte1 = ps2_asci1 ;assign ps2_state = ps2_state_r;parameterzero = 8b1100_0000,one =
34、 8b1111_1001,two = 8b1010_0100,three = 8b1011_0000,four = 8b1001_1001,five = 8b1001_0010,six = 8b1000_0010,seven = 8b1111_1000,eight = 8b1000_0000,nine = 8b1001_0000,nothing = 8b1111_1111;always ( posedge clk)Word 文檔beginif ( count2=500 )begindiv_clk=div_clk;count2=0;endelsecount2=count2+1;led_out=d
35、iv_clk;endalways (posedge ps2_state) begint=cnt+1;case(cnt)8d01:count_pl=20d50000;8d02:count_pl=20d25000;8d03:count_pl=20d16666;8d04:count_pl=20d12500;8d05:count_pl=20d10000;8d06:count_pl=20d08333;8d07:count_pl=20d07142;8d08:count_pl=20d06250;Word 文檔8d09:count_pl=20d05555;8d10:count_pl=20d05000;8d11
36、:beginfb_pl=20d50000;count_pl=1b0;end8d12:beginfb_pl=20d25000;count_pl=1b0;end8d13:beginfb_pl=20d16666;count_pl=1b0;end8d14:beginfb_pl=20d12500;count_pl=1b0;end8d15:beginfb_pl=20d10000;count_pl=1b0;endWord 文檔8d16:beginfb_pl=20d08333;count_pl=1b0;end8d17:beginfb_pl=20d07142;count_pl=1b0;end8d18:begin
37、fb_pl=20d06250;count_pl=1b0;end8d19:beginfb_pl=20d05555;count_pl=1b0;end8d20:beginfb_pl=20d05000;count_pl=1b0;end8d21:beginsin_pl=20d50000;Word 文檔count_pl=1b0;end8d22:beginsin_pl=20d25000;count_pl=1b0;end8d23:beginsin_pl=20d16666;count_pl=1b0;end8d24:beginsin_pl=20d12500;count_pl=1b0;end8d25:beginsi
38、n_pl=20d10000;count_pl=1b0;end8d26:beginsin_pl=20d08333;count_pl=1b0;endWord 文檔8d27:beginsin_pl=20d07142;count_pl=1b0;end8d28:beginsin_pl=20d06250;count_pl=1b0;end8d29:beginsin_pl=20d05555;count_pl=1b0;end8d30:beginsin_pl=20d05000;count_pl=1b0;endendcaseendalways ( posedge clk) /sanjiaobobeginif ( c
39、ount1=count_pl )Word 文檔begincount_jc=count1;count1=0;count_data=count_data+1;if(count_data=255)begindata=data+1;endelsebegindata=data-1;endendelsecount1=count1+1;endalways ( posedge clk) /fangbobeginif ( count1_fb=fb_pl )Word 文檔begincount_jcfb=count1_fb;count1_fb=0;count_datafb=count_datafb+1;if(cou
40、nt_datafb=255)begindata_fb=8d255;endelsebegindata_fb=8d0;endendelsecount1_fb=count1_fb+1;endalways ( posedge clk)beginif ( count3=25000000 )beginWord 文檔plxs_clk=plxs_clk;count3=0;endelsecount3=count3+1;led_out1=plxs_clk;endalways ( posedge clk) /sin fenpinqibeginif ( count5=sin_pl )begincount_jcsin=
41、count5;sin_clk=sin_clk;count5=0;endelsecount5=count5+1;led_out2=sin_clk;endalways (posedge sin_clk) begin /sinWord 文檔case(count_4)8d001:data_sin=8d128;8d002:data_sin=8d134;8d003:data_sin=8d140;8d004:data_sin=8d146;8d005:data_sin=8d152;8d006:data_sin=8d158;8d007:data_sin= 8d165 ;8d008:data_sin= 8d170
42、 ;8d009:data_sin= 8d176 ;8d010:data_sin= 8d182 ;8d011:data_sin= 8d188 ;8d012:data_sin= 8d193 ;8d013:data_sin= 8d198 ;8d014:data_sin= 8d203 ;8d015:data_sin= 8d208 ;8d016:data_sin= 8d213 ;8d017:data_sin= 8d218 ;8d018:data_sin= 8d222 ;8d019:data_sin= 8d226 ;8d020:data_sin= 8d230 ;8d021:data_sin= 8d234
43、;Word 文檔8d022:data_sin= 8d237 ;8d023:data_sin= 8d240 ;8d024:data_sin= 8d243 ;8d025:data_sin= 8d245 ;8d026:data_sin= 8d248 ;8d027:data_sin= 8d250 ;8d028:data_sin= 8d251 ;8d029:data_sin= 8d253 ;8d030:data_sin= 8d254 ;8d031:data_sin= 8d254 ;8d032:data_sin= 8d255 ;8d033:data_sin= 8d255 ;8d034:data_sin=
44、8d255 ;8d035:data_sin= 8d254 ;8d036:data_sin= 8d254 ;8d037:data_sin= 8d253 ;8d038:data_sin= 8d251 ;8d039:data_sin= 8d250 ;8d040:data_sin= 8d248 ;8d041:data_sin= 8d245 ;8d042:data_sin= 8d243 ;8d043:data_sin= 8d240 ;Word 文檔8d044:data_sin= 8d237 ;8d045:data_sin= 8d234 ;8d046:data_sin= 8d230 ;8d047:data
45、_sin= 8d226 ;8d048:data_sin= 8d222 ;8d049:data_sin= 8d218 ;8d050:data_sin= 8d213 ;8d051:data_sin= 8d208 ;8d052:data_sin= 8d203 ;8d053:data_sin= 8d198 ;8d054:data_sin= 8d193 ;8d055:data_sin= 8d188 ;8d056:data_sin= 8d182 ;8d057:data_sin= 8d176 ;8d058:data_sin= 8d170 ;8d059:data_sin= 8d165 ;8d060:data_
46、sin= 8d158 ;8d061:data_sin= 8d152 ;8d062:data_sin= 8d146 ;8d063:data_sin= 8d140 ;8d064:data_sin= 8d134 ;8d065:data_sin= 8d128 ;Word 文檔8d066:data_sin= 8d121 ;8d067:data_sin= 8d115 ;8d068:data_sin= 8d109 ;8d069:data_sin= 8d103 ;8d070:data_sin= 8d97 ;8d071:data_sin= 8d90 ;8d072:data_sin= 8d85 ;8d073:da
47、ta_sin= 8d79 ;8d074:data_sin= 8d73 ;8d075:data_sin= 8d67 ;8d076:data_sin= 8d62 ;8d077:data_sin= 8d57 ;8d078:data_sin= 8d52 ;8d079:data_sin= 8d47 ;8d080:data_sin= 8d42 ;8d081:data_sin= 8d37 ;8d082:data_sin= 8d33 ;8d083:data_sin= 8d29 ;8d084:data_sin= 8d25 ;8d085:data_sin= 8d21 ;8d086:data_sin= 8d18 ;
48、8d087:data_sin= 8d15 ;Word 文檔8d088:data_sin= 8d12 ;8d089:data_sin= 8d10 ;8d090:data_sin= 8d7 ;8d091:data_sin= 8d5 ;8d092:data_sin= 8d4 ;8d093:data_sin= 8d2 ;8d094:data_sin= 8d1 ;8d095:data_sin= 8d1 ;8d096:data_sin= 8d0 ;8d097:data_sin= 8d0 ;8d098:data_sin= 8d0 ;8d099:data_sin= 8d1 ;8d100:data_sin= 8
49、d1 ;8d101:data_sin= 8d2 ;8d102:data_sin= 8d4 ;8d103:data_sin= 8d5 ;8d104:data_sin= 8d7 ;8d105:data_sin= 8d10 ;8d106:data_sin= 8d12 ;8d107:data_sin= 8d15 ;8d108:data_sin= 8d18 ;8d109:data_sin= 8d21 ;Word 文檔8d110:data_sin= 8d25 ;8d111:data_sin= 8d29 ;8d112:data_sin= 8d33 ;8d113:data_sin= 8d37 ;8d114:d
50、ata_sin= 8d42 ;8d115:data_sin= 8d47 ;8d116:data_sin= 8d52 ;8d117:data_sin= 8d57 ;8d118:data_sin= 8d62 ;8d119:data_sin= 8d67 ;8d120:data_sin= 8d73 ;8d121:data_sin= 8d79 ;8d122:data_sin= 8d85 ;8d123:data_sin= 8d90 ;8d124:data_sin= 8d97 ;8d125:data_sin= 8d103 ;8d126:data_sin= 8d109 ;8d127:data_sin= 8d115 ;8d128:begindata_sin= 8d121 ;count_4=25d0;Word 文檔end endcaseendalways (posedge div_clk) begin /iic for sjbnumb=numb+8b0000001;case(numb)8h01:scl=1;/s8h02:sda=0;8h03:scl=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學生心理素質(zhì)培養(yǎng)的課程設計與執(zhí)行
- 課題申報參考:教育強國背景下教育家型教師的時代畫像與培養(yǎng)路徑研究
- 2025年度木托盤出口退稅與免稅服務合同4篇
- 《鄉(xiāng)鎮(zhèn)森林防火檢查站設置與管理規(guī)范》編制說明
- 圣誕感恩的開幕詞(16篇)
- 二零二五年度碼頭岸線使用權轉(zhuǎn)讓合同4篇
- 二零二五年度魯佳與配偶解除婚姻關系財產(chǎn)分配協(xié)議4篇
- 二零二五版鋼結(jié)構(gòu)與石材幕墻施工技術指導合同4篇
- 2025年度智能物流項目股權投資協(xié)議書4篇
- 二零二五版航空貨運租賃服務協(xié)議3篇
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計算機組成原理-電子科技大學 中國大學慕課MOOC答案
- 2024年上海健康醫(yī)學院單招職業(yè)適應性測試題庫及答案解析
- 2024年湖北省武漢市中考語文適應性試卷
- 非新生兒破傷風診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說明書
- 上海市華東師大二附中2025屆高二數(shù)學第一學期期末統(tǒng)考試題含解析
- IP授權合作合同模板
- 大國重器北斗系統(tǒng)
評論
0/150
提交評論