![基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及仿真_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/18/e9574eff-9df5-450f-a2e0-a35a71011e48/e9574eff-9df5-450f-a2e0-a35a71011e481.gif)
![基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及仿真_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/18/e9574eff-9df5-450f-a2e0-a35a71011e48/e9574eff-9df5-450f-a2e0-a35a71011e482.gif)
![基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及仿真_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/18/e9574eff-9df5-450f-a2e0-a35a71011e48/e9574eff-9df5-450f-a2e0-a35a71011e483.gif)
![基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及仿真_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/18/e9574eff-9df5-450f-a2e0-a35a71011e48/e9574eff-9df5-450f-a2e0-a35a71011e484.gif)
![基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及仿真_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/18/e9574eff-9df5-450f-a2e0-a35a71011e48/e9574eff-9df5-450f-a2e0-a35a71011e485.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 楊新華:基于FPGA的高速采集系統(tǒng)設(shè)計(jì)本科畢業(yè)論文題 目 基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與仿真 學(xué) 院 工學(xué)院 專 業(yè) 農(nóng)業(yè)電氣化與自動(dòng)化 畢業(yè)屆別 2013 姓 名 楊新華 指導(dǎo)教師 楊婉霞 職 稱 講 師 甘肅農(nóng)業(yè)大學(xué)教務(wù)處制二一三年五月目 錄摘要2關(guān)鍵詞2前言31 系統(tǒng)總體方案設(shè)計(jì)31.1 需求分析31.2 系統(tǒng)實(shí)現(xiàn)方案41.3 系統(tǒng)各模塊芯片選型51.3.1 模數(shù)轉(zhuǎn)換芯片選型51.3.2 FPGA芯片選型71.4系統(tǒng)的采集速度與FIFO的存儲(chǔ)容量71.4.1系統(tǒng)的采集速度71.4.2FIFO存儲(chǔ)容量72 硬件電路設(shè)計(jì)82.1 硬件電路設(shè)計(jì)工具介紹82.2 硬件詳細(xì)設(shè)計(jì)82.2.1
2、 硬件整體方案設(shè)計(jì)82.2.2 詳細(xì)電路設(shè)計(jì)93 程序的設(shè)計(jì)與實(shí)現(xiàn)133.1 FPGA設(shè)計(jì)與仿真工具133.1.1 FPGA結(jié)構(gòu)133.1.2 FPGA設(shè)計(jì)流程143.1.3 Quartus II介紹153.1.4 硬件描述語(yǔ)言VHDL簡(jiǎn)介163.2 時(shí)鐘管理模塊的設(shè)計(jì)與實(shí)現(xiàn)163.3 數(shù)據(jù)采集控制模塊的設(shè)計(jì)與實(shí)現(xiàn)173.3.1 狀態(tài)機(jī)介紹183.3.2 AD9288時(shí)序控制的設(shè)計(jì)與仿真183.3.3 AD7278時(shí)序控制的設(shè)計(jì)與仿真203.4 數(shù)據(jù)緩存模塊的設(shè)計(jì)與實(shí)現(xiàn)233.4.1 FIFO介紹233.4.2 FIFO的實(shí)現(xiàn)與仿真243.5 總體電路圖253.5.1 并行AD控制電路253.
3、5.2 串行AD控制電路26結(jié) 論27參考文獻(xiàn)28致謝29基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與仿真(xxxxxx電氣化及其自動(dòng)化,甘肅蘭州,730070)摘要:本文介紹了以FPGA為核心邏輯控制模塊的高速數(shù)據(jù)采集系統(tǒng)。通過(guò)高性能的FPGA芯片與高速ADC相結(jié)合來(lái)實(shí)現(xiàn)高速采集數(shù)據(jù)的目的。文中詳細(xì)的介紹了并行接口和串行接口的AD芯片、FPGA芯片的選型,硬件電路設(shè)計(jì)及其硬件電路設(shè)計(jì)工具、FPGA程序設(shè)計(jì)所使用的工具和語(yǔ)言。接著介紹了FPGA內(nèi)部各模塊設(shè)計(jì),其中分別介紹了FPGA芯片、時(shí)鐘管理模塊的設(shè)計(jì)與仿真、采集控制模塊與緩沖模塊的設(shè)計(jì)過(guò)程并給出了仿真波形。關(guān)鍵詞:FPGA 數(shù)據(jù)采集 VHDL語(yǔ)言
4、Design and Simulation of high-speed data acquisition system based on FPGAXxxxxx(Major in Agricultural Electrification and xxxxxUniversity,Gansu Lanzhou,730070)Abstract: This paper introduces a high speed data acquisition system is the core logic control module based on FPGA. Through the FPGA chip wi
5、th high performance and speed ADC to realize the combination of high speed data acquisition objective. This paper describes in detail the selection of AD chip, parallel interface and serial interface of the FPGA chip, tool and tool for the design of FPGA program language, used in the design of hardw
6、are circuit design and hardware circuit. And then introduces the design of each module in FPGA, which were introduced by FPGA chip, the clock management module design and simulation, acquisition control module and buffer module design process and gives the simulation waveforms.Key words: FPGA data a
7、cquisition in VHDL language前言在工業(yè)生產(chǎn)和科學(xué)技術(shù)研究的各行業(yè)中,常常需要對(duì)各種數(shù)據(jù)進(jìn)行采集,如液位、溫度、壓力、頻率等信息的采集。在圖像處理、瞬態(tài)信號(hào)檢測(cè)、軟件無(wú)線電等一些領(lǐng)域,更是要求高速度、高精度、高實(shí)時(shí)性的數(shù)據(jù)采集技術(shù)1。數(shù)據(jù)采集系統(tǒng)的任務(wù),就是將采集傳感器輸出的模擬信號(hào)進(jìn)行處理并轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào),由計(jì)算機(jī)進(jìn)行相應(yīng)的計(jì)算和處理來(lái)滿足不同的需要,得出所需的數(shù)據(jù)。數(shù)據(jù)采集系統(tǒng)性能的好壞,是由它的精度和速度來(lái)決定的。在保證精度的前提下,應(yīng)當(dāng)用盡可能高的采樣速度,這樣才能滿足實(shí)時(shí)采集、實(shí)時(shí)處理和實(shí)時(shí)控制對(duì)速度的要求2。在傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)中,A/D 的控
8、制和數(shù)據(jù)的轉(zhuǎn)存均是通過(guò)CPU 或者M(jìn)CU 來(lái)完成。在這種方式下,將A/D 轉(zhuǎn)換的結(jié)果讀入,然后再轉(zhuǎn)存到片外的存儲(chǔ)器中這一過(guò)程至少需要4個(gè)機(jī)器周期。即使對(duì)于ARM 芯核的單片機(jī)(CPU 采用流水線結(jié)構(gòu)一個(gè)機(jī)器周期占一個(gè)CLK), 使用33MHz 的晶振,它的最高轉(zhuǎn)存數(shù)據(jù)速度也只達(dá)到8Mbyte/s 。在高速數(shù)據(jù)采集系統(tǒng)中,這種方式一方面占用太多CPU 資源,另外也遠(yuǎn)遠(yuǎn)不能滿足高速采集的速度要求3。在許多應(yīng)用場(chǎng)合,如雷達(dá)、聲納、圖像處理、語(yǔ)音識(shí)別、地質(zhì)勘探、光時(shí)間域反射測(cè)量等,特別是在實(shí)時(shí)性要求比較高的情況下,往往都需要高速或超高速(Ultra High Speed)數(shù)據(jù)采集系統(tǒng)。比如相較于供電傳
9、輸線上高達(dá)幾千伏的電壓變化,浪涌電流的持續(xù)時(shí)間僅僅是數(shù)百納秒,因此數(shù)據(jù)采集系統(tǒng)必須具有極高的通過(guò)速率才能準(zhǔn)確的探測(cè)浪涌電流的變化過(guò)程;又如在航空航天領(lǐng)域中,無(wú)論是航天器顫振和抖振特性測(cè)試,還是運(yùn)載火箭噴氣流量動(dòng)態(tài)測(cè)試,抑或高空拍攝圖像傳輸?shù)染笫褂酶咚俨杉夹g(shù)來(lái)加以實(shí)現(xiàn);此外,高速數(shù)據(jù)采集技術(shù)在等離子體診斷,生物光譜與激光化學(xué)等其它各類科學(xué)研究中同樣有很廣泛的應(yīng)用4。FPGA(現(xiàn)場(chǎng)可編程門陣列)憑借其在數(shù)據(jù)采集控制方面的高性能和便于系統(tǒng)集成、易擴(kuò)展等優(yōu)勢(shì)逐漸受到廣泛應(yīng)用。高性能的FPGA和高速的A/D應(yīng)用于數(shù)據(jù)采集系統(tǒng)中,不僅可以大大提高系統(tǒng)的測(cè)量精度、數(shù)據(jù)采集處理速度、數(shù)據(jù)傳輸速度等5,還
10、可以產(chǎn)生巨大的經(jīng)濟(jì)效益,因此,對(duì)其做進(jìn)一步研究具有十分重要的現(xiàn)實(shí)意義。1 系統(tǒng)總體方案設(shè)計(jì)1.1 需求分析數(shù)據(jù)采集系統(tǒng)DAS(Data Acquisition System)是模擬量與數(shù)字量之間的轉(zhuǎn)換接口。它在自動(dòng)測(cè)試、生產(chǎn)控制、通信、信號(hào)處理等領(lǐng)域占有極其重要的地位。而高速數(shù)據(jù)采集系統(tǒng)更是航天、雷達(dá)、制導(dǎo)、測(cè)控、動(dòng)態(tài)檢測(cè)等高技術(shù)領(lǐng)域的關(guān)鍵技術(shù)。高速數(shù)據(jù)采集系統(tǒng)中的采樣頻率一般在幾十MHz到幾百M(fèi)Hz,而微機(jī)系統(tǒng)由于操作速度的限制,不能夠直接參與數(shù)據(jù)傳輸。 為了實(shí)現(xiàn)高速數(shù)據(jù)的采集,本文設(shè)計(jì)一個(gè)高速數(shù)據(jù)采集系統(tǒng),該系統(tǒng)的主要功能包括A/D轉(zhuǎn)換、提供數(shù)據(jù)接口、能夠獨(dú)立控制AD工作。 首先,為了實(shí)現(xiàn)
11、A/D轉(zhuǎn)換,系統(tǒng)中需要采用高速的AD,完成數(shù)據(jù)的高速采樣與轉(zhuǎn)換。其次,為了實(shí)現(xiàn)從數(shù)據(jù)采集到數(shù)據(jù)輸出的高速運(yùn)行,需要具有能夠控制ADC工作的模塊,根據(jù)ADC的工作時(shí)序控制AD的運(yùn)行。最后,為了提供系統(tǒng)與其他系統(tǒng)之間的數(shù)據(jù)接口,需要數(shù)據(jù)緩存模塊,當(dāng)模擬信號(hào)經(jīng)高速AD數(shù)字化后,先直接送緩存區(qū)暫存,然后再將數(shù)據(jù)送至其他系統(tǒng)進(jìn)行相關(guān)的處理、運(yùn)算。此外,為了保證整個(gè)系統(tǒng)的正常工作,還需要為該系統(tǒng)設(shè)計(jì)時(shí)鐘管理模塊,為系統(tǒng)各部分提供正常工作的時(shí)鐘。1.2 系統(tǒng)實(shí)現(xiàn)方案系統(tǒng)總體框圖如圖1.1所示。首先對(duì)模擬信號(hào)進(jìn)行信號(hào)調(diào)理,將電信號(hào)調(diào)整到ADC的輸入范圍內(nèi),然后對(duì)信號(hào)進(jìn)行A/D轉(zhuǎn)換。FPGA將采樣得到的數(shù)據(jù)送到
12、緩存,存放至緩存中的數(shù)據(jù)通過(guò)數(shù)據(jù)接口送至MCU。系統(tǒng)的所有時(shí)鐘由FPGA統(tǒng)一產(chǎn)生,系統(tǒng)的采樣、轉(zhuǎn)換與緩存也由FPGA統(tǒng)一協(xié)調(diào)控制。系統(tǒng)主要包括三個(gè)部分:時(shí)鐘管理模塊、數(shù)據(jù)采集控制模塊和數(shù)據(jù)緩沖模塊。其中時(shí)鐘管理模塊由分頻程序?qū)崿F(xiàn),為系統(tǒng)各個(gè)模塊提供正常工作所需的時(shí)鐘;數(shù)據(jù)采集控制模塊通過(guò)控制A/D轉(zhuǎn)換器的時(shí)序控制AD的工作;數(shù)據(jù)緩沖模塊通過(guò)FPGA內(nèi)部的FIFO來(lái)完成。圖1.1 系統(tǒng)總體方案系統(tǒng)工作過(guò)程為:模擬信號(hào)先經(jīng)過(guò)由模數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)后送入FPGA,F(xiàn)PGA再將數(shù)據(jù)寫(xiě)入FIFO存儲(chǔ)芯片,F(xiàn)PGA對(duì)FIFO 發(fā)出讀命令后,F(xiàn)PGA可以將數(shù)據(jù)從FIFO中讀取之后送到讀數(shù)接口,
13、后續(xù)的MCU即可獲取所采集的數(shù)據(jù)。下面主要對(duì)數(shù)據(jù)緩存部分進(jìn)行討論與研究。數(shù)據(jù)緩存在很多情況下用來(lái)協(xié)調(diào)吞吐速率不一致的設(shè)備之間的數(shù)據(jù)傳送,CPU中的緩存也起著減少讀取時(shí)間,加快讀取速度的作用。在本設(shè)計(jì)中,數(shù)據(jù)緩存器主要是用來(lái)解決輸入輸出速率不一致的問(wèn)題??梢杂脕?lái)實(shí)現(xiàn)緩存的數(shù)據(jù)存儲(chǔ)載體有很多,比如DRAM(動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、SRAM(動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、SDRAM(步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、DDR SDRAM(倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、FIFO(先進(jìn)先出存儲(chǔ)器)以及DPRAM(雙端口隨機(jī)存儲(chǔ)器)和SPRAM(單端口隨機(jī)存儲(chǔ)器)等。各種存儲(chǔ)器各有其特點(diǎn)及適用范圍。比如FIFO一般可用作不同時(shí)鐘域的數(shù)據(jù)傳輸
14、。與普通存儲(chǔ)器相比,F(xiàn)IFO遵循著先進(jìn)先出的讀寫(xiě)規(guī)律,沒(méi)有外部讀寫(xiě)地址,簡(jiǎn)化了使用方式。但缺點(diǎn)在于只能順序?qū)懭牖蜃x出數(shù)據(jù),數(shù)據(jù)地址由內(nèi)部指針自動(dòng)加1,不能像普通存儲(chǔ)器一般通過(guò)地址線決定當(dāng)前操作地址。DDR SDRAM具有速度快、成本低,容量大的優(yōu)點(diǎn)。與SDRAM相比,其采用了更先進(jìn)的同步電路,使得地址、數(shù)據(jù)的輸入輸出既保持獨(dú)立,又能與CPU同步。但是它的控制比較復(fù)雜,時(shí)序要求非常苛刻,需要嚴(yán)格的邏輯與時(shí)序來(lái)對(duì)其進(jìn)行控制??紤]到充分利用FPGA內(nèi)部的豐富資源,本設(shè)計(jì)選用由FPGA內(nèi)置IP核產(chǎn)生的FIFO來(lái)實(shí)現(xiàn)數(shù)據(jù)緩存,同時(shí)也不用再選取單獨(dú)的數(shù)據(jù)緩存芯片,提高了資源利用率,簡(jiǎn)化了硬件結(jié)構(gòu)。1.3
15、系統(tǒng)各模塊芯片選型1.3.1 模數(shù)轉(zhuǎn)換芯片選型常用的高速AD一般有兩種接口,即并行接口與串行接口。在本設(shè)計(jì)中,為了更全面地研究高速數(shù)據(jù)采集技術(shù),分別選擇并行接口和串行接口的AD各一種。綜合采樣率、通道數(shù)、數(shù)據(jù)寬度、功耗以及價(jià)格等因素,最終決定選擇AD9288和AD7278。1.3.1.1 AD9288簡(jiǎn)介6AD9288 是8bit 雙通道并行模/數(shù)轉(zhuǎn)換器,具有低功耗、體積小、動(dòng)態(tài)特性好、性價(jià)比高的特點(diǎn)。其性能如下:1) 雙通道8bits、最高采樣速率達(dá)100MSPS;2) 低功耗:每個(gè)通道 90mw(工作在100MHz 時(shí));3) 帶寬高:每個(gè)通道 475MHz 的模擬帶寬;4) 較高的信噪比
16、:SNR=47DB(在41MHz 時(shí));5) 每個(gè)通道的模擬輸入范圍:峰峰電壓值為 1V;6) 輸出方式可編碼:補(bǔ)碼形式或偏移碼形式;7) 電平兼容 TTL/CMOS;8) 模擬輸入峰峰電壓為:1.024Vp-p,AD9288 片內(nèi)提供準(zhǔn)確的參考電壓為1.25伏;也可以選用外部提供的參考電壓。AD9288內(nèi)部邏輯結(jié)構(gòu)及外部引腳分別如圖1.2、1.3所示,AD9288 由兩個(gè)跟蹤/保持放大器,兩個(gè)A/D變換器,一個(gè)邏輯控制器,兩個(gè)時(shí)鐘模塊,一個(gè)內(nèi)部參考電壓模塊和兩個(gè)數(shù)據(jù)輸出模塊組成。 圖1.2 AD9288內(nèi)部邏輯結(jié)構(gòu)圖 圖1.3 AD9288外部引腳圖1.3.1.2 AD7278 簡(jiǎn)介7AD7
17、278是一款8位高速、低功耗的逐次逼近型ADC。工作電壓為:2.35V至3.6 V單電源,最高吞吐量可達(dá)3 MSPS。內(nèi)部包含一個(gè)低噪聲、寬帶寬采樣/保持放大器,可處理30 MHz以上的輸入頻率。其性能如下:1) 高吞吐量: 3 MSPS;2) 額定電壓(VDD):2.35 V至3.6 V ;3) 低功耗:13.5 mW(3 MSPS,3 V電源);4) 寬輸入帶寬: 70 dB信噪比(1 kHz輸入頻率);5) 靈活的功耗/串行時(shí)鐘速度管理;6) 無(wú)流水線延遲;7) 高速串行接口;8) SPI/QSPI/MICROWIRE/DSP 兼容;9) 省電模式:最大1 A。AD7278內(nèi)部邏輯結(jié)構(gòu)及
18、外部引腳分別如圖1.4、1.5所示,AD7278由一個(gè)跟蹤/保持放大器,一個(gè)A/D變換器,一個(gè)邏輯控制器組成。 圖1.4 AD7278內(nèi)部邏輯結(jié)構(gòu) 圖1.5 AD7278外部引腳圖1.3.2 FPGA芯片選型 本設(shè)計(jì)使用FPGA來(lái)提供采樣時(shí)鐘、實(shí)現(xiàn)數(shù)據(jù)采集控制與緩存以及對(duì)全局時(shí)鐘的控制,因此是最為關(guān)鍵的中央處理芯片。目前FPGA的產(chǎn)品Altera公司和Xilinx公司的產(chǎn)品系列為主。其中Altera 的主流FPGA分為兩大類,一種側(cè)重低成本應(yīng)用,容量中等,性能可以滿足一般的邏輯設(shè)計(jì)要求,如Cyclone,CycloneII;還有一種側(cè)重于高性能應(yīng)用,容量大,性能滿足各類高端應(yīng)用,如Starti
19、x,StratixII等。 本設(shè)計(jì)在綜合了接口數(shù)量及內(nèi)部LE數(shù)量及實(shí)際價(jià)格等因素后,最終選擇Altera公司Cyclone系列的EP1C6Q240C8芯片,該芯片主要特性為:1) 采用240引腳、貼片封裝;2) 擁有6030個(gè)LE ; 3) 26個(gè)M4K片上RAM(共計(jì)239616bits );4) 2個(gè)高性能PLL ;5) 多達(dá)185個(gè)用戶自定義IO 。1.4系統(tǒng)的采集速度與FIFO的存儲(chǔ)容量1.4.1系統(tǒng)的采集速度 數(shù)據(jù)采集系統(tǒng)所使用的計(jì)算機(jī)會(huì)極大地影響數(shù)據(jù)采集的速度,計(jì)算機(jī)的數(shù)據(jù)傳送能力也會(huì)極大地影響數(shù)據(jù)采集系統(tǒng)的性能。數(shù)據(jù)傳送方式會(huì)影響數(shù)據(jù)采集設(shè)備的數(shù)據(jù)吞吐量。限制采集大量
20、數(shù)據(jù)的因素常常是硬盤,磁盤的訪問(wèn)時(shí)間和硬盤的分區(qū)會(huì)極大地降低數(shù)據(jù)采集和存儲(chǔ)到硬盤的最大速率。對(duì)于要求采集高頻信號(hào)的系統(tǒng),就需要為PC選擇高速硬盤,從而保證有連續(xù)(非分區(qū))的硬盤空間來(lái)保存數(shù)據(jù)。此外,要用專門的硬盤進(jìn)行采集并且在把數(shù)據(jù)存儲(chǔ)到磁盤時(shí)使用另一個(gè)獨(dú)立的磁盤運(yùn)行操作系統(tǒng)。本課題所選芯片AD9288最高采樣速率達(dá)100MSPS;AD7278最高高吞吐量3 MSPS,他們會(huì)較大的影響到系統(tǒng)的采集速度。由于本人能力有限,對(duì)于整個(gè)系統(tǒng)的采集速度不做更多的研究。1.4.2FIFO存儲(chǔ)容量 FIFO的存儲(chǔ)量即FIFO的深度,它指的是FIFO可以存儲(chǔ)多少個(gè)N位的數(shù)據(jù)(如果寬度為N)。如一個(gè)8位的FIF
21、O,若深度為8,它可以存儲(chǔ)8個(gè)8位的數(shù)據(jù),深度為12 ,就可以存儲(chǔ)12個(gè)8位的數(shù)據(jù),F(xiàn)IFO的深度可大可小。在FIFO實(shí)際工作中,其數(shù)據(jù)的滿/空標(biāo)志可以控制數(shù)據(jù)的繼續(xù)寫(xiě)入或讀出。在一個(gè)具體的應(yīng)用中也不可能由一些參數(shù)算數(shù)精確的所需FIFO深度為多少,這在寫(xiě)速度大于讀速度的理想狀態(tài)下是可行的,但在實(shí)際中用到的FIFO深度往往要大于計(jì)算值。一般來(lái)說(shuō)根據(jù)電路的具體情況,在兼顧系統(tǒng)性能和FIFO成本的情況下估算一個(gè)大概的寬度和深度就可以了。而對(duì)于寫(xiě)速度慢于讀速度的應(yīng)用,F(xiàn)IFO的深度要根據(jù)讀出的數(shù)據(jù)結(jié)構(gòu)和讀出數(shù)據(jù)的由那些具體的要求來(lái)確定。2 硬件電路設(shè)計(jì) 2.1 硬件電路設(shè)計(jì)工具介紹Protel是Alt
22、ium公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,排在眾多EDA軟件的前面,是電子設(shè)計(jì)者的首選軟件,較早就在國(guó)內(nèi)開(kāi)始使用,在國(guó)內(nèi)的普及率最高。 早期的Protel主要作為印制板自動(dòng)布線工具使用,運(yùn)行在DOS環(huán)境,對(duì)硬件的要求很低,在無(wú)硬盤286機(jī)的1M內(nèi)存下就能運(yùn)行,但功能也較少,只有電路原理圖繪制與印制板設(shè)計(jì)功能,其印制板自動(dòng)布線的布通率也低,而現(xiàn)今的Protel已發(fā)展到DXP 2004,完全安裝有200多兆,工作在WINDOWS95環(huán)境下,具有完整的板級(jí)全方位電子設(shè)計(jì)系統(tǒng),包含了電路原理圖繪制、模擬電路與數(shù)字電路混合信號(hào)仿真、多層印制電路板設(shè)計(jì)(包含印制電路板自動(dòng)布線)、可
23、編程邏輯器件設(shè)計(jì)、圖表生成、電子表格生成、支持宏操作等功能,并具有Client/Server(客戶/服務(wù)器)體系結(jié)構(gòu),同時(shí)還兼容一些其它設(shè)計(jì)軟件的文件格式,如ORCAD,PSPICE,EXCEL等,其多層印制線路板的自動(dòng)布線可實(shí)現(xiàn)高密度PCB的100%布通率。2.2 硬件詳細(xì)設(shè)計(jì)2.2.1 硬件整體方案設(shè)計(jì)圖2.1為硬件設(shè)計(jì)總體方案框圖,硬件設(shè)計(jì)主要包括電源電路、下載配置電路、外部時(shí)鐘電路、接口電路及AD9288與AD7278的外圍電路。圖2.1 硬件設(shè)計(jì)總體結(jié)構(gòu)2.2.2 詳細(xì)電路設(shè)計(jì)1) 電源電路本系統(tǒng)外部電源采用5V輸出開(kāi)關(guān)電源。系統(tǒng)中,F(xiàn)PGA 的IO 的電源電壓是3.3V,內(nèi)核的電壓
24、是1.5V,AD9288及AD7278的供電電壓均可設(shè)為3.3V。利用SMV1117電源芯片分別將5V 轉(zhuǎn)到3.3V,將3.3V 轉(zhuǎn)到1.5V,再利用電容與電感電路由1.5V產(chǎn)生FPGA內(nèi)部PLL所需電壓,加上一些旁路電容,即可滿足電壓需求。具體電路如圖2.1所示:圖2.1 電源及濾波電路2) 下載配置電路FPGA 通過(guò)JTAG 下載代碼到片子里運(yùn)行,代碼存放在RAM 里,斷電后代碼即消失。因此,F(xiàn)PGA需要非易失性存儲(chǔ)器用來(lái)存放代碼,每次上電后把代碼從配置芯片讀至FPGA然后運(yùn)行。選用ALTERA 公司配套的AS 模式的配置存儲(chǔ)器EPCS1,成本比較低,并且很容易配置,具體電路如圖2.2所示
25、:圖2.2 下載配置電路3) 外部時(shí)鐘電路FPGA內(nèi)部模塊工作時(shí)需要一個(gè)時(shí)鐘基準(zhǔn),因此需要一個(gè)外部晶振,頻率為100MHz,具體電路如圖2.3所示:圖2.3 外部時(shí)鐘電路4) 接口電路為了將FPGA內(nèi)部緩存的數(shù)據(jù)讀出,并能夠讀出FPGA內(nèi)部FIFO的空滿狀態(tài),需要設(shè)計(jì)接口電路將這些信號(hào)輸出,同時(shí)為了給AD9288和AD7278接入模擬輸入信號(hào),需要用接口將信號(hào)引入。具體電路如圖2.4所示:圖2.4 接口電路5) AD9288外圍電路AD9288供電電壓范圍為2.73.6V,本設(shè)計(jì)用FPGA外圍電路產(chǎn)生的3.3V電壓供電,模擬電源VD和數(shù)字電源VDD,分開(kāi)供電。為了保證電源質(zhì)量,在各自的電源引腳
26、與地之間加入了0.1F的去耦電容。AD9288提供了兩種信號(hào)輸入方式,分別是單端輸入與差分輸入,其中差分輸入方式可以減少信號(hào)噪聲以及電磁的干擾,單端輸入模式的性能會(huì)有所下降,但考慮到本設(shè)計(jì)屬于低成本的應(yīng)用,單端輸入可保證較好的性能,因此選擇單端輸入方式,為了保護(hù)輸入信號(hào),通過(guò)50的電阻接地,并串聯(lián)0.1F的電容。引腳S1、 S2可以用來(lái)選擇多種操作模式,在使用中,常令S1=1,S2=0,兩個(gè)通道采集相互獨(dú)立。AD9288內(nèi)部有一個(gè)穩(wěn)定精確的125V電壓參考,通過(guò)將REFINA和REFINB接REFOUT實(shí)現(xiàn)內(nèi)部電壓參考。本設(shè)計(jì)因?yàn)槭菃瓮ǖ啦杉到y(tǒng),所以只用通道A采樣數(shù)據(jù),輸入電壓信號(hào)范圍為-0
27、5V+05V。 圖2.5 AD9288的外圍電路6) AD7278外圍電路AD7278供電電壓范圍為2.353.6V,本設(shè)計(jì)用FPGA外圍電路產(chǎn)生的3.3V電壓供電。 為了保證電源質(zhì)量,在電源引腳與地之間并聯(lián)了0.1F和680nF的去耦電容。AD7278只有單端模擬輸入方式,信號(hào)通過(guò)VIN從外部接口輸入,輸入電壓范圍為0VDD(即3.3V)。SCLK為通道時(shí)鐘輸入引腳,設(shè)為50MHz,由FPGA內(nèi)部邏輯提供。SDATA與數(shù)據(jù)采集控制模塊的輸入相連接,由FPGA控制其進(jìn)行串并轉(zhuǎn)換之后并寫(xiě)入FIFO。圖2.6 AD7278外圍電路7) 硬件電路整體圖圖2.7為硬件電路整體框圖,將以上各部分電路綜合
28、布局,置于一張電路圖中,合理布局之后,生成硬件電路。圖2.7 硬件電路3 程序的設(shè)計(jì)與實(shí)現(xiàn)在上一章設(shè)計(jì)的硬件電路的基礎(chǔ)上,本章將進(jìn)行FPGA內(nèi)部程序的具體設(shè)計(jì)。在本系統(tǒng)中,F(xiàn)PGA是控制整個(gè)系統(tǒng)工作的核心,首先在其內(nèi)部實(shí)現(xiàn)各模塊的設(shè)計(jì)與仿真,然后設(shè)計(jì)出頂層電路原理圖。其中數(shù)據(jù)采集控制模塊負(fù)責(zé)對(duì)A/D轉(zhuǎn)換進(jìn)行時(shí)序控制,實(shí)現(xiàn)AD轉(zhuǎn)換的正常工作。FPGA利用時(shí)鐘管理模塊產(chǎn)生時(shí)鐘用以作為采樣時(shí)鐘,采樣數(shù)據(jù)被送至FIFO進(jìn)行緩存處理。3.1 FPGA設(shè)計(jì)與仿真工具3.1.1 FPGA結(jié)構(gòu)FPGA具有可編程性,可以對(duì)其反復(fù)燒寫(xiě),因此采取的是一種支持反復(fù)配置的結(jié)構(gòu)而不可能像傳統(tǒng)的ASIC一樣通過(guò)與非門來(lái)完成
29、。當(dāng)前的主流FPGA采用了基于SRAM的查找表結(jié)構(gòu),還有一些軍用與宇航領(lǐng)域的FPGA使用Flash或者熔絲與反熔絲工藝的查找表結(jié)構(gòu)口。FPGA通過(guò)對(duì)文件燒寫(xiě)來(lái)配置查找表的內(nèi)容,使得在同樣的電路下實(shí)現(xiàn)不同的邏輯功能。圖3.1 FPGA的結(jié)構(gòu)原理圖3.1是FPGA的基本結(jié)構(gòu)組成。在FPGA內(nèi)部最重要的組成部分是可編程輸入輸出單元、可編程邏輯單元和嵌入式塊RAM。輸入輸出單元分布在FPGA四周,是芯片與外界電路的接口,可以配置不同電氣特性的接口標(biāo)準(zhǔn)如SSTL、HSTL、LVDS和PCI等;可編程邏輯單元通常都是由查找表(LUT)和寄存器(Register)構(gòu)成。FPGA含有數(shù)量巨大的基本可編程邏輯單
30、元。它們是可編程邏輯的主體,通過(guò)其內(nèi)部配置的改變可以實(shí)現(xiàn)多種不同的邏輯功能;嵌入式塊RAM即通過(guò)FPG內(nèi)部嵌入可編程Block RAM,極大的擴(kuò)展了FPGA的應(yīng)用范圍。一般說(shuō)來(lái),不同器件廠商或者不同器件族的內(nèi)嵌Block RAM結(jié)構(gòu)有所不同,但基本都可以靈活配置成各種常用存儲(chǔ)結(jié)構(gòu)比如單口RAM、雙口RAM、偽雙口RAM、CAM以及FIFO等。除了以上模塊,F(xiàn)PGA還可能包括了如DSP、高速串行收發(fā)器等其它模塊口。具體選擇時(shí)要綜合考慮設(shè)計(jì)需求、成本與規(guī)模、速度、封裝還有所需要的專用功能模塊等因素8。3.1.2 FPGA設(shè)計(jì)流程FPGA產(chǎn)品發(fā)展到現(xiàn)在,已經(jīng)有完整的開(kāi)發(fā)系統(tǒng)與設(shè)計(jì)流程。通常說(shuō)來(lái),比較
31、完整的FPGA設(shè)計(jì)流程主要包括設(shè)計(jì)輸入、功能仿真、綜合、功能仿真(綜合后仿真)、布局布線、時(shí)序仿真(后仿真)和調(diào)試幾個(gè)部分。流程圖如圖3.2所示:圖3.2 FPGA的設(shè)計(jì)流程FPGA的設(shè)計(jì)輸入主要有硬件描述語(yǔ)言HDL、狀態(tài)圖和原理圖三種輸入方式。原理圖設(shè)計(jì)輸入法在早期比較常見(jiàn),但在現(xiàn)在的大型設(shè)計(jì)中它的可維護(hù)性較差。由于硬件描述在可移植性和規(guī)范性上面的優(yōu)勢(shì),現(xiàn)在的大多數(shù)設(shè)計(jì)采用了HDL開(kāi)發(fā)平臺(tái),其中應(yīng)用最廣泛的語(yǔ)言是VHDL和Verilog HDL9。3.1.3 Quartus II介紹Quartus II是Altera公司推出的目前應(yīng)用非常廣泛的一款EDA開(kāi)發(fā)系統(tǒng)。它是一個(gè)完整的多平臺(tái)設(shè)計(jì)環(huán)境
32、。它可以輕松滿足特定設(shè)計(jì)的需要,并且提供可編程片上系統(tǒng)(SOPC)設(shè)計(jì)的綜合開(kāi)發(fā)平臺(tái),是SOPC設(shè)計(jì)的基礎(chǔ)。Quartus II 將設(shè)計(jì)、綜合、布局、仿真驗(yàn)證、和編程下載以及第三方EDA工具集成在一個(gè)無(wú)縫的環(huán)境中,可以進(jìn)行系統(tǒng)級(jí)設(shè)計(jì)、嵌入式系統(tǒng)級(jí)設(shè)計(jì)和可編程邏輯器件設(shè)計(jì)。Quartus II開(kāi)發(fā)工具提供了完全集成,且與電路結(jié)構(gòu)無(wú)關(guān)的數(shù)字邏輯設(shè)計(jì)環(huán)境,以及SOPC設(shè)計(jì)的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。主要特點(diǎn)如下:1) 可利用原理圖、結(jié)構(gòu)圖、VerilogHDL、VHDL、AHDL等硬件描述語(yǔ)言完成邏輯電路的描述和編輯,以及芯片(電路)平面布局連線的編輯。2) 功能強(qiáng)大的邏輯綜合工具,并提供RTL級(jí)查看器(
33、原理圖視圖和層次結(jié)構(gòu)列表)。3) 完備的電路功能描述和時(shí)序邏輯仿真工具。4) 自動(dòng)定位編譯錯(cuò)誤,提供高效的器件編程與驗(yàn)證工具。5) RTL-to-Gate形式驗(yàn)證。此外,Quartus II還默認(rèn)安裝SOPC Builder,自動(dòng)添加參數(shù)和連接IP核,包括嵌入式處理器、協(xié)處理器。外設(shè)和用戶自定義邏輯,從而為嵌入式的開(kāi)發(fā)提供方便10。3.1.4 硬件描述語(yǔ)言VHDL簡(jiǎn)介VHDL語(yǔ)言的英文全名是VHSIC Hardware Description Language,VHSIC則是Very High Speed Integrated Circuit的縮寫(xiě)。它是一種支持系統(tǒng)級(jí)設(shè)計(jì)并被多數(shù)EDA軟件支持
34、的通用標(biāo)準(zhǔn)硬件描述語(yǔ)言。所謂硬件描述語(yǔ)言,就是可以描述硬件電路的功能,信號(hào)連接關(guān)系及定時(shí)關(guān)系的語(yǔ)言。它能比原理圖更加有效地表示硬件電路的特性。隨著VHDL語(yǔ)言的發(fā)展,從基于原理圖的硬件設(shè)計(jì)方法向基于HDL語(yǔ)言的硬件設(shè)計(jì)方法的轉(zhuǎn)變己經(jīng)成為可編程ASIC設(shè)計(jì)者最為關(guān)心的問(wèn)題。VHDL是一種全方位的硬件描述語(yǔ)言,包括系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語(yǔ)言的功能,整個(gè)自頂向下或自底向上的電路設(shè)計(jì)過(guò)程都可以用VHDL來(lái)完成。VHDL還具有以下優(yōu)點(diǎn):1) 寬范圍的描述能力。2) 簡(jiǎn)潔明確的代碼描述進(jìn)行復(fù)雜控制
35、邏輯的設(shè)計(jì),靈活且方便。3) 不依賴于特定的器件,方便工藝的轉(zhuǎn)換。4) 可移植性好。5) 描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,適用于可編程邏輯芯片的應(yīng)用設(shè)計(jì)11。3.2 時(shí)鐘管理模塊的設(shè)計(jì)與實(shí)現(xiàn)在本設(shè)計(jì)中,模擬部分與數(shù)字部分的所有時(shí)鐘經(jīng)FPGA統(tǒng)一產(chǎn)生,以方便對(duì)整個(gè)系統(tǒng)的控制與調(diào)試。時(shí)鐘控制模塊使用100MHz的有源晶振產(chǎn)生系統(tǒng)基準(zhǔn)時(shí)鐘,F(xiàn)PGA內(nèi)含有PLL,可以進(jìn)行時(shí)鐘的分頻與倍頻,但由于其最小頻率為20MHz,滿足不了本設(shè)計(jì)的需求,因此單獨(dú)編寫(xiě)了一個(gè)時(shí)鐘分頻模塊,通過(guò)將100MHz進(jìn)行4次分頻,產(chǎn)生所需的時(shí)鐘頻率。包括數(shù)據(jù)采集模塊所需的50/10MHZ時(shí)鐘、數(shù)據(jù)緩沖模塊(FIFO)所需的
36、5/1MHz讀時(shí)鐘。時(shí)鐘管理模塊的示意圖如圖3.3所示:圖3.3 時(shí)鐘管理模塊其內(nèi)部主要程序?yàn)椋ㄒ?MHz為例):architecture behave of clk_b is signal clk: std_logic;signal temp: integer range 0 to 19; /對(duì)100MHz進(jìn)行20分頻begin process(clk)-5MHZbeginif clk'event and clk='1' thentemp<=temp+1;if temp=9 then /計(jì)數(shù)到9時(shí)翻轉(zhuǎn),實(shí)現(xiàn)分頻clk<=not clk;temp<=0
37、;end if;end if;end process;在Quartus II中調(diào)用自帶仿真工具對(duì)時(shí)鐘控制模塊進(jìn)行時(shí)序仿真,仿真波形如圖3.4所示:圖3.4 時(shí)鐘控制模塊仿真波形如圖所示,使用VHDL編寫(xiě)的分頻模塊產(chǎn)生了數(shù)據(jù)采集與緩存模塊所需的時(shí)鐘頻率,通過(guò)仿真驗(yàn)證時(shí)鐘控制模塊功能滿足設(shè)計(jì)要求。3.3 數(shù)據(jù)采集控制模塊的設(shè)計(jì)與實(shí)現(xiàn)為了實(shí)現(xiàn)對(duì)于數(shù)據(jù)采集的控制,需要完成對(duì)AD的時(shí)序控制。本設(shè)計(jì)采用了實(shí)現(xiàn)時(shí)序控制的一種很重要的工具 狀態(tài)機(jī)。3.3.1 狀態(tài)機(jī)介紹狀態(tài)機(jī)是一種很重要的時(shí)序電路,是許多數(shù)字電路的核心部件。狀態(tài)機(jī)的一般形式如圖3.5所示。除了輸入信號(hào)、輸出信號(hào)外,狀態(tài)機(jī)還包括一組寄存器,它用
38、于記憶狀態(tài)機(jī)的內(nèi)部狀態(tài)。狀態(tài)機(jī)寄存器的下一個(gè)狀態(tài)及輸出,不僅同輸入信號(hào)有關(guān),而且還于寄存器當(dāng)前狀態(tài)有關(guān)12。圖3.5 狀態(tài)機(jī)的結(jié)構(gòu)示意圖3.3.2 AD9288時(shí)序控制的設(shè)計(jì)與仿真圖3.6為AD9288的工作時(shí)序圖,以兩通道加入相同的模擬信號(hào),相同的時(shí)鐘時(shí),A通道數(shù)據(jù)轉(zhuǎn)換為例,介紹AD9288的工作過(guò)程。當(dāng)S1,S2為0時(shí),A、B通道處于STANBY(備用狀態(tài)),則A/D變換器不進(jìn)行采樣,當(dāng)S1為1S2為0時(shí),AD9288在編碼時(shí)鐘(ENCODE)的控制下進(jìn)行工作,且A、B通道相互獨(dú)立。在ENCODE的上升沿TA(300ps)到來(lái)后開(kāi)始對(duì)該時(shí)刻信號(hào)值(記為第N點(diǎn))采樣,到下一個(gè)時(shí)鐘脈沖上升沿到
39、來(lái)前,該采樣值一直為保持狀態(tài),等待8個(gè)脈沖之后從A通道輸出;當(dāng)下一個(gè)時(shí)鐘脈沖上升沿到來(lái)后,對(duì)該時(shí)刻信號(hào)值(記為第N+1點(diǎn))值采樣,同樣于8個(gè)脈沖之后從通道A輸出。圖3.6 AD9288工作時(shí)序圖3.7為控制AD9288的采樣狀態(tài)圖,由于AD9288轉(zhuǎn)換數(shù)據(jù)速度非常快,所以周期短,只需兩個(gè)狀態(tài)表示其轉(zhuǎn)換過(guò)程。并把轉(zhuǎn)化過(guò)程簡(jiǎn)化為外部輸入模擬信號(hào)脈沖頻率為AD編碼時(shí)鐘ENC的2倍。由狀態(tài)圖可以看到,在狀態(tài)st0中ENC信號(hào)由低變高,對(duì)該時(shí)刻的信號(hào)值(記為第N點(diǎn))進(jìn)行采樣量化編碼,在狀態(tài)st1中ENC信號(hào)由高變低,這時(shí)輸出的為第N-4點(diǎn),同時(shí)由狀態(tài)機(jī)向FPGA中鎖存信號(hào)(LOCK的上升沿),將9288
40、輸出的數(shù)據(jù)進(jìn)行鎖存。3.7 控制AD9288采樣狀態(tài)圖由AD9288狀態(tài)圖生成的模塊如圖3.8所示:圖3.8 control9288其主要VHDL程序如下:TYPE states IS (st0,st1); /定義狀態(tài)st0、st1SIGNAL current_state, next_state: states:=st0;SIGNAL REGL :STD_LOGIC_VECTOR(7 DOWNTO 0):="00000000"SIGNAL LOCK :STD_LOGIC;BEGINDFS<='0'LOCK1<=LOCK; /將輸出數(shù)據(jù)格式設(shè)定為原
41、碼形式PRO:PROCESS (current_state) BEGINCASE current_state ISWHEN st0=> ENCA<='1'ENCB<='1'LOCK<='0' /狀態(tài)0操作 next_state<=st1;WHEN st1=> ENCA<='0'ENCB<='0'LOCK<='1' /狀態(tài)1操作 next_state<=st0;END CASE;END PROCESS PRO;PROCESS(CLK)BEGI
42、NIF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; /在時(shí)鐘上升沿時(shí)改變狀態(tài)END IF;END PROCESS;PROCESS(LOCK)BEGINIF LOCK='1' AND LOCK'EVENT THEN REGL<=DA; /將轉(zhuǎn)換好的并行數(shù)據(jù)鎖存END IF;control9288仿真圖如3.9所示:圖3.9 control9288仿真圖3.3.3 AD7278時(shí)序控制的設(shè)計(jì)與仿真圖3.10為AD7278的工作時(shí)序圖,到第 1 個(gè)脈沖的下沉之后,此后 SDA
43、TA端則開(kāi)始利用數(shù)據(jù)輸出 SDTA 進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第 2 個(gè)脈沖下沉開(kāi)始由SDATA端輸出轉(zhuǎn)換數(shù)據(jù)最高位 DATA7,隨后每一個(gè)脈沖下沉 SDATA 端輸出下一位數(shù)據(jù)。直到第 10 個(gè)脈沖時(shí)發(fā)出最低位數(shù)據(jù) DATA0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。也標(biāo)志著一次 A/D 轉(zhuǎn)換的結(jié)束。最后將 CS 置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了。圖3.10 AD7278工作時(shí)序圖3.11為控制AD7278的采樣狀態(tài)圖,由狀態(tài)圖可以看到,在狀態(tài)st1中需要對(duì)7278對(duì)時(shí)鐘信號(hào)檢測(cè),若未到達(dá)第2個(gè)時(shí)鐘信號(hào)的下降沿,仍需要停留在st1 狀態(tài)中等待,直到檢測(cè)到第2個(gè)時(shí)鐘的下降沿時(shí)轉(zhuǎn)向狀態(tài)st2。在
44、狀態(tài)st3,由狀態(tài)機(jī)向7278發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出命令,這一狀態(tài)周期同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù)。在狀態(tài)st4,由狀態(tài)機(jī)向FPGA中的鎖存信號(hào)(LOCK的上升沿),將9288輸出的數(shù)據(jù)進(jìn)行鎖存,同時(shí)等待2個(gè)時(shí)鐘周期。圖3.11 控制AD7278采樣狀態(tài)圖由ADC9288的狀態(tài)圖生成的模塊如圖3.12所示: 圖3.12 control7278其主要VHDL程序如下:type state is (st0,st1,st2,st3,st4); /定義狀態(tài)st0、st1、st2、st3、st4signal current_state,next_state:s
45、tate:=st0;signal q:std_logic_vector(7 downto 0):="00000000"signal count:std_logic_vector(3 downto 0):="0000"beginCOM:process (current_state,count) begin y<=(others=>'0');case current_state iswhen st0=> cs<='1' lock<='0' /啟動(dòng)A/D轉(zhuǎn)換 next_state&l
46、t;=st1;when st1=> cs<='0' lock<='0' if(count="0001") then /檢測(cè)第2個(gè)時(shí)鐘下降沿 next_state<=st2; else next_state<=st1; end if;when st2=> cs<='0'lock<='0' if (count="1001") then /檢測(cè)8位數(shù)據(jù)是否輸出完畢 next_state<=st3; else next_state<=st2
47、; end if;when st3=> cs<='0'y<=q;lock<='1' if (count="1010") then /8位數(shù)據(jù)采集完輸出2組0 next_state<=st4; else next_state<=st3; end if;when st4=> cs<='1'lock<='0' /鎖存數(shù)據(jù) if (count="1110") then /等待2個(gè)周期 next_state<=st0; else next_s
48、tate<=st4; end if;end case; end process COM;REG:process(clk)begin sclk<=clk; /輸出AD工作時(shí)鐘 if(clk'event and clk='0'and next_state=st2) then /開(kāi)始串并轉(zhuǎn)換 q(0)<=din; for i in 7 downto 1 loop /采集8位串行輸出 q(i)<=q(i-1); end loop; end if; if(clk'event and clk='1') then count<=c
49、ount+1; current_state<=next_state; end if; if(current_state=st0)then count<="0000" end if; control7278仿真圖如3.13所示:圖3.13 control7278仿真圖3.4 數(shù)據(jù)緩存模塊的設(shè)計(jì)與實(shí)現(xiàn)本設(shè)計(jì)中的數(shù)據(jù)緩沖模塊是基于Altera公司的Cyclone系列的FPGA平臺(tái)。本章介紹FPGA的基本原理以及結(jié)構(gòu)組成,然后對(duì)使用的FPGA設(shè)計(jì)軟件與仿真工具做了簡(jiǎn)短的說(shuō)明,接著講述了利用FPGA設(shè)計(jì)的系統(tǒng)時(shí)鐘控制模塊,最后重點(diǎn)介紹基于EP1C6Q240C8N的緩沖結(jié)構(gòu)
50、的設(shè)計(jì)與仿真。3.4.1 FIFO介紹FIFO(First In First Out)是一種采用環(huán)形存儲(chǔ)結(jié)構(gòu)的先進(jìn)先出存儲(chǔ)器。其使用一個(gè)雙端口存儲(chǔ)器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫(xiě)入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù),能夠協(xié)調(diào)好兩個(gè)時(shí)鐘域的工作,滿足高時(shí)鐘頻率的要求。FIFO在FPGA設(shè)計(jì)中主要用來(lái)緩沖數(shù)據(jù)和隔離時(shí)鐘或相位差異。訪問(wèn)FIFO時(shí)不需要地址線,只需要數(shù)據(jù)線和讀寫(xiě)控制信號(hào)線,且數(shù)據(jù)地址由內(nèi)部讀寫(xiě)指針自動(dòng)加1完成,因此利用FIFO實(shí)現(xiàn)數(shù)據(jù)的緩存具有接口簡(jiǎn)單、讀寫(xiě)方便的優(yōu)點(diǎn)13。根據(jù)FIFO的工作時(shí)鐘,可將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時(shí)鐘和寫(xiě)時(shí)鐘為同一個(gè)時(shí)鐘,在時(shí)鐘沿
51、來(lái)臨時(shí)同時(shí)進(jìn)行讀寫(xiě)操作;異步FIFO是指讀寫(xiě)時(shí)鐘不是同一個(gè)時(shí)鐘,而是相互獨(dú)立的。實(shí)際上,工作在同一時(shí)鐘的FIFO很少用到,多數(shù)都是讀寫(xiě)時(shí)鐘獨(dú)立的異步FIFO。本文設(shè)計(jì)的異步FIFO位寬為8,深度(即FIFO可以存儲(chǔ)8位數(shù)據(jù)的個(gè)數(shù))為256。 3.4.2 FIFO的實(shí)現(xiàn)與仿真本設(shè)計(jì)中FPGA采用的是Altera Cyclone系列中的EP1C6Q240C8N??梢岳迷撔酒瑑?nèi)部資源在FPGA內(nèi)部實(shí)現(xiàn)異步FIFO模塊。產(chǎn)生的FIFO模塊如圖3.14所示:圖3.14 系統(tǒng)中的FIFO實(shí)現(xiàn)如果系統(tǒng)的讀時(shí)鐘頻率大于寫(xiě)時(shí)鐘頻率,就有可能出現(xiàn)讀空的情況;如果系統(tǒng)的寫(xiě)時(shí)鐘頻率大于讀時(shí)鐘頻率,就可能出現(xiàn)寫(xiě)滿的情
52、況。在實(shí)際系統(tǒng)中,一般都設(shè)置寫(xiě)時(shí)鐘頻率大于讀時(shí)鐘頻率,故本文只考慮后一種情況。本系統(tǒng)采用Quartus II 7.0對(duì)系統(tǒng)進(jìn)行仿真,由于系統(tǒng)深度較大,所以設(shè)定仿真時(shí)間為100 s。系統(tǒng)剛上電時(shí),F(xiàn)IFO中暫時(shí)沒(méi)有數(shù)據(jù),此時(shí)系統(tǒng)處于讀空狀態(tài),empty變?yōu)楦唠娖?,full保持低電平,如圖3.15所示。隨FIFO中數(shù)據(jù)的不斷寫(xiě)入,系統(tǒng)進(jìn)入寫(xiě)滿狀態(tài),此時(shí)full變?yōu)楦唠娖?,而empty變?yōu)榈碗娖?,如圖3.16所示。圖3.15 系統(tǒng)上電后的讀空狀態(tài)圖圖3.16 系統(tǒng)上電后的寫(xiě)滿狀態(tài)圖3.5 總體電路圖將上文中設(shè)計(jì)的時(shí)鐘管理模塊、數(shù)據(jù)采集控制模塊及數(shù)據(jù)緩存模塊綜合,生成頂層模塊,即總體電路圖。3.5.1
53、 并行AD控制電路圖3.17 并行AD控制電路如圖3.17所示,clk_b為時(shí)鐘管理模塊,負(fù)責(zé)為數(shù)據(jù)采集控制模塊提供工作時(shí)鐘,并為異步FIFO提供讀時(shí)鐘;control2為數(shù)據(jù)采集控制模塊,負(fù)責(zé)將AD9288轉(zhuǎn)換好的8位數(shù)據(jù)通過(guò)時(shí)序控制寫(xiě)入FIFO,并通過(guò)輸出ENCA、ENCB為AD9288提供工作時(shí)鐘,LOCK1信號(hào)為FIFO提供寫(xiě)時(shí)鐘;fifo為數(shù)據(jù)緩存模塊,負(fù)責(zé)將數(shù)據(jù)采集控制模塊傳輸?shù)臄?shù)據(jù)緩存,可通過(guò)讀時(shí)鐘將數(shù)據(jù)讀出。3.5.2 串行AD控制電路 圖3.18 串行AD控制電路如圖3.18所示,clk_b為時(shí)鐘管理模塊,負(fù)責(zé)為數(shù)據(jù)采集控制模塊提供工作時(shí)鐘,并為異步FIFO提供讀時(shí)鐘;chuan為數(shù)據(jù)采集控制模塊,負(fù)責(zé)將AD7278轉(zhuǎn)換好的串行數(shù)據(jù)通過(guò)時(shí)序控制變成8位并行數(shù)據(jù)并寫(xiě)入FIFO,通過(guò)輸出sclk為AD9288提供工作時(shí)鐘,lock信號(hào)為FIFO提供寫(xiě)時(shí)鐘;fif
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津商務(wù)職業(yè)學(xué)院《篆刻臨摹與創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川機(jī)電職業(yè)技術(shù)學(xué)院《安裝工程預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京語(yǔ)言大學(xué)《民法學(xué)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南推拿職業(yè)學(xué)院《物理化學(xué)B(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 開(kāi)封文化藝術(shù)職業(yè)學(xué)院《遙感概論實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 南通理工學(xué)院《微生物學(xué)前沿進(jìn)展》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海海洋大學(xué)《國(guó)際商務(wù)談判實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 二零二五年度2025年菜金發(fā)票開(kāi)具與稅務(wù)籌劃服務(wù)合同
- 2025年耕地租賃合同附農(nóng)業(yè)土地經(jīng)營(yíng)權(quán)抵押貸款服務(wù)協(xié)議
- 《招聘與應(yīng)聘技巧》課件
- 2024-2030年中國(guó)ODM服務(wù)器行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 六年級(jí)下健康教案設(shè)計(jì)
- 室內(nèi)裝飾拆除專項(xiàng)施工方案
- 醫(yī)院院外會(huì)診申請(qǐng)單、醫(yī)師外出會(huì)診審核表、醫(yī)師外出會(huì)診回執(zhí)
- 鋼筋工程精細(xì)化管理指南(中建內(nèi)部)
- 2024年山西省高考考前適應(yīng)性測(cè)試 (一模)英語(yǔ)試卷(含答案詳解)
- 教科版六年級(jí)下冊(cè)科學(xué)第三單元《宇宙》教材分析及全部教案(定稿;共7課時(shí))
- 2024年中國(guó)鐵路投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 干部人事檔案數(shù)字化 制度
- 經(jīng)營(yíng)開(kāi)發(fā)部工作目標(biāo)責(zé)任書(shū)
- 小班繪本教學(xué)《藏在哪里了》課件
評(píng)論
0/150
提交評(píng)論