【正文】
描述能力和程序結構決定了他具有支持大規(guī)模設計的分解和已有設計的再利用功能。在上述工作的基礎上,在進行波形分析,仿真調試便完成整個軟件設計。用該工具軟件所支持的語言硬件描述語言VHDL,以文本的方式進行編程輸入。這種將設計實體分成內外部分的概念是VHDL系統(tǒng)設計的基本點。 VHDL主要用于描述數(shù)字系統(tǒng)的結構、行為、功能和接口。 1 EDA 技術發(fā)展概況 VHDL 軟件設計簡介 VHDL全名Very High Speed Integrated Circuit Hardware Description Language ,VHDL語言是一種在80年代的后期出現(xiàn)用于電路設計的高級語言,最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言。片上系統(tǒng)的實現(xiàn)將大大減小系統(tǒng)的體積,降低系統(tǒng)的成本,提高系統(tǒng)的處理速度和可靠性。作為用十進制數(shù)字顯示被測信號頻率的數(shù)字頻率計,是計算機、通訊設備、音頻視頻等科研生產(chǎn)領域不可缺少的電子測量儀器。 this paper,a digital cymometer is designed using the topdown method based on VHDL and then simulated on Max+plusⅡplatform. Key words:EDA。直接測頻法適用于高頻信號的頻率測量,間接測頻法適用于低頻信號的頻率測量?;贓DA技術和硬件描述語言的自上而下的設計技術正在承擔起越來越多的數(shù)字系統(tǒng)設計任務。在電子技術中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要。本論文采用自上向下的設計方法,基于VHDL硬件描述語言設計了一種數(shù)字頻率計,并在Max+plusⅡ平臺上進行了仿真。VHDL。與傳統(tǒng)的頻率計相比,數(shù)字頻率計具有精度高、測量范圍大、可靠性好等優(yōu)點。隨著可編程邏輯器件(CPLD)的廣泛應用,以EDA工具為開發(fā)平臺,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language)工業(yè)標準硬件描述語言,采用自頂向下(Top to Down)和基于庫(Librarybased的設計,設計者不但可以不必了解硬件結構設計,而且將使系統(tǒng)大大簡化。VHDL翻譯成中文就是超高速集成電路硬件描述語言,主要是應用在數(shù)字電路的設計中。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風格以及語法是十分類似于一般的計算機高級語言?! ∠到y(tǒng)電路的軟件設計可采用工具軟件Maxplus II,Maxplus II 作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。在編程時分別對控制、計數(shù)、鎖存、譯碼、動態(tài)掃描等電路模塊進行VHDL文本描述, 使每個電路模塊以及器件都以文本的形式出現(xiàn),然后通過編譯、波形仿真、調試來完善每個器件的功能。 VHDL語言優(yōu)勢:(1)與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決 定了他成為系統(tǒng)設計領域最佳的硬件描述語言。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。 ② 具體電路功能。這種設計方法的總體思路是:首先確定頂層模塊并進行頂層模塊的設計;然后將頂層模塊中的邏輯功能劃分為不同的功能模塊,再進行功能模塊的詳細設計。 ⑤ 綜合、優(yōu)化和布局布線。生成器件編程文件的作用是將VHDL描述經(jīng)過模擬、綜合、優(yōu)化和布局布線的結果,經(jīng)過一定的映射轉換成一個器件編程所用的數(shù)據(jù)文件格式。使用MAX+PLUSⅡ軟件,設計者無需精通器件內部的復雜結構,只需用業(yè)已熟悉的設計輸入工具,如硬件描述語言、原理圖等進行輸入即可,MAX+PLUSⅡ就會自動將設計轉換成目標文件下載到器件中去。MAX+PLUSⅡ提供了與其他設計輸入、綜合和校驗工具的接口,借口符合EDIF 200/300、LPM、VHDL、VerilogHDL等標準。 (4) 與結構無關。 (6) 豐富的設計庫。隨著新型可編程邏輯器件FPGA技術的發(fā)展,能夠將大量的邏輯功能集成于一個單個器件中,根據(jù)不同的需要所提供的門數(shù)可以從幾百萬到上百萬門,不但集成度遠遠超過了以往的數(shù)字頻率計,而且在基準頻率及精度等外部條件的允許下,根據(jù)不同場合的精度要求,對硬件描述語言進行一定的改動,使系統(tǒng)在精度提高的同時,用較少的器件來實現(xiàn)系統(tǒng)的功能,從而降低系統(tǒng)的整體造價。接下來,在后續(xù)的章節(jié)會介紹硬件描語言VHDL語言的詳細情況。不論從彩色電視機、電冰箱、DVD,還是現(xiàn)在家庭常用到的數(shù)字電壓表、數(shù)字萬用表等都包含有頻率計。而頻率測量所能達到的精度,主要取決于作為標準頻率源的精度以及所使用的測量設備和測量方法。 目前國內外使用的測頻的方法有很多,如直接測頻法,內插法,游標法,時間—電壓變化法,多周期同步法,頻率倍增法,頻差倍增法以及相位比較法等測頻方法。然后,兩組計數(shù)器分別對被測信號和標準信號進行計數(shù),要等到被測信號下降沿到來時才真正結束計數(shù),完成一次測量過程。它的優(yōu)點是把差頻放大后,便于使用簡單的儀器來獲得測量精度的測量結果。數(shù)字頻率計的設計手段也是多種多樣的。但其在電路硬件級的描述上不足,使得其更適合做控制方面,結合硬件描述進行設計,采用TMS320F2812DSP 芯片為控制單元,在無需任何門控器件控制的情況下,利用DSP2812豐富的軟件資源可以實現(xiàn)等精度測量。目前,數(shù)字頻率計的設計可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下的逐層完成相應的描述、綜合、優(yōu)化、仿真與驗證,直到生成器件。 測頻率法就是在一定時間間隔Tw(該時間定義為閘門時間)內,測得這個周期性信號的重復變換次數(shù)為Nx,則其頻率可表示為: Fx=Nx/Tw 。在本設計中,用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,通過對來臨的待測信號的上升沿在設定的計數(shù)允許周期T內計數(shù),這個計數(shù)允許周期T就是所謂的閥門。通常情況下計算每秒內待測信號的脈沖個數(shù)即閘門時間為1s。并且分別用VHDL硬件描述語言對其編程,實現(xiàn)了閘門控制信號、計數(shù)電路、鎖存電路、顯示電路等。先使計數(shù)模塊對輸入的矩形波進行計數(shù),將計數(shù)結果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),然后將計數(shù)結果送入動態(tài)掃描電路進行選擇輸出,輸出結果由顯示譯碼驅動電路將計數(shù)結果轉換成相應的能夠在七段數(shù)碼顯示管上可以顯示的十進制結果,在七段數(shù)碼顯示管可以看到計數(shù)結果。USE 。ARCHITECTURE ART OF CLK10M IS SIGNAL CNTER:STD_LOGIC_VECTOR(24 DOWNTO 0)。139。 END IF 。 END ART。ENTITY CLKGEN ISPORT( CLK :IN STD_LOGIC 。 SIGNAL CNTEER:STD_LOGIC。) THEN IF CNTER=249 THEN CNTER=0000000000000000000000000。 END IF 。:仿真分析:輸入信號CLK 的頻率為10MHZ,輸出信號CLK500的頻率為500HZ。測頻控制模塊TESTCTL的CLR_CNT端產(chǎn)生一個上升沿,對計數(shù)器進行清零。觸發(fā)器的輸出高電平正好是1S,即測頻時序控制模塊TESTCTL的TSTEN端時鐘脈沖信號的脈寬為1S,并對頻率計的每一計數(shù)器CNT10的ENA使能端進行同步控制。USE 。 CLR_CNT:OUT STD_LOGIC。BEGINPROCESS(CLK)BEGIN IF CLK39。 END IF。AND Div2CLK=39。 ELSE CLR_CNT=39。LOAD=NOT Div2clk。測頻時, 測頻時序控制電路模塊TESTCTL的TSTEN端時鐘脈沖信號的脈寬為1S,TSTEN高電平期間允許各個計數(shù)器工作,低電平期間停止計數(shù)并保持計數(shù)值。位數(shù)越高頻率測量的范圍也越寬,此測量范圍由計數(shù)電路內部的十進制計數(shù)器的個數(shù)來決定。 USE 。 計數(shù)使能信號 COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN PROCESS(CLK,CLR,ENA) BEGIN IF CLR=39。EVENT AND CLK=39。THEN IF CQI=1001THEN CQI=0000。 END IF。139。 END PROCESS。在使能端ENA為低電平時,計數(shù)器不能啟動。測頻時序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿,將計數(shù)值鎖存到REG40B鎖存器中,并由REG40B的輸出端輸出。 鎖存信號時鐘 DIN: IN STD_LOGIC_VECTOR(39 DOWNTO 0)。EVENT AND LOAD=39。 鎖存END PROCESS。共陰極LED數(shù)碼管的公共端連接到地,另一端分別接一個限流電阻后再接到控制電路的信號端,當信號端為高電平時,該段即被點亮,否則不亮。直接驅動方式是直接對數(shù)碼管相應的字段給出驅動電平,以顯示電平。它是共陰極驅動芯片,也就是在輸出高電平時,該芯片具有較強的電流輸出能力。每個顯示譯碼模塊的輸出端LED(6 DOWNTO 0)從低位高位送入動態(tài)掃描模塊的10個7位數(shù)據(jù)輸入端口。 輸入的4位BCD 數(shù)字符 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 仿真波形分析:在七段顯示譯碼器模塊仿真中,輸入信號BCD的值為 0001時,輸出信號LED 的值為0000110,當輸入信號BCD的值為1110時,輸出信號LED的值為0000000。實現(xiàn)方法是將頻率計的10個數(shù)碼管的相應字段并聯(lián)起來,由CPLD或FPGA 的輸出信號a,b,c,d,e,f,g直接驅動相應字段,由片選信號S1,S2,S3,S4,S5,S6,S7,S8,S9,S10依次點亮各個LED數(shù)碼管,循環(huán)顯示,即一個數(shù)碼管顯示之后另一個數(shù)碼管馬上顯示,利用人眼的視覺的暫留特性,可以看大多個數(shù)碼管同時顯示的效果。據(jù)經(jīng)驗,延時2ms可以達到滿意的效果。USE 。 動態(tài)掃描時鐘信號 RESET:IN STD_LOGIC。 段選信號END DYNAMIC。139。EVENT AND CLK=39。 SCAN_CLK=SCAN(3 DOWNTO 0)。 WHEN 0001=BUS4=DIN1。 WHEN 0011=BUS4=DIN3。 WHEN 0101=BUS4=DIN5。 WHEN 0111=BUS4=DIN7。 WHEN 1001=BUS4=DIN9。 END CASE 。 當系統(tǒng)正常工作時,脈沖發(fā)生器提供標準的時鐘信號,經(jīng)過測頻時序控制信號發(fā)生器進行信號的變換,產(chǎn)生計數(shù)信號。 在基準脈沖信號產(chǎn)生模塊,測頻時序控制電路模塊、計數(shù)模塊、鎖存器模塊、七段顯示譯碼器、動態(tài)掃描顯示模塊正確設計的基礎上,再按設計原理圖的要求將這幾種器件連接起來,形成頂層文件。由VHDL 語言實現(xiàn)的頂層模塊程序見附錄。實驗結果表明該系統(tǒng)能夠滿足本次設計的要求,并且具有測量誤差小,可靠性高的優(yōu)點。計數(shù)值會產(chǎn)生正負一個字的誤差,并且被測精度與計數(shù)器中記錄的