多功能波形發(fā)生器系統(tǒng)設計樣本_第1頁
多功能波形發(fā)生器系統(tǒng)設計樣本_第2頁
多功能波形發(fā)生器系統(tǒng)設計樣本_第3頁
多功能波形發(fā)生器系統(tǒng)設計樣本_第4頁
多功能波形發(fā)生器系統(tǒng)設計樣本_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、資料內容僅供您學習參考,如有不當或者侵權,請聯(lián)系改正或者刪除。 多功能波形發(fā)生器系統(tǒng)設計 設 計 人: 潘 禮 阮賜朋 王懷濤指導老師: 黃智偉 王 彥南華大學電子實驗室 .8.23摘 要: 本設計為一數(shù)字式多功能波形發(fā)生系統(tǒng)。系統(tǒng)應用VHDL語言, 以FPGA為控制核心, 實現(xiàn)了多種波形的可控輸出, 且支持任意波形的輸入、 存儲和回放。系統(tǒng)采用了DDFS技術來產生波形, 同時輸出采用雙DAC0832芯片完成D/A轉換, 實現(xiàn)了輸出波形幅度的數(shù)字式控制, 幅度精度最高達7.6894e-5 V。關 鍵 字: 直接數(shù)字頻率合成技術 數(shù)字幅度控制 數(shù)模轉換Abstract:This design i

2、s a digital multi_aplication function generator.System applying VHDL language, regarding FPGA as the core of control, can produce more than one function waves,morever it can store, represent random function waves. The system adopting DDFS technique to produce waves, at the fan-out double DAC0832 was

3、 used to convert the digital signals to the analog signals, at the same time the amplitude of output can be adjusted in a digital way, the precision of amplitude can reach 7.6894 e-5 V.Key word: DDFS digital adjust of amplitude the D/A convert引 言: 現(xiàn)代工程中波形發(fā)生器的應用是很廣泛, 而且相當重要。由于傳統(tǒng)的模擬波形發(fā)生器在低頻段波形質量不高, 且功

4、耗比較大等原因, 工程中很少用模擬波形發(fā)生器來產生低頻波。而現(xiàn)代作為主流的數(shù)字波形發(fā)生器由于采用不同的技術、 不同的器件及工藝, 其產生波的質量也有很大差別。本系統(tǒng)以FPGA作為開發(fā)平臺, 采用DDFS技術產生波形, 由于FPGA內部電氣特性遠遠弱于邏輯特性, 因而系統(tǒng)輸出的波形具有毛刺少、 頻帶寬、 調節(jié)方便等優(yōu)點。方案比較1、 模擬鎖相環(huán)實現(xiàn)模擬鎖相環(huán)技術是一項比較成熟的技術。應用模擬鎖相環(huán), 可將基準頻率倍頻, 或分頻得到所需的頻率, 且調節(jié)精度能夠做到相當高、 穩(wěn)定性也比較好。但模擬鎖相環(huán)模擬電路復雜, 不易調節(jié), 成本較高, 且由于受模擬器件的影響, 波形變換調節(jié)時間較長, 輸出波形

