




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計任務(wù)書(指導(dǎo)教師填寫)課程設(shè)計名稱 現(xiàn)代電子系統(tǒng)課程設(shè)計 學生姓名 專業(yè)班級 設(shè)計題目 簡易數(shù)字頻率計設(shè)計 一、 課程設(shè)計目的掌握高速ad的使用方法;掌握頻率計的工作原理;掌握gw48_sopc實驗箱的使用方法;了解基于fpga的電子系統(tǒng)的設(shè)計方法。二、 設(shè)計內(nèi)容、技術(shù)條件和要求設(shè)計一個具有如下功能的簡易頻率計。(1)基本要求: a被測信號的頻率范圍為120khz,用4位數(shù)碼管顯示數(shù)據(jù)。b測量結(jié)果直接用十進制數(shù)值顯示。c被測信號可以是正弦波、三角波、方波,幅值13v不等。d具有超量程警告(可以用led燈顯示,也可以用蜂鳴器報警)。e當測量脈沖信號時,能顯示其占空比(精度誤差不大于1%)
2、。(2)發(fā)揮部分a修改設(shè)計,實現(xiàn)自動切換量程。b構(gòu)思方案,使整形時,以實現(xiàn)擴寬被測信號的幅值范圍。c其它。三、 時間進度安排布置課題和講解:1天 查閱資料、設(shè)計:4天實驗:3天 撰寫報告:2天四、 主要參考文獻何小艇 電子系統(tǒng)設(shè)計 浙江大學出版社 2008.1潘松 黃繼業(yè) eda技術(shù)實用教程 科學出版社 2006.10齊晶晶 現(xiàn)代電子系統(tǒng)設(shè)計實驗指導(dǎo)書 電工電子實驗教學中心 2009.8指導(dǎo)教師簽字: 2011年 11月28日摘 要由于社會發(fā)展和科技發(fā)展的需要,信息傳輸和處理的要求的提高,對頻率的測量精度也提出了更高的要求,需要更高更準確度的時頻基準和更精密的測量技術(shù)。而頻率測量所能達到的精度
3、,主要取決于作為標準頻率源的精度以及所使用的測量設(shè)備和測量方法。目前,國內(nèi)外使用的測頻方法有很多,有直接測頻法、內(nèi)插法、游標法、時間電壓變化法、多周期同步法、頻率倍增法、頻差倍增法以及相位比較法。 在本文中,我們用vhdl語言進行編程并利用fpga芯片設(shè)計了一個簡易數(shù)字頻率計。主要分為如下幾個部分: 一、 adc0809控制模塊: ad0809的工作過程是:輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 ad轉(zhuǎn)換,之后eoc輸出信號變低,指示轉(zhuǎn)換正在進行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖?,指示a
4、d轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當oe輸入高電平時,輸出三態(tài)門打開,ale,start,oe,adda都是adc0809的控制信號,adda為模擬通道選擇,低電平選擇通道0,ale為通道地址鎖存信號,start為啟動ad轉(zhuǎn)換的信號,oe為adc0809轉(zhuǎn)換結(jié)果輸出的使能信號。這部分主要用來控制adc0809完成數(shù)模轉(zhuǎn)換,將模擬信號轉(zhuǎn)換成數(shù)字信號。 二、 比較器模塊:這部分的功能是將前者輸出的信號與它本身設(shè)置好的一個預(yù)值相比較,將數(shù)字信號轉(zhuǎn)換成脈沖信號。此時比較器的作用相當于一個整形電路。三、頻率計計數(shù)模塊:這部分主要用來測量頻率,測頻方法有很多。本次設(shè)計采用的是直接測
5、頻法。具體的方案論證將在下面進行。四、頻率計占空比計數(shù)模塊:這部分主要用來測量占空比,測量方法也有很多,本次設(shè)計用的是等精度法測量。 五、顯示模塊:這部分主要用四個數(shù)碼管來顯示測量的頻率和脈沖信號的占空比,并通過一個按鍵來實現(xiàn)頻率顯示和占空比顯示的轉(zhuǎn)換。關(guān)鍵詞: 頻率、精度、vhdl、fpga、adc0809目 錄一、任務(wù)解析4二、系統(tǒng)方案論證.52.1 總體方案與比較論證.52.2 方案的選擇62.3 系統(tǒng)結(jié)構(gòu)6三、adc0809控制模塊.7四、比較器模塊.10五、頻率計數(shù)和占空比模塊.135.1 頻率計基本原理.135.2 方案論證.13六、顯示模塊.15七、實驗結(jié)果及分析.17八、心得體
6、會.17參考文獻.18附 錄一.19附 錄二.19 一、任務(wù)解析 設(shè)計目標及要求: 被測信號波形:正弦波、三角波和矩形波。測量頻率范圍分二檔:hz檔 和khz檔a被測信號的頻率范圍為120khz,用4位數(shù)碼管顯示數(shù)據(jù)。b測量結(jié)果直接用十進制數(shù)值顯示。c被測信號可以是正弦波、三角波、方波,幅值13v不等。d具有超量程警告(可以用led燈顯示,也可以用蜂鳴器報警)。e當測量脈沖信號時,能顯示其占空比(精度誤差不大于1%)。(2)發(fā)揮部分a修改設(shè)計,實現(xiàn)自動切換量程。b構(gòu)思方案,使整形時,以實現(xiàn)擴寬被測信號的幅值范圍系統(tǒng)原理圖如下二、 系統(tǒng)方案論證2.1總體方案與比較論證數(shù)字頻率計的基本原理是用一個
7、頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下有以下兩種思路:1.利用一個較大的周期信號作為參考信號,計量在一個周期內(nèi)出現(xiàn)的被測信號的數(shù)目,最終我們可以通過計數(shù)器求出信號的頻率。2.利用一個頻率較高來測量,具體來說就是計量被測信號在一個周期內(nèi)的能夠經(jīng)歷多少個參考頻率。因此,同樣也可以測量出具體信號的值。但是,我們可以看到以上的兩種方法本身有一些缺陷。對于第一種方法,如果被測信號的頻率和參考信號的頻率接近的話,那么測量出的結(jié)果就一定會有比較大的誤差。對于第二種方法,如果被測信號的頻率和比較的的話,會造成計數(shù)值的比較大的誤差,因此第二種方法不適合測量低頻率的信號。因此,為了保
8、證測量的精度,就必須采用分段進行測量,也就是在低頻的時候采用第二種方法,在高頻時采用第一種方法。在具體是現(xiàn)實時,又可以采用單片機或者fpga來實現(xiàn),具體有如下方案:方案一:我覺得,如果采用fpga來實現(xiàn),我們可以利用fpga來實現(xiàn)在單片機系統(tǒng)中的計數(shù)部分。這樣可以節(jié)省單片機的系統(tǒng)資源,考慮到在下面的相移網(wǎng)絡(luò)設(shè)計中也需要利用單片機和fpga,但單片機的系統(tǒng)資源相對有限,因此我們建議在這里單片機主要用于控制,而fpga則可以用來進行計數(shù)之類的事情。方案二:分離元件設(shè)計方案:本方案利用大量數(shù)字芯片,通過各種邏輯關(guān)系構(gòu)成,但由于芯片無編程性,如果完成本次大賽的所有要求難度較大,只能完成部分功能,同時電
9、路復(fù)雜。在實際應(yīng)用中存在很多問題。方案三:全部利用fpga來實現(xiàn),即利用fpga產(chǎn)生時鐘。由于fpga的工作頻率比單片機的高很多,因此可以考慮直接利用fpga產(chǎn)生信號的高頻參考頻率,這樣就可以在一定程度上利用前面綜述的第二種方法,同時能夠在誤差范圍內(nèi)滿足誤差要求。但是,利用fpga處理產(chǎn)生參考頻率,有一個最大的問題:這樣會導(dǎo)致在低頻和高頻是。方案四:我們可以以at89c51單片機為核心,利用他內(nèi)部的定時計數(shù)器完成待測信號周期頻率的測量。大致原理如下所述:單片機at89c51內(nèi)部具有2個16位定時計數(shù)器,定時計數(shù)器的工作可以由編程來實現(xiàn)定時、計數(shù)和產(chǎn)生計數(shù)溢出時中斷要求的功能。在定時器工作方式下
10、,在被測時間間隔內(nèi),每來一個機器周期,計數(shù)器自動加1(使用12 mhz時鐘時,每1s加1),這樣以機器周期為基準可以用來測量時間間隔。在計數(shù)器工作方式下,加至外部引腳的待測信號發(fā)生從1到0的跳變時計數(shù)器加1,這樣在計數(shù)閘門的控制下可以用來測量待測信號的頻率。外部輸入在每個機器周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個機器周期(24個振蕩周期),所以最大計數(shù)速率為時鐘頻率的124(使用12 mhz時鐘時,最大計數(shù)速率為500 khz)。定時計數(shù)器的工作由運行控制位tr控制,當tr置1,定時計數(shù)器開始計數(shù);當tr清0,停止計數(shù)。在高頻時,我們可以利用單片機產(chǎn)生一個低頻信號,例如周期為一
11、秒,用來進行測量高頻信號。而在低頻時,我們可以采用單片機發(fā)生一個10k的信號,采用在綜述中所說的第二種方法。2.2方案的選擇我們最終選擇第二種,具體理由有如下幾點:由于fpga本身是將大量的邏輯功能繼承與一個器件內(nèi),集成度要遠遠高于單片機,能夠利用的資源也相對充裕,因此可以較好地完成要求。由于對于fpga的設(shè)計,可以直接采用vhdl硬件語言直接進行的,在不同的場合,我們只要對語言進行適當?shù)母膭?,就可實現(xiàn)具體情況具體應(yīng)用。因此,利用fpga來進行開放,其可移植性更強。利用fpga和單片機協(xié)調(diào)來進行開發(fā),只要利用較少的器件就可以實現(xiàn)系統(tǒng)的功能。由于單片機通過中斷可以較準確地產(chǎn)生信號需要的信號頻率,
12、同時,單片機的控制能力比較強。2.3.系統(tǒng)結(jié)構(gòu)本次課程設(shè)計主要有五大模塊組成:adc0809控制器、比較器、頻率計量模塊、占空比計量模塊和顯示模塊。設(shè)計原理如下:通過信號發(fā)生器將信號輸入到adc0809控制器,通過它的控制電路將模擬信號轉(zhuǎn)換成數(shù)字信號,將其輸出與通過比較器的預(yù)值相比較,此時比較器的作用相當于整形電路,把輸出轉(zhuǎn)換成一個個脈沖。然后將此脈沖信號分別送到頻率計量模塊和占空比計量模塊,在頻率計量模塊中,比較器的輸出作為計時信號,而在占空比計量模塊中,比較器的輸出作為閥門信號。最后將兩者的輸出送到顯示模塊。系統(tǒng)原理框圖如下: 三、adc0809控制模塊主要特性1)8路輸入通道,8位ad轉(zhuǎn)
13、換器,即分辨率為8位。 2)具有轉(zhuǎn)換起??刂贫?。 3)轉(zhuǎn)換時間為100s(時鐘為640khz時),130s(時鐘為500khz時) 4)單個5v電源供電 5)模擬輸入電壓范圍05v,不需零點和滿刻度校準。 6)工作溫度范圍為-4085攝氏度 7)低功耗,約15mw 外部特性(引腳功能)adc0809芯片有28條引腳,采用雙列直插式封裝,如圖1323所示。下面說明各引腳功能。 in0in7:8路模擬量輸入端。 2-12-8:8位數(shù)字量輸出端。 adda、addb、addc:3位地址輸入線,用于選通8路模擬輸入中的一路 ale:地址鎖存允許信號,輸入,高電平有效。 start: ad轉(zhuǎn)換啟動脈沖輸
14、入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動a/d轉(zhuǎn)換)。 eoc: ad轉(zhuǎn)換結(jié)束信號,輸出,當ad轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 oe:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當ad轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 clk:時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 ref(+)、ref(-):基準電壓。 vcc:電源,單一5v。 gnd:地。其具體與adc0809的連接電路圖如下:ad0809的工作過程是:輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之
15、一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 ad轉(zhuǎn)換,之后eoc輸出信號變低,指示轉(zhuǎn)換正在進行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖?,指示ad轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當oe輸入高電平時,輸出三態(tài)門打開,ale,start,oe,adda都是adc0809的控制信號,adda為模擬通道選擇,低電平選擇通道0,ale為通道地址鎖存信號,start為啟動ad轉(zhuǎn)換的信號,oe為adc0809轉(zhuǎn)換結(jié)果輸出的使能信號。生成的封裝圖為:波形仿真如下:d來自0809轉(zhuǎn)換好的8位數(shù)據(jù),clk狀態(tài)機工作時鐘, eoc轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換,ale 8個模擬
16、信號通道地址鎖存信號, start轉(zhuǎn)換開始信號,oe數(shù)據(jù)輸出3態(tài)控制信號,adda 信號通道最低位控制信,,lock0 觀察數(shù)據(jù)鎖存時鐘,q 8位數(shù)據(jù)輸出。輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 ad轉(zhuǎn)換,之后eoc輸出信號變低,指示轉(zhuǎn)換正在進行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖?,指示ad轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當oe輸入高電平時,輸出三態(tài)門打開。由上圖可知:模擬輸入變成了數(shù)字輸出。四、比較模塊比較器主要用來將數(shù)字信號轉(zhuǎn)換成脈沖信號,它的作用相當于一個整形
17、電路。數(shù)字比較器用于數(shù)字信號的比較,例如,數(shù)據(jù)a和b比較,如果ab,則輸出a大于b的結(jié)果信號fab=1,fa=b=0,fab=0,fa=b=1,fab=0。如果ab=0,fa=b=0,fa=00100000thenfin=1;else fin=0;end if;end process;end block bj;上述程序中選取閥值為00100000,當大于閥值時,輸出為高電平,低于閥值時輸出為低電平。從而實現(xiàn)了把正弦波,三角波轉(zhuǎn)換為方波。然后輸入到頻率和占空比的控制模塊中。通過編程實現(xiàn)的比較模塊見下圖:經(jīng)過q7.0輸出的結(jié)果,直接給d7.0做為輸入,然后用輸入和這個閾值作比較,如果大于則輸出為高
18、電平,小于或等于則輸出為低電平。生成的封裝圖為:波形仿真圖如下:高于門限的仿真結(jié)果低于門限的仿真結(jié)果五、頻率計數(shù)和占空比模塊5.1數(shù)字頻率頻率計的基本原理數(shù)字頻率計的主要功能是測量周期信號的頻率。頻率是單位時間( 1s )內(nèi)信號發(fā)生周期變化的次數(shù)。如果我們能在給定的 1s 時間內(nèi)對信號波形計數(shù),并將計數(shù)結(jié)果顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準確的時間,同時將被測信號轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識別的脈沖信號,然后通過計數(shù)器計算這一段時間間隔內(nèi)的脈沖個數(shù),將其換算后顯示出來。這就是數(shù)字頻率計的基本原理。 5.2、方案論證對于頻率的測量沒有現(xiàn)成的硬件模塊,因此對于
19、頻率的測量需要我們用vhdl語言進行實現(xiàn)。對于頻率的測量主要考慮有兩種實現(xiàn)方案。方案一: 直接測頻法測頻法就是在確定的閘門時間tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖個數(shù))nx,則被測信號的頻率為:fx=nx/tw。測量的過程如圖所示,在tw時間內(nèi)通過計數(shù)器記錄被測信號脈沖的個數(shù),然后把記錄結(jié)果鎖存,經(jīng)過運算后,送數(shù)碼管顯示,即為所測頻率。,方案二: 測周期法測周期法需要有標準信號的頻率fs,這個標準信號應(yīng)該取一個頻率適中的高頻信號,在待測信號的一個周期tx內(nèi),記錄標準頻率的周期數(shù)ns,則被測信號的頻率為:fx=fs/ns。測量測周期法的過程如上圖所示,在待測信號的一個周期tx內(nèi),記錄標準信號
20、周期的個數(shù),然后把記錄結(jié)果鎖存,經(jīng)過運算后,送數(shù)碼管顯示,即為所測頻率。,對于測頻率:比較一二兩種方案: 這兩種測頻率的原理基本一樣,都是通過在給定的時間內(nèi)記錄脈沖的個數(shù),經(jīng)過一定的運算處理,得出結(jié)果顯示出來。并且這兩種方案的計數(shù)值都會產(chǎn)生誤差,都與計數(shù)器中記錄的數(shù)值nx或ns有關(guān)。但是考慮到用vhdl語言編寫乘除的算法比較困難,并且經(jīng)過乘除運算后所得結(jié)果的誤差較大,因此選用方案一。 方案一得好處是閘門信號直接可以選擇1s的時鐘信號,在這1s時間內(nèi)記錄的被測信號脈沖的個數(shù),正好就是被測信號的頻率,不再需要進行運算處理。不但減少編程的難度,而且也減小了實驗的誤差。因為側(cè)周期法的標準信號是一個高頻
21、信號,在不同的被測信號的脈沖下所造成的誤差有很大的不同。而在1s閘門信號下,記錄的脈沖個數(shù),對于所有被測信號的產(chǎn)生的誤差基本是一樣。考慮到以上的各因素,我認為方案一是比較理想的選擇。對于占空比:比較以上兩種方案,我認為第二種是比較理想的選擇。它不僅滿足了精度的要求,而且對于高頻測量更加適合。生成的封裝圖分別為: 占空比部分程序如下:beginif f3=1 then n1=0;m1=0;l1=0;else if clk7event and clk7=1 thenif g1=1 thenn1=n1+1;end if;end if;if clk7event and clk7=1 thenif f2
22、=1 thenm1=m1+1;end if;end if;end if;l1=m1*100/n1;end process p5;p6:process(m1,n1)beginy3(3 downto 0)=conv_std_logic_vector(l2 rem 10,4);y3(7 downto 4)=conv_std_logic_vector(l2/10 rem 10,4);end process p6;end block zkb;上面程序中m1為高電平時的所得到的頻率,n1為一個周期的頻率。把12和10求余,結(jié)果轉(zhuǎn)換成四位二進制,得到的就為顯示占空比的個位,把上述求余后再和10求余,結(jié)果轉(zhuǎn)換
23、成四位二進制,所得到的就是顯示數(shù)碼管的十位,二個就是顯示占空比的二位數(shù)碼管。 仿真波形圖如下:clk1為系統(tǒng)時鐘信號,clk2是輸入的時鐘信號,fin是經(jīng)過過比較器后的輸入信號,在1s的信號下對fin信號進行計數(shù)。計數(shù)器,要求低位的計數(shù)值溢出信號做為高位的輸入信號,從而顯示頻率的計量。在fin的高電平期間就對這個基準脈沖信號的個數(shù)進行計數(shù)同時也在fin二分頻后的高電平期間對這個基準信號進行計數(shù),把這兩個得到的計數(shù)結(jié)果進行相除運算,相除后得到的結(jié)果進行個位和十位分離,然后再進行進制轉(zhuǎn)換,送到數(shù)碼管中顯示。 六、 顯示模塊 這部分主要通過用四個數(shù)碼管將測得的頻率和占空比顯示出來,并實現(xiàn)量程的自動轉(zhuǎn)
24、換功能,還能通過一個按鍵控制是顯示頻率還是占空比。p7.0為占空比模塊的輸出;data19.0為頻率計量模塊的輸出;clk3 為系統(tǒng)時鐘;e 為控制信號,當它為1時顯示占空比,為0時顯示測量頻率;c 為量程轉(zhuǎn)換信號,當它為1時,khz燈亮,表示高量程,當它為0時,hz燈亮,表示低量程;a 為hz;b 為khz;y15.0輸出結(jié)果顯示。 七、 實驗結(jié)果及分析本次試驗通過由一個信號發(fā)生器給出輸入,當給定頻率523hz時,顯示523,同時hz燈亮;給定1240是顯示124,同時khz燈亮。當給出4360時顯示435同時khz燈亮。出現(xiàn)這一現(xiàn)象的原因主要是頻率有點高。直接測頻法主要用于測低頻,精度要求
25、不是特別高。當給定一個占空比57/100的脈沖信號時,顯示56/100。精度有一定的誤差,這種誤差的主要來源有系統(tǒng)誤差,測量誤差。測量誤差主要有:一、給的信號不成比例;二、信號頻率過低。占空比模塊用的等精度法主要用于測高頻,在測低頻時有一定的誤差??梢酝ㄟ^規(guī)范操作來消除這部分帶來的誤差。八、心得體會通過本次課程設(shè)計,是我對自己的動手能力又有了新的提高。盡管在程序編寫、下載和調(diào)試過程中,一度遇到過眾多困難,在老師的細心指導(dǎo)和同學的一起努力下才得以解決。制作過程是一個考驗人耐心的過程,不能有絲毫的急躁,馬虎,對電路的調(diào)試要一步一步來,不能急躁,因為是在電腦上調(diào)試,比較慢,又要求我們有一個比較正確的
26、調(diào)試方法,像把頻率調(diào)準等等。再有就是通過這次課程設(shè)計,讓我了解了自己知識的匱乏,有待進一步的提高。感謝這幾天齊老師以及同學們的熱情幫助。參考文獻(1) 何小艇 電子系統(tǒng)設(shè)計 浙江大學出版社 2008.1(2) 趙俊超等.集成電路設(shè)計vhdl教程.北京:北京希望電子出版社,2002(3) 王振紅.vhdl數(shù)字電路設(shè)計與應(yīng)用實踐教程.北京:機械工業(yè)出版社,2003(4)eda技術(shù)使用教程 科學出版社 潘松 編著(5)新型集成器件實用電路,楊幫文,電子工業(yè)出版社,2002年附錄一:附錄二:1、adc0809控制模塊library ieee;use ieee.std_logic_1164.all;en
27、tity adcint is port(d : in std_logic_vector(7 downto 0); -來自0809轉(zhuǎn)換好的8位數(shù)據(jù)clk : in std_logic; -狀態(tài)機工作時鐘eoc : in std_logic; -轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換ale : out std_logic; -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ù)鎖存時鐘
28、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_state, next_state: states :=st0 ; signal regl : std_logic_vector(7 downto 0); signal lock : std_logic; - 轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號 beginadda = 1;-當adda=0,模擬信號
29、進入通道in0;當adda=1,則進入通道in1q = regl; lock0 ale=0;start=0;lock=0;oe=0; next_state ale=1;start=1;lock=0;oe=0; next_state ale=0;start=0;lock=0;oe=0; if (eoc=1) then next_state = st3; -eoc=1表明轉(zhuǎn)換結(jié)束 else next_state ale=0;start=0;lock=0;oe=1; next_state ale=0;start=0;lock=1;oe=1; next_state next_state = st0;
30、end case ; end process com ; reg: process (clk) begin if (clkevent and clk=1) then current_state=next_state; end if; end process reg ; - 由信號current_state將當前狀態(tài)值帶出此進程:reg latch1: process (lock) - 此進程中,在lock的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入 begin if lock=1 and lockevent then regl =00101000 theny=1;else y=0;end if;end pro
31、cess;end;3、占空比模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ratio isport(f,clk2:in std_logic; y:out std_logic_vector(7 downto 0);end;architecture bhv of ratio issignal k1:integer range 0 to 999999;signal m1:integer range 0 to 199999;si
32、gnal m:integer range 0 to 99;signal y1:std_logic_vector(7 downto 0);signal a,c,ff,f3,f2:std_logic;beginp1:process(f)beginif fevent and f=1 thenff=not ff;end if;end process p1;p2:process(f,ff)beginif f=0 and ff=0 then f3=1;else f3=0;end if;if f=1 and ff=1 then f2=1;else f2=0;end if;a=not ff;c=ff;end
33、process p2;p3:process(a)beginif aevent and a=1 theny=y1;end if;end process p3;p4:process(f3,c,clk2)beginif f3=1 then k1=0;m1=0;else if clk2event and clk2=1 thenif c=1 thenk1=k1+1;end if;end if;if clk2event and clk2=1 thenif f2=1 thenm1=m1+1;end if;end if;end if;end process p4;p5:process(m1,k1)beginm
34、=m1*100/k1;y1(3 downto 0)=conv_std_logic_vector(m rem 10,4);y1(7 downto 4)=conv_std_logic_vector(m/10 rem 10,4);end process p5;end;4、計數(shù)模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cntf isport(clk1,fin:in std_logic; c:out std_logic; data:out std_logic_vector(19 do
35、wnto 0);end;architecture bhv of cntf issignal clk_1:std_logic;signal x,y,z:std_logic;signal oe:std_logic:=0;signal dout:std_logic_vector(19 downto 0);beginp1:process(clk1)beginif clk1event and clk1=1 thenclk_1=not clk_1;end if;end process p1;p2:process(clk1,clk_1)beginif clk1=0 and clk_1=0 theny=1;else y=0;end if;x=not clk_1; z=clk_1;end process p2;p3:process(x)beginif xevent and x=1 thendata=dout;c=oe;end if;end process p3;p4:process(fin,y,z)beginif y=1 then do
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省“八校聯(lián)盟”高三上學期質(zhì)量檢測(一)英語
- 陳涉世家(預(yù)習要點例題精講考點專練)原卷版
- Unit3MySchool知識清單(默寫版)
- 消防面試題目及答案
- 現(xiàn)場競選面試題目及答案
- 西藏礦業(yè)面試題目及答案
- 網(wǎng)絡(luò)采購面試題目及答案
- 新解讀《GB-T 36607-2018人類工效學 車輛駕駛員頭部位置》
- 洛陽市高一聯(lián)考數(shù)學試卷
- 泰安集團面試題目及答案
- he及roma用于卵巢癌全程管理省腫瘤雷旦生
- 小兒呼吸機相關(guān)知識詳解課件
- SY∕T 5280-2018 原油破乳劑通用技術(shù)條件
- 維護手冊v00-地鐵3號線貫通道系統(tǒng)
- 蘇教版五年級數(shù)學下冊【全冊課件完整版】
- 心力衰竭心臟再同步(CRT)治療課件
- 人防地下室墻體后開洞整改施工方案(防辦)
- 現(xiàn)金流量表的編制培訓課程(共93張)課件
- 慢性腎衰竭(慢性腎臟病)診療指南(內(nèi)容清晰)
- “縣管校聘”教師崗位競聘量化考評表
- 第十九章顱內(nèi)和椎管內(nèi)腫瘤
評論
0/150
提交評論