【正文】
信號END CLK10M。測量信號時,將被測信號送入計數模塊。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。測周期法需要有基準系統時鐘頻率Fs,在待測信號一個周期Tx內,記錄基準系統時鐘頻率的周期數Ns,則被測頻率可表示為: Fx=Fs/Ns 。 采用單片機設計具有一定的優(yōu)勢,如以AT89C51單片機和MSP430F449單片機的頻率計設計,總體來看,這些具有結構簡單,功能齊全,使用方便的特點。頻率誤差倍增法就是使用2個標稱值一樣的頻標信號,通過多次倍頻,混頻,濾波以及放大把2個頻標信號的頻差加以放大的方法。在頻率測量的研究上,改進,創(chuàng)造新的測頻原理,方法和儀器,以便以更高的精度,速度,自動進行測量和數據處理,并向多功能,小型化,高性價比發(fā)展是其主要的發(fā)展方向。集成數字頻率計由于所用元件少、投資少、體積小、功耗低、且可靠性高、功能強、易于設計和研發(fā),使得它具有技術上的實用性和應用的廣泛性。 數字頻率計是數字電路中的一個典型應用,傳統的數字頻率計一般由分離元件搭接而成,實際的硬件設計用到的器件較多,連線比較復雜,其測量范圍、測量精度和測量速度都受到很大的限制。MAX+PLUSⅡ具有一個完整的可編程邏輯設計環(huán)境,包括設計輸入、設計處理、設計校驗和下載編程4個模塊,設計者可以按設計流程選擇工作模塊。Altera公司在推出各種CPLD的同時,也在不斷地升級相應的開發(fā)工具軟件,已從早起的第一代A+PLUS、第二代MAX+PLUS發(fā)展到第三代MAX+PLUSⅡ和第四代Quartus。這樣做的目的是可以在設計的早期發(fā)現電路設計上的缺陷和錯誤,從而節(jié)省電路設計的時間,縮短開發(fā)周期?! ? VHDL的開發(fā)流程 VHDL作為一種標準化的硬件描述語言,在對硬件電路進行描述的過程中應該遵循一定的流程,主要包括以下幾步: ①在進行硬件電路系統設計之前,首先作出總體設計方案;然后給出相應的硬件電路系統設計指標;最后將總體方案中的各個部分電路設計任務及設計要求給相應的設計部門。在上述工作的基礎上,在進行波形分析,仿真調試便完成整個軟件設計。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。 1 EDA 技術發(fā)展概況 VHDL 軟件設計簡介 VHDL全名Very High Speed Integrated Circuit Hardware Description Language ,VHDL語言是一種在80年代的后期出現用于電路設計的高級語言,最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言。作為用十進制數字顯示被測信號頻率的數字頻率計,是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的電子測量儀器。直接測頻法適用于高頻信號的頻率測量,間接測頻法適用于低頻信號的頻率測量。在電子技術中,頻率是最基本的參數之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要。VHDL。隨著可編程邏輯器件(CPLD)的廣泛應用,以EDA工具為開發(fā)平臺,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language)工業(yè)標準硬件描述語言,采用自頂向下(Top to Down)和基于庫(Librarybased的設計,設計者不但可以不必了解硬件結構設計,而且將使系統大大簡化。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風格以及語法是十分類似于一般的計算機高級語言。在編程時分別對控制、計數、鎖存、譯碼、動態(tài)掃描等電路模塊進行VHDL文本描述, 使每個電路模塊以及器件都以文本的形式出現,然后通過編譯、波形仿真、調試來完善每個器件的功能。符合市場需求的大規(guī)模系統高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現。這種設計方法的總體思路是:首先確定頂層模塊并進行頂層模塊的設計;然后將頂層模塊中的邏輯功能劃分為不同的功能模塊,再進行功能模塊的詳細設計。生成器件編程文件的作用是將VHDL描述經過模擬、綜合、優(yōu)化和布局布線的結果,經過一定的映射轉換成一個器件編程所用的數據文件格式。MAX+PLUSⅡ提供了與其他設計輸入、綜合和校驗工具的接口,借口符合EDIF 200/300、LPM、VHDL、VerilogHDL等標準。 (6) 豐富的設計庫。接下來,在后續(xù)的章節(jié)會介紹硬件描語言VHDL語言的詳細情況。而頻率測量所能達到的精度,主要取決于作為標準頻率源的精度以及所使用的測量設備和測量方法。然后,兩組計數器分別對被測信號和標準信號進行計數,要等到被測信號下降沿到來時才真正結束計數,完成一次測量過程。數字頻率計的設計手段也是多種多樣的。目前,數字頻率計的設計可以直接面向用戶需求,根據系統的行為和功能要求,自上至下的逐層完成相應的描述、綜合、優(yōu)化、仿真與驗證,直到生成器件。在本設計中,用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,通過對來臨的待測信號的上升沿在設定的計數允許周期T內計數,這個計數允許周期T就是所謂的閥門。并且分別用VHDL硬件描述語言對其編程,實現了閘門控制信號、計數電路、鎖存電路、顯示電路等。USE 。139。 END ART。 SIGNAL CNTEER:STD_LOGIC。 END IF 。測頻控制模塊TESTCTL的CLR_CNT端產生一個上升沿,對計數器進行清零。USE 。BEGINPROCESS(CLK)BEGIN IF CLK39。AND Div2CLK=39。LOAD=NOT Div2clk。位數越高頻率測量的范圍也越寬,此測量范圍由計數電路內部的十進制計數器的個數來決定。 計數使能信號 COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)。EVENT AND CLK=39。 END IF。 END PROCESS。測頻時序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿,將計數值鎖存到REG40B鎖存器中,并由REG40B的輸出端輸出。EVENT AND LOAD=39。共陰極LED數碼管的公共端連接到地,另一端分別接一個限流電阻后再接到控制電路的信號端,當信號端為高電平時,該段即被點亮,否則不亮。它是共陰極驅動芯片,也就是在輸出高電平時,該芯片具有較強的電流輸出能力。 輸入的4位BCD 數字符 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。實現方法是將頻率計的10個數碼管的相應字段并聯起來,由CPLD或FPGA 的輸出信號a,b,c,d,e,f,g直接驅動相應字段,由片選信號S1,S2,S3,S4,S5,S6,S7,S8,S9,S10依次點亮各個LED數碼管,循環(huán)顯示,即一個數碼管顯示之后另一個數碼管馬上顯示,利用人眼的視覺的暫留特性,可以看大多個數碼管同時顯示的效果。USE 。 段選信號END DYNAMIC。EVENT AND CLK=39。 WHEN 0001=BUS4=DIN1。 WHEN 0101=BUS4=DIN5。 WHEN 1001=BUS4=DIN9。 當系統正常工作時,脈沖發(fā)生器提供標準的時鐘信號,經過測頻時序控制信號發(fā)生器進行信號的變換,產生計數信號。由VHDL 語言實現的頂層模塊程序見附錄。計數值會產生正負一個字的誤差,并且被測精度與計數器中記錄的數值Nx有關,為保證測試精度,一般對于低頻信號采用測周期法,對于高頻信號采用測頻率法。鄒老師嚴以律己、寬以待人的崇高風范,平易近人的人格魅力,令人如沐春風,倍感溫馨。 CLK500:OUT STD_LOGIC)。 END COMPONENT。 LOAD: OUT STD_LOGIC)。 SHIFT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0)。 SIGNAL CARRY1:STD_LOGIC。 SIGNAL CARRY9:STD_LOGIC。 SIGNAL DT4: STD_LOGIC_VECTOR(6 DOWNTO 0)。 U00: TESTCTL PORT MAP(CLK=NECLK,TSTEN=TSTEN, CLR_CNT=CLR_CNT,LOAD=LOAD)。 U08: CNT10 PORT MAP(CLK=CARRY7,CLR=CLR_CNT,ENA=TSTEN, COUNT10=DIN(31 DOWNTO 28),CARRY_OUT=CARRY8)。 U24: BCD7 PORT MAP(BCD=DOUT(19 DOWNTO 16),LED=DT4)。 .35。 U26: BCD7 PORT MAP(BCD=DOUT(27 DOWNTO 24),LED=DT6)。 U010: CNT10 PORT MAP(CLK=CARRY9,CLR=CLR_CNT,ENA=TSTEN, COUNT10=DIN(39 DOWNTO 36),CARRY_OUT=CARRY10)。 U02: CNT10 PORT MAP(CLK=CARRY1,CLR=CLR_CNT,ENA=TSTEN, COUNT10=DIN(7 DOWNTO 4),CARRY_OUT=CARRY2)。 SIGNAL DT6: STD_LOGIC_VECTOR(6 DOWNTO 0)。 SIGNAL DIN :STD_LOGIC_VECTOR(39 DOWNTO 0)。 SIGNAL CARRY3:STD_LOGIC。 END COMPONENT。 COMPONENT BCD7 PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 DIN: IN STD_LOGIC_VECTOR(39 DOWNTO 0)。 COMPONENT CLKGEN PORT(CLK:IN STD_LOGIC。USE 。通過本次的課程設計,加深了我對EDA課程的理解,強化了我對VHDL語言相關知識的記憶,提高了我對所學知識的應用。即通過該頻率計測得頻率值為10000HZ。計數模塊對輸入的矩形波進行計數,將計數結果送入鎖存器中,保證系統可以穩(wěn)定顯示數據,顯示譯碼驅動電路將二進制表示的計數結果轉換成相應的能夠在七段數碼顯示管上可以顯示的十進制結果。 WHEN OTHERS=BUS4=0000000。 WHEN 0110=BUS4=DIN6。 WHEN 0010=BUS4=DIN2。THEN SCAN:=SCAN+1。 BEGIN P1:PROCESS(CLK,SCAN_CLK,RESET) VARIABLE SCAN:STD_LOGIC_VECTOR(17 DOWNTO 0)。USE 。根據人眼的視覺暫留原理,LED數碼管每秒導通16次以上,人眼就無法分辨LED數碼管短暫的不亮,認為是一直亮的(其實LED數碼管是以一定頻率在閃動的)。 ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0