畢業(yè)設(shè)計論文基于FPGA的數(shù)據(jù)采集系統(tǒng)電路設(shè)計_第1頁
畢業(yè)設(shè)計論文基于FPGA的數(shù)據(jù)采集系統(tǒng)電路設(shè)計_第2頁
畢業(yè)設(shè)計論文基于FPGA的數(shù)據(jù)采集系統(tǒng)電路設(shè)計_第3頁
畢業(yè)設(shè)計論文基于FPGA的數(shù)據(jù)采集系統(tǒng)電路設(shè)計_第4頁
畢業(yè)設(shè)計論文基于FPGA的數(shù)據(jù)采集系統(tǒng)電路設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、泉 州 師 范 學(xué) 院 畢業(yè)論文(設(shè)計) 題目 基于fpga的數(shù)據(jù)采集系統(tǒng)電路設(shè)計物理與信息工程 學(xué)院 電子信息科學(xué)與技術(shù) 專業(yè) 2007 級學(xué)生姓名 學(xué)號 指導(dǎo)教師 職稱 講師 完成日期 2011年4月2日 教務(wù)處 制基于fpga的數(shù)字采集系統(tǒng)電路設(shè)計泉州師范學(xué)院 電子信息科學(xué)與技術(shù)專業(yè)指導(dǎo)教師 講師【摘要】本文介紹了基于fpga的數(shù)據(jù)采集系統(tǒng)電路的工作原理和設(shè)計過程。根據(jù)數(shù)據(jù)采集技術(shù)原理,以altera公司的ep2c8q208c8n芯片為核心器件,通過adc0809采集數(shù)據(jù),并用dac0832輸出數(shù)據(jù),在quartus ii平臺上,通過vhdl語言編程完成數(shù)據(jù)采集系統(tǒng)電路的軟件設(shè)計、編譯、

2、調(diào)試、仿真和下載,再與外圍硬件電路相結(jié)合調(diào)試,最終設(shè)計出數(shù)據(jù)采集系統(tǒng)電路?!娟P(guān)鍵詞】fpga;quartus ii;vhdl;數(shù)據(jù)采集目錄第一章 緒論31.1 引言31.2 eda簡介31.3 fpga簡介31.4 vhdl語言簡介31.5 quartus ii簡介41.6 數(shù)據(jù)采集技術(shù)簡介4第二章 總體設(shè)計42.1 硬件設(shè)計42.1.1 線性電源模塊42.1.2 數(shù)據(jù)采集模塊62.1.3 數(shù)據(jù)輸出模塊82.1.4 按鍵控制模塊102.2 軟件設(shè)計112.2.1 adcint設(shè)計112.2.2 cnt10b設(shè)計122.2.3 ram8設(shè)計122.2.4時鐘控制設(shè)計122.2.5系統(tǒng)頂層設(shè)計13

3、第三章 系統(tǒng)軟硬件調(diào)試14結(jié)論15致謝15參考文獻(xiàn)15英文翻譯17附錄一 線性電源、fpga外圍電路和fpga最小系統(tǒng)連接口pcb18附錄二 系統(tǒng)各模塊vhdl程序19第一章 緒論1.1 引言隨著數(shù)字系統(tǒng)的發(fā)展,廣泛應(yīng)用于各種學(xué)科領(lǐng)域及日常生活,微型計算機(jī)就是一個典型的數(shù)學(xué)系統(tǒng)。但是它只能對輸入的數(shù)字信號進(jìn)行處理,其輸出信號也是數(shù)字信號。而在工業(yè)檢測控制和生活中的許多物理量都是連續(xù)變化的模擬量,如溫度、壓力、流量、速度等,這些模擬量可以通過傳感器或換能器變成與之對應(yīng)的電壓、電流或頻率等電模擬量。為了實(shí)現(xiàn)數(shù)字系統(tǒng)對這些電模擬量進(jìn)行檢測、運(yùn)算和控制,就需要一個模擬量與數(shù)字量之間的相互轉(zhuǎn)換的過程。即

