版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 1、前言</b></p><p> 可調(diào)幅度簡易波形刺激發(fā)生器是信號發(fā)生器的一種,在生產(chǎn)實踐和科研領(lǐng)域中有著廣泛的應用。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機設備時,都需要有信號源,由它產(chǎn)生不同幅度不同波形的電壓、電流信號并加到被測器件或設備上,用其他儀器觀察、測量被測儀器的輸出響應,以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領(lǐng)域中最基本、應用
2、最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如正弦波,三角波和方波等,因而廣泛用于通信、雷達、導航、宇航等領(lǐng)域。</p><p> 在本設計中它能夠產(chǎn)生多種波形,如正弦波,三角波和方波等,并能實現(xiàn)對各種波形幅度的改變。正因為其在生活中應用的重要性,人們它做了大量的研究,總結(jié)出了許多實現(xiàn)方式。可以基于FPGA 、VHDL、單片機、DOS技能、數(shù)字電路等多種方法實現(xiàn)。</p><p>
3、本設計是采用VHDL來實現(xiàn)的可調(diào)幅度簡易波形刺激發(fā)生器設計。它能產(chǎn)生正弦波,三角波和方波。且對各種波形的要求如下:</p><p> ?。?)設計一個簡易多功能信號發(fā)生器,產(chǎn)生穩(wěn)定的波形:</p><p> 正弦波,三角波,方波;</p><p> ?。?)信號發(fā)生器波形信號的選擇由撥碼開關(guān)控制選擇。 </p><p> ?。?)信號發(fā)生器
4、輸出信號幅度要求:幅度為1.25V、2.5V、5V。 幅度控制由撥碼開關(guān)實現(xiàn)。輸出頻率不做要求。</p><p> ?。?)波形通過DA轉(zhuǎn)換后在示波器上顯示。 </p><p> 2、FPGA原理及特點</p><p> FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable L
5、ogic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分?,F(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16X1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功
6、能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存貯單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的連接方式,并最終決定了FPGA所能實現(xiàn)的功能FPGA允許無限次的編程。</p><p> FPGA的基本特點主要有: </p><p> 1)采用FPGA設計ASIC電路,用戶不需要投
7、片生產(chǎn),就能得到合用的芯片。 </p><p> 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 </p><p> 3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。 </p><p> 4)FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。 </p><p> 5) FPGA采用高速CHMOS工藝,功耗
8、低,可以與CMOS、TTL電平兼容。 </p><p> 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 </p><p> FPGA是由存放在片內(nèi)RAM中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 </p><p> 加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)
9、編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。 </p><p><b> 3、設計方案</b
10、></p><p> 3.1實驗要求及總體框圖</p><p> 根據(jù)實驗設計要求,可將設計分為以下幾個模塊(如圖3.1):</p><p> 波形產(chǎn)生模塊。主要用來產(chǎn)生三種波形(正弦波、三角波、方波)。</p><p> 波形選擇模塊。該模塊用于選擇當前輸出的為何種波形。</p><p> 幅度控制模
11、塊。用于控制輸出信號的幅度,本設計中要求有三個檔位,即1.25V,2.5V,5V。</p><p> DA轉(zhuǎn)換。用于將前面的數(shù)字信號轉(zhuǎn)換成模擬信號。</p><p> 輸出模塊。用實驗室提供的示波器觀察檢測生成的波形。</p><p><b> 圖3.1</b></p><p> 本設計采用模塊化編程,在工程中編
12、寫各個模塊的程序,然后生成symbol 文件,最后在頂層文件中連線編譯下載即可。</p><p> 3.2、單元程序設計及仿真分析</p><p> 3.2.1方波的發(fā)生模塊</p><p> 設計中利用計數(shù)的方法來產(chǎn)生方波,原理類似于分頻器:對脈沖進行計數(shù),從0計到31即計數(shù)32個脈沖,輸出高電平(1023);從32計到63即再計32個脈沖,輸出為低電平,程
13、序編寫成功后生成的元件模塊圖如圖3.2,其時序仿真波形圖如圖3.3所示:</p><p><b> 圖3.2</b></p><p><b> 圖3.3</b></p><p> 由波形圖可以看出,每計數(shù)31個時鐘脈沖,輸出電平進行一次翻轉(zhuǎn),形成占空比為50%的方波信號。</p><p>
14、3.2.2正弦波的發(fā)生模塊</p><p> 對于正弦波(如圖3.4),由于是周期信號,可以通過對一個完整周期內(nèi)以一定點數(shù)的采樣來離散化。又由于D/A轉(zhuǎn)換接口為10位輸入,所以必須要考慮到采樣個數(shù)和采樣值的大小。如果僅以原始波形為基礎進行采樣,必然會出現(xiàn)小數(shù)和負數(shù),這將使得二進制的轉(zhuǎn)化和編程變的很困難。</p><p> 綜合所述,要解決的問題就是消除小數(shù)和負數(shù),使采樣數(shù)值變成正整數(shù),
15、我們采用了以下的算法:首先,將原始波形幅度擴大為原來的512倍,如(圖3.5)。然后將波形向上移動512,如圖3.6。接著,利用抽樣點來產(chǎn)生正弦波,外部接線每產(chǎn)生一個上升沿,記一次數(shù),同時根據(jù)計數(shù)值選擇要輸出的正弦采樣點數(shù)值。設定64個抽樣點,每個抽樣點的幅值為:</p><p> 其中 n=0,1,2,…,63。</p><p> 根據(jù)抽樣點所對應的函數(shù)值,DA轉(zhuǎn)換后就可得到一個正
16、弦波。</p><p> 在Quartus II軟件編寫VHDL代碼,通過編譯和時序仿真,可得到如下圖(圖3.7和圖3.8)所示的元件模塊圖和時序仿真波形。</p><p><b> 圖3.7</b></p><p><b> 圖3.8</b></p><p> 3.2.3三角波的發(fā)生模塊&
17、lt;/p><p> 三角波的波形也呈現(xiàn)一定的規(guī)律,可以通過外部脈沖刺激,在原來數(shù)值的基礎上進行加(減)一個固定值,本設計利用狀態(tài)機來實現(xiàn),狀態(tài)機具有良好的可靠性,不易出錯。本設計狀態(tài)機有兩個狀態(tài):</p><p> 狀態(tài)S0:主要用于三角波前半部分(上升部分)的幅值輸出及判斷,幅值采用累加輸出,判斷幅值是否達到峰值,是則跳轉(zhuǎn)狀態(tài)二,否則仍處于本狀態(tài)。</p><p&g
18、t; 狀態(tài)S1:主要用于三角波后半部分(下降部分)的幅值輸出及判斷,幅值采用遞減輸出,判斷幅值是否達到0,是則跳轉(zhuǎn)狀態(tài)一,否則仍處于本狀態(tài)。</p><p> 這樣通過狀態(tài)的不斷轉(zhuǎn)換,就會輸出一系列值,通過DA轉(zhuǎn)換就能產(chǎn)生一個三</p><p> 角波,元件模塊圖及時序仿真波形圖如圖3.9和圖3.10所示:</p><p><b> 圖3.9<
19、;/b></p><p><b> 圖3.10</b></p><p><b> 3.4波形選擇單元</b></p><p> 波形選擇采用撥碼開關(guān)控制,三路輸入(除去開關(guān)輸入),一路輸出,通過對兩個撥碼開關(guān)的組合狀態(tài)識別判斷來控制輸出為哪一路輸入。下圖(圖3.11)為生成模塊圖:</p><
20、;p><b> 圖3.11</b></p><p> 其時序仿真波形圖如圖3.12所示:</p><p><b> 圖3.12</b></p><p> 由圖可知,用A、B兩個撥碼開關(guān)進行選擇。當A&B為“01”時,選擇I1為輸出波形;當A&B為“10”時,選擇I2為輸出波形;當A&B
21、為“11”時,選擇I3為輸出波形;當A&B為其他組合時,輸出為高阻抗ZZZZZZZZZZ。</p><p><b> 3.5幅度調(diào)節(jié)單元</b></p><p> 幅度調(diào)節(jié)單元是對所產(chǎn)生的波形的幅值進行調(diào)節(jié)的,幅度的調(diào)節(jié)有三個檔,5.00V,2.50V和1.25V。顯然,以上三個檔位呈2倍關(guān)系,故可在原波形數(shù)據(jù)基礎上通過除2和除4操作來實現(xiàn)檔位調(diào)節(jié)。本設計
22、采用撥碼開關(guān)Sw3和Sw4來對幅度進行選擇的。當Sw3& Sw4為“00”時幅值為1.25V;當Sw3 & Sw4為“01”時幅值為2.5V;當Sw3& Sw4為“10”時幅值為5.00V。該功能的實現(xiàn)主要是通過if語句來判斷撥碼開關(guān)Sw3和Sw4的狀態(tài),并根據(jù)判斷結(jié)果做出相應的操作。</p><p> 在Quartus II軟件輸入該單元的VHDL程序,生成元件模塊圖如圖3.13所示,
23、再通過編譯和時序仿真,可得到如下(圖3.14)的仿真波形。</p><p><b> 圖3.13</b></p><p><b> 圖3.14</b></p><p> 從仿真波形可以看出,當C&D即Sw3& Sw4的值“10”時輸出D_OUT等于輸入D_IN;當C&D即Sw3& Sw
24、4的值“01”時輸出D_OUT等于輸入D_IN/2; 當C&D即Sw3& Sw4的值“00”時輸出D_OUT等于輸入D_IN/4,跟我們的設計目的相符。</p><p> 3.6 DA轉(zhuǎn)換單元</p><p> 數(shù)模轉(zhuǎn)換(DAC)采用TLC5616芯片。TLC5615是一個串行10位DAC芯片,性能比早期電流型輸出的nAC要好。只需要通過3根串行總線就可以完成1O位數(shù)據(jù)
25、的串行輸入,易于和工業(yè)標準的微處理器或微控制器(單片機)接口,適用 于電池供電的測試儀表、移動電話,也適用于數(shù)字失 調(diào)與增益調(diào)整以及工業(yè)控制場合。該芯片的封裝及I/O口定義如下(圖3.15和表3.1):</p><p><b> 圖3.15</b></p><p><b> 表3.1</b></p><p> 其工作
26、時序圖如圖3.16:</p><p><b> 圖3.16</b></p><p> Note:A、為使時鐘反饋為最小,當CS為高電平時加在SCLK端的輸入時鐘應當呈現(xiàn)低電平。</p><p> C、第12個SCLK下降沿。</p><p> 注意:此圖為非級聯(lián)方式下DA轉(zhuǎn)換時序,可將芯片的第四腳懸空不做處理。在
27、非級聯(lián)方式下,1腳DIN輸入的數(shù)據(jù)格式如下所示,高10位為有效數(shù)據(jù),低2位可以設置為‘0’電平。</p><p> 本設計中需要的操作主要是編程產(chǎn)生TLC5615的控制信號(SCLK時鐘和CS信號)及串行輸送TLC5615所需的轉(zhuǎn)換數(shù)據(jù),設計時采用狀態(tài)機。狀態(tài)轉(zhuǎn)移圖如圖3.17:</p><p><b> 圖3.17</b></p><p>
28、;<b> 其中:</b></p><p> S0:CS為高,SCLK為低 ,計數(shù)為0;</p><p> S1:等待一個時鐘周期;</p><p> S2:CS為低,SCLK為低,并判斷CNT計數(shù)器是否小于等于11,是則跳到S3,否則跳到時;</p><p> S3:CS為低,SCLK為高,計數(shù)器CNT加1計
29、數(shù),并跳轉(zhuǎn)到S2;</p><p> S3:CS為高,SCLK為低,跳轉(zhuǎn)到S0;</p><p> 另外,送數(shù)與更新數(shù)據(jù)的處理: </p><p> 判斷CS,若為高,則更新數(shù)據(jù),即往移位寄存器中裝載需要轉(zhuǎn)換成模擬信號的數(shù)字信號數(shù)據(jù);若CS為低,則通過移位,把數(shù)據(jù)串行送給TLC5615芯片的輸入端(每個SCLK上升沿移一位送出數(shù)據(jù))。</p>&
30、lt;p> 另外,本模塊還需一個分頻,實驗板的時鐘信號為50MHZ, 需將它分頻以適應TLC5615要求的時鐘信號。本設計中采用的方案是:一是當計數(shù)器計數(shù)到偶數(shù)分N/2-1時,將輸出電平進行一次翻轉(zhuǎn),同時給計數(shù)器一個復位信號,如此循環(huán)。在Quartus II軟件編寫VHDL程序,經(jīng)過編譯和時序仿真,可得到如下(圖3.18)的仿真波形及元件模塊圖(圖3.19)。</p><p><b> 圖3.
31、18</b></p><p><b> 圖3.19</b></p><p> 從波形圖上可以看到,分頻器得到了將系統(tǒng)時鐘50分頻后的時鐘信號。</p><p> 4、原理圖設計及仿真分析</p><p> 將各個模塊用線連接起來,得到頂層文件電路圖,如圖4.1所示:</p><p&
32、gt;<b> 圖4.1</b></p><p> 5、硬件實驗結(jié)果及時序分析結(jié)果</p><p> 本課程設計是幅值可調(diào)的波形發(fā)生器,根據(jù)引腳所鎖定圖將系統(tǒng)中的各個輸入輸出端口鎖定到合適的引腳上。其管腳設置如圖5.1所示</p><p> 其中clk為FPGA系統(tǒng)時鐘;A、B、C、D代表四個撥碼開關(guān)的值。 </p>&l
33、t;p> 當引腳鎖定完畢后,將程序下載到試驗箱中,連好示波器,在輸入端輸入相應的值即可得到相應的輸出波形。具體的硬件仿真波形如下:</p><p> 在clk端輸入50MHz的時鐘信號,當圖4.1的原理圖中的A&B輸入“01”時得到的是正弦波波形,如圖5.2所示。改變C&D的值可以該變輸出波形的幅值。當為“00”時幅值為1.25V ;當C&D為“01”時幅值為2.5V;當C&am
34、p;D為“10”時幅值為5.00V。</p><p> 當圖4.1的原理圖中的A&B輸入“10”時得到的是方波波形,如圖5.3所示。同理,改變C&D的值可以該變輸出波形的幅值。</p><p> 當圖4.1的原理圖中的A&B輸入“11”時得到的是三角方波波形,如圖5.4所示。同理,改變C&D的值可以該變輸出波形的幅值。</p><p&
35、gt;<b> 結(jié)果分析:</b></p><p> 從實驗結(jié)果來看,設計成功完成了三種波形的設計。當選擇撥碼開關(guān)SW1、SW2的不同組合時,波形輸出發(fā)生變化;當選擇撥碼開關(guān)SW3、SW4的不同組合時,實現(xiàn)了波形幅度的調(diào)節(jié)。由于設計過程中存在不可避免的誤差,輸出波形的形狀及輸出幅值均與標準有些微偏差,但都保持在約束范圍內(nèi)。綜上所述,本次設計的信號發(fā)生器,達到了設計所定要求,完成了要求所需
36、的各個功能。</p><p><b> 6、總結(jié)</b></p><p> 本次設計五人一組,為時兩個星期。期間,小組成員之間分工明確,合作默契,進行了多次討論分析,使得本次課程設計得以順利完成。</p><p> 對于EDA的編程,其編程語言本身不會很難,關(guān)鍵在于編程的內(nèi)在邏輯。經(jīng)過一個學期的理論學習,我們對EDA有了個初步的認識,而通
37、過這次的課程設計,我們對EDA又有了更深一步的理解,鍛煉了我們的動手能力和思維能力。</p><p> 在設計過程中遇到不少問題,如鍵盤控制。鍵盤在7段數(shù)碼管顯示時,由于按下鍵一短時間后應放開按鍵,這樣勢必會對輸出顯示造成影響,所以程序邏輯上應該有鎖存功能。但這種方法在本設計中行不通,因為顯示程序中的按鍵程序內(nèi)部是通過定義一個信號tmp來保存待顯示的數(shù)值的,而本設計中要鎖存的是一個動態(tài)產(chǎn)生信號的輸入通道,若仍按
38、照led顯示時按鍵的程序編寫方法,那么tmp內(nèi)鎖存的數(shù)據(jù)只是一個暫時的靜態(tài)數(shù)據(jù),導致按鍵松開后輸出的數(shù)據(jù)只是一個恒定值,而不時動態(tài)變化的波形數(shù)據(jù)。所以最后趙老師建議我們換成撥碼開關(guān)。</p><p> 從接觸到這個設計課題到設計成功,途中遇到了住多么困難,通過組員之間的相互討論及指導老師的指點,最終得以解決,在此對那些給過幫助的老師及同學表示感謝。</p><p> 本系統(tǒng)即實現(xiàn)了可以
39、輸出三種波形的幅值可調(diào)的波形發(fā)生器,最后的測試結(jié)果表明,該設計正確有效,可以作為制作實物的理論依據(jù)。</p><p><b> 7、參考文獻</b></p><p> 1].潘松,黃繼業(yè) 《EDA技術(shù)實用教程(第三版)》科技出版社 2006年9月第三版</p><p> 2].趙小明 《EDA技術(shù)基礎實驗指導書》重慶大學生物工程學院
40、2012年5月</p><p><b> 8、附錄</b></p><p><b> 附錄1: 任務分工</b></p><p> 波形產(chǎn)生:余春蓉、尹玉妮、黃瑩瑩、李文滿、藍海強</p><p> 幅度控制:余春蓉、尹玉妮、藍海強</p><p> 波形選擇:黃瑩
41、瑩、李文滿、藍海強</p><p><b> DA轉(zhuǎn)換:藍海強</b></p><p><b> 報告:全體成員</b></p><p><b> 答辯ppt:藍海強</b></p><p><b> 附錄2:程序</b></p>&
42、lt;p><b> 分頻器程序</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY FENPIN IS</
43、p><p> PORT(CLK :IN STD_LOGIC;</p><p> CLK1:OUT STD_LOGIC</p><p><b> );</b></p><p><b> END;</b></p><p> ARCHITECTURE FP OF FENPIN
44、 IS</p><p> SIGNAL A:INTEGER:=0;</p><p> SIGNAL Z:STD_LOGIC;</p><p><b> BEGIN</b></p><p> PROCESS(CLK)</p><p><b> BEGIN</b><
45、;/p><p> IF (CLK'EVENT AND CLK='1') THEN </p><p><b> A<=A + 1;</b></p><p> IF A=24 THEN </p><p> Z<=(NOT Z);</p><p><b&
46、gt; A<= 0;</b></p><p><b> END IF;</b></p><p><b> CLK1<=Z;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p>
47、<p><b> END FP;</b></p><p><b> 2方波發(fā)生模塊程序</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_U
48、NSIGNED.ALL;</p><p> ENTITY FB IS</p><p> PORT (CLK:IN STD_LOGIC;</p><p> FBO:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));</p><p> END ENTITY;</p><p> ARCHITECT
49、URE BHV OF FB IS</p><p> SIGNAL Q:INTEGER RANGE 63 DOWNTO 0;</p><p><b> BEGIN</b></p><p> PROCESS(CLK)</p><p><b> BEGIN</b></p><p
50、> IF CLK'EVENT AND CLK='1' THEN </p><p><b> Q<=Q+1;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(Q)<
51、;/p><p><b> BEGIN </b></p><p> CASE Q IS </p><p> WHEN 0 TO 31=>FBO<="1111111111";</p><p> WHEN OTHERS=>FBO<="0000000000";&
52、lt;/p><p><b> END CASE;</b></p><p> END PROCESS;</p><p><b> END;</b></p><p><b> 正玄波發(fā)生模塊程序</b></p><p> library ieee;&l
53、t;/p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity sin is</p><p> port(
54、clk:in std_logic;</p><p> outp:out std_logic_vector(9 downto 0)</p><p><b> );</b></p><p><b> end;</b></p><p> architecture dac of sin is<
55、/p><p> signal q: integer range 63 downto 0;</p><p> signal dd4:integer;</p><p><b> begin</b></p><p> outp<=conv_std_logic_vector(dd4,10);</p>&l
56、t;p> process(clk)</p><p><b> begin</b></p><p> if (clk'event and clk='1') then</p><p><b> q<=q+1;</b></p><p><b> ca
57、se q is</b></p><p> when 00=>dd4<=512;</p><p> when 01=>dd4<=562;</p><p> when 02=>dd4<=611;</p><p> when 03=>dd4<=660;</p><
58、;p> when 04=>dd4<=707;</p><p> when 05=>dd4<=753;</p><p> when 06=>dd4<=796;</p><p> when 07=>dd4<=836;</p><p> when 08=>dd4<=874;
59、</p><p> when 09=>dd4<=907;</p><p> when 10=>dd4<=937;</p><p> when 11=>dd4<=963;</p><p> when 12=>dd4<=985;</p><p> when 13=&
60、gt;dd4<=1001;</p><p> when 14=>dd4<=1014;</p><p> when 15=>dd4<=1021;</p><p> when 16=>dd4<=1023;</p><p> when 17=>dd4<=1021;</p>
61、<p> when 18=>dd4<=1014;</p><p> when 19=>dd4<=1001;</p><p> when 20=>dd4<=985;</p><p> when 21=>dd4<=963;</p><p> when 22=>dd4<
62、=937;</p><p> when 23=>dd4<=907;</p><p> when 24=>dd4<=874;</p><p> when 25=>dd4<=836;</p><p> when 26=>dd4<=796;</p><p> when
63、 27=>dd4<=753;</p><p> when 28=>dd4<=707;</p><p> when 29=>dd4<=660;</p><p> when 30=>dd4<=611;</p><p> when 31=>dd4<=562;</p>
64、<p> when 32=>dd4<=511;</p><p> when 33=>dd4<=461;</p><p> when 34=>dd4<=412;</p><p> when 35=>dd4<=363;</p><p> when 36=>dd4<=3
65、16;</p><p> when 37=>dd4<=257;</p><p> when 38=>dd4<=227;</p><p> when 39=>dd4<=187;</p><p> when 40=>dd4<=149;</p><p> when 4
66、1=>dd4<=116;</p><p> when 42=>dd4<=86;</p><p> when 43=>dd4<=60;</p><p> when 44=>dd4<=38;</p><p> when 45=>dd4<=22;</p><p&
67、gt; when 46=>dd4<=9;</p><p> when 47=>dd4<=2;</p><p> when 48=>dd4<=0;</p><p> when 49=>dd4<=2;</p><p> when 50=>dd4<=9;</p>&
68、lt;p> when 51=>dd4<=22;</p><p> when 52=>dd4<=38;</p><p> when 53=>dd4<=60;</p><p> when 54=>dd4<=86;</p><p> when 55=>dd4<=116;&l
69、t;/p><p> when 56=>dd4<=149;</p><p> when 57=>dd4<=187;</p><p> when 58=>dd4<=227;</p><p> when 59=>dd4<=257;</p><p> when 60=>
70、;dd4<=316;</p><p> when 61=>dd4<=363;</p><p> when 62=>dd4<=412;</p><p> when 63=>dd4<=461;</p><p> when others=>null;</p><p>&
71、lt;b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end dac;</b></p><p><b> 三角波發(fā)生模塊程序</b></p
72、><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> use ieee.std_logic_arith.all;</p><p> ENTITY SJ
73、B IS</p><p> PORT( CLK:IN STD_LOGIC;</p><p> SJOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));</p><p><b> END;</b></p><p> ARCHITECTURE BV OF SJB IS</p>&
74、lt;p> TYPE STATE IS (S0,S1);</p><p> SIGNAL ST:STATE;</p><p> SIGNAL C:STD_LOGIC_VECTOR(9 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(CLK)</p
75、><p><b> BEGIN</b></p><p> IF CLK'EVENT AND CLK='1' THEN</p><p> CASE ST IS</p><p> WHEN S0 =>IF C=1023 THEN ST<=S1;ELSE C<=C+33;ST<
76、;=S0;END IF;</p><p> WHEN S1 =>IF C=0 THEN ST<=S0;ELSE C<=C-33;ST<=S1;END IF;</p><p><b> END CASE;</b></p><p><b> SJOUT<=C;</b></p>
77、<p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END BV;</b></p><p><b> 波形選擇單元程序</b></p><p> LIBRARY IEEE;</p>
78、<p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY XZ IS</p><p> PORT(A,B:IN STD_LOGIC;</p><p> I1,I2,I3:IN STD_LOGIC_
79、VECTOR(9 DOWNTO 0);</p><p> O:OUT STD_LOGIC_VECTOR(9 DOWNTO 0)</p><p><b> );</b></p><p> END ENTITY;</p><p> ARCHITECTURE BV OF XZ IS</p><p&g
80、t; SIGNAL Q:STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p><b> BEGIN </b></p><p><b> Q<=A & B;</b></p><p> WITH Q SELECT </p><p> O<=I1 WHE
81、N "01",</p><p> I2 WHEN "10",</p><p> I3 WHEN "11",</p><p> "ZZZZZZZZZZ" WHEN OTHERS;</p><p><b> END;</b></p&
82、gt;<p> 5.幅值調(diào)節(jié)單元程序.</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY D_W IS</p><p> PORT (C,D : IN STD_LOGIC;</p><p>
83、 D_OUT: OUT INTEGER RANGE 0 TO 1023;</p><p> D_IN: IN INTEGER RANGE 0 TO 1023</p><p><b> );</b></p><p><b> END;</b></p><p> ARCHITECTURE BH
84、V OF D_W IS</p><p> SIGNAL NUM:STD_LOGIC_VECTOR (1 DOWNTO 0);</p><p><b> BEGIN</b></p><p><b> NUM<=C&D;</b></p><p> PROCESS(NUM)</
85、p><p><b> BEGIN</b></p><p> IF NUM="00" THEN D_OUT<=D_IN/4;</p><p> ELSIF NUM="01" THEN D_OUT<=D_IN/2;</p><p> ELSIF NUM="10
86、" THEN D_OUT<=D_IN;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END ;</b></p><p><b> DA轉(zhuǎn)換單元程序</b></p>
87、<p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY DA IS</p><p><b> PORT(</b></p&
88、gt;<p> DA_CS,DA_SCLK,DA_IN:OUT STD_LOGIC;</p><p> CLK1:IN STD_LOGIC;</p><p> Q:IN STD_LOGIC_VECTOR(9 DOWNTO 0)</p><p><b> );</b></p><p><b>
89、; END;</b></p><p> ARCHITECTURE DAS OF DA IS</p><p> TYPE STATE IS (S0,S1,S2,S3,S4);</p><p> SIGNAL ST:STATE;</p><p> SIGNAL CNT:INTEGER:=0;</p><p
90、> SIGNAL CT,SCLK:STD_LOGIC;</p><p> SIGNAL TMP : STD_LOGIC_VECTOR(11 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS (CLK1)</p><p><b> BEGIN&l
91、t;/b></p><p> IF (CLK1'EVENT AND CLK1='1') THEN </p><p> CASE ST IS</p><p> WHEN S0=>CT<='1';SCLK<='0';CNT<=0;ST<=S1;</p>&l
92、t;p> WHEN S1=>ST<=S2;</p><p> WHEN S2 =>CT<='0';SCLK<='0';IF CNT<=11 THEN ST<=S3;</p><p> ELSE ST<=S4;END IF;</p><p> WHEN S3=>CT&l
93、t;='0';SCLK<='1';CNT<=CNT+1;ST<=S2;</p><p> WHEN S4=>CT<='1';SCLK<='0';ST<=S0;</p><p> END CASE;END IF;</p><p> DA_SCLK<=S
94、CLK;</p><p> DA_CS<=CT;</p><p> END PROCESS;</p><p> PROCESS(SCLK)</p><p><b> BEGIN</b></p><p> IF CT='1' THEN</p><p
95、> TMP(11 DOWNTO 2)<=Q(9 DOWNTO 0);</p><p> TMP(1 DOWNTO 0)<="00";</p><p><b> ELSE</b></p><p> IF(SCLK'EVENT AND SCLK='1') THEN</p&g
96、t;<p> DA_IN<=TMP(11);</p><p> TMP(11 DOWNTO 1)<=TMP(10 DOWNTO 0);</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幅度頻率可調(diào)波形發(fā)生器設計
- 簡易波形發(fā)生器課程設計
- 綜合課程設計--簡易波形發(fā)生器
- 簡易波形發(fā)生器課程設計報告
- 單片機課程設計--簡易波形發(fā)生器
- 波形發(fā)生器課程設計
- 課程設計——波形發(fā)生器
- 波形發(fā)生器課程設計
- 課程設計——波形發(fā)生器
- 課程設計-波形發(fā)生器
- 波形發(fā)生器課程設計
- 波形發(fā)生器課程設計
- 課程設計--波形發(fā)生器設計
- 電子技術(shù)課程設計-簡易波形發(fā)生器設計
- 課程設計--函數(shù)波形發(fā)生器
- 波形發(fā)生器的設計課程設計
- vlsi波形發(fā)生器課程設計
- 波形發(fā)生器課程設計報告
- 波形發(fā)生器課程設計報告
- 波形發(fā)生器課程設計報告
評論
0/150
提交評論