基于FPGA的多通道采樣系統(tǒng)設(shè)計課程設(shè)計論文
《基于FPGA的多通道采樣系統(tǒng)設(shè)計課程設(shè)計論文》由會員分享,可在線閱讀,更多相關(guān)《基于FPGA的多通道采樣系統(tǒng)設(shè)計課程設(shè)計論文(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 FPGA課程設(shè)計 題 目:基于FPGA的多通道采樣系統(tǒng)設(shè)計 院 (系):電氣工程及其自動化學(xué)院 專 業(yè):電子信息工程12-01 20 摘 要 本論文介紹了基于FPGA的多通道采樣系統(tǒng)的設(shè)計。用FPGA設(shè)計一個多通道采樣控制器,利用VHDL語言設(shè)計有限狀態(tài)機來實現(xiàn)對AD7892的控制。由于FPGA器件的特性是可以實現(xiàn)高速工作,為此模擬信號選用音頻信號。由于音頻信號的頻率是20Hz-20KHz,這樣就對AD轉(zhuǎn)換的速率有很高的要求.因為FPGA的
2、功能很強大,所以我們把系統(tǒng)的許多功能都集成到FPGA器件中,例如AD通道選擇部分,串并輸出控制模塊,這樣使得整個系統(tǒng)的外圍電路簡單、系統(tǒng)的穩(wěn)定性強。FPGA的配置模式選用被動串行模式,這樣就增強了系統(tǒng)的可擴展性。輸出模式可選擇性使得系統(tǒng)的應(yīng)用相當廣泛,串行輸出可以用于通信信號的采集,方便調(diào)制后發(fā)射到遠程接受端,遠程接收端對采集的數(shù)據(jù)進行解調(diào);而并行輸出模式則可以通過高速存儲器將采集的信號放到微機或者其他的處理器上,根據(jù)采集的數(shù)據(jù)進行相應(yīng)的控制。此系統(tǒng)的缺點是由于FPGA器件配置是基于SRAM查找表單元,編程的信息是保持在SRAM中,但SRAM在掉電后編程信息立即丟失,所以每次系統(tǒng)上電都需要重新
3、配置芯片,這對在野外作業(yè)的工作人員很不方便,解決的方法是專用的配置器件來配置FPGA,在每次系統(tǒng)上電的時候會自動把編程信息配置到FPGA芯片中。但設(shè)計中沒有采用到這種配置方案主要是考慮到專用配置器件的價格問題。 本文開始介紹了多通道系統(tǒng)的組成部分,然后分別介紹了各個組成部分的原理和設(shè)計方法,其中重點介紹了FPGA軟件設(shè)計部分。還對當前十分流行的基于FPGA的設(shè)計技術(shù)作了簡單的闡述,最后對系統(tǒng)的調(diào)試和應(yīng)用作了簡短的說明。 關(guān)鍵詞:音頻放大;濾波器;FPGA;VHDL;AD7892;有限狀態(tài)機; 目 錄 摘要 2 引言3
4、 1 題目來源3 2 研究意義3 3 多通道采樣系統(tǒng)的組成3 4 方案設(shè)計4 5 單元電路的設(shè)計4 5.1音頻放大、濾波部分4 (1)音頻放大部分 4 (2)有源濾波器的設(shè)計 4 5.2 AD采樣電路5 5.3 FPGA控制部分5 (1)通道選擇模塊 6 (2)延時模塊的設(shè)計 6 (3)串并輸出選擇控制 7 5.4 FPGA的硬件設(shè)計 8 6 軟件介紹 8 7 整機調(diào)試8 7.1 硬件電路的調(diào)試步驟8 (1)音頻放大部分調(diào)試 8 (2)濾波部分調(diào)試 8 (3)FPGA硬件電路調(diào)試 9 (4)AD采樣模塊調(diào)試 9 (5)
5、 聯(lián)機調(diào)試9 8 結(jié)論9 參考文獻10 附錄11 引言 FPGA(Field-Programmable Gate Array 現(xiàn)場可編程門陣列)是近年來廣泛應(yīng)用的超大規(guī)模、超高速的可編程邏輯器件,由于其具有高集成度(單片集成的系統(tǒng)門數(shù)達上千萬門)、高速(200MHz以上)、在線系統(tǒng)可編程等優(yōu)點,為數(shù)字系統(tǒng)的設(shè)計帶來了突破性變革,大大推動了數(shù)字系統(tǒng)設(shè)計的單片化、自動化,提高了單片數(shù)字系統(tǒng)的設(shè)計周期、設(shè)計靈活性和可靠性。在超高速信號處理和實時測控方面有非常廣泛
6、的應(yīng)用。 硬件描述語言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語言。VHDL是硬件描述語言的幾種代表性語言的一種。VHDL(Very High Speed Integrated Circuit Hardware Description Language 即超高速集成電路硬件描述語言)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,與其它的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。用VHDL設(shè)計的程序,通過綜合工具產(chǎn)生網(wǎng)表文件,下載到目標器件,從而生成硬件電路。VHDL還是一種仿真語言,包括行為仿真、功能仿真和時序仿真,給系統(tǒng)設(shè)計各個階
7、段的可行性做出了決策。 1 題目來源 課程設(shè)計庫 2 研究意義 數(shù)據(jù)采集在現(xiàn)代工業(yè)生產(chǎn)以及科學(xué)研究中的重要地位日益突出,并且實時高速數(shù)據(jù)采集的要求也不斷提高,在信號測量、圖像處理,音頻信號處理等一些高速、高精度的測量中,都需要進行高速數(shù)據(jù)采集。本次設(shè)計就是用FPGA實現(xiàn)采樣系統(tǒng),來實現(xiàn)音頻信號的數(shù)據(jù)采集。 3 多通道采樣系統(tǒng)的組成 本系統(tǒng)硬件電路包括FPGA設(shè)計的多通道采樣控制器和相應(yīng)的通道選擇電路,A/D轉(zhuǎn)換電路,由于采樣音頻信號,所以需要設(shè)計音頻的放大和濾波電路。系統(tǒng)組成部分如圖2.1所示: 通道選擇部分 音頻放大、濾波部分 信號1
8、 模擬信號輸入 信號2 AD轉(zhuǎn)換部分 控制 FPGA控制的通道選擇和AD控制部分 信號7 控制采樣
9、 信號8 數(shù)字信號存儲 輸出 圖2.1 多通道系統(tǒng)的組成 4 方案設(shè)計 用FPGA實現(xiàn)一個3位8進制的計數(shù)器,記數(shù)脈沖是FPGA鎖存AD轉(zhuǎn)換數(shù)據(jù)的鎖存信號,計數(shù)器的輸出作為數(shù)據(jù)開關(guān)CD4051的地址。用有限狀態(tài)機來實現(xiàn)對AD7892的控制,這樣電路實現(xiàn)比較簡單,而且AD7892的采樣速率可以達到500KHz,可以實現(xiàn)8個通道同時8路音頻信號采集。同時采用FIFO模塊,讓數(shù)字數(shù)據(jù)先存到隊列中,一邊往隊列中寫數(shù)據(jù),一邊從隊列中讀數(shù)據(jù),這樣就對數(shù)字數(shù)據(jù)起了一個高速緩存的作用,更加快了整個系統(tǒng)的運行速度。 5 單元電路的設(shè)計 系統(tǒng)
10、可以分為4個大部分,分別是音頻放大、濾波部分,F(xiàn)PGA控制部分,AD采樣電路,F(xiàn)PGA硬件電路的設(shè)計。其中以FPGA控制部分為主體部分,它涉及到AD采樣控制,通道選擇控制,串并輸出模式選擇模塊,延時模塊以及FIFO模塊介紹。這些模塊的實現(xiàn)是系統(tǒng)實現(xiàn)的關(guān)鍵。下面分別對系統(tǒng)的這些單元電路做詳細的闡述。 5.1 音頻放大、濾波部分 (1)音頻放大部分 音源采用普通CD輸出的音頻信號,它產(chǎn)生輸出的信號的幅度約有300mV左右,根據(jù)設(shè)計AD7892的輸入電壓是10V,選擇放大器的放大倍數(shù)在10-30之間,通過一個精密可調(diào)電阻來調(diào)節(jié)放大倍數(shù)。音頻放大芯片NE5532特性是雙運放、寬頻帶、低噪聲、轉(zhuǎn)換
11、速率大、電源范圍廣。 (2)有源濾波器的設(shè)計 在一個實際的電子系統(tǒng)中,輸入信號往往因受干擾等原因而含有一些不必要的成份,應(yīng)設(shè)法將干擾衰減到足夠小的程度。在其他一些情況,我們需要的信號和干擾信號混在一起,如果這兩個信號在頻率成分上有較大的差別,就可以用濾波的方法將所需要的信號濾出。為了解決上述問題,可采用濾波電路。濾波器包括電抗性元件L、C構(gòu)成的無源濾波器、由集成運算放大器組成的有源濾波器、以及晶體濾波器等。本次設(shè)計需要的通帶頻率范圍是20Hz-20KHz,如果用有源帶通濾波器來實現(xiàn),考慮到該帶通濾波器的上下截止頻率之比20000/20=1000,大于一個倍頻程,為一個寬帶濾波器,所以采用一
12、個低通濾波器和一個高通濾波器級聯(lián)來實現(xiàn)帶通濾波。 有源帶通濾波電路分成兩個部分,高通部分和低通部分,圖4.2是20HZ的高通濾波器,圖5.3是20KHZ的低通濾波器。 圖5.2 低通濾波器電路圖 圖5.3 高通濾波器電路圖 音頻信號經(jīng)過音頻放大電路放大后就進入了上圖的電路。經(jīng)過20HZ-20KHZ的帶通濾波電路進行濾波。 5.2 AD采樣電路 由于人的耳朵能識別的音頻的頻率范圍是20Hz-20KHz,根據(jù)奈魁斯特(NYQUIST)采樣定理知道,要使采樣后的數(shù)字信號能恢復(fù)成模擬信號,采樣的頻率必須是模擬信號的頻率的兩倍,即本次采樣系統(tǒng)的采樣頻率最低要設(shè)計在40KHz,而一般C
13、D格式的音頻信號的采樣頻率是44.1KHz,由于是8路通道的采樣,所以AD芯片的最低采樣頻率應(yīng)該是44.1KHz8=352.8KHz,所以選擇采樣頻率為500KHz的AD7892。這樣我們每個通道的采樣頻率就是500KHz/8=62.5KHz。 5.3 FPGA控制部分 (1)通道選擇模塊 通道選擇部分是一個二進制模8的計數(shù)器,計數(shù)器的時鐘是AD數(shù)字信號的鎖存信號,每次鎖存數(shù)據(jù)后,計數(shù)器就會一次進行加一操作,CD4051選擇下一個通道的音頻信號進行采集。在MAX+PlusⅡ中用VHDL語言設(shè)計圖形如下圖5.8所示: 圖5.8 通道選擇部分 通過CNT[0]到CNT[2]來選擇相應(yīng)
14、的通道,CD4051的輸出就是最后要進行AD采樣的音頻信號。例如:若CNT[0]CNT[1]CNT[2]=“000”,則選擇第一通道音頻信號進行AD采樣。這個部分實現(xiàn)的重點是對數(shù)字鎖存信號記數(shù),計數(shù)器的輸出作為CD4051的通道選擇地址。 通道選擇部分的主體程序如下: 二進制模8計數(shù)器 signal q:std_logic_vector(2 downto 0); begin counter:process(clk) begin if(clkevent and clk=1) then if q="111" then
15、 q<="000"; else q<=q+1; end if; end if; cnt<=q; end process; 通道選擇模塊的仿真圖如圖5.9所示: 圖5.9 通道模塊仿真圖 (2)延時模塊的設(shè)計 在采樣控制部分的狀態(tài)機中也加入了輸出數(shù)據(jù)編碼部分,因為是循環(huán)采集8路的模擬信號,而輸出為一路輸出,這樣就需要對輸出信號進行標志,方法就是把12位數(shù)據(jù)轉(zhuǎn)換為16位數(shù)據(jù),第一位是0,第二位到第四位是標志位,標志是哪一通道數(shù)字信號,如果是串行輸出的時候可以讓接受方知道是第幾通道的數(shù)據(jù)。又因為數(shù)字信
16、號數(shù)據(jù)鎖存信號是比通道選擇信號早一個周期,所以要加一個延時模塊,這樣就可以實現(xiàn)每次鎖存了通道的標志位和采樣的數(shù)據(jù)。通過程序來實現(xiàn)對通道選擇信號的延時。如果當前選擇第3個通道采樣,那么通道選擇信號就是“011”,在這個通道信號采集完畢后鎖存信號就會使計數(shù)器進行加1操作,這樣通道選擇信號就是“100”,而這個時候鎖存的數(shù)據(jù)需要“011”,所以將標志位信號通過“100”的延時一個時鐘周期變成“011”即可。VHDL完成可以勝任。 延時模塊程序主體部分 process(in1,in2,in3) begin comin<=in3&in2&in1; case comin is
17、 when "000"=> comout<="111"; when "001"=> comout<="000"; when "010"=> comout<="001"; when "011"=> comout<="010"; when "100"=> comout<="011"; when "101"=> comout<="100"; when "110"=> comout<="101"; when "111"=> comout<="110
18、"; when others=>comout<="ZZZ"; end case; out1<=comout(0);out2<=comout(1);out3<=comout(2); end process; (3)串并輸出選擇控制 從AD控制模塊輸出的數(shù)據(jù)是并行16位數(shù)據(jù)。串行輸出的原理是:通過一個16選1的數(shù)據(jù)選擇器連續(xù)選擇輸出的并行16位數(shù)據(jù),數(shù)據(jù)選擇器的選擇信號是一個對系統(tǒng)時鐘記數(shù)的二進制模16的計數(shù)器輸出,這樣就可以實現(xiàn)將并行16位數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。通過外部輸入信號P/S可以實現(xiàn)是串行輸出還是并行輸出,如果P/S是低電平,就選通16選
19、1的選擇器,禁止16個與門的輸出,此時為串行輸出;如果P/S為高電平,則禁止16選1的選擇器,同時打開16個與門,此時為并行16位輸出。輸出模式可選擇性使得系統(tǒng)的應(yīng)用相當廣泛,串行輸出可以用于通信信號的采集,方便調(diào)制后發(fā)射到遠程接受端,遠程接收端對采集的數(shù)據(jù)進行解調(diào);而并行輸出模式則可以通過高速存儲器將采集的信號放到微機或者其他的處理器上,根據(jù)采集的數(shù)據(jù)進行相應(yīng)的控制。 5.4 FPGA的硬件設(shè)計 本次設(shè)計選用的FPGA芯片是ALTERA公司的ACEX1K系列的EP1K30TC144-3。由于它的高密度和易于在設(shè)計中實現(xiàn)復(fù)雜宏函數(shù)和存儲器,因此可以把一個子系統(tǒng)集成在單一芯片上,EP1K30
20、包括一個嵌入式陣列,這為設(shè)計人員提供了有效的嵌入式門陣列和靈活的可編程邏輯。嵌入式陣列是由一系列嵌入式陣列塊(EAB)組成的,它能夠用來實現(xiàn)各種存儲器和復(fù)雜邏輯功能;該器件也提供多電壓I/O接口操作。它允許器件橋架在不同電壓工作的系統(tǒng)中。比如本次系統(tǒng)設(shè)計器件的I/O輸出就是2.5V,這樣不但使FPGA芯片工作安全,也可以讓AD7892能工作安全狀態(tài)。 6 軟件介紹 在實驗中主要使用了MAX+PlusⅡ、EWB、以及Protel99se三種軟件,其中,Max PlusⅡ主要完成對FPGA芯片的編程,仿真,芯片引腳鎖定以及編程在線配置等操作,EWB主要用于對放大、濾波電路作分析與設(shè)計,并以分
21、析為主,尤其是EWB能提供一個虛擬的實驗室,可以對電路和系統(tǒng)進行十分逼真的模擬;Protel99se則是整個電路設(shè)計PCB的重要工具?,F(xiàn)分別對這三種軟件進行介紹,其中重點介紹使用MAX+PlusⅡ的常用基本設(shè)計方法。 7 整機調(diào)試 7.1硬件電路的調(diào)試步驟 在硬件電路中用到了音頻放大、濾波電路,電源穩(wěn)壓電路,AD采樣電路,F(xiàn)PGA控制等主要部分,由于電路連線較多而且復(fù)雜,采用的方法是分塊調(diào)試,這樣比較容易發(fā)現(xiàn)問題和解決問題。這種硬件調(diào)試方法在實際應(yīng)用是比較普遍的。 在進行硬件調(diào)試之前,首先要檢查電路板,看看電路板上的線路是否有短路、虛焊或者是斷路的情況,如果有則要修正它,如果沒有就可
22、以進行各個模塊的調(diào)試。 (1)音頻放大部分調(diào)試 對音頻放大部分調(diào)試需要一個函數(shù)信號發(fā)生源,一個示波器,一個萬用表和提供放大器電源的直流穩(wěn)壓電源。首先,給NE5532加上+12V的電源,使之工作起來,用萬用表檢查NE5532除了正負電源引腳的電壓,電壓接近為零,這表明放大器正常工作,在輸入端輸入頻率為1KHz,幅度為300mV的正弦波,用示波器觀察輸出端的波形,可以看到輸出幅度為5.3V的正弦波,正弦波中包含了很多高頻干擾,這是由于周圍的干擾在放大器的放大作用,使得干擾成為一個明顯波形出現(xiàn)在示波器上,通過濾波器后可以濾掉這些干擾。調(diào)節(jié)可調(diào)電阻,可以觀察到輸出波形的幅度變化。接上音源,可以看到
23、示波器有不規(guī)則波形輸出,增大音源的音量可以看到輸出波形的幅度也隨之增大,只是這不規(guī)則波形中混有很多的干擾,通過濾波器后可以濾掉這些干擾。這表明音頻放大部分工作正常,達到設(shè)計要求。 (2)濾波部分調(diào)試 對濾波部分調(diào)試需要一個函數(shù)信號發(fā)生源,一個示波器,一個萬用表和提供放大器電源的直流穩(wěn)壓電源。首先,給LM324加上+12V的電源,使之工作起來,用萬用表檢查LM324除了正負電源引腳的電壓,電壓接近為零,這表明濾波器的放大器正常工作。輸入1KHZ,300mv的正弦波信號,經(jīng)過音頻放大電路放大后得到的1KHZ,5.3V的正弦波信號從輸入點進入濾波電路。調(diào)試過程中發(fā)現(xiàn)示波器中的波形一直有一定高頻和
24、低頻的干擾,檢查電路沒有錯誤,最后判斷是電源的干擾,在電源輸入端加上一個大電容和一個小電容分別濾掉電源的高頻干擾和低頻干擾,再調(diào)試可以看到完整的正弦波波形。減少輸入信號的頻率到10HZ,可以看到當頻率減到20HZ的時候,輸出信號的幅度逐漸變小,這表明高通濾波部分已實現(xiàn)其功能,濾掉小于20HZ的低頻干擾;然后慢慢增加輸入信號的頻率到30KZ左右,可以看當頻率大于18KHZ的時候,輸出信號的幅度開始減小,達到20KHZ,輸出信號幅度衰減到通帶內(nèi)的幅度的75%,大于20KZ后,輸出幅度小于通帶內(nèi)幅度一半,達到衰減的目的,這表明低通濾波器也實現(xiàn)了其功能。整個濾波器部分調(diào)試完畢,達到設(shè)計要求。 (
25、3)FPGA硬件電路調(diào)試 這部分調(diào)試是整個調(diào)試的主體,包括對有源晶振的調(diào)試,配置電路的調(diào)試。 (4)AD采樣模塊調(diào)試 將實現(xiàn)AD采樣的狀態(tài)機程序單獨寫成一個文件,選擇器件和鎖定引腳后,配置到FPGA芯片中,模擬信號采用+5V電源,在調(diào)試過程中,發(fā)現(xiàn)AD采樣在工作若干次后,就會出現(xiàn)“死機”現(xiàn)象,分析知道,在采樣過程中會出現(xiàn)控制AD開始采樣的CONV信號丟失現(xiàn)象,導(dǎo)致AD無限期等待采樣開始信號CONV,而狀態(tài)機又無限期等待采樣結(jié)束信號EOC,這樣就使得狀態(tài)機進入“死機”狀態(tài)。解決的方法是加入一段“看門狗”程序,當狀態(tài)機進入死機狀態(tài)后,用一個變量判斷狀態(tài)機是否等待超過一個采樣周期,如果超過,就
26、復(fù)位狀態(tài)機,使狀態(tài)機重新進入開始狀態(tài)。這樣就可以解決狀態(tài)機的“死機”現(xiàn)象了。加入“看門狗”程序后,通過示波器可以看到12位數(shù)據(jù)的任何一位的電平信號。這樣AD采樣部分就調(diào)試完畢。 (5)聯(lián)機調(diào)試 聯(lián)機調(diào)試需要實驗工具有:示波器,穩(wěn)壓電源,EDA實驗臺,PC機,ByteBlaster(MV)下載電纜。按照圖2.1中各模塊連接順序連接好整個采樣系統(tǒng),分別接上12V的放大器工作電壓,+5V的AD采樣電壓和+2.5V的FPGA芯片工作電壓,把串并選擇端口選擇串行輸出,也即將短路帽短路,這樣輸入到器件是低電平。將示波器連接到串行輸出口,用EDA實驗臺上的下載電路連接PC機上的打印并行口和硬件電路板上的
27、下載口,可以看到示波器有高低的電平輸出。將串并選擇端口選為并行輸出,也即將短路帽斷開,這樣輸入到器件是高電平,任意選擇一位連接到示波器,也可以看到有高低電平輸出。通過調(diào)試可以證實整個高速多通道采樣系統(tǒng)基本實現(xiàn),聯(lián)機調(diào)試完畢。 8 結(jié)論 本次設(shè)計采用FPGA實現(xiàn)采樣系統(tǒng),從而系統(tǒng)具有高速、穩(wěn)定、低功耗等特點,音頻模擬信號經(jīng)放大器NE5532放大后,經(jīng)過8路選擇后,進入濾波器進行濾波,濾掉高頻干擾信號和低頻干擾信號的干擾,然后進入AD7892進行AD采樣,采樣后的12位數(shù)據(jù)通過一個FIFO隊列存儲,最后從FIFO中讀出數(shù)字信號,在串并輸出模式的選擇下在示波器上顯示出來。 本系統(tǒng)基本
28、達到了預(yù)期的設(shè)計,但還有一些不足之處,例如:在對FIFO隊列的讀寫操作中是通過狀態(tài)機來實現(xiàn)的,但這樣FIFO隊列就只起了一個緩存的作用。由于本人水平有限,無法實現(xiàn)其存儲后再進行讀寫的操作,懇請各位老師多多批評指教。 多通道采樣系統(tǒng)應(yīng)用十分廣泛,特別是在控制系統(tǒng)上的應(yīng)用,比如說溫度,濕度等,通過傳感器把模擬信號采集到微機或者控制部分,根據(jù)采集的數(shù)據(jù)來對系統(tǒng)進行相應(yīng)的控制,同時基于FPGA的多通道采樣系統(tǒng)的實現(xiàn),為一些特殊領(lǐng)域的實時測控提供了一個簡單、靈活、可靠的方案. 參考文獻 [1] 張亦華.數(shù)字電路EDA入門—VHDL程序?qū)嵗痆M].北京:北京郵電大學(xué)出版社,2003.
29、3 [2] 李洋.EDA技術(shù)實用教程[M].北京:機械工業(yè)出版社,2004.7 [3] 肖蕙蕙.傅曉林.數(shù)字電子技術(shù)基礎(chǔ)[M].重慶:重慶大學(xué)出版社,2002.10 [4] 張凱.VHDL實例剖析[M].北京:國防工業(yè)出版社,2004.1 [5] 姜立東.VHDL語言程序設(shè)計及應(yīng)用(第2版)[M].北京:北京郵電大學(xué)出版社,2004.6 附 錄 1 各模塊程序 (1)通道選擇模塊 library ieee; use ieee
30、.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count is port(clk:in std_logic; --cnt:out integer range 0 to 7; cnt : out std_logic_vector(2 downto 0)); --oc : out std_logic); end count; architecture archcount of count is signal q:std_logic_vector(2 down
31、to 0); begin counter:process(clk) begin if(clkevent and clk=1) then if q="111" then q<="000";--oc<=1; else q<=q+1;--oc<=0; end if; end if; cnt<=q; end process; end archcount; (2)延時模塊 library ieee; use ieee.std_logi
32、c_1164.all; entity delay is port(in1,in2,in3:in std_logic; out1,out2,out3:out std_logic); end delay; architecture behav of delay is signal comin:std_logic_vector(2 downto 0); signal comout:std_logic_vector(2 downto 0); begin process(in1,in2,in3) begin comin<=in3&in2&in1; case comin
33、is when "000"=> comout<="111"; when "001"=> comout<="000"; when "010"=> comout<="001"; when "011"=> comout<="010"; when "100"=> comout<="011"; when "101"=> comout<="100"; when "110"=> comout<="101"; when "111"=>
34、comout<="110"; when others=>comout<="ZZZ"; end case; out1<=comout(0);out2<=comout(1);out3<=comout(2); end process; end behav; (3)AD采樣控制模塊 library ieee; use ieee.std_logic_1164.all; entity adcontrol is port(D : in std_logic_vector(11 downto 0); clk,eoc : in std_logic;
35、 b0,b1,b2:in std_logic; wr_en,rd_en : out std_logic; lock0,conv,rd,cs: out std_logic; Q : out std_logic_vector(15 downto 0)); end entity; architecture behav of adcontrol is type states is(st1,st2,st3,st4,st5,st6,st7,st8); signal current_state,nex
36、t_state:states:=st1; signal regl1 : std_logic_vector(11 downto 0); signal regl : std_logic_vector(15 downto 0); signal lock : std_logic; begin lock0 <= lock; com1:process(current_state,eoc) begin case current_state is when st1 => next_state <= st2; when st2 => next_stat
37、e <= st3; when st3 => next_state <= st4; when st4 => if (eoc=1) then next_state <= st4; else next_state <= st5; end if; when st5 => if (eoc=0) then next_state <= st5; else next_state <=st6;
38、 end if; when st6 => next_state <= st7; when st7 => next_state <= st8; when st8 => next_state <= st1; when others => next_state<=st1; end case; end process com1; com2:process(current_state) begin case current_sta
39、te is when st1 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st2 => conv<=0;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st3 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st4 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0;
40、 when st5 => conv<=1;cs<=1;rd<=1;lock<=0; wr_en<=0;rd_en<=0; when st6 => conv<=1;cs<=0;rd<=0;lock<=1; wr_en<=1;rd_en<=0; when st7 => conv<=1;cs<=1;rd<=1;lock<=0; wr_en<=0;rd_en<=1; when st8 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when others => co
41、nv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; end case; end process com2; com3:process(clk) variable dog_count:integer range 0 to 64; variable com3_num_count:integer range 0 to 16553500; begin if(clkevent and clk=1) then current_state<=next_state; --看門狗 if
42、(current_state=st4) then m_watchdog <= s0; end if; if(current_state=st6) then m_watchdog <= s1; dog_count:=0; end if; if(m_watchdog=s0) then dog_count:=dog_count+1; if(dog_count>40) then current_state<=st1; dog_count:=0; end if;
43、 end if; --看門狗 end if; end process com3; latch1:process(lock) begin if lock=1 and lockevent then regl1<=D; end if; end process latch1; regl<=0&b2&b1&b0®l1; Q<=regl1; end behav; (4)串并轉(zhuǎn)換模塊部分程序 library ieee; use ieee.std_logic_1164.all;
44、 use ieee.std_logic_unsigned.all; entity counter4 is port(clk:in std_logic; cnt4 : out std_logic_vector(3 downto 0) ); end counter4; architecture archcount of counter4 is signal q:std_logic_vector(3 downto 0); begin counter:process(clk) begin if(clkevent and clk=1) then if q="1111" then q<="0000"; else q<=q+1; end if; end if; cnt4<=q; end process; end archcount; 1 FPGA頂層設(shè)計圖 3 電路設(shè)計圖 (1)音頻放大 (2)濾波器 (3)AD7892電路
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案