4、常常需要將模擬量轉(zhuǎn)換成數(shù)字量,簡稱為ad轉(zhuǎn)換,完成這種轉(zhuǎn)換的電路稱為模數(shù)轉(zhuǎn)換器,簡稱adc。1.2 eda簡介eda,即電子設(shè)計自動化(electronic design automation)的縮寫。它融合了大規(guī)模集成電路制造急速、asic測試和封裝技術(shù)、fpga/cpld編程下載技術(shù)、自動測試技術(shù)、計算機(jī)輔助設(shè)計(cad)、計算機(jī)輔助制造(cam)、計算機(jī)輔助測試(cat)和計算機(jī)輔助工程(cae)設(shè)計的設(shè)計概念,為現(xiàn)代電子理論和設(shè)計的實(shí)現(xiàn)和發(fā)展提供了可能性1。eda技術(shù)是一種綜合性學(xué)科,打破了軟件和硬件見的壁壘,把計算機(jī)的軟件技術(shù)與硬件技術(shù)、設(shè)計效率和產(chǎn)品性能結(jié)合在一起,它代表了電子設(shè)計

5、技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。 eda技術(shù)一般包括以下內(nèi)容:1.大規(guī)??删幊踢壿嬈骷?.硬件描述語言;3.軟件開發(fā)工具;4.實(shí)驗(yàn)開發(fā)系統(tǒng)2。1.3 fpga簡介fpga,即現(xiàn)場可編程門陣列(fieldprogrammable gate array)的縮寫。它是一種集成度較高的器件,屬于復(fù)雜pld。fpga具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點(diǎn),在產(chǎn)品研發(fā)和開發(fā)中具有很大的優(yōu)勢。用fpga做一些協(xié)議實(shí)現(xiàn)和邏輯控制,如果協(xié)議理解錯誤或者邏輯需要更改,不需要動pcb。另外,fpga芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前fpga的品種很多,有xilinx的xc系列、

6、ti公司的tpc系列、altera公司的fiex系列等。本設(shè)計用的是altera公司的ep2c8q208c8n芯片,里面有68416個邏輯單元,并提供了622個可用的輸入/輸出引腳和1.1m比特的嵌入式寄存器。它提高了百分之六十的性能和降低了一半的功耗,而低成本和優(yōu)化特征使它為各種各樣的汽車、消費(fèi)、通訊、視頻處理、測試與測量、和其他最終市場提供理想的解決方案3。1.4 vhdl語言簡介誕生于1983年的vhdl,是very-high-speed integrated circuit hardware description language的簡稱,1987年底,vhdl被作為“ieee標(biāo)準(zhǔn)10

7、76”發(fā)布。vhdl不僅可以作為系統(tǒng)模擬的建模工具,而且可以作為電路系統(tǒng)的設(shè)計工具,能通過quartus ii把vhdl源碼自動轉(zhuǎn)化為基本邏輯元件連接圖,這極大的推進(jìn)了電路自動設(shè)計4。vhdl能從多個層次對數(shù)字系統(tǒng)進(jìn)行建模和描述,所以大大簡化了電路設(shè)計的任務(wù),提高了設(shè)計效率。1.5 quartus ii簡介由altera提供的fpga開發(fā)集成環(huán)境quartus ii,因?yàn)槠溥\(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn),迅速占領(lǐng)了市場5。quartus ii支持vhdl、verilog的設(shè)計流程,提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,同時,它還具備仿真功能,因此給系統(tǒng)的軟硬件設(shè)

8、計和調(diào)試帶來了很大的便利。1.6 數(shù)據(jù)采集技術(shù)簡介系統(tǒng)利用fpga直接控制adc0809對模擬信號進(jìn)行采樣,將轉(zhuǎn)換好的8位二進(jìn)制數(shù)據(jù)存儲到存儲器中,在完成對模擬信號一個或數(shù)個周期的采樣后,通過dac0832的輸出端將數(shù)據(jù)讀取出來。第二章 總體設(shè)計2.1 硬件設(shè)計2.1.1 線性電源模塊根據(jù)系統(tǒng)要求,需提供+12v、-12v、+5v的電源。因此我采用了濾波電容、防自激電容、led燈及固定式三端穩(wěn)壓器lm7905、lm7812和lm7912等器件搭建成能產(chǎn)生精度高、穩(wěn)定度好的直流輸出電壓的線性電源電路。系統(tǒng)的線性電源電路部分原理圖如圖2.1所示:圖2.1 系統(tǒng)的線性電源模塊電路當(dāng)電路接通后,如果l

