版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。 多功能波形發(fā)生器系統(tǒng)設(shè)計(jì) 設(shè) 計(jì) 人: 潘 禮 阮賜朋 王懷濤指導(dǎo)老師: 黃智偉 王 彥南華大學(xué)電子實(shí)驗(yàn)室 .8.23摘 要: 本設(shè)計(jì)為一數(shù)字式多功能波形發(fā)生系統(tǒng)。系統(tǒng)應(yīng)用VHDL語言, 以FPGA為控制核心, 實(shí)現(xiàn)了多種波形的可控輸出, 且支持任意波形的輸入、 存儲和回放。系統(tǒng)采用了DDFS技術(shù)來產(chǎn)生波形, 同時輸出采用雙DAC0832芯片完成D/A轉(zhuǎn)換, 實(shí)現(xiàn)了輸出波形幅度的數(shù)字式控制, 幅度精度最高達(dá)7.6894e-5 V。關(guān) 鍵 字: 直接數(shù)字頻率合成技術(shù) 數(shù)字幅度控制 數(shù)模轉(zhuǎn)換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ā)生器的應(yīng)用是很廣泛, 而且相當(dāng)重要。由于傳統(tǒng)的模擬波形發(fā)生器在低頻段波形質(zhì)量不高, 且功
4、耗比較大等原因, 工程中很少用模擬波形發(fā)生器來產(chǎn)生低頻波。而現(xiàn)代作為主流的數(shù)字波形發(fā)生器由于采用不同的技術(shù)、 不同的器件及工藝, 其產(chǎn)生波的質(zhì)量也有很大差別。本系統(tǒng)以FPGA作為開發(fā)平臺, 采用DDFS技術(shù)產(chǎn)生波形, 由于FPGA內(nèi)部電氣特性遠(yuǎn)遠(yuǎn)弱于邏輯特性, 因而系統(tǒng)輸出的波形具有毛刺少、 頻帶寬、 調(diào)節(jié)方便等優(yōu)點(diǎn)。方案比較1、 模擬鎖相環(huán)實(shí)現(xiàn)模擬鎖相環(huán)技術(shù)是一項(xiàng)比較成熟的技術(shù)。應(yīng)用模擬鎖相環(huán), 可將基準(zhǔn)頻率倍頻, 或分頻得到所需的頻率, 且調(diào)節(jié)精度能夠做到相當(dāng)高、 穩(wěn)定性也比較好。但模擬鎖相環(huán)模擬電路復(fù)雜, 不易調(diào)節(jié), 成本較高, 且由于受模擬器件的影響, 波形變換調(diào)節(jié)時間較長, 輸出波形
5、的毛刺較多, 因此模擬鎖相環(huán)實(shí)現(xiàn)在低頻( 0500KHz) 信號發(fā)生系統(tǒng)中不是很好的方案。直接數(shù)字頻率合成實(shí)現(xiàn)直接數(shù)字頻率合成( DDFS) 技術(shù)是經(jīng)典的數(shù)字頻率合成技術(shù)。由于數(shù)字量的可操作性遠(yuǎn)遠(yuǎn)高于模擬量, 采用DDFS的優(yōu)點(diǎn)在于頻率精度高、 波形調(diào)節(jié)方便、 且輸出波形毛刺少等?;趩纹瑱C(jī)的數(shù)字波形發(fā)生系統(tǒng)受單片機(jī)指令頻率的限制, 輸出波形頻率較低, 而基于FPGA的波形發(fā)生系統(tǒng)就不存在這樣的問題, 其輸出頻帶較單片機(jī)實(shí)現(xiàn)有很大的展寬。本系統(tǒng)設(shè)計(jì)選定以FPGA作為系統(tǒng)控制核心的直接數(shù)字頻率合成實(shí)現(xiàn)方案??傮w設(shè)計(jì)該多功能數(shù)字波形發(fā)生器的主要功能有4種基本波形( 正弦波、 三角波、 鋸齒波及芳波
6、) 的可控輸出, 超低幅度( MV級) 方波的產(chǎn)生, 任意波的輸入、 存儲、 輸出, 以及各種波的線性疊加輸出。由于FPGA的高度集成化設(shè)計(jì), 系統(tǒng)設(shè)計(jì)中將大部分的控制集成在FPGA中央處理模塊內(nèi)部, 如存儲器( RAM) 、 波形產(chǎn)生模塊、 波形選擇模塊等。外設(shè)主要有任意波形輸入器件、 A/D轉(zhuǎn)換器件、 輸入頻率跟蹤采樣器件以及鍵盤、 數(shù)碼管等。整體設(shè)計(jì) 總體設(shè)計(jì)框圖如下圖 2-1. 系統(tǒng)整體框圖系統(tǒng)以FPGA為控制核心, 基于FPGA的中央處理模塊集成了RAM, 用以存儲各種波形特性數(shù)據(jù)。32.0000MHz晶振輸出的單個脈沖周期為系統(tǒng)最小時間單位, 系統(tǒng)經(jīng)過改變輸出波形相鄰采樣點(diǎn)間的脈沖
7、個數(shù)達(dá)到調(diào)節(jié)輸出頻率的效果。系統(tǒng)輸出采用雙DAC0832串聯(lián)的調(diào)幅方案, 系統(tǒng)能夠方便而精確的改變輸出波的幅度, 而且可根據(jù)需要生成幅度調(diào)制波。各模塊設(shè)計(jì)鍵盤輸入模塊 鍵盤主要用于輸入各種控制信號以及設(shè)定頻率的輸入。調(diào)頻數(shù)據(jù)采用BCD碼直接置數(shù)方式輸入, 輸入量經(jīng)過系統(tǒng)內(nèi)部集成的除法器轉(zhuǎn)化為相鄰采樣點(diǎn)間的脈沖個數(shù), 以達(dá)到調(diào)節(jié)輸出波頻率的目的。任意波形的輸入同樣采用BCD碼置數(shù)方式, 任意波的表征參數(shù)有采樣點(diǎn)數(shù)、 各采樣點(diǎn)的歸一化幅度、 各點(diǎn)的相對位置等。系統(tǒng)鍵盤掃描鍵盤的時間為1/8 S。應(yīng)用鍵盤輸入的缺點(diǎn)是在輸入波形的采樣點(diǎn)值比較多, 相應(yīng)的輸入操作比較煩瑣, 且容易出錯。而較之其它輸入方
8、式( 如觸摸屏等) 就相當(dāng)方便。下面是BCD碼輸入電路圖: 圖2-2.BCD碼輸入電路上圖中CON9為排阻, 所起作用為限流, 這樣可保證輸入的電流不會損壞FPGA。其它模擬輸入模塊此模塊作為預(yù)留接口, 可支持各種模擬器件的波形輸入方式: 觸摸屏、 手寫板等。因輸入波的不確定性, 模塊設(shè)計(jì)中采用自適應(yīng)跟頻技術(shù)( LMS) , 系統(tǒng)自動跟蹤輸入波的頻率以選擇合適的采樣頻率對輸入波進(jìn)行采樣。自適應(yīng)跟頻技術(shù)屬DSP范疇, 應(yīng)用FPGA實(shí)現(xiàn)這一功能困難較大, 系統(tǒng)采用凌陽產(chǎn)的”61板”SPCE061A EMU BOARD( 十六位單片機(jī)) 完成此項(xiàng)功能的設(shè)計(jì)。A/D轉(zhuǎn)換器件選用ADC0809, 模擬波
9、經(jīng)ADC0809轉(zhuǎn)化為數(shù)字量輸入到61單片機(jī), 61單片機(jī)具有16*16位的乘法運(yùn)算和內(nèi)積運(yùn)算的DSP功能, 經(jīng)過對輸入波的頻譜進(jìn)行分析、 運(yùn)算, 就可確定系統(tǒng)對外部模擬波的采樣頻率ADC0809的工作頻率。這樣就保證了輸入波的特性數(shù)據(jù)不會遺漏。待ADC0809的工作頻率確定后, 再將其轉(zhuǎn)換的數(shù)據(jù)輸入到FPGA進(jìn)行存儲。由于此類方式輸入的模擬波頻帶較寬, 系統(tǒng)對此類波進(jìn)行特征提取后, 存儲需要較大的空間, 因此系統(tǒng)必須加載專用的外部高速RAM。FPGA中央處理模塊FPGA中央處理模塊內(nèi)部集成了較小的波形特性存儲器RAM( 應(yīng)用于鍵盤輸入的固定64點(diǎn)采樣的任意波形) 、 調(diào)頻輸入BCD碼到脈沖個
10、數(shù)轉(zhuǎn)換用的除法器、 幅度調(diào)節(jié)顯示模塊和波形發(fā)生模塊。RAM模塊FPGA集成RAM中的部分地址對應(yīng)固定正弦波的64點(diǎn)采樣數(shù)據(jù), 這部分的作用相當(dāng)于靜態(tài)ROM, 其余大部分空間用于存放輸入任意波的特征數(shù)據(jù)。當(dāng)輸入波頻率比較高時( 對應(yīng)非鍵盤方式輸入波) , 系統(tǒng)需要相當(dāng)大的空間來存儲輸入波的特征數(shù)據(jù), 這對系統(tǒng)資源的要求過高, 因此, 系統(tǒng)內(nèi)部集成RAM只存儲鍵盤輸入的任意波的特征數(shù)據(jù), 而其它方式輸入波的特征數(shù)據(jù)經(jīng)系統(tǒng)的外部RAM接口, 直接進(jìn)入外部專用RAM器件存儲。B.除法器模塊應(yīng)用除法器實(shí)現(xiàn)設(shè)定輸出頻率與對應(yīng)輸出相鄰采樣點(diǎn)間脈沖數(shù)的轉(zhuǎn)換是相當(dāng)方便的。在輸出頻率在超低頻段時, 系統(tǒng)應(yīng)用除法器
11、擁有相當(dāng)高的精度。以晶振頻率為32.0000MHz, 正弦波采樣點(diǎn)數(shù)為64為例, 不同頻段的可調(diào)階數(shù)如下表: TABLE 2-1. 可調(diào)階數(shù)頻段分布表頻段可調(diào)階數(shù)01Hz無限1011Hz4545100101Hz5010001001Hz0上表為理論計(jì)算所得, 在超低頻段時, 波形發(fā)生器輸出的精確頻率分布很密集。應(yīng)用除法器的好處就是在超低頻段能夠得到相當(dāng)精確調(diào)節(jié)的輸出波。當(dāng)然輸出頻率在較高頻段( 5KHz) 時, 經(jīng)過鍵盤置入的輸出設(shè)定頻率與實(shí)際的輸出頻率存在相當(dāng)大的誤差, 然而相比其它一些算法( 等步進(jìn)調(diào)節(jié)) , 應(yīng)用除法器的效果在較高頻段誤差更小。應(yīng)用FPGA設(shè)計(jì)的除法器對運(yùn)算中最后取值可能有
12、兩種不同的作法: 一種是采取四舍五入方式; 另一種是向零歸整法。比較兩種算法, 在超低頻段時精度都差不多; 而在較高頻段, 四舍五入方式的誤差是設(shè)定頻率所對應(yīng)量階的1/2, 向零歸整法的誤差卻是對應(yīng)的整個量階, 因而本設(shè)計(jì)中除法器采用了四舍五入的除法取值方案。在邏輯器件中, 加、 減、 乘、 除各類運(yùn)算都是相通的, 而其中最基本的運(yùn)算是加法, 應(yīng)用加法來解決涉及數(shù)據(jù)乘、 除的問題, 準(zhǔn)確率較高, 因此該除法器設(shè)計(jì)中采用的方法是: 先將除法運(yùn)算轉(zhuǎn)化為減法, 再將減法轉(zhuǎn)換到加法, 最后由加法完成。C.幅度調(diào)節(jié)顯示模塊由于系統(tǒng)輸出采用雙DAC0832串聯(lián)的方式, 系統(tǒng)輸出波的幅度可經(jīng)過按鍵來調(diào)節(jié)。系
13、統(tǒng)對應(yīng)不同的輸出波有不同的幅度調(diào)節(jié)方式: 輸出為方波時, 經(jīng)過按鍵使用者即可調(diào)節(jié)輸出波的歸一化幅度, 又可調(diào)節(jié)輸出離散波形的DAC0832的基準(zhǔn)電壓( Vref: 參看2.2.4節(jié)) ; 而其它波形的輸出只能調(diào)節(jié)輸出波形的DAC0832的基準(zhǔn)電壓。DAC0832的分辨率是8位, 只調(diào)節(jié)DAC0832的基準(zhǔn)電壓誤差是一個最小量階5/2550.020V, 而輸出為方時, 調(diào)節(jié)誤差僅為5/( 255*255) =7.6894e-5 V。系統(tǒng)調(diào)幅數(shù)據(jù)的處理方式是按鍵累加, 系統(tǒng)以8Hz頻率掃描調(diào)幅按鍵端口, 當(dāng)?shù)玫缴存I輸入為高電平時, 將幅度寄存信號加一; 反之, 當(dāng)降幅按鍵為高電平時, 幅度寄存
14、信號自減一。對應(yīng)幅度的顯示是本模塊設(shè)計(jì)的重點(diǎn): 輸出方波時, 波形幅度值為n*N/(255e2)n*N*1.53787e-5,應(yīng)用FPGA直接進(jìn)行如此高精度的運(yùn)算所耗資源相當(dāng)大, 本設(shè)計(jì)采用近似算法實(shí)現(xiàn)了幅值的轉(zhuǎn)換顯示, 此種算法帶來的誤差不超過1mV.具體算法如下: 經(jīng)過簡化, 上式結(jié)果可表示為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)輸出其它波時, 其幅度轉(zhuǎn)化算法與方波一樣, 但對比于方波, 這些波幅度只能經(jīng)過調(diào)節(jié)DAC0832的基準(zhǔn)電壓實(shí)現(xiàn), 其可調(diào)階數(shù)只有255檔, D/A轉(zhuǎn)換本身帶來的誤差就比較大, 5/2550.01961( V) , 應(yīng)用近似算法引入的誤差比之要小得多: 上式中N為DAC0832基準(zhǔn)電壓調(diào)節(jié)階數(shù)。由上式可得近似算法引入的誤差與DAC0832帶來的誤差之比為0.55*10e-3/0.019612.8%。D.波形發(fā)生模塊波形發(fā)生模塊的設(shè)計(jì)采用DDFS技術(shù)。所謂DDFS技術(shù)就是用數(shù)字量直接合成模擬量。圖2-3.DDFS單周期合成原理示意圖上圖為用14個數(shù)字
16、量合成的一個周期的正弦波波形。圖中數(shù)字量以階梯波的形式表征了模擬正弦波的周期、 幅度等特性參數(shù), 用低通濾波將高頻成分去掉, 就可看到比較平滑的正弦波。應(yīng)用DDFS實(shí)現(xiàn)波形合成沒有復(fù)雜的乘除運(yùn)算, 且對波形特性的調(diào)節(jié)方便。本模塊設(shè)計(jì)思路是將RAM中的波形數(shù)據(jù)以一定的時間為間隔輸出, 經(jīng)過改變間隔的時間來調(diào)節(jié)輸出波的頻率。應(yīng)用FPGA作控制核心是該設(shè)計(jì)優(yōu)于用單片機(jī)作控制核心的波形發(fā)生器的關(guān)鍵所在。DAC0832的數(shù)模轉(zhuǎn)換周期為1S, 用單片機(jī)每向DAC0832傳送一個數(shù)據(jù)最少要用兩條指令: MOV DPTR, #ADDR_0832MOVX DPTR, A ;A中存放要輸出的數(shù)據(jù)兩條指令執(zhí)行要5個
17、機(jī)器周期5S, 由此可見, 用單片機(jī)不能完全發(fā)揮DAC0832的潛能。用FPGA作的DAC芯片驅(qū)動電路其數(shù)據(jù)輸出頻率能夠做到很高, 輸出一個數(shù)據(jù)的最短時間是1/32.0000M0.03125S, 可見用FPGA驅(qū)動DAC0832, 使其最大限度工作綽綽有余。該系統(tǒng)設(shè)計(jì)過程中考慮了方波的特性占空比, 因而系統(tǒng)綜合了兩種方波的輸出: 占空比可調(diào)方波和占空比不可調(diào)方波。前者產(chǎn)生方式類似于正弦波, 經(jīng)過選擇64個采樣點(diǎn)中不同的點(diǎn)作為01切換點(diǎn), 就可達(dá)到調(diào)節(jié)占空比的目的。但其輸出波的頻率也因此受到限制; 而后者的頻率就比較高, 但其占空比是固定的1/2。D/A轉(zhuǎn)換模塊該模塊的主要工作是將FPGA輸出的
18、數(shù)字量轉(zhuǎn)換為模擬量。模擬量的頻率由FPGA的數(shù)據(jù)輸出頻率確定, 而模擬量的幅度調(diào)節(jié)的實(shí)現(xiàn)是基于雙DAC0832的設(shè)計(jì)。該模塊主要由兩片DAC0832組成, 一片用于接收FPGA傳來的波形數(shù)據(jù), 將其轉(zhuǎn)化為模擬量輸出; 另一片接收來自FPGA的波形幅度數(shù)據(jù), 用以產(chǎn)生相應(yīng)的幅度電壓, 將其作為基準(zhǔn)電壓輸入到上一片DAC0832的基準(zhǔn)電壓( Vref) 輸入端口, 實(shí)現(xiàn)輸出波的幅度可調(diào)。雙DAC0832的串接電路圖如下: 圖 2-4. 雙DAC0832串接電路圖DAC0832將數(shù)字量( 波形的電壓幅度值) 轉(zhuǎn)化為模擬量( 形式為電流) , 上圖中DAC0832處于直通工作方式, 外部運(yùn)放電路的作用
19、是將模擬電流量轉(zhuǎn)化為電壓量輸出。電壓輸出即可是單極性的, 也可是雙極性的。在J12的輸出口中, 輸出口1為單極性輸出端, 輸出口2為雙極性輸出端。軟件實(shí)現(xiàn)1、 BCD碼二進(jìn)制數(shù)轉(zhuǎn)換模塊該模塊應(yīng)用計(jì)數(shù)的方法完成BCD碼到二進(jìn)制數(shù)的轉(zhuǎn)換, 仿真圖如下: 圖3-1. BCD碼二進(jìn)制數(shù)轉(zhuǎn)換仿真圖圖3-1中, A、 B、 C分別為三位十進(jìn)制數(shù)的BCD碼輸入: A為百位BCD碼, B為十位BCD碼, C為個位BCD碼輸入。從仿真圖中能夠看出: 當(dāng)變量COUNT累加脈沖數(shù)到123時, BCD碼才完全轉(zhuǎn)換為二進(jìn)制數(shù)輸出。2、 波形發(fā)生模塊圖3-2.波形發(fā)生模塊原理仿真圖圖中DATA為設(shè)定輸出相鄰采樣點(diǎn)間隔的脈
20、沖數(shù)。結(jié)合除法器, 設(shè)定的輸出頻率轉(zhuǎn)化為DATA來控制FPGA的輸出頻率。系統(tǒng)測試1、 系統(tǒng)測試儀器系統(tǒng)測試采用TeKtronix公司生產(chǎn)的TDS3032型數(shù)字式雙通道熒光示波器, 該示波器帶寬300兆赫, 最大次速率2.5GS/s, 支持方波占空比的測量。應(yīng)用該系統(tǒng)可較精確的反映系統(tǒng)的頻率、 幅度等各項(xiàng)指標(biāo)。 2.、 測試指標(biāo)本系統(tǒng)測試主要針對正弦波、 三角波、 方波A( 占空比可調(diào)方波) 、 鋸齒波的頻率的精確性, 方波B( 占空比不可調(diào)方波) 的頻率精度, 方波( A 或 B) 的幅度精度等。以下為各項(xiàng)指標(biāo)的測量圖表: 正弦波、 三角波、 鋸齒波和方波A的頻率測量表4-1. 正弦波、 三
21、角波、 鋸齒波和方波A的頻率測量數(shù)據(jù)表格設(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%方波的幅度測量 方波屬于幅度控制精度比較高的輸出波形, 主要應(yīng)用于毫伏級信號的發(fā)生, 因而選定的測量點(diǎn)大部分在毫伏級。 表4-2.方波幅度測量數(shù)據(jù)表格設(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) 的方波, 因而其輸出頻率較高, 下表中頻率測量點(diǎn)偏高。 表4-3.方波B頻率幅度測量數(shù)據(jù)表格設(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)各主要指標(biāo)的測量數(shù)據(jù), 對于其它一些系統(tǒng)指標(biāo), 如方波占空比, 任意波輸入、 存儲等, 由于此類指標(biāo)測量數(shù)據(jù)比較籠統(tǒng), 因而未予列表。經(jīng)測試以上幾個指標(biāo)均達(dá)到設(shè)計(jì)要求。結(jié)束語本設(shè)計(jì)以FPGA為開發(fā)平臺, 充分體現(xiàn)了FPGA在直接數(shù)字頻率合成方面的優(yōu)越性。系統(tǒng)基本功能全部實(shí)現(xiàn), 支持幅度精確的毫伏級信號發(fā)生, 且精度較高。系統(tǒng)支持除鍵盤外的其它波形輸入方式, 結(jié)合外部大容量的專用存儲器可完成簡單的數(shù)字存儲示波功能。參考文獻(xiàn)1.高天光 主編. 模數(shù)轉(zhuǎn)
24、換器應(yīng)用技術(shù) 第一版.北京: 科學(xué)出版社. 2.劉明業(yè) 等編. VHDL語言100例詳解 第一版。北京: 清華大學(xué)出版社. 1999附錄程序清單: 程序名: prod_wave.vhd程序功能: 本程序應(yīng)用DDFS技術(shù), 實(shí)現(xiàn)了4種常見波形( 正弦、 三角、 鋸齒、 方波) 的可控輸出、 任意波形特征數(shù)據(jù)的采集、 存儲與波形的重現(xiàn)等功能, 程序留有外部RAM的擴(kuò)充接口, 使復(fù)雜輸入波的特征提取成為可能。編程日期: .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; -各個波形特征的調(diào)節(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; -預(yù)留接口 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ù)據(jù)輸出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)系上傳者。文件的所有權(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開年會議領(lǐng)導(dǎo)發(fā)言稿范文(5篇)
- 幼小銜接培訓(xùn)心得體會
- 感動中國十大人物先進(jìn)事跡15篇
- 開業(yè)的致辭(集錦15篇)
- 感人婚禮致辭
- 第六單元課外古詩詞誦讀《朝天子.詠喇叭》 統(tǒng)編版語文九年級下冊
- 智研咨詢發(fā)布:2024年中國智能魚缸行業(yè)市場發(fā)展環(huán)境及前景研究報告
- 2024年中國無人機(jī)交通管理(UTM)行業(yè)市場規(guī)模及發(fā)展前景研究報告(智研咨詢)
- 二零二五版帶車位產(chǎn)權(quán)房屋買賣合同范本2篇
- 二零二五年度大型活動物資運(yùn)輸合同書定制版3篇
- 2025年銷售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- ESG表現(xiàn)對企業(yè)財(cái)務(wù)績效的影響研究
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯誤評估報告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2023-2024年同等學(xué)力經(jīng)濟(jì)學(xué)綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
評論
0/150
提交評論