![換擋功能的四位數(shù)字頻率計(jì)課件_第1頁](http://file4.renrendoc.com/view/18d42ec1b9aaf62a1ec5672bc06b2dbc/18d42ec1b9aaf62a1ec5672bc06b2dbc1.gif)
![換擋功能的四位數(shù)字頻率計(jì)課件_第2頁](http://file4.renrendoc.com/view/18d42ec1b9aaf62a1ec5672bc06b2dbc/18d42ec1b9aaf62a1ec5672bc06b2dbc2.gif)
![換擋功能的四位數(shù)字頻率計(jì)課件_第3頁](http://file4.renrendoc.com/view/18d42ec1b9aaf62a1ec5672bc06b2dbc/18d42ec1b9aaf62a1ec5672bc06b2dbc3.gif)
![換擋功能的四位數(shù)字頻率計(jì)課件_第4頁](http://file4.renrendoc.com/view/18d42ec1b9aaf62a1ec5672bc06b2dbc/18d42ec1b9aaf62a1ec5672bc06b2dbc4.gif)
![換擋功能的四位數(shù)字頻率計(jì)課件_第5頁](http://file4.renrendoc.com/view/18d42ec1b9aaf62a1ec5672bc06b2dbc/18d42ec1b9aaf62a1ec5672bc06b2dbc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【要求】
掌握VHDL語言中的各模塊的設(shè)計(jì)及最后各模塊的組裝
【知識(shí)點(diǎn)】理解EDA的分頻設(shè)計(jì)理解VHDL程序計(jì)數(shù)器的設(shè)計(jì)理解VHDL程序鎖存器的設(shè)計(jì)理解VHDL程序檔位轉(zhuǎn)換及數(shù)碼管顯示的設(shè)計(jì)理解VHDL程序元件的例化與組裝
【重點(diǎn)和難點(diǎn)】頻率計(jì)的測(cè)頻原理VHDL程序計(jì)數(shù)器的設(shè)計(jì)VHDL程序數(shù)碼管顯示的設(shè)計(jì)下一頁第7章應(yīng)用VHDL語言方法設(shè)計(jì)具有換擋功能的四位數(shù)字頻率計(jì)第7章應(yīng)用VHDL語言方法設(shè)計(jì)
八位二進(jìn)制加法器§7.1工作任務(wù)的陳述與背景§7.2完成工作任務(wù)的引導(dǎo)§7.3相關(guān)技術(shù)基本知識(shí)與基本技能§7.3本章小結(jié)上一頁一、任務(wù)的陳述設(shè)計(jì)一帶進(jìn)位功能的四位數(shù)碼管顯示的頻率計(jì),其卞要參數(shù)如下:①頻率計(jì)的測(cè)量范圍為:0Hz~1MHz;②頻率計(jì)具有自動(dòng)量程轉(zhuǎn)化功能;③頻率計(jì)通過四位數(shù)碼管顯示測(cè)量的頻率。二、項(xiàng)目的背景頻率計(jì)的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量其他信號(hào)的頻率。通常情況下計(jì)算每秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),此時(shí)我們稱閘門時(shí)間為1s。閘門時(shí)間也可以大于或示于1s。閘門時(shí)間越長(zhǎng),得到的頻率值就越準(zhǔn)確,但閘門時(shí)間越長(zhǎng)則每測(cè)一次頻率的間隔就越長(zhǎng);閘門時(shí)間越短,測(cè)得頻率值刷新就越快,但測(cè)得的頻率精度就受影響。§7.1工作任務(wù)的陳述與背景返回下一頁§7.2完成工作任務(wù)的引導(dǎo)一、資訊由前述可知,要完成好該工作任務(wù),需要準(zhǔn)備以下幾個(gè)方面的知識(shí):①時(shí)鐘分頻的原理及實(shí)現(xiàn)的方法。②計(jì)數(shù)器的知識(shí)。③信號(hào)鎖存的原理。④數(shù)碼管譯碼顯示、片選及動(dòng)態(tài)掃描的知識(shí)。⑤數(shù)字頻率計(jì)的工作原理。二、計(jì)劃數(shù)字頻率計(jì)的測(cè)頻方法有等精度測(cè)頻和計(jì)數(shù)測(cè)頻,從實(shí)現(xiàn)的技術(shù)手段來看目前可采取的有:下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)
①采用示規(guī)模數(shù)字集成電路制作;
②采用單片機(jī)進(jìn)行測(cè)頻控制;③采用現(xiàn)場(chǎng)可編程門陣列(FPGA)為控制核心。三、決策采用現(xiàn)場(chǎng)可編程門陣列(FPGA)為控制核心,利用VHDL語言編程,將所有器件集成在一塊芯片上,體積大大減示的同時(shí)還提高了穩(wěn)定性,可實(shí)現(xiàn)大規(guī)模和超大規(guī)模的集成電路,測(cè)頻測(cè)量精度高,測(cè)量頻率范圍大,而且編程靈活、調(diào)試方便。綜合上述分析,本設(shè)計(jì)采用現(xiàn)場(chǎng)可編程門陣列(FPGA)為控制核心測(cè)量方案。下一頁上一頁四、實(shí)施
(一)設(shè)計(jì)任務(wù)的詳細(xì)描述設(shè)計(jì)一個(gè)頻率計(jì),其頻率測(cè)量范圍為1Hz~1MHz,顯示器件為4個(gè)8段數(shù)碼管(帶示數(shù)顯示)。根據(jù)測(cè)量所得的結(jié)果,可以白動(dòng)轉(zhuǎn)換量程來顯示輸出的結(jié)果:如頻率為100Hz,顯示為F100;如頻率為5kHz,顯示為5.000;
如頻率為50kHz,顯示為50.00;如頻率為500kHz,顯示為500.0;當(dāng)輸入的頻率超過量程(>1MHz)時(shí),數(shù)碼管滅(不顯示)。§7.2完成工作任務(wù)的引導(dǎo)為了與實(shí)際工程設(shè)計(jì)更貼近,我們選擇天津啟東科技公司的TQD-CYC1C3FPGA+MCU開發(fā)板作為項(xiàng)目的硬件開發(fā)平臺(tái),整個(gè)項(xiàng)目代碼最后下載至開發(fā)板上進(jìn)行驗(yàn)證(相關(guān)程序代碼稍做修改也可用于康芯GW48EDA_PK2/PK3實(shí)驗(yàn)箱上)。(二)設(shè)計(jì)方案計(jì)劃將整個(gè)項(xiàng)目在開發(fā)板上實(shí)現(xiàn)。根據(jù)開發(fā)板上的硬件電路及設(shè)計(jì)任務(wù)的要求,對(duì)系統(tǒng)設(shè)計(jì)方案進(jìn)行化分,將整個(gè)項(xiàng)目進(jìn)行模塊劃分。
1.時(shí)鐘模塊開發(fā)板上系統(tǒng)的時(shí)鐘為20MHz,如圖7-1所示。測(cè)頻的閘門信號(hào)為1S的高電平信號(hào),同時(shí)將測(cè)頻所得結(jié)果顯示出來,在數(shù)碼管顯示時(shí)采用動(dòng)態(tài)掃描的方法,需要產(chǎn)生1kHz的掃描信下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)號(hào),所以要對(duì)系統(tǒng)的20MHz時(shí)鐘信號(hào)進(jìn)行分頻,以產(chǎn)生符合要求的各頻率信號(hào):先由系統(tǒng)時(shí)鐘20MHz分頻出1kHz,再由1kHz分頻出1Hz,由1Hz的信號(hào)產(chǎn)生1s的計(jì)數(shù)閘門信號(hào)脈沖。該模塊作為系統(tǒng)的第一個(gè)模塊,還要接受測(cè)量信號(hào)的輸入,同時(shí)我們還給整個(gè)系統(tǒng)定義系統(tǒng)復(fù)位。由以上分析,可得出該模塊的系統(tǒng)框圖如圖7-2所示。
圖7-2中,Reset為復(fù)位引腳,clk為開發(fā)板系統(tǒng)時(shí)鐘的輸入,clklk為1kHz的輸出信號(hào),tgate為1s的閘門輸出信號(hào)。
下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)
2.計(jì)數(shù)模塊(圖7-3)
在閘門脈沖電平為1時(shí)閘門開啟,計(jì)數(shù)器開始計(jì)數(shù),在閘門脈沖電平為0時(shí),閘門關(guān)閉,計(jì)數(shù)器停止計(jì)數(shù)。同時(shí),鎖存器產(chǎn)生一個(gè)鎖存信號(hào)輸送到鎖存器的使能端將結(jié)果鎖存,并把鎖存結(jié)果輸送到譯碼器來控制七段顯示器,這樣就可以得到被測(cè)信號(hào)的數(shù)字顯示的頻率。在閘門脈沖的下降沿到來時(shí)控制電路將計(jì)數(shù)器情零,為下一次測(cè)量做準(zhǔn)備,實(shí)現(xiàn)了可重復(fù)使用,避免兩次測(cè)量結(jié)果相加使結(jié)果產(chǎn)生錯(cuò)誤。在整個(gè)電路中,計(jì)數(shù)模塊電路是關(guān)鍵,閘門信號(hào)脈沖寬度是否精確直接決定了測(cè)量結(jié)果是否精確。下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)
3.鎖存模塊(圖7-4)
鎖存器在閘門信號(hào)關(guān)閉前(檢測(cè)閘門信號(hào)下降沿)實(shí)現(xiàn)鎖存,并把鎖存結(jié)果輸送到譯碼器來控制八段數(shù)碼顯示器。4.顯示模塊(圖7-5)
顯示模塊將鎖存模塊送過來的數(shù)值進(jìn)行譯碼顯示,并根據(jù)鎖存模塊送來的擋位信號(hào)確定示數(shù)點(diǎn)顯示的位置以實(shí)現(xiàn)擋位的顯示。(三)模塊的設(shè)計(jì)及實(shí)現(xiàn)1.時(shí)鐘分頻分頻原理及分頻系數(shù)的設(shè)定:開發(fā)板的時(shí)鐘頻率設(shè)為20MHz,而為了給其他模塊提供所需的各時(shí)鐘,需對(duì)20MHz的時(shí)鐘進(jìn)行分頻:①?gòu)?0MHz分頻得到1kHz;②從1kHz分頻得到1Hz;③由1Hz得到占空比為1/4高電平時(shí)間為1s的閘門信號(hào)。分頻原理及分頻系數(shù)的設(shè)定:為了從20MHz分頻得到1kHz,我們?cè)O(shè)定為一次分頻,即由20MHz分頻為1MHz,由1MHz分頻得1kHz。須設(shè)定分頻的系數(shù):20MHz與1MHz相差20倍,20/2=10,設(shè)定分頻變量為0~9,1MHz與1kHz相差1000倍,1000/2=500,所以可以設(shè)分頻的變量為VARIABLEcnt:INTEGERRANGE0TO499,而從1kHz分頻得到1Hz,設(shè)分頻變量為0~499。下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)2.計(jì)數(shù)模塊
(1)計(jì)數(shù)的原理及采用的計(jì)數(shù)方法采用在閘門信號(hào)開啟期間對(duì)輸入信號(hào)脈沖進(jìn)行計(jì)數(shù)的方法進(jìn)行測(cè)頻,當(dāng)閘門信號(hào)開啟時(shí)計(jì)數(shù),當(dāng)閘門信號(hào)關(guān)閉時(shí)停止計(jì)數(shù),在1s內(nèi)計(jì)得的脈沖數(shù)即為輸入信號(hào)的頻率。由于頻率計(jì)的計(jì)數(shù)值最大為1M,因此代碼中用6個(gè)信號(hào)量(c1~c6)來存儲(chǔ)從第一位至第六位相對(duì)應(yīng)的每一位的數(shù)值。從c1~c6為逢10進(jìn)一位,所以c1~c6中存儲(chǔ)的是輸入信號(hào)的十進(jìn)制的數(shù)值。
(2)計(jì)數(shù)值的擋位劃分由于數(shù)碼管顯示的為4位數(shù)值,而計(jì)數(shù)值最高為6位數(shù)值,因此對(duì)計(jì)數(shù)值進(jìn)行分擋編碼,以便用4位數(shù)碼管通過示數(shù)點(diǎn)的定位來顯示6位數(shù)下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)值。當(dāng)計(jì)數(shù)值示于4位計(jì)數(shù)值時(shí),數(shù)碼管尤示數(shù)位數(shù)顯示;當(dāng)計(jì)數(shù)值大于4位計(jì)數(shù)值時(shí),取計(jì)數(shù)值高4位,通示數(shù)點(diǎn)定位來顯示數(shù)值。擋位劃分見表7-1。3.鎖存模塊在閘門信號(hào)的下降沿,對(duì)輸入的16位的計(jì)數(shù)值q及擋位信號(hào)scale進(jìn)行鎖存,由于鎖存是對(duì)閘門信號(hào)的下降沿進(jìn)行檢測(cè)完成鎖存的,因此能將scale數(shù)值在reset復(fù)位(計(jì)數(shù)模塊中的端口信)前鎖存。鎖存模塊的作用:設(shè)置鎖存模塊,既可避免計(jì)數(shù)值的丟失,還可以避免閘門信號(hào)計(jì)數(shù)期間,頻率計(jì)的顯示隨著計(jì)數(shù)值的增加不斷變化、閃爍。下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)4.顯示模塊將計(jì)數(shù)器所計(jì)得的數(shù)值顯示出來,并通過擋位信號(hào),完成示數(shù)點(diǎn)定位顯示,通過顯示示數(shù)點(diǎn)位置不同的數(shù)值來完成相應(yīng)擋位的自動(dòng)轉(zhuǎn)換。顯示模塊對(duì)數(shù)值的顯示譯碼要與設(shè)計(jì)的數(shù)碼管驅(qū)動(dòng)電路相對(duì)應(yīng)。開發(fā)板上的數(shù)碼管為6連排數(shù)碼管,它們的位段信號(hào)端(稱為數(shù)據(jù)端)接在一起,同時(shí)還有6個(gè)位選信號(hào)(稱為控制端)用于分別選中要顯示數(shù)據(jù)的數(shù)碼管。根據(jù)開發(fā)板的電路及設(shè)計(jì)要求,顯示模塊采用顯示采用掃描驅(qū)動(dòng)顯示,并以七段譯碼的方式輸出。
5.頂層模塊采用原理圖方式進(jìn)行組裝,具體方法參考7.3節(jié)有關(guān)內(nèi)容。下一頁上一頁§7.2完成工作任務(wù)的引導(dǎo)五、檢查分別編譯各底層模塊和整個(gè)電路設(shè)計(jì),并分別仿真時(shí)鐘分頻、計(jì)數(shù)模塊、鎖模塊、顯示模塊、頂層模塊。通過后,若有條件,應(yīng)將源代碼下載到硬件中做最后的驗(yàn)證。六、評(píng)估對(duì)本次設(shè)計(jì)進(jìn)行評(píng)估,可嘗試更好的方案、方法。寫出設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告應(yīng)包括所應(yīng)用到的EDA方法及知識(shí)的總結(jié)。返回上一頁§7.2完成工作任務(wù)的引導(dǎo)一、時(shí)鐘模塊參考設(shè)計(jì)---clock.vhd------LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYclockISPORT(
§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能下一頁下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能---復(fù)位信號(hào)
reset:INSTD_LOGIC;
clk:INSTD_LOGIC;---閘門信號(hào)
tgate:OUTSTD_LOGIC;---1kHz顯示掃描時(shí)鐘
clklk:OUTSTD_LOGIC);ENDclock;ARCHITECTURErtlofclockIS------常數(shù)說明CONSTANTRESETACTIVE:STDLOGIC:=‘1’;下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能----信號(hào)說明SIGNALc1k1M_reg:STD_LOGIC;SIGNALclklk_reg:STD_LOGIC;SIGNALc1k1Hz:STD_LOGIC;SIGNALtgate_reg:STD_LOGIC;
BEGIN------------------------------------------1MHz時(shí)鐘-----------------------------------
ClkIM_Proc:PROCESS(reset,clk)VARIABLEcnt0:INTEGERRANGE0TO9;下一頁上一頁BEGINIFreset=RESETACTIVETHENcnt0:=0;ELSIFrising_edge(clk)THENIFcnt0=9THENcnt0:=0;c1k1M_reg<=notc1k1M_reg;ELSE
cnt0:=cnt0+1ENDIF;ENDIF;ENDPROCESS;§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能--------------------------------------------1kHz顯示掃描時(shí)鐘------------------------------------Clklk_Froc:PROCESS(reset,clklM_reg)VARIABLEcnt:INTEGERRANGE0TO500;BEGINIFreset=RESETACTIVETHEN
cnt:=0;ELSIFrising_edge(c1k1M_reg)THENIFcnt=499THEN
cnt:=0;
clk
lk_reg<=notclk
lk_reg;
下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
ELSE
cnt:=cnt+1;ENDIF;ENDIF;ENDPROCESS;clklk<=clklk_reg;-------------------------------1kHz分頻得到1Hz---------------------------Clk1Hz_Proc:PROCESS(reset,clklk_reg)VARIABLEcnt2:INTEGERRANGE0TO499;下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
BEGINIFreset=RESETACTIVETHENcnt2:=0;ELSIFrising_edge(clklk_reg)THENIFcnt2-499THENcnt2:=0;
clklHz<=notc1k1Hz;ELSEcnt2:=cnt2+1;ENDIF;ENDIF;ENDPROCESS;下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能---------------------------------一占空比為1/4頻率為0.25Hz的閘門信號(hào)---------------------------------Tgate_Froc:PROCESS(reset,clklHz)VARIABLEcnt3:INTEGERRANGE0TO3;BEGINIFreset=RESETACTIVETHENcnt3:=0;
tgate_reg<='0';ELSIFrising_edge(c1k1Hz)THENIFcnt3=2THEN
tgate
reg<='1';cnt3:=3;ELSIFcnt3=3THEN
tgate_reg<='0';cnt3:=0;ELSEcnt3:=cnt3+1;ENDIF;ENDIF;
ENDPROCESS;
tgate<=tgate_reg;ENDrtl;下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能工程項(xiàng)目的建立及仿真:
首先打開Quartus軟件,選擇建立新工程項(xiàng)目選項(xiàng),在出現(xiàn)的器件選擇窗口中可選擇開發(fā)板所用的芯片EP1C3144C8(也可在以后鎖定引腳時(shí)指定芯片的型號(hào)),如圖7-6所示。按提供的示例代碼建立clokc.vhd文件后編譯。編譯通過則說明clokc.vhd文件沒有語法錯(cuò)誤,但不一定符合設(shè)計(jì)的要求,為了驗(yàn)證文件是否符合設(shè)計(jì),須對(duì)該文件建行仿真。時(shí)鐘模塊clokc.vhd的仿真步驟如下:1.仿真文件的建立(圖7-7)2.添加仿真的各個(gè)端口(圖7-8)3.設(shè)計(jì)各仿真的參數(shù)下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能①設(shè)定輸入端口clk的頻率為20MHz;②由于只擊對(duì)模塊功能進(jìn)行驗(yàn)證,修改仿真的模式為Functional,如圖7-9所示。對(duì)時(shí)鐘模塊仿真時(shí)要特別注意,由于從20MHz分頻至0.25Hz閘門信號(hào)的仿真運(yùn)算量太大,是無法完成一個(gè)閘門信號(hào)周期的仿真的。但由時(shí)鐘模塊的VHDL文件可以看出,我們是分步完成分頻的,從20MHz分頻到1kHz與從1kHz分頻到0.25Hz的算法是一致的,所以只需仿真出1kHz信號(hào)即可認(rèn)為時(shí)鐘模塊代碼是正,確。設(shè)定仿真的時(shí)間為10ms,仿真結(jié)果如圖7-10所示。查看仿真結(jié)果可知,clklk輸出信號(hào)的周期為1ms,程序達(dá)到了分頻要求。下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能二、計(jì)數(shù)模塊參考設(shè)計(jì)-----counter.vhd---LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYcounterISport(---全局復(fù)位
reset:INSTD_LOGIC;下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能---閘門信號(hào)
tgate:INSTD_LOGIC;---待測(cè)信號(hào)
tsig:INSTD_LOGIC;---計(jì)數(shù)輸出
q:OUTSTD_LOGIC_VECTOR(15DOWNTO0);---擋位輸出scale:OUTSTD_LOGIC_VECTOR(2DOWNTO0);ENDcounter;ARCHITECTURErtlofcounterIS------常數(shù)說明CONSTANTRESET_ACTIVE:STD_LOGIC:='0';下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能------信號(hào)說明SIGNALc1:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc2:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc3:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc4:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc5:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc6:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALscale_reg:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALoverflow:STD_LOGIC;BEGINCOUNT_PROC:PROCESS(reset,tsig,tgate)下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
BEGINIFreset=RESETACTIVETHENc1<="0000";c2<="0000";c3<="0000";c4<="0000";c5<="0000";c6<="0000";overflow<='0';ELSIFrising_edge(tsig)THENIFtgate='1'THEN
下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能IFc1<”1001"THENc1<=c1+'1';ELSEc1<="0000";
IFc2<"1001"THENc2<=c2+'1';ELSEc2<="0000";IFc3<”1001"THENc3<=c3+'1';ELSEc3<="0000";
下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能IFc4<”1001"THENc4<=c4+'1';ELSEc4<="0000";IFc5<”1001"THENc5<=c5+'1';ELSEc5<="0000";IFc6<”1001"THENc6<=c6+'1';ELSE----計(jì)數(shù)溢出
overflow<='1';下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;ENDPROCESS:SCALE_PROC:PROCESS(reset,cl,c2,c3,c4,c5,c6,overflow)BEGINIFreset=RESETACTIVETHEN
下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
scale_ref<="000";ELSIFoverflow='1'THEN
---->=1MHz
scale_ref<="001";ELSIFc6/="0000"THEN---100.0kHz-999.9kHzq<=c6&c5&c4&c3;
scale_ref<="010";ELSIFc5/="0000"THEN---10.00kHz一99.99kHzq<=c5&c4&c3&c2;
scale_reg<="011";
下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能下一頁上一頁§7.3相關(guān)技術(shù)基礎(chǔ)知識(shí)與基本技能
ELSIFc4/="0000"THEN---1.000kHz一9.999kHzq<=c4&c3&c2&c1;
scale_ref<=”100";ELSE---1Hz-999Hzq<=”1111"&c3&c2&c1;
scale_ref<=”101";ENDIF;ENDPROCESS;scale<=scale_reg;ENDrtl;下一頁上一頁
計(jì)數(shù)模塊對(duì)應(yīng)不同頻率時(shí)仿真的輸出數(shù)值和對(duì)應(yīng)的擋位輸出。
計(jì)數(shù)模塊中將復(fù)位信號(hào)與閘門信號(hào)相連,當(dāng)閘門信號(hào)關(guān)閉時(shí)計(jì)數(shù)模塊復(fù)位情零,所以計(jì)數(shù)模塊為低電平復(fù)位。在設(shè)定復(fù)位信號(hào)與閘門信號(hào)脈沖時(shí)應(yīng)使兩者信號(hào)一致。
設(shè)定輸入信號(hào)頻率為5000Hz(周期為200s),如圖7-11所示。
仿真結(jié)果如圖7-12所示。
仿真所得結(jié)果數(shù)值的判斷:
①輸入5000Hz信號(hào),正確,與擋位相符合。
②由于q是輸出端口,輸出的數(shù)值為q=5000,輸出的擋位§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁為100,計(jì)數(shù)值在reset情零前已輸出至端口,因此閘門信號(hào)關(guān)閉后數(shù)值不改變,而scale輸出端口是通過信號(hào)scale_reg傳遞數(shù)值的,在SCALE_PROC進(jìn)程中,由于IFreset
=
RESET_ACTIVETHENscalereg<="000";因而仿真在閘門信號(hào)關(guān)閉后輸出為0,但可以通過后面的鎖存模塊,通過對(duì)閘門信號(hào)下降沿的檢測(cè)完成對(duì)scale情零前的鎖存輸出。③scale擋位隨q計(jì)數(shù)值的改變:
當(dāng)q計(jì)數(shù)值由二位數(shù)變化為四位數(shù)后,scale擋位應(yīng)由101變化為100。
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能
對(duì)scale數(shù)值由101變化為100處的仿真圖形放大觀察,可以看到此時(shí)q的數(shù)值由999變化為1000,與擋位轉(zhuǎn)換表的要求相符,如圖7-13所示。
將仿真圖形放大,查看輸入信號(hào)脈沖計(jì)數(shù)及相應(yīng)的進(jìn)位,如圖7-14所示。
由仿真圖形可知,對(duì)輸入信號(hào)的每一個(gè)脈沖,計(jì)數(shù)信號(hào)c1都增加1,當(dāng)c1增加至10時(shí),c1情零并向c2進(jìn)一位,符合我們十進(jìn)制數(shù)的計(jì)數(shù)和進(jìn)位要求。由仿真所得的結(jié)果,可知設(shè)計(jì)達(dá)到了要求。下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能三、鎖存模塊參考設(shè)計(jì)---lock.vhd----LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYlockISPORT(
---閘門信號(hào)tgate:INSTD_LOGIC;下一頁上一頁
---輸入信號(hào)
q_in:INSTD_LOGIC_VECTOR(15DOWNTO0);scale_in:INSTD_LOGIC_VECTOR(2DOWNTO0);
---鎖存信號(hào)q-lock:OUTSTD_LOGIC_VECTOR(15DOWNTO0);scale_lock:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDlock;ARCHITECTURErtloflockIS
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能
BEGIN
LOCK_PROC:PROCESS(tgate)
BEGIN
IFfalling_edge(tgate)THENq_lock<=q_in;scale_lock<=scale_in;ENDIF;ENDPROCESS;
ENDrtl;
仿真結(jié)果如圖7-15所示。由仿真結(jié)果可知,在閘門信號(hào)的下降沿后,對(duì)輸入的輸出進(jìn)行了鎖存?!?.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁四、顯示模塊參考設(shè)計(jì)1.顯示模塊的代碼七段數(shù)碼管各段名稱及編號(hào)如圖7-16所示。----display.vhd----LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYdisplayISPORT(
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能---復(fù)位信號(hào)reset:
INSTD_LOGIC;
---時(shí)鐘信號(hào)clklk:
INSTD_LOGIC;
---計(jì)數(shù)值q:INSTD_LOGIC_VECTOR(15DOWNTO0);
---擋位scale:INSTD_LOGIC_VECTOR(2DOWNTO0);
---7段數(shù)碼管譯碼輸出show:
OUTSTD_LOGIC_VECTOR(?DOWNTO0);
----數(shù)碼管選擇sel:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
下一頁上一頁ENDdisplay;ARCHITECTURErtlofdisplayIS---常數(shù)說明CONSTANTRESET_ACTIVE:STD_LOGIC:='1';---信號(hào)定義SIGNALsel_reg:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALq_reg:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALshow_reg:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALcount:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁
WHEN“00”=>
Fresent_State_Register:PROCESS(reset,clklk);
BEGINIFreset=RESETACTIVETHENcount<="00";ELSIFrising_edge(clklk)THENIFcount>="11"THENcount<="00";ELSEcount<=count+"O1";ENDIF;ENDIF;CASEcountIS§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能
---第一個(gè)數(shù)碼管亮
sel_reg<="0001";q_reg<=q(3DOWNTO0);
---第一個(gè)數(shù)碼管亮WHEN"O1"=>sel_reg<="0010";q_reg<=q(7DOWNTO4);---第二個(gè)數(shù)碼管亮
WHEN"10"=>
selreg<="0100";
q_reg<=q(11DOWNTO8);下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能---第四個(gè)數(shù)碼管亮
WHEN"11"=>
sel_reg<=”1000';
q_reg<=q(15DOWNTO12)
WHENothers=>
---所有數(shù)碼管全滅
sel_reg<="0000";q_red<="0000";ENDCASE;ENDPROCESS;
---注意:showreg不包含示數(shù)點(diǎn)位
下一頁上一頁
WITHq_regSELECTshow_reg<="0111111"WHEN"0000","0000110"WHEN"0001",
"1011011"WHEN"0010",
"1001111"WHEN"0011",
"1100110"WHEN"0100",
"1101101"WHEN"0101",
"1111101"WHEN"0110","0100111"WHEN"0111",
"1111111"WHEN”1000",
"1101111"WHEN”1001",
"0000000"WHENothers;
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能show<='1'&showregWHEN(sel_reg="0010"ANDscale="010")OR(sel_reg="0100"ANDscale="01l")OR(sel_reg=”1000"ANDscale=”100")ELSE
---超量程時(shí),4位數(shù)碼管全滅"00000000"WHENscale="001"ELSE
'0'&show_reg;
sel<=sel_reg;ENDrtl;
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁程序代碼解釋:數(shù)碼管的顯示代碼:通過count變量的改變完成數(shù)碼管片選掃描。sel_reg<="0001';q_reg<=q(3DOWNTO0)(第4位數(shù)碼的片選和顯示數(shù)值的傳遞)sel_reg<="0010';q_reg<=q(7DOWNTO4);(第3位數(shù)碼的片選和顯示數(shù)值的傳遞)sel_reg<="0100';q_reg<=q(11DOWNTO8);
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能
(第2位數(shù)碼的片選和顯示數(shù)值的傳遞)sel_reg<=”1000';q_reg<=q(15DOWNTO12);(第4位數(shù)碼的片選和顯示數(shù)值的傳遞)通過以上語句,將十六位的二進(jìn)計(jì)數(shù)值由高至低、四位一組傳遞到要顯示的相對(duì)應(yīng)的數(shù)碼管。通過Show_reg<=“0111111”WHEN“0000”,--數(shù)碼管顯示0“0000110”WHEN“0001”,--數(shù)碼管顯示1“1011011“WHEN”0010”,--數(shù)碼管顯示2“1001111”WHEN“0011”,--數(shù)碼管顯示3
下一頁上一頁
“1100110”WHEN“0100”,--數(shù)碼管顯示4“1101101”WHEN“0101”,--數(shù)碼管顯示5“1111101”WHEN“0110”,--數(shù)碼管顯示6“0100111”WHEN“0111”,--數(shù)碼管顯示7“1111111”WHEN
“1000”,--數(shù)碼管顯示8“1101111”WHEN
“1001”,--數(shù)碼管顯示9“0000000”WHENothers;--數(shù)4已管不顯示語句完成數(shù)碼管數(shù)值顯示的譯碼。通過show<=‘1’&show_regWHEN
(sel_reg="0010"ANDscale="010")OR§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁
(sel_reg="0100"ANDscale="01l")OR
(sel_reg=”1000"ANDscale=”100")ELSE---超量程時(shí),4位數(shù)碼管全滅
“00000000”
WHENscale=“001”ELSE
'o'&show_reg;語句完成示數(shù)點(diǎn)該在哪位數(shù)碼管顯示。2.顯示模塊的仿真顯示模塊的仿真參數(shù)的設(shè)定:clklk周期為1ms,reset=0,仿真時(shí)間定為3s;對(duì)q的值設(shè)定(十六進(jìn)制):
0~1s期間為0123,1~2s期間為4500,2~3s期間為6789。
§7.3相關(guān)技術(shù)基本知識(shí)與基本技能下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能
對(duì)scale的值設(shè)定(二進(jìn)制):0~1s期間為q=0123時(shí)相對(duì)應(yīng)的擋位值為101,1~3s期間為q=4500,q=6789時(shí)相對(duì)應(yīng)的擋位值為100。通過對(duì)輸入的端口q和scale不同值的設(shè)定,在仿真結(jié)果中就可以檢查是否能正,確地顯示數(shù)值0~9及正確的數(shù)值的示數(shù)點(diǎn)定位。q=0123時(shí)得到的仿真波形如圖7-17所示。查對(duì)應(yīng)的數(shù)碼管譯碼顯示,可知第四位顯示為3(sel:0001show:01001111)
第三位顯示為2(sel:0010show:01011011),
第二位數(shù)顯示為1(sel:0100
show:00000110),
第一位顯示為0(情注意,由于只是對(duì)display單個(gè)模塊仿真,下一頁上一頁§7.3相關(guān)技術(shù)基本知識(shí)與基本技能對(duì)q值的輸入是十六進(jìn)制,數(shù)值前加了0,所以數(shù)碼顯示出0,但下載到開發(fā)板后,數(shù)值前的0是不顯示的),數(shù)碼管顯示的數(shù)值由高到低的值為0123,與輸入的q值相符。q=4500時(shí)得到的仿真波形如圖7-18所示。
查對(duì)應(yīng)的數(shù)碼管譯碼顯示,可知第四、第二位顯示為0(sel:00010010show:00111111),第一位顯示為5(sel:010show:01101101),第一位數(shù)碼管顯示與前面不同,其最高位為數(shù)值1,當(dāng)該位為1時(shí)數(shù)碼管帶示數(shù)點(diǎn)顯示數(shù)值,所以該位顯示為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年五年級(jí)數(shù)學(xué)下冊(cè) 7 折線統(tǒng)計(jì)圖第1課時(shí) 單式折線統(tǒng)計(jì)圖配套說課稿 新人教版001
- 2025城鎮(zhèn)土地開發(fā)和商品房借款合同協(xié)議書范本范文
- 9 生活離不開規(guī)則 (說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治三年級(jí)下冊(cè)001
- 2025工地集控室裝飾裝修工程分包合同
- 2025原料玉原料玉米電FEGN子交易合同文本
- 2025二手房交易合同(合同版本)
- 2024年五年級(jí)數(shù)學(xué)上冊(cè) 3 小數(shù)除法練習(xí)課說課稿 新人教版
- 2024年高中歷史 第三單元 從人文精神之源到科學(xué)理性時(shí)代 第13課 挑戰(zhàn)教皇的權(quán)威說課稿 岳麓版必修3
- Unit 6 Growing Up(說課稿)2023-2024學(xué)年人教新起點(diǎn)版英語五年級(jí)下冊(cè)001
- 2024秋七年級(jí)英語下冊(cè) Module 8 Story time Unit 3 Language in use說課稿 (新版)外研版
- 電動(dòng)三輪車購(gòu)銷合同
- 淋巴瘤的免疫靶向治療
- 校園駐校教官培訓(xùn)
- 自然辯證法論述題146題帶答案(可打印版)
- 儲(chǔ)運(yùn)部部長(zhǎng)年終總結(jié)
- 物業(yè)管理裝修管理規(guī)定(5篇)
- (新版)工業(yè)機(jī)器人系統(tǒng)操作員(三級(jí))職業(yè)鑒定理論考試題庫(kù)(含答案)
- 教育環(huán)境分析報(bào)告
- 人力資源服務(wù)公司章程
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- 自動(dòng)體外除顫器項(xiàng)目創(chuàng)業(yè)計(jì)劃書
評(píng)論
0/150
提交評(píng)論