9、ed燈亮起,則代表能產(chǎn)生出要求的電壓。為了實(shí)驗(yàn)的攜帶方便,我另外再加上電源變壓器和整流電橋。在畫pcb的時候,用大面積覆銅,有助于美觀和節(jié)約實(shí)驗(yàn)器材。實(shí)物如圖2.2所示:圖2.2系統(tǒng)的線性電源實(shí)物圖pcb圖見附錄一。2.1.2 數(shù)據(jù)采集模塊系統(tǒng)采用adc0809進(jìn)行數(shù)據(jù)采集。adc0809是逐次逼近式a/d轉(zhuǎn)化器,由8位a/d轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容組成的控制邏輯的cmos組件。adc0809每進(jìn)行一次比較,即決定數(shù)字碼中的以為碼的去留操作,需要8個時鐘的脈沖,而它是8位a/d轉(zhuǎn)換器,所以它完成一次轉(zhuǎn)換需要8*8=64個時鐘,這樣它的轉(zhuǎn)換時間為t=64*(1/f),f為時鐘頻率。系

10、統(tǒng)用的時鐘為500khz,所以adc0809的轉(zhuǎn)換時間為128us6。因?yàn)椴蓸訒r需要滿足采樣定理,即采樣頻率需要大于等于輸入信號最高頻率的2倍,所以adc0809能采樣的最高頻率為3906.25hz。adc0809的主要特性:1.分辨率為8位。2.具有轉(zhuǎn)換啟??刂贫?。3.單個+5v電源供電。4.模擬輸入電壓范圍0+5v,不需要零點(diǎn)和滿刻度校準(zhǔn)。系統(tǒng)中由可調(diào)電位器提供。5.工作溫度范圍為-40+85攝氏度。6.低功耗,約15mw。它的內(nèi)部邏輯結(jié)構(gòu)如圖2.3所示:圖2.3 adc0809內(nèi)部邏輯結(jié)構(gòu)adc0809引腳排列如圖2.4所示:圖2.4 adc0809引腳排列adc0809為28引腳雙列直

11、插式封裝,各引腳含義如下:in0in7:8位模擬量輸入引腳。d0d7:8位數(shù)字輸出量引腳。start:a/d轉(zhuǎn)換啟動信號輸入端。eoc:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時為低電平,當(dāng)轉(zhuǎn)換結(jié)束時為高電平。oe:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。clk:時鐘信號輸入端。vcc:+5v工作電壓。vref():參考電壓正端。gnd:地。vref():參考電壓負(fù)端。ale:地址鎖存允許信號輸入端。abc:地址輸入線。系統(tǒng)的數(shù)據(jù)采集模塊部分電路原理圖如圖2.5所示:圖2.5 系統(tǒng)數(shù)據(jù)采集模塊電路當(dāng)ale高電平有效時,因?yàn)閍bc接的都是低電平,所以選擇的是in0通道。當(dāng)start為上跳沿時,所有內(nèi)部

12、寄存器清零;下跳沿時,開始a/d轉(zhuǎn)換;在轉(zhuǎn)換期間,start需保持低電平不變。而當(dāng)eoc為高電平時,表明a/d轉(zhuǎn)換結(jié)束。當(dāng)oe=1時,輸出轉(zhuǎn)換得來的數(shù)據(jù);否則,輸出數(shù)據(jù)線呈高阻態(tài)。pcb圖見附錄一。2.1.3 數(shù)據(jù)輸出模塊系統(tǒng)采用的數(shù)據(jù)輸出為dac0832。dac0832是8分辨率的d/a轉(zhuǎn)換集成芯片,由8位輸入鎖存器、8位dac寄存器、8位d/a轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。它因?yàn)閮r格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),而得到了廣泛的應(yīng)用7。dac0832的主要參數(shù)有:1.分辨率為8位。2.轉(zhuǎn)換時間為1us。3.滿量程誤差為±1lsb。4.參考電壓為-10+10v。5.供電電源為+5

13、+15v。6.邏輯電平輸入與ttl兼容。它的內(nèi)部邏輯結(jié)構(gòu)如圖2.6所示:圖2.6 dac0832內(nèi)部邏輯結(jié)構(gòu)dac0832引腳排列如圖2.7所示:圖2.7dac0832引腳排列cs:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效。wr1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。agnd:模擬信號地。d0d7:8位數(shù)據(jù)輸入線。vref:基準(zhǔn)電壓輸入線,范圍為-10v+10v。rfb:反饋信號輸入線,可通過改變rfb端外接電阻值來調(diào)整轉(zhuǎn)換滿量程精度。dgnd:數(shù)字信號地。iout1:電流輸出端1,其值隨dac寄存器的內(nèi)容線性變化。iout2:電流輸出端2,其值與iout1值之和為