5、的毛刺較多, 因此模擬鎖相環(huán)實現(xiàn)在低頻( 0500KHz) 信號發(fā)生系統(tǒng)中不是很好的方案。直接數(shù)字頻率合成實現(xiàn)直接數(shù)字頻率合成( DDFS) 技術是經典的數(shù)字頻率合成技術。由于數(shù)字量的可操作性遠遠高于模擬量, 采用DDFS的優(yōu)點在于頻率精度高、 波形調節(jié)方便、 且輸出波形毛刺少等?;趩纹瑱C的數(shù)字波形發(fā)生系統(tǒng)受單片機指令頻率的限制, 輸出波形頻率較低, 而基于FPGA的波形發(fā)生系統(tǒng)就不存在這樣的問題, 其輸出頻帶較單片機實現(xiàn)有很大的展寬。本系統(tǒng)設計選定以FPGA作為系統(tǒng)控制核心的直接數(shù)字頻率合成實現(xiàn)方案??傮w設計該多功能數(shù)字波形發(fā)生器的主要功能有4種基本波形( 正弦波、 三角波、 鋸齒波及芳波

6、) 的可控輸出, 超低幅度( MV級) 方波的產生, 任意波的輸入、 存儲、 輸出, 以及各種波的線性疊加輸出。由于FPGA的高度集成化設計, 系統(tǒng)設計中將大部分的控制集成在FPGA中央處理模塊內部, 如存儲器( RAM) 、 波形產生模塊、 波形選擇模塊等。外設主要有任意波形輸入器件、 A/D轉換器件、 輸入頻率跟蹤采樣器件以及鍵盤、 數(shù)碼管等。整體設計 總體設計框圖如下圖 2-1. 系統(tǒng)整體框圖系統(tǒng)以FPGA為控制核心, 基于FPGA的中央處理模塊集成了RAM, 用以存儲各種波形特性數(shù)據。32.0000MHz晶振輸出的單個脈沖周期為系統(tǒng)最小時間單位, 系統(tǒng)經過改變輸出波形相鄰采樣點間的脈沖

7、個數(shù)達到調節(jié)輸出頻率的效果。系統(tǒng)輸出采用雙DAC0832串聯(lián)的調幅方案, 系統(tǒng)能夠方便而精確的改變輸出波的幅度, 而且可根據需要生成幅度調制波。各模塊設計鍵盤輸入模塊 鍵盤主要用于輸入各種控制信號以及設定頻率的輸入。調頻數(shù)據采用BCD碼直接置數(shù)方式輸入, 輸入量經過系統(tǒng)內部集成的除法器轉化為相鄰采樣點間的脈沖個數(shù), 以達到調節(jié)輸出波頻率的目的。任意波形的輸入同樣采用BCD碼置數(shù)方式, 任意波的表征參數(shù)有采樣點數(shù)、 各采樣點的歸一化幅度、 各點的相對位置等。系統(tǒng)鍵盤掃描鍵盤的時間為1/8 S。應用鍵盤輸入的缺點是在輸入波形的采樣點值比較多, 相應的輸入操作比較煩瑣, 且容易出錯。而較之其它輸入方

8、式( 如觸摸屏等) 就相當方便。下面是BCD碼輸入電路圖: 圖2-2.BCD碼輸入電路上圖中CON9為排阻, 所起作用為限流, 這樣可保證輸入的電流不會損壞FPGA。其它模擬輸入模塊此模塊作為預留接口, 可支持各種模擬器件的波形輸入方式: 觸摸屏、 手寫板等。因輸入波的不確定性, 模塊設計中采用自適應跟頻技術( LMS) , 系統(tǒng)自動跟蹤輸入波的頻率以選擇合適的采樣頻率對輸入波進行采樣。自適應跟頻技術屬DSP范疇, 應用FPGA實現(xiàn)這一功能困難較大, 系統(tǒng)采用凌陽產的”61板”SPCE061A EMU BOARD( 十六位單片機) 完成此項功能的設計。A/D轉換器件選用ADC0809, 模擬波

9、經ADC0809轉化為數(shù)字量輸入到61單片機, 61單片機具有16*16位的乘法運算和內積運算的DSP功能, 經過對輸入波的頻譜進行分析、 運算, 就可確定系統(tǒng)對外部模擬波的采樣頻率ADC0809的工作頻率。這樣就保證了輸入波的特性數(shù)據不會遺漏。待ADC0809的工作頻率確定后, 再將其轉換的數(shù)據輸入到FPGA進行存儲。由于此類方式輸入的模擬波頻帶較寬, 系統(tǒng)對此類波進行特征提取后, 存儲需要較大的空間, 因此系統(tǒng)必須加載專用的外部高速RAM。FPGA中央處理模塊FPGA中央處理模塊內部集成了較小的波形特性存儲器RAM( 應用于鍵盤輸入的固定64點采樣的任意波形) 、 調頻輸入BCD碼到脈沖個

