




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于VerilogHDL數字頻率計設計與實現課程設計任務書學院:計算機與通信工程學院專業:網絡工程專業課程名稱計算機組成原埋課程設計時間20102011學年第一學期1718周學生XX郭祥斌指導教師陳沅濤題目主要內容:1數字頻率計前端信號的放大整形處理2數字頻率計的VerilogHDL設計實現3數字頻率計的CPLD/FPGA制作要求:1通過對相應文獻的收集、分析以及總結,給出相應課題的背景、意義及現狀研究分析。2通過課題設計,掌握計算機組成原理的分析方法和設計方法。3學按要求編寫課程設計報告書,能正確闡述設計和實驗結果。4學生應抱著嚴謹認真的態度積極投入到課程設計過程中,認真查閱相應文獻以及實現
2、,給出個人分析、設計以及實現。應當提交的文件:1課程設計報告。2課程設計附件主要是源程序課程設計成績評定學院計算機通信工程專業網絡工程班級網絡08-02班學號3學生XX郭祥斌指導教師陳沅濤課程成績完成日期2010年12月31日指導教師對學生在課程設計中的評價評分工程優良中及格不及格課程設計中的創造性成果學生掌握課程內容的程度課程設計完成情況課程設計動手能力文字表達學習態度規X要求課程設計論文的質量指導教師對課程設計的評定意見綜合成績指導教師簽字年 月日基于VerilogHDL數字頻率計設計與實現學生:郭祥斌指導教師:陳沅濤摘要:在電子技術中,頻率是最根本的參數之一,并且與許多電參量的測量方案、
3、測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計數器測量頻率具有精度高、使用方便、測量迅速,以及便于實現測量過程自動化等優點,是頻率測量的重要手段之一。電子計數器測頻有兩種方式:一是直接測頻法,即在一定閘門時間內測量被測信號的脈沖個數;二是間接測頻法,如周期測頻法。直接測頻法適用于高頻信號的頻率測量,間接測頻法適用于低頻信號的頻率測量。本文闡述了用VerilogHDL語言設計了一個簡單的數字頻率計的過程關鍵詞:周期;EDA;VerilogHDL;數字頻率計;波形仿真目錄1 引言-.5.-1.1 數字頻率計概述-.6.-1.2 頻率測量的思想和方法-.7
4、.-2 VerilogHDL簡介-.9.-2.1 VerilogHDL的簡介-.9.-3 數字頻率計系統框圖-.1.0.-3.1 數字頻率計系統框圖-.1.0.-.3.2 數字頻率計系統部件簡介-.1.1.-.4 基于VerilogHDL數字頻率計程序設計-.1.2.-.4.1 數字頻率計系統模塊劃分構造-.1.2.-.4.2 計數模塊counter-.1.3.-4.3 門控模塊gate_contro.l-.1.5.-.4.4 分頻模塊fdiv-.1.8.-4.5 存放器模塊flip_latch-.2.1.-.4.6 多路選擇模塊data_mux-.2.3.-.4.7 動態位選模塊dispse
5、lec.t-.2.6.-4.8 BCD譯碼模塊dispdecoder-.27.4.9 頂層電路top-.3.2.-5 總結-.3.6.-.參考文獻-.3.7.-.1引言在電子測量領域中,頻率測量的準確度是最高的,可達1010E-13數量級。PH值、振動、位移、速度、加速度,乃至各種氣體的百分比成分等均用傳感器轉換成信號頻率,然后用數字頻率計來測量,以提高準確度。國際上數字頻率計的分類很多。按功能分類,測量某種單一功能的計數器。如頻率計數器,只能專門用來測量高頻和微波頻率;時間計數器,是以測量時間為根底的計數器,其測時分辨力和準確度很高,可達ns數量級;特種計數器,它具有特種功能,如可逆計數器、
6、予置計數器、差值計數器、倒數計數器等,用于工業和白控技術等方面。數字頻率計按頻段分類(1X氐速計數器:最高計數頻率10MHz;(2)中速計數器:最高計數頻率1A100MHz;(3)高速計數器:最高計數頻率100MHz;(4滿波頻率計數器:測頻X圍180GHz或更高。單片機自問世以來,性能不斷提高和完善,其資源又能滿足很多應用場合的需要,加之單片機具有集成度高、功能強、速度快、體積小、功耗低、使用方便、價格低廉等特點,因此,在工業控制、智能儀器儀表、數據采集和處理、通信系統、高級計算器、家用電器等領域的應用日益廣泛,并且正在逐步取代現有的多片微機應用系統。單片機的潛力越來越被人們所重視。特別是當
7、前用CMOS工藝制成的各種單片機,由于功耗低,使用的溫度X圍大,抗干擾能力強、能滿足一些特殊要求的應用場合,更加擴大了單片機的應用X圍,也進一步促使單片機性能的開展。1.1 數字頻率計概述頻率計的根本原理是用一個頻率穩定度高的頻率源作為基準時鐘,比照測量其他信號的頻率。通常情況下計算每秒內待測信號的脈沖個數,此時我們稱閘門時間為1秒。閘門時間也可以大于或小于一秒。閘門時間越長,得到的頻率值就越準確,但閘門時間越長那么每測一次頻率的間隔就越長。閘門時間越短,測的頻率值刷新就越快,但測得的頻率精度就受影響。本文數字頻率計是用數字顯示被測信號頻率的儀器,被測信號可以是正弦波,方波或其它周期性變化的信
8、號。如配以適當的傳感器,可以對多種物理量進展測試,比方機械振動的頻率,轉速,聲音的頻率以及產品的計件等等。因此,數字頻率計是一種應用很廣泛的儀器電子系統非常廣泛的應用領域內,到處可見到處理離散信息的數字電路。數字電路制造工業的進步,使得系統設計人員能在更小的空間內實現更多的功能,從而提高系統可靠性和速度。集成電路的類型很多,從大的方面可以分為模擬電路和數字集成電路2大類。數字集成電路廣泛用于計算機、控制與測量系統,以及其它電子設備中。一般說來,數字系統中運行的電信號,具大小往往并不改變,但在實踐分布上卻有著嚴格的要求,這是數字電路的一個特點。數字集成電路作為電子技術最重要的根底產品之一,已廣泛
9、地深入到各個應用領域1.2 頻率測量的思想和方法1 .頻率測量的根本思想測量被測信號在單位時間內的脈沖個數,其數字表達式f=N/t其中:f為被測信號的頻率N為脈沖的個數t為被測信號產生N個脈沖所需的時間2 .頻率測量方法直接測量法:直接測量被測信號的頻率,通過計數法來對被測信號在一定時間內的脈沖個數進展計數。直接測量法的構造框圖如圖1.2.1所示。:被測信號放大整形計數測量結果1標準時鐘分頻圖1.2.1直接測量法的構造框圖3 .誤差來源技術過程中最大存在著土1個字的量化誤差對時間t的準確把握,主要包括準時鐘的時間準確性、整形電路、分頻電路以及技術時間控制閘門的開關速度等因素。=士 |1/ft|
10、 + |G|直接法測量的最大相對誤差可以表達為df/fmax=±|1/N|+|G|其中:N為脈沖的個數,G為標準時鐘的頻率穩定性,f為被測信號頻率,t為被測信號產生N個脈沖所需的時間。4 .功能及技術指標 頻率測量X圍:10Hz100MHz 測量分辨率:1Hz 測量通道靈敏度:50mVpp 通道輸入阻抗:不小于100k? 測量誤差:±1 測量結果顯示:6位數碼管顯示該數字頻率計的操作面板如圖1.2.4所示輸入波形選擇方波I三角波測量結果顯示I正弦波IIIII被測輸入OO簡易數字頻率計量程選擇十GND圖1.2.4簡易數字頻率計的操作面板其中,被測信號可以有三種,分別是方波、三
11、角波和正弦波;測量結果顯示采用六個數碼管來顯示;量程分為三個,分別為:0999999Hz、09999.99kHz、099.9999MHz2VerilogHDL簡介2.1 VerilogHDL的簡介VerilogHDL是一種硬件描述語言(hardwaredescriptionlanguage為了制作數位電路(數字電路)而用來描述ASICs和FPGAs的設計之用。Verilog的設計者想要以C程序語言(en:Cprogramminglanguage為根底設計一種語言,可以使工程師比擬熟悉跟容易承受。事實上,它產生與C程序語言類似的不嚴謹性質,并且大概與Pasca很相像。這種語言跟傳統的程序設計語言
12、不同,在于它的程序表達并非嚴格地線性(循序)執行。Verilog模式包含不同模組(modules)(勺階層關系。模組(modules是輸出(inputs)和輸入(outputs)所定義出來的一個集合。在每個模組中,有一串的電線(wires'暫存器(registers)口子模組(submodules)勺定義。并且在每個模組里面,語言表達大局部都被群組成為各種的執行區塊(blocks)用來定義該模組所產生的行為描述。在每個區塊(blocks內,使用begin和end的關鍵字來區隔開來,其中的表達是循序被執行。但是同一個設計,不同的區塊間的執行是平行的。這個語言的表達之子集合是可合成(syn
13、thesizable)如果在一個電路設計的模組中僅包含可合成的表達,那麼這個電路設計就可以被適當的軟件,轉換合成為電腦芯片的電路layout。3數字頻率計系統框圖3.1 數字頻率計系統框圖設計如圖3.1.1所示的數字頻率計系統電路框圖圖3.1.1所示的數字頻率計系統電路框圖3.2 數字頻率計系統部件簡介1 .放大整形數字頻率計允許測量信號的類型有三種:方波、三角波和正弦波,并且信號的測量通道靈敏度為50mVpp,為此,需要將被測信號放大整形成標準的TTL電平的方波型號,便于CPLD/FPGA對信號脈沖的計數。2 .SW幺SW2SW3按鍵SW1、SW2、SW3這三個按鍵用來在測量的時候,用戶根據
14、被測信號的大致頻率X圍選擇不同的適合被測信號的量程。在按鍵的設計中,需要考慮實際按鍵的消抖問題3.標準時鐘標準時鐘為頻率計測量提供精度相比照擬高的時基信號,其時間的穩定性與精度將會直接影響到頻率計測量的準確性。4. LED顯示模塊頻率計將測量的結果通過6位數碼管LED來顯示。4基于VerilogHDL數字頻率計程序設計4.1 數字頻率計系統模塊劃分構造數字頻率計中的CPLD/FPGA是頻率計的核心,主要實現在一定時間內,對被測信號的脈沖個數進展計算,并且轉化為相應的頻率值顯示在六個數碼管上。首先將系統分成七個模塊來分別設計仿真。分別有以下七個模塊:經過上述模塊化劃分后的構造框如圖4.1所示放大
15、整形后的信號量程選擇開關標準 時鐘圖4.1模塊化劃分后的構造計數模塊counter:對包含被測信號頻率信息的脈沖進展計數門控模塊gate_control根據量程,控制技術模塊計數。分頻模塊fdiv:將標準時鐘分頻,得到計數以及動態顯示所需的時鐘存放器模塊flip_latch:對計數模塊的計數值進展存放。多路選擇模塊data_mux根據動態選擇信號,選擇相應的需要顯示的計數值動態為選擇模塊dispselevt輸出動態顯示中的位選信號BCD譯碼模塊dispdenoder將BCD碼譯成數碼管的顯示數據4.2計數模塊counter該模塊主要完成對被測信號經過放大整形后輸入到可編程邏輯器件的F_IN信號
16、是現在一定的時間下的計數,采用六個異步BCD碼十進制計數器來實現0999999X圍的計數。計數模塊的構造框圖如圖4.2.1所示。counterENCLRF INQ53.0Q43_0Q330Q23.OQ030F_OUTinst圖4.2.1計數模塊的構造框圖根據模塊實現的功能設計VerilogHDL源代碼如下:modulecounter(EN,CLR,F_IN,F_OUT,Q0,Q1,Q2,Q3,Q4,Q5);output3:0Q5,Q4,Q3,Q2,Q1,Q0;outputF_OUT;reg3:0Q5,Q4,Q3,Q2,Q1,Q0;inputEN;regF_OUT;inputCLR;regF_o
17、ut0,F_out1,F_out2,F_out3,F_out4;inputF_IN;always(posedgeF_IN)beginif(EN=1'b1)&&(CLR=1'b0)&&(Q0!=4'b1001)beginQ0<=Q0+4'b0001;F_OUT<=1'b0;endelsebeginQ0<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q1!=4'b1001)beginQ1<=Q1+4'b000
18、1;F_OUT<=1'b0;endelsebeginQ1<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q2!=4'b1001)beginQ2<=Q2+4'b0001;F_OUT<=1'b0;endelsebeginQ2<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q3!=4'b1001)beginQ3<=Q3+4'b0001;該模塊定義輸入端口如下:
19、F_OUT<=1'b0;endelsebeginQ3<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q4!=4'b1001)beginQ4<=Q4+4'b0001;F_OUT<=1'b0;endelsebeginQ4<=4'b0000;if(EN=1'b1)&&(CLR=1'b0)&&(Q5!=4'b1001)beginQ5<=Q5+4'b0001;F_OUT<=1
20、9;b0;endelsebeginQ5<=4'b0000;F_OUT<=1'b1;endendendendendendendEndmoduleEN:異步BCD碼十進制計數器的全局使能信號CLR:異步BCD碼十進制計數器復位信號F_IN:被測信號經過放大與整形處理后的信號該模塊定義輸出端口如下:F_OUT:超出技術X圍0999999的輸出信號,用來指示提醒用戶選擇更大的量程。 Q0:計數器的最低位輸出 Q1:計數器的第5位輸出 Q2:計數器的第4位輸出 Q3:計數器的第3位輸出 Q4:計數器的第2位輸出 Q5:計數器的第1位輸出在Altera公司的軟件工具Quartu
21、sII中編譯和波形仿真得到波形如圖4.2.2所示。圖4.2.2計數模塊counter的仿真波形4.3門控模塊gate_control門控模塊實現檢測外界量程的選擇,并且根據量程輸出控制6位BCD碼十進制計數器計算器的計數時鐘,以及在測量完一次信號頻率后,計數器計數值清零的清零要與后級存放器的鎖存時刻做很好的時序配合。應該實在計數器測量完一次信號頻率后,首先將數據鎖存到存放器,然后再將計數器值清零,這樣可以驚醒下一次測量門控模塊的構造框圖如圖4.3.1所示gate_control SWOLatch_EN SW1Counter_Clr SW2Counter_EN f1hzdp_s1hz f10hz
22、dp_s10hz f100hzdp_s1OOhzinst3圖4.3.1門控模塊構造框圖根據模塊實現的功能設計VerilogHDL源代碼如下:modulegate_control(SW0,SW1,SW2,f1hz,f10hz,f100hz,Latch_EN,Counter_Clr,Counter_EN,dp_s1hz,dp_s10hz,dp_s100hz);outputLatch_EN;outputdp_s1hz,dp_s10hz,dp_s100hz;outputCounter_Clr;outputCounter_EN;inputSW0,SW1,SW2;input f1hz,f10hz,f100
23、hz;reg dp_s1hz,dp_s10hz,dp_s100hz;reg fref;reg wire_1;reg wire_2;/ 初始化輸入以及中間量initialbeginfref <= 1'b0;wire_1 <= 1'b0;wire_2 <= 1'b0;end/ 根據不同的外界量程選擇,選擇相應的計數基時鐘always (SW0 or SW1 or SW2 or f1hz orf10hz or f100hz)beginif(SW2 = 1'b1)beginfref <= f100hz;dp_s1hz,dp_s10hz,dp_s1
24、00hz<= 3'b001;endelse if(SW1 = 1'b1)beginfref <= f10hz;dp_s1hz,dp_s10hz,dp_s100hz<= 3'b010;endelse if(SW0 = 1'b1)beginfref <= f1hz;dp_s1hz,dp_s10hz,dp_s100hz<= 3'b100;endend/ 根據不同的計數基時鐘,提供輸出相應的計數器計數值的去除脈沖與鎖存器鎖存脈沖always (posedge fref)beginwire_1 <= ! wire_1;endal
25、ways (negedge fref)beginwire_2 <= wire_1;endassign Counter_EN = wire_1;assign Latch_EN = (! Counter_EN)& wire_2;assign Counter_Clr = (! Counter_EN) & (!Latch_EN) | (! wire_2);endmodule該模塊定義輸入端如下:SW0SW1、SW2:量程選擇開關flhz:1Hz的標準時鐘輸入fl0hz:10Hz的標準時鐘輸入 fl00hz:100Hz的標準時鐘輸入該模塊定義輸入端口如下: Latch_EN:用來是
26、能存放器所存數據 Counter_Clr:用于計數器的清零 Counter_EN:用于使能計數器開場計數 dp_s1hz:選擇999999Hz量程時,用于控制顯示中的小數點位置 dp_s10hz選擇9999.99Hz量程時,用于控制顯示中的小數點位置 dp_s100hz選擇99.9999Hz量程時,用于控制顯示中的小數點位置在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.3.2所示。LiiiqiTnerEi孑口TnkVindniHsp.事K松除置20%Z*&4可.JoibtgnViakcmMywI侑<|'Hortti1'5zIrtMt
27、電汨tErtt5FJE D®BOEkB U上加E AODIkt Q葷aexdfejUllrBIijLiDOkB 工CuoittEl ILsid_llBItxiiuB I- -Lrl審布,:,獷&-:,;:,:,媯::必::,:麴:審,榻跖蟲窗,以代:注:初工"::四:5工分般;+:&:,::翻式婿嫻然觥SJ旗您統統翩掇御秘流秘掇就嫡S掇瞰S微獺幽懣就統您斕掇儂班觥說兩畿酒:施赧:謝漱狡痂:淞懿痂濕綴斯:澗密出做熱端必翻:麻就的蹄;曜瀚明:;嵌修啜陶艇榻姆嫩&瞬微讖滋:猿然;嫄猴誣俄讖苑域畿溯;哪:煙;澎樂窗嫩瞰母般:搬嫩瑚:初崩加法:燎:燧虎滋富溷燃
28、她跋海:煙避他做西雙淞魴恭幽嘉磁淞掰械w總曲惑潴赧宓:勵戰:-圖4.3.2門控模塊的仿真波形4.4分頻模塊fdiv分頻模塊在系統全局時鐘的驅動下,經過分頻得到系統中所需要的多種頻率成分的時鐘信號分頻模塊的構造框圖如圖4.4.1所示fdivelkf1hzf10hzfWOhzflkhzinstlI,AHIIIII.1III1HIIIII»圖4.4.1分頻模塊構造框圖根據模塊實現的功能設計VerilogHDL源代碼如下:modulefdiv(clk,f1hz,f10hz,f100hz,f1khz);t1=t1+1;outputf1hz,f10hz,f100hz,f1khz;inputclk
29、;regf1hz,f10hz,f100hz,f1khz;integert1=0,t2=0,t3=0,t4=0;always(posedgeclk)begin/if(t1<9999)/實際系統分頻值if(t1<2)/仿真時的分頻值beginf1khz<=1'b0;endelsebeginf1khz<=1'b1;t1=0;endendalways(posedgef1khz)begin/if(t2<9)/實際系統分頻值beginif(t2<2)/仿真時的分頻值beginf100hz<=1'b0;t2=t2+1;endelsebegin
30、f100hz<=1'b1;t2=0;endendalways(posedgef100hz)begin/if(t3<9)/實際系統分頻值if(t3<2)/仿真時的分頻值beginf10hz<=1'b0;t3=t3+1;endelsef10hz<=1'b1;t3=0;endendalways(posedgef10hz)begin/if(t4<9)/實際系統分頻值if(t4<2)/仿真時的分頻值beginf1hz<=1'b0;t4=t4+1;endelsebeginf1hz<=1'b1;t4=0;enden
31、dendmodule該模塊定義輸入端口如下: Clk:全局系統時鐘信號該模塊定義輸出端口如下: F1hz:輸出1Hz的時鐘信號 F10hz:輸出1Hz的時鐘信號 F1khz:輸出1Hz的時鐘信號在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.4.2所小0圖4.4.2分頻模塊的仿真波形4.5 存放器模塊flip_latch存放器模塊實現每一個測量頻率時,計數器計算值的暫時存儲。存放器模塊的構造框圖如圖4.5.1所示。inst2A53OA43*OJA33.OA23.OA13.OAO3.O elkQ33,Q04 3,. OQ33 ,.O02(3.0Q13 OQO3 Of
32、liplatch圖4.5.1存放器模塊根據模塊實現的功能設計VerilogHDL源代碼如下:moduleflip_latch(clk,A0,A1,A2,A3,A4,A5,Q0,Q1,Q2,Q3,Q4,Q5);output3:0Q0,Q1,Q2,Q3,Q4,Q5;inputclk;input3:0A0,A1,A2,A3,A4,A5;reg3:0Q0,Q1,Q2,Q3,Q4,Q5;beginalways(posedgeclk)Q0<=A0;Q1 <= A1;Q4 <= A4;Q2 <= A2;Q5 <= A5;Q3 <= A3;endEndmodule該模塊定義
33、輸入端口如下: clk:所存數據信號輸入,當clk的上升沿到來時,存放器將輸入端信號鎖存進存放器,并且改變輸出。 A0,A1,A2,A3,A4,A5:存放器的數據輸入端該模塊定義輸出端口如下: Q0,Q1,Q2,Q3,Q4,Q5存放器的數據輸出端。在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.5.2所0 fR | tWwlmhrIQISm口口口口口口呂IrJlgdo呂fl n- MU1m聞wJnJde T TdU&SIMK叩口於 044可 sflwB=anEflaaBi Itl:jh注篁sg.ID D_L,丁;ghIUn 山IUHif加 iMi::硼mw
34、Iffl二一 IPIMIAlli ;g J仇皿工nu工111Ml!LLIOlloiXjmIunIlaini:Id 同:1 口日X1 限IJ Hi1ESil:MIL:UHJ1IHI11WJMilEEH1-nn-ncrEK-1Q.16rwSEQfEnd-Dp圖4.5.2存放器模塊的仿真波形4.6 多路選擇模塊datamux多路選擇模塊實現測量頻率值的分時顯示,即動態顯示。經過多路選擇器模塊來分時地傳輸數據多路選擇模塊的構造如圖4.6.1所示inst8.A53.OA43.OA33,0A230一A130一AOPQQ3.Odisp_select2.OdatamuxIIIIiTThHIIBBlBiilII
35、I圖4.6.1多路選擇模塊構造框圖根據模塊實現的功能設計VerilogHDL源代碼如下:moduledata_mux(disp_select,A0,A1,A2,A3,A4,A5,Q);output3:0Q;input2:0disp_select;input3:0A0,A1,A2,A3,A4,A5;reg3:0Q;always(disp_select,A5,A4,A3,A2,A1,A0,Q)begincase(disp_select)3'b000:Q<=A5;3'b001:Q<=A4;3'b010:Q<=A3;3'b011:Q<=A2;3&
36、#39;b100:Q<=A1;3'b101:Q<=A0;default:Q<=4'b0;endcaseendEndmodule該模塊定義輸入端口如下:disp_select選擇信號輸入A0,A1,A2,A3,A4,A5:多路選擇模塊的數據輸入端口該模塊定義輸出端口如下:多路選擇模塊的數據輸出端口。在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.6.2所酒31虬3MidwTnEla,lOtEinr工1"Irfwwi2的*q1b1=:piEb|1ji-瓦|JDliiiM3fiji劉pikCDfieEnsJFjBADI1HEO
37、JmiDXeiiImooXsioi-uCil-MJED1-,jrLJ-£H黑【IMI1119T151、i51DIIlli5附LITO:imi_inp_JL»»n網迎電11jm:卬而|如共OtdU工Hi上4aMflmithMfrarantflLQI:_X_x_Iim迎iirl£<dOlifDioYoiiTw舊編-J皿wle建tn】LI|E3LiLFl由Q!llti4.7動態位選模塊dispselect動態位選模塊用來驅動數碼動態地顯示頻率測量數據,分時地選擇各個數碼管進展顯示動態位選的構造框圖4.7.1所示。dispselect:一elkQ50Tdi
38、sp_select2,.0inst7卜、嚴'"',r,,、!、h、產%,-圖4.7.1動態位選模塊的構造框圖根據模塊實現的功能設計module dispselect(clk,disp_select,Q);output 5:0 Q;output 2:0 disp_select;input clk;reg 5:0 Q;reg 2:0 disp_select;always (posedge clk)beginif(disp_select < 3'b101)disp_select <= disp_select +Verilog HDL源代碼如下:elsed
39、isp_select <= 3'b0;case(disp_select)3'b000: Q <= 6'b100000;3'b001: Q <= 6'b010000;3'b010: Q <= 6'b001000;3'b011: Q <= 6'b000100;3'b100: Q <= 6'b000010;3'b101: Q <= 6'b000001;default: Q <= 6'b000000;endendmodule該模塊定義輸入端口如
40、下: clk:動態位選的時鐘信號輸入,一般取1KHz左右的標準時鐘。該模塊定義輸出端口如下: disp_select動態位選中間量輸出,用于與系統中其他模塊之間的同步。 Q:動態位選信號輸出,可以直接接到數碼管的公共端。在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.7.2所示。圖4.7.2動態位選模塊的仿真波形4.8BCD譯碼模塊dispdecoderBCD譯碼模塊主要實現BCD碼到7段數碼管顯示碼字段的轉換,同時,考慮到頻率測量中的一些“零的處理,比方選擇量程1999999Hz,但被測信號頻率為100Hz,這樣在顯示的時候就需要將6為數碼管的前三位屏蔽。BCD
41、譯碼模塊的構造框圖如圖4.7.1所示。dispdecoderi,data_in30data_out6C1¥1a«,disp_select20加dp_s1hzdp_s1Ohzdp_s100hz'Q53,0*'Q4J0FL1Q&3XL1Q23.O*'Qip.Ol'Q03.01Icouriter_oLi1rinstSB*iAimM&Bhsiaji,imBLhhaaAiS.MJIB&i1111sUdijI.,金ii&Hj1.品口鼻14JiUJijiUMAjia圖4.8.1BCD譯碼模塊的構造框圖根據模塊實現的功能設計V
42、erilogHDL源代碼如下:module dispdecoder(data_in,disp_select,dp_s1hz,dp_s10hz,dp_s100hz,Q5,Q4,Q3,Q2,Q1,Q0,counter_out,data_out,input 2:0 disp_select;input dp_s1hz,dp_s10hz,dp_s100hz;input 3:0 Q5,Q4,Q3,Q2,Q1,Q0;input counter_out;reg dp;reg 6:0 data_out;reg hide;dp);initialoutput6:0data_out;beginoutputdp;dp&
43、lt;=1'b0;hide <= 1'b0;input3:0data_in;end7'b1110000;/7/譯碼顯示數據always(data_in,hide,data_out)beginif(hide=1'b0)begincase(data_in)4'b0000:data_out<=7'b1111110;/04'b0001:data_out<=7'b0110000;/14'b0010:data_out<=7'b1101101;/24'b0011:data_out<=7
44、9;b1111001;/34'b0100:data_out<=7'b0110011;/44'b0101:data_out<=7'b1011011;/54'b0110:data_out<=7'b1011111;/64'b0111:data_out<=4'b1000:data_out<=7'b1111111;/84'b1001:data_out<=7'b1110011;/9default:data_out<=7'b0000000;endcaseendend/小數
45、點位置與零數字的處理always(disp_select,dp_s1hz,dp_s10hz,dp_s100hz,Q5,Q4,Q3,Q2,Q1,counter_out,dp,hide)beginif(disp_select=3'b001)&&(dp_s100hz=1'b1)|(disp_select=3'b011)&&(dp_s10hz=1'b1)|(disp_select=3'b101)&&(dp_s1hz=1'b1)dp <= 1'b1;1'b0)&&(Q5=
46、4'b0)&&elsedp<=1'b0;case(disp_select)3'b000:beginif(counter_out=1'b0)&&(Q5=4'b0)hide<=1'b1;elsehide<=1'b0;end3'b001:beginif(counter_out=1'b0)&&(Q5=4'b0)&&(Q4=4'b0)&&(dp_s100hz!=1'b1)hide<=1'b1;els
47、ehide<=1'b0;end3'b010:beginif(counter_out=(Q4=4'b0)&&(Q3=4'b0)&&(dp_s100hz!=1'b1)hide<=1'b1;elsehide<=1'b0;end3'b011:beginif(counter_out1'b0)&&(Q5=4'b0)&&(Q4=4'b0)&&(Q3=4'b0)&&(Q2=4'b0)&&
48、amp;(dp_s100hz!=1'b1)&&(dp_s10hz!=1'b1)hide<=1'b1;elsehide<=1'b0;end3'b100:beginif(counter_out1'b0) && (Q5 = 4'b0) &&else(Q4=4'b0)&&(Q3=4'b0)&&(Q2=4'b0)&&(Q1=4'b0)&&(dp_s100hz!=1'b1)&&am
49、p;(dp_s10hz!=1'b1)hide<=1'b1;hide<=1'b0;enddefault:hide<=1'b0;endcaseendendmodule該模塊定義輸入端口如下: data_in:BCD碼字輸入信號 disp_select來自動態顯示位模塊,實現兩者之間的同步dp_s1hz,dp_s10h4dp_s100hz輸入小數點位置控制信號來自門控模塊 Q5,Q4,Q3,Q2,Q1,QQ計數器的計數值輸入,用來控制“零顯示控制 counter_out計數器計數溢出信號,用來提示用戶更換更大量程該模塊定義輸出端口如下: data_o
50、ut:經過譯碼后的7段數碼管顯示數據輸出,可以直接連接到數碼管的數據端口 dp:小數點控制信號在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖4.8.2所示。M7EHer卬吧下,上"nsT.IBn5MEntP11Ifi0EX0II30QEEI加.口3MEDIVE.二_I_:i.I_IF豆-一三比正正應亙。LG05ucDOS!S3DJt曲inXoaiTtC-JW"IR皿NDI:nilX叩5CUQI£3IC(mm;l3JtmtnI.1叫口赳£皿1Jnun1moi:1DLQDXDOUatOln.】QLDJrQJLiIaLJy.LDDI
51、X.QE.JDbuElLDn;inLi-J.amJILVL';Icnn二I:口和|ruum,IQ州JmIjllDICMBTWrE*"t<|p_ilCCfars巾BaiS雪田as5*修B血,lQ4j/皿*幅國也innm*激獺源陰蝴瞰眼踹冷頗微瞬般順瞄瞅娥娜能黜雌幽減娜般嫻殿觥微蹦島睇玄圖4.8.2BCD譯碼模塊的仿真波形4.9頂層電路top在設計完各個模塊后,需要將各個模塊有機地組合成一個整體,最后來實現系統的功能。在數字頻率計中,同時采用了電路原理圖示的設計以及VerilogHDL語言來編寫的頂層電路,其中頂層如圖4.9.1所示。用VerilogHDL語言描述如下:mo
52、dulemain(Clock,SW2,SW1,SW0,F_in,over_alarm,dp,wireSYNTHESIZED_WIRE_0;wireSYNTHESIZED_WIRE_1;wireSYNTHESIZED_WIRE_2;wire3:0SYNTHESIZED_WIRE_32;wire3:0SYNTHESIZED_WIRE_33;disp_data,wire3:0disp_selectSYNTHESIZED_WIRE_34;);wire3:0SYNTHESIZED_WIRE_35;inputClock;wire3:0inputSW2;SYNTHESIZED_WIRE_36;inputSW
53、1;wire3:0inputSW0;SYNTHESIZED_WIRE_37;inputF_in;wireSYNTHESIZED_WIRE_9;outputover_alarm;wireoutputdp;SYNTHESIZED_WIRE_10;output6:0disp_data;wireoutput5:0disp_select;SYNTHESIZED_WIRE_11;wireSYNTHESIZED_WIRE_12;wireSYNTHESIZED_WIRE_13;wireSYNTHESIZED_WIRE_14;wireSYNTHESIZED_WIRE_15;wire3:0SYNTHESIZED_
54、WIRE_16;wire2:0SYNTHESIZED_WIRE_38;wireSYNTHESIZED_WIRE_24;wire3:0SYNTHESIZED_WIRE_25;wire3:0SYNTHESIZED_WIRE_26;wire3:0SYNTHESIZED_WIRE_27;wire3:0SYNTHESIZED_WIRE_28;wire3:0SYNTHESIZED_WIRE_29;wire3:0SYNTHESIZED_WIRE_30;assignover_alarm=SYNTHESIZED_WIRE_15;counterb2v_inst(.EN(SYNTHESIZED_WIRE_0),.CLR(SYNTHESIZED_WIRE_1),.F_IN(F_in),.F_OUT(SYNTHESIZED
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據倉庫與在線分析試題及答案
- 2025屆江蘇省宿遷市沭陽廣宇學校八下數學期末監測試題含解析
- 網絡協議分析基礎試題及答案
- 計算機操作技能試題及答案
- 網絡管理系統平臺wahl試題及答案
- 法學概論考試的時間管理策略與試題及答案
- 幼兒園日常生活中的教研活動計劃
- 法學概論與國際法的關系試題及答案
- 項目進度跟蹤的有效方法計劃
- 2024年濰坊市寒亭區市場監督管理局招聘真題
- 團體體檢報告格式模板范文
- 漢heidenhain itnc用戶手冊探測循環
- 學習領會《在二十屆中央政治局第四次集體學習時的講話》心得
- 水稻聯合收割機使用與維護
- 供應商考核評分表
- 無土栽培學(全套課件660P)
- 《表觀遺傳》教學設計
- 20千伏及以下配電網工程業主項目部標準化管理手冊
- GB/T 3683-2011橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規范
- GB/T 3036-1994船用中心型蝶閥
- GB/T 18920-2020城市污水再生利用城市雜用水水質
評論
0/150
提交評論