14、一常數(shù)。xfer:數(shù)據(jù)傳輸控制信號輸入線,低電平有效。wr2:dac寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。ile:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。vcc:電源輸入端,范圍為+5v+15v。本實(shí)驗(yàn)用的是+5v。dac0832的輸出放大和濾波電路采用tl082芯片搭建。tl082是一通用j-fet雙運(yùn)算放大器。它的內(nèi)部結(jié)構(gòu)和引腳排列如圖2.8所示8:圖2.8 tl082內(nèi)部結(jié)構(gòu)和引腳排列tl082為8引腳雙列直插式封裝,各引腳含義如下:(1)output 1輸出1;(2)inverting input 1反向輸入1;(3)non-inverting input 1正向輸入1

15、;(4)vcc-電源-12v;(5)non-inverting input 2正向輸入2;(6)inverting input 2反向輸入2;(7)output 2輸出2;(8)vcc+電源+12v。系統(tǒng)的數(shù)據(jù)輸出電路部分原理圖如圖2.9所示:圖2.9 系統(tǒng)數(shù)據(jù)輸出模塊電路2.1.4 按鍵控制模塊系統(tǒng)采用兩個按鍵開關(guān)設(shè)計正/負(fù)電平輸入信號電路,作按鍵控制模塊。一個按鍵控制clr,另一個按鍵控制wren。兩個按鍵開關(guān)電路如圖2.10所示:圖2.10 系統(tǒng)按鍵控制模塊電路系統(tǒng)實(shí)物如圖2.11所示:圖2.11 系統(tǒng)實(shí)物圖在畫pcb的時候,用大面積覆銅,有助于美觀和節(jié)約實(shí)驗(yàn)器材。系統(tǒng)pcb圖見附錄一。

16、2.2 軟件設(shè)計2.2.1 adcint設(shè)計adcint是控制0809的采樣狀態(tài)機(jī)。由adc0809驅(qū)動程序生成的原理圖如圖2.12所示:圖2.12 adcintadcint仿真圖如圖2.13所示:圖2.13 adcint仿真圖2.2.2 cnt10b設(shè)計cnt10b中有一個用于ram的9位地址計數(shù)器,它的工作時鐘clk0由wren控制:當(dāng)wren=1時,clk0=lock0,lock0來自于adc0809采樣控制器,這時處于采樣允許階段,ram的地址鎖存時鐘inclock=clkout=lock0;這樣每當(dāng)一個lock0的脈沖通過adc0809時采到一個數(shù)據(jù),并將它存入ram中。當(dāng)wren=

17、0時,采樣禁止,允許讀出ram中的數(shù)據(jù)。把示波器接到dac0832的輸出端就能看到波形。cnt10b原理圖如圖2.14所示:圖2.14 cnt10b2.2.3 ram8設(shè)計ram8是lam_ram,它有8位數(shù)據(jù)線和9位地址線。wren是寫時能,高電平有效。ram8原理圖如圖2.15所示:圖2.15 ram82.2.4時鐘控制設(shè)計由芯片ep2c8q208c8n產(chǎn)生的20mhz的時鐘做輸入,經(jīng)過分頻以后,一路輸出與芯片ep2c8q208c8n的169引腳相連的500khz的時鐘,另一路則輸出給adc0809供電的10khz的時鐘。時鐘控制原理圖如圖2.16所示:圖2.16 時鐘控制2.2.5系統(tǒng)頂

18、層設(shè)計系統(tǒng)頂層原理框圖如圖2.17所示,圖中d為8位數(shù)據(jù)輸入,clk為系統(tǒng)時鐘輸入信號頻率,由系統(tǒng)時鐘信號輸入電路控制。q為ram8的8位輸出,與dac0832相接。圖2.17 系統(tǒng)頂層原理框圖系統(tǒng)頂層仿真圖如圖2.18所示:圖2.18 系統(tǒng)頂層仿真圖系統(tǒng)引腳鎖定示意圖如圖2.19所示:圖2.19系統(tǒng)引腳連接圖系統(tǒng)各模塊vhdl程序見附錄二。第三章 系統(tǒng)軟硬件調(diào)試根據(jù)系統(tǒng)總體要求,把寫好的vhdl程序進(jìn)行引腳鎖定,綜合,適配,編程下載,調(diào)試。將線性電源模塊、數(shù)據(jù)采集模塊、fpga模塊、數(shù)據(jù)輸出模塊及按鍵控制模塊連接好,時鐘頻率由系統(tǒng)時鐘信號輸入電路提供,然后通過jtag下載模式在線將生成的配置