10、數(shù)轉換用的除法器、 幅度調節(jié)顯示模塊和波形發(fā)生模塊。RAM模塊FPGA集成RAM中的部分地址對應固定正弦波的64點采樣數(shù)據, 這部分的作用相當于靜態(tài)ROM, 其余大部分空間用于存放輸入任意波的特征數(shù)據。當輸入波頻率比較高時( 對應非鍵盤方式輸入波) , 系統(tǒng)需要相當大的空間來存儲輸入波的特征數(shù)據, 這對系統(tǒng)資源的要求過高, 因此, 系統(tǒng)內部集成RAM只存儲鍵盤輸入的任意波的特征數(shù)據, 而其它方式輸入波的特征數(shù)據經系統(tǒng)的外部RAM接口, 直接進入外部專用RAM器件存儲。B.除法器模塊應用除法器實現(xiàn)設定輸出頻率與對應輸出相鄰采樣點間脈沖數(shù)的轉換是相當方便的。在輸出頻率在超低頻段時, 系統(tǒng)應用除法器

11、擁有相當高的精度。以晶振頻率為32.0000MHz, 正弦波采樣點數(shù)為64為例, 不同頻段的可調階數(shù)如下表: TABLE 2-1. 可調階數(shù)頻段分布表頻段可調階數(shù)01Hz無限1011Hz4545100101Hz5010001001Hz0上表為理論計算所得, 在超低頻段時, 波形發(fā)生器輸出的精確頻率分布很密集。應用除法器的好處就是在超低頻段能夠得到相當精確調節(jié)的輸出波。當然輸出頻率在較高頻段( 5KHz) 時, 經過鍵盤置入的輸出設定頻率與實際的輸出頻率存在相當大的誤差, 然而相比其它一些算法( 等步進調節(jié)) , 應用除法器的效果在較高頻段誤差更小。應用FPGA設計的除法器對運算中最后取值可能有

12、兩種不同的作法: 一種是采取四舍五入方式; 另一種是向零歸整法。比較兩種算法, 在超低頻段時精度都差不多; 而在較高頻段, 四舍五入方式的誤差是設定頻率所對應量階的1/2, 向零歸整法的誤差卻是對應的整個量階, 因而本設計中除法器采用了四舍五入的除法取值方案。在邏輯器件中, 加、 減、 乘、 除各類運算都是相通的, 而其中最基本的運算是加法, 應用加法來解決涉及數(shù)據乘、 除的問題, 準確率較高, 因此該除法器設計中采用的方法是: 先將除法運算轉化為減法, 再將減法轉換到加法, 最后由加法完成。C.幅度調節(jié)顯示模塊由于系統(tǒng)輸出采用雙DAC0832串聯(lián)的方式, 系統(tǒng)輸出波的幅度可經過按鍵來調節(jié)。系

13、統(tǒng)對應不同的輸出波有不同的幅度調節(jié)方式: 輸出為方波時, 經過按鍵使用者即可調節(jié)輸出波的歸一化幅度, 又可調節(jié)輸出離散波形的DAC0832的基準電壓( Vref: 參看2.2.4節(jié)) ; 而其它波形的輸出只能調節(jié)輸出波形的DAC0832的基準電壓。DAC0832的分辨率是8位, 只調節(jié)DAC0832的基準電壓誤差是一個最小量階5/2550.020V, 而輸出為方時, 調節(jié)誤差僅為5/( 255*255) =7.6894e-5 V。系統(tǒng)調幅數(shù)據的處理方式是按鍵累加, 系統(tǒng)以8Hz頻率掃描調幅按鍵端口, 當?shù)玫缴存I輸入為高電平時, 將幅度寄存信號加一; 反之, 當降幅按鍵為高電平時, 幅度寄存