19、文件寫入芯片中,如圖3.1所示:圖3.1 程序下載通過反復(fù)調(diào)試、修改、功能驗(yàn)證確認(rèn)無誤后,用示波器探頭接dac0832輸出端。測得的實(shí)驗(yàn)數(shù)據(jù)見表1:表1 系統(tǒng)測試數(shù)據(jù)輸入波形的頻率輸出波形的頻率50.050hz50.031 hz99.630 hz99.611 hz113.77 hz113.40 hz150.24 hz150.29 hz199.18 hz199.22 hz250.61 hz250.53 hz300.54 hz300.59 hz350.96 hz351.03 hz407.50 hz407.40 hz測得的數(shù)據(jù)范圍從50.050 hz到407.50 hz,平均相對誤差為0.0039,

20、具有較高的精度,基本達(dá)到了設(shè)計要求。結(jié)論本設(shè)計從可編程邏輯器件(fpga)著手,用vhdl語言,結(jié)合adc0809、dac0832、tl082等芯片實(shí)現(xiàn)了數(shù)據(jù)采集與輸出。首先通過對數(shù)據(jù)采集原理進(jìn)行分析,總體上提出實(shí)現(xiàn)數(shù)據(jù)采集與輸出方案,通過cnt10b和ram8等模塊的設(shè)計,用fpga實(shí)現(xiàn)了數(shù)據(jù)的采集與輸出,并完成了軟硬件設(shè)計和調(diào)試。其放大電路和濾波電路用的芯片是tl082,其放大倍數(shù)合適,低通濾波性能較好,輸出波形較為平滑。同時,設(shè)計中還存在一些不足之處,主要表現(xiàn)在以下幾個方面。第一,外圍電路的數(shù)據(jù)采集模塊不夠理想,成為影響波形輸出的主要因素,可以用更好的ad芯片。第二,濾波部分可以找到更合

21、適的濾波器件,以提高波形的平滑度。第三,ram8采用8位,針對輸出平坦度不夠的問題,可以通過軟硬件修正的方法來解決,可以擴(kuò)充rom的容量。致謝首先要感謝指導(dǎo)老師曾永西的嚴(yán)格指導(dǎo)和親切關(guān)懷,從一開始選題方向的指導(dǎo),以及vhdl程序上的幫助,又提供了實(shí)驗(yàn)室這么好的良好的設(shè)計環(huán)境和條件,最終才使我能夠順利完成項目的設(shè)計,曾老師兢兢業(yè)業(yè)的工作精神、踏實(shí)真誠的處事態(tài)度也讓我受益匪淺。值此成文之際,我向曾老師表示衷心的感謝。同時也感謝同組的同學(xué)以及我們專業(yè)其他同學(xué),此次設(shè)計的順利完成少不了你們的毫無保留幫助和傾盡全力的支持,在此我衷心感謝你們。由于自身水平有限,設(shè)計中難免存在一些不足之處,敬請各位老師批評

22、指正。參考文獻(xiàn)1 潘松,黃繼業(yè).eda技術(shù)實(shí)用教程(第三版)m.北京:科學(xué)出版社,2006:1-22 趙曙光,郭萬有.可編程邏輯器件原理、開發(fā)與應(yīng)用m.西安:電子科技大學(xué)出版社,2000:80-853 4 甘歷.vhdl應(yīng)用與開發(fā)實(shí)踐m.北京:科技出版社,2003:50-515 徐志軍.大規(guī)??删幊踢壿嬈骷捌鋺?yīng)用m.成都:電子科技大學(xué)出版社,20006 程佩清.數(shù)字信號處理教程m.北京:清華大學(xué)出版社,20017 王金明.數(shù)字系統(tǒng)設(shè)計與 verilog hdlm.北京:電子工業(yè)出版社,20018 uwemeyer-baese.數(shù)字信號處理的fpga實(shí)現(xiàn)m.北京:清華大學(xué)出版社,2002英文翻

23、譯digital acquisition system circuit based on fpgaphysics and information engineering collegeelectronic information science and technology major 070303029 borui lifaculty adviser yongxi zeng lecturer【abstract】: this paper introduces the working principle and design process of the data acquisition sys

24、tem circuit based on fpga. according to the principle of data collection technology, altera company in ep2c8q208c8n chip in for the core device, collect data by the adc0809 output data by the dac0832, through the vhdl language programming complete simple oscilloscope software design, compilation, de

25、bugging, simulation and download and peripheral hardware circuit, and combining the final design debugging, data acquisition system circuit in quartus ii platform.【key words】: fpga;quartus ii;vhdl;data acquisition附錄一 線性電源、fpga外圍電路和fpga最小系統(tǒng)連接口pcb線性電源fpga外圍電路和fpga最小系統(tǒng)連接口附錄二 系統(tǒng)各模塊vhdl程序時鐘控制的vhdl源程序:lib

26、rary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity clk_b is port(clk: in std_logic; clk500k,clk10k: out std_logic);end entity; architecture behave of clk_b is signal clk1,clk2: std_logic;signal temp1: integer range 0 to 49; signal temp2: int

27、eger range 0 to 2499;begin process(clk)-500khzbeginif clk'event and clk='1' thentemp1<=temp1+1;if temp1=24 thenclk1<=not clk1;temp1<=0;end if; end if;end process;process(clk)-10khzbeginif clk'event and clk='1' thentemp2<=temp2+1;if temp2=1249 thenclk2<=not clk2

28、;temp2<=0;end if; end if;end process;clk500k <= clk1; clk10k <= clk2;end behave;adcint的vhdl源程序:library ieee;use ieee.std_logic_1164.all;entity adcint is port(d : in std_logic_vector(7 downto 0); -來自0809轉(zhuǎn)換好的8位數(shù)據(jù)clk : in std_logic; -狀態(tài)機(jī)工作時鐘eoc : in std_logic; -轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換ale : out std_lo

29、gic; -8個模擬信號通道地址鎖存信號start : out std_logic; -轉(zhuǎn)換開始信號oe : out std_logic; -數(shù)據(jù)輸出3態(tài)控制信號adda : out std_logic; -信號通道最低位控制信號lock0 : out std_logic; -觀察數(shù)據(jù)鎖存時鐘q : out std_logic_vector(7 downto 0); -8位數(shù)據(jù)輸出end adcint;architecture behav of adcint istype states is (st0, st1, st2, st3,st4) ; -定義各狀態(tài)子類型 signal current

30、_state, next_state: states :=st0 ; signal regl : std_logic_vector(7 downto 0); signal lock : std_logic; - 轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號 beginadda <= '0'-當(dāng)adda<='0',模擬信號進(jìn)入通道in0;當(dāng)adda<='1',則進(jìn)入通道in1q <= regl; lock0 <= lock ; com: process(current_state,eoc) begin -規(guī)定各狀態(tài)轉(zhuǎn)換方式 case c

31、urrent_state is when st0=>ale<='0'start<='0'lock<='0'oe<='0' next_state <= st1; -0809初始化 when st1=>ale<='1'start<='1'lock<='0'oe<='0' next_state <= st2; -啟動采樣 when st2=> ale<='0'start<

32、;='0'lock<='0'oe<='0' if (eoc='1') then next_state <= st3; -eoc=1表明轉(zhuǎn)換結(jié)束 else next_state <= st2; end if ; -轉(zhuǎn)換未結(jié)束,繼續(xù)等待 when st3=> ale<='0'start<='0'lock<='0'oe<='1' next_state <= st4;-開啟oe,輸出轉(zhuǎn)換好的數(shù)據(jù) when st4=&

33、gt; ale<='0'start<='0'lock<='1'oe<='1' next_state <= st0; when others => next_state <= st0; end case ; end process com ; reg: process (clk) begin if (clk'event and clk='1') then current_state<=next_state; end if; end process reg ; -

34、 由信號current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程:reg latch1: process (lock) - 此進(jìn)程中,在lock的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入 begin if lock='1' and lock'event then regl <= d ; end if; end process latch1 ; end behav;cnt10b的vhdl源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10b is port (lo

35、ck0,clr : in std_logic; clk : in std_logic; we : in std_logic; dout : out std_logic_vector(8 downto 0); clkout : out std_logic ); end cnt10b;architecture behav of cnt10b is signal cqi : std_logic_vector(8 downto 0); signal clk0 : std_logic;beginclk0 <= lock0 when we='1' else clk; process(clk0,clr,cqi) begin if clr = '1' then cqi <= "000000000" elsif clk0'event and clk0 = '1' then cqi <= cqi + 1; end if; end process; dout <= cqi; clkou

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論