14、信號自減一。對應幅度的顯示是本模塊設計的重點: 輸出方波時, 波形幅度值為n*N/(255e2)n*N*1.53787e-5,應用FPGA直接進行如此高精度的運算所耗資源相當大, 本設計采用近似算法實現(xiàn)了幅值的轉換顯示, 此種算法帶來的誤差不超過1mV.具體算法如下: 經過簡化, 上式結果可表示為769*n*N n*N/255e2=n*N*1.29219531e-5 *10e-7, 以最高階數(shù)255代入n, N可得Vmax=50004225*10e-7, Vmax=( 50004225*10e-7) -5.000=0.4225*10e-3 ( V) .由于要求幅度只顯示4位, 即精確到毫伏(

15、MV) 級, 因此此種近似帶來的誤差可忽略。系統(tǒng)輸出其它波時, 其幅度轉化算法與方波一樣, 但對比于方波, 這些波幅度只能經過調節(jié)DAC0832的基準電壓實現(xiàn), 其可調階數(shù)只有255檔, D/A轉換本身帶來的誤差就比較大, 5/2550.01961( V) , 應用近似算法引入的誤差比之要小得多: 上式中N為DAC0832基準電壓調節(jié)階數(shù)。由上式可得近似算法引入的誤差與DAC0832帶來的誤差之比為0.55*10e-3/0.019612.8%。D.波形發(fā)生模塊波形發(fā)生模塊的設計采用DDFS技術。所謂DDFS技術就是用數(shù)字量直接合成模擬量。圖2-3.DDFS單周期合成原理示意圖上圖為用14個數(shù)字

16、量合成的一個周期的正弦波波形。圖中數(shù)字量以階梯波的形式表征了模擬正弦波的周期、 幅度等特性參數(shù), 用低通濾波將高頻成分去掉, 就可看到比較平滑的正弦波。應用DDFS實現(xiàn)波形合成沒有復雜的乘除運算, 且對波形特性的調節(jié)方便。本模塊設計思路是將RAM中的波形數(shù)據以一定的時間為間隔輸出, 經過改變間隔的時間來調節(jié)輸出波的頻率。應用FPGA作控制核心是該設計優(yōu)于用單片機作控制核心的波形發(fā)生器的關鍵所在。DAC0832的數(shù)模轉換周期為1S, 用單片機每向DAC0832傳送一個數(shù)據最少要用兩條指令: MOV DPTR, #ADDR_0832MOVX DPTR, A ;A中存放要輸出的數(shù)據兩條指令執(zhí)行要5個

17、機器周期5S, 由此可見, 用單片機不能完全發(fā)揮DAC0832的潛能。用FPGA作的DAC芯片驅動電路其數(shù)據輸出頻率能夠做到很高, 輸出一個數(shù)據的最短時間是1/32.0000M0.03125S, 可見用FPGA驅動DAC0832, 使其最大限度工作綽綽有余。該系統(tǒng)設計過程中考慮了方波的特性占空比, 因而系統(tǒng)綜合了兩種方波的輸出: 占空比可調方波和占空比不可調方波。前者產生方式類似于正弦波, 經過選擇64個采樣點中不同的點作為01切換點, 就可達到調節(jié)占空比的目的。但其輸出波的頻率也因此受到限制; 而后者的頻率就比較高, 但其占空比是固定的1/2。D/A轉換模塊該模塊的主要工作是將FPGA輸出的

18、數(shù)字量轉換為模擬量。模擬量的頻率由FPGA的數(shù)據輸出頻率確定, 而模擬量的幅度調節(jié)的實現(xiàn)是基于雙DAC0832的設計。該模塊主要由兩片DAC0832組成, 一片用于接收FPGA傳來的波形數(shù)據, 將其轉化為模擬量輸出; 另一片接收來自FPGA的波形幅度數(shù)據, 用以產生相應的幅度電壓, 將其作為基準電壓輸入到上一片DAC0832的基準電壓( Vref) 輸入端口, 實現(xiàn)輸出波的幅度可調。雙DAC0832的串接電路圖如下: 圖 2-4. 雙DAC0832串接電路圖DAC0832將數(shù)字量( 波形的電壓幅度值) 轉化為模擬量( 形式為電流) , 上圖中DAC0832處于直通工作方式, 外部運放電路的作用

19、是將模擬電流量轉化為電壓量輸出。電壓輸出即可是單極性的, 也可是雙極性的。在J12的輸出口中, 輸出口1為單極性輸出端, 輸出口2為雙極性輸出端。軟件實現(xiàn)1、 BCD碼二進制數(shù)轉換模塊該模塊應用計數(shù)的方法完成BCD碼到二進制數(shù)的轉換, 仿真圖如下: 圖3-1. BCD碼二進制數(shù)轉換仿真圖圖3-1中, A、 B、 C分別為三位十進制數(shù)的BCD碼輸入: A為百位BCD碼, B為十位BCD碼, C為個位BCD碼輸入。從仿真圖中能夠看出: 當變量COUNT累加脈沖數(shù)到123時, BCD碼才完全轉換為二進制數(shù)輸出。2、 波形發(fā)生模塊圖3-2.波形發(fā)生模塊原理仿真圖圖中DATA為設定輸出相鄰采樣點間隔的脈

20、沖數(shù)。結合除法器, 設定的輸出頻率轉化為DATA來控制FPGA的輸出頻率。系統(tǒng)測試1、 系統(tǒng)測試儀器系統(tǒng)測試采用TeKtronix公司生產的TDS3032型數(shù)字式雙通道熒光示波器, 該示波器帶寬300兆赫, 最大次速率2.5GS/s, 支持方波占空比的測量。應用該系統(tǒng)可較精確的反映系統(tǒng)的頻率、 幅度等各項指標。 2.、 測試指標本系統(tǒng)測試主要針對正弦波、 三角波、 方波A( 占空比可調方波) 、 鋸齒波的頻率的精確性, 方波B( 占空比不可調方波) 的頻率精度, 方波( A 或 B) 的幅度精度等。以下為各項指標的測量圖表: 正弦波、 三角波、 鋸齒波和方波A的頻率測量表4-1. 正弦波、 三

21、角波、 鋸齒波和方波A的頻率測量數(shù)據表格設定頻率測得頻率測量誤差值1HZ1.000HZ0.0%20HZ20.00HZ0.0%50HZ50.00HZ0.0%100HZ100.0HZ0.0%200HZ199.9HZ0.05%500HZ499.5HZ0.1%1KHZ9.997KHZ0.3%2KHZ1.993KHZ0.35%5KHZ4.945KHZ1.1%10KHZ9.765KHZ2.35%方波的幅度測量 方波屬于幅度控制精度比較高的輸出波形, 主要應用于毫伏級信號的發(fā)生, 因而選定的測量點大部分在毫伏級。 表4-2.方波幅度測量數(shù)據表格設定幅度測得幅度測量誤差值5MV5.06MV1.2%10MV9.

22、80MV2.0%20MV19.6MV2.0%50MV49.2MV1.6%100MV98.0MV2.0%200MV196MV2.0%500MV498MV0.4%1.000V0.990V1.0%2.000V1.98V1.0%5.000V4.95V1.0%方波B的頻率測量方波B是固定占空比( 1/2) 的方波, 因而其輸出頻率較高, 下表中頻率測量點偏高。 表4-3.方波B頻率幅度測量數(shù)據表格設定頻率測得頻率誤差值10HZ10.00HZ0.0%100HZ100.0HZ0.0%200HZ200.2HZ0.1%500HZ500.5HZ0.1%1KHZ1.000KHZ0.0%2KHZ2.000KHZ0.0

23、%5KHZ5.001KHZ0.02%10KHZ10.00KHZ0.0%50KHZ49.95KHZ0.1%500KHZ495.4KHZ0.9%以上是系統(tǒng)各主要指標的測量數(shù)據, 對于其它一些系統(tǒng)指標, 如方波占空比, 任意波輸入、 存儲等, 由于此類指標測量數(shù)據比較籠統(tǒng), 因而未予列表。經測試以上幾個指標均達到設計要求。結束語本設計以FPGA為開發(fā)平臺, 充分體現(xiàn)了FPGA在直接數(shù)字頻率合成方面的優(yōu)越性。系統(tǒng)基本功能全部實現(xiàn), 支持幅度精確的毫伏級信號發(fā)生, 且精度較高。系統(tǒng)支持除鍵盤外的其它波形輸入方式, 結合外部大容量的專用存儲器可完成簡單的數(shù)字存儲示波功能。參考文獻1.高天光 主編. 模數(shù)轉

24、換器應用技術 第一版.北京: 科學出版社. 2.劉明業(yè) 等編. VHDL語言100例詳解 第一版。北京: 清華大學出版社. 1999附錄程序清單: 程序名: prod_wave.vhd程序功能: 本程序應用DDFS技術, 實現(xiàn)了4種常見波形( 正弦、 三角、 鋸齒、 方波) 的可控輸出、 任意波形特征數(shù)據的采集、 存儲與波形的重現(xiàn)等功能, 程序留有外部RAM的擴充接口, 使復雜輸入波的特征提取成為可能。編程日期: .8.23-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_lo

25、gic_unsigned.all;entity mine4 isport(clk : in std_logic; -時鐘信號輸入 set, clr, up, down, zu, zd : in std_logic; -各個波形特征的調節(jié)觸發(fā)信號 posting : in std_logic; -任意波鍵盤置入信號 u0,d0,sw : in std_logic; ss : in std_logic_vector( 3 downto 0 ); -檔位選擇信號 sss : in std_logic_vector( 4 downto 0 ); -波形選擇信號 data3, data2, data1,

26、data0 : in std_logic_vector(3 downto 0); -BCD碼輸-入 p180 : out std_logic; -預留接口 lcd : out std_logic_vector(7 downto 0); -顯示輸出 shift : out std_logic_vector(3 downto 0); -位碼輸出 dd, a : out std_logic_vector( 7 downto 0);-波形、 幅度數(shù)據輸出end mine4;architecture behav of mine4 issubtype word is std_logic_vector( 7

27、 downto 0 );type unit is array(63 downto 0) of word;signal ram : unit;signal qqq : integer range 0 to ;signal qq : integer range 0 to 78125000;signal tmp : integer range 0 to 9999;signal coun : integer range 0 to 78125000;signal coun0 : integer range 0 to ;signal b : integer range 0 to 78125000;sign

28、al c : integer range 0 to ;signal z, con : integer range 0 to 63;signal f : std_logic_vector( 7 downto 0 );signal amp, amp0, d : std_logic_vector(7 downto 0);signal bcd0,bcd1,bcd2,bcd3 : integer range 0 to 9;signal bcd01,bcd11,bcd21,bcd31 : integer range 0 to 9;signal bcd00,bcd10,bcd20,bcd30 : integ

29、er range 0 to 9;signal y : integer range 0 to 9;signal addr, adrr : integer range 0 to 63;signal over : std_logic;beginqq=781250 when ss=1000 else 7812500 when ss=0100 else 78125000 when ss=0010 else 78125;qqq= 5000000 when ss=1000 else 50000000 when ss=0100 else when ss=0010 else 500000;process(clk

30、) variable count4 : integer range 0 to 6250000;variable count : integer range 0 to 78125000;variable count3 : integer range 0 to ;variable count1 : integer range 0 to 12500000;variable count0 : integer range 0 to 3249999;variable ddd : std_logic_vector(9 downto 0);variable dd0,dd1,dd2,dd3,dd4 : inte

31、ger range 0 to 255;variable adr : integer range 0 to 63;begin if rising_edge(clk) then if posting=1 then if count4=6249999 then count4:=0; adr:=conv_integer(data3)*10+conv_integer(data2); if adr64 then if set=1 then ram(adr)adrr then adrr=adr; end if; elsif clr=1 then adrr=0; for i in 0 to 63 loop r

32、am(i)0);end loop; end if; end if; else count4:=count4+1; end if; else if set=1 then tmp=conv_integer(data3)*1000+conv_integer(data2)*100+conv_integer(data1)*10+conv_integer(data0); coun=0; b=0; coun0=0;c=0;z=31;amp0=01111111; amp=01111111; addr0 then if sw=0 then if counqq then coun=coun+tmp; b=b+1;

33、 else if count=b then count:=0; if f=63 then f=00000000; if sss=00010 then con=0; dd=00000000; elsif sss=10000 then dd=d;elsif sss=00100 then dd=f(5 downto 0)&00;elsif sss=01000 then dd=(111111-f(5 downto 0)&00; elsif sss=00001 then if addradrr then dd=ram(addr); addr=addr+1; elsif addr=adrr then dd

34、=ram(adrr); addr=0; end if; else if sss(1)=1 then if con=z then dd0:=conv_integer(amp0); con=con+1; else con31 then dd3:=conv_integer(111111-f(5 downto 0)&00); else dd3:=conv_integer(f(5 downto 0)&00); end if; end if; if sss(0)=1 then if addradrr then dd4:=conv_integer(ram(addr); addr=addr+1; elsif

35、addr=adrr then dd4:=conv_integer(ram(adrr); addr=0; end if; end if; ddd:=conv_std_logic_vector(dd0+dd1+dd2+dd3+dd4),10); dd=ddd(9 downto 2); end if; else f=f+1; if sss=00010 then if con=z then dd=amp0; con=con+1; elsif con=63 then con=0; dd=00000000; else con=con+1; dd=00000000; end if; elsif sss=10

36、000 then dd=d;elsif sss=00100 then dd31 then dd=(111111-f(5 downto 0)&00; else dd=f(5 downto 0)&00; end if; -else dd=00000000; elsif sss=00001 then if addradrr then dd=ram(addr); addr=addr+1; elsif addr=adrr then dd=ram(adrr); addr=0; end if; else if sss(1)=1 then if con=z then dd0:=conv_integer(amp

37、0); con=con+1; else con31 then dd3:=conv_integer(111111-f(5 downto 0)&00); else dd3:=conv_integer(f(5 downto 0)&00); end if; - else dd=00000000; end if; if sss(0)=1 then if addradrr then dd4:=conv_integer(ram(addr); addr=addr+1; elsif addr=adrr then dd4:=conv_integer(ram(adrr); addr=0; end if; end i

38、f; ddd:=conv_std_logic_vector(dd0+dd1+dd2+dd3+dd4),10); dd=ddd(9 downto 2); end if; end if; else count:=count+1; end if; end if;- else if coun0qqq then coun0=coun0+tmp; c=c+1; else if count3=c/2 then count3:=count3+1; dd=amp0; elsif count3=c then count3:=0;dd=00000000; else count3:=count3+1; dd=0000

39、0000; end if; end if; end if; end if; -if count1=12499999 then count1:=0; if zu=1 then if z63 then z=z+1; else z0 then z=z-1; else z=0; end if; end if;else count1:=count1+1;end if; if count0=3249999 then count0:=0; if u0=1 then if amp011111111 then amp0=amp0+1; else amp000000000 then amp0=amp0-1; el

40、se amp0=00000000; end if; elsif up=1 then if amp11111111 then amp=amp+1; else amp00000000 then amp=amp-1; else amp=00000000; end if; end if; else count0:=count0+1; end if;- end if;end if;end if;end process;-a=amp; -cov_a:process(clk,amp,amp0)variable count : integer range 0 to 50004225;variable coun

41、ter : integer range 0 to 500055;variable count1,count0 : integer range 0 to 4999999;begin if rising_edge(clk) then if sss=00010 then count0:=0; if count1=4999999 then count1:=0; count:=(conv_integer(amp)*(conv_integer(amp0)*769; bcd0=0; bcd1=0; bcd2=0; bcd3=0; elsif count1=4999900 then bcd00=bcd0; bcd10=bcd1; bcd20=bcd2; bcd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論