【正文】
000000 then t1K=t1K+1。 elsif t100=240000 then c3=not c3。 t10=1。 end if。signal c3:std_logic。clkout1K : out STD_LOGIC)。二、 單元電路設計 分頻器:該電路將產生四個不同頻率的信號輸出,因為電路板上給出了一個48MHZ的晶振,所以我們只需要對48MHZ的信號進行適當分頻即可得到我們所需的四個不同頻率的信號輸出,我們設計一個輸入為48MHZ,有四個輸出端分別為1HZ,10HZ和100HZ,1KHZ的分頻器,原程序如下: library IEEE。不難設想,若將閘門時間設為T=,則計數值為10000,這時,顯示器的小數點只要根據閘門時間T的改變也隨之自動往右移動一位(自動定位),那么。 系統(tǒng)設計原理: 所謂“頻率”,就是周期性信號在單位時間(1秒)內變化的次數。若在一定的時間間隔T內計數,計得某周期性信號的重復變化次數為N,則該信號的頻率可表達為:f = N / T .基于這一原理我們可以使用單位時間內對被測信號進行計數的方法求得對該信號的頻率測量,具體實現過程簡述如下: 首先,將被測信號①(方波)加到閘門的輸入端。在計數式數字頻率計中,通過選擇不同的閘門時間,可以改變頻率計的測量范圍和測量精度。use 。end fenpinqi。signal c4:std_logic。 end if。 end if。 t100=1。 elsif t1=24000 then c4=not c4。clkout1K=c4。 clkout1 : OUT std_logic。 SIGNAL clkout10 : std_logic。139。use 。 FREF : out STD_LOGIC。039。 DP3=39。039。 END IF。 第三檔,輸出為100HZ,dp3有效 DP1=39。end Behavioral。 SE100 : IN std_logic。 END COMPONENT。039。 SIGNAL DP3 : std_logic。139。具體源程序即分析如下: library IEEE。architecture Behavioral of CONTROLS isSIGNAL G1: STD_LOGIC:=39。 PROCESS(FREF,G1) IS BEGIN IF FREF=39。 清零信號高電平有效 END IF。ENTITY TBCON_vhd ISEND TBCON_vhd。 SIGNAL CLR : std_logic。 END PROCESS。use 。architecture Behavioral of CNT10 is SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):=0000。139。 CO = 39。文件編寫完成后保存編譯生成圖形文件符號,如上圖: 創(chuàng)建圖形文件t6并按照下圖進行連接,保存后編譯生成圖形文件符號如圖: 仿真文件代碼如下:LIBRARY ieee。 CQ : OUT std_logic_vector(3 downto 0)。139。139。use 。EVENT AND CLK=39。use 。039。use 。end ADVOCATES。文件編寫完成后保存編譯生成圖形文件符號,如圖:,保存編譯生成圖形文件符號如圖:該模塊的輸入輸出簡單,無需仿真。 SE10 : in STD_LOGIC。039。139。039。 END PROCESS。end CTRLS。 END IF。entity DSELE is Port ( DP1: IN STD_LOGIC。139。 END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111。 END IF。 END IF。 QOU(11 DOWNTO 0)=DIN(11 DOWNTO 0)。 END IF。entity DISPLAY1 is Port ( SEL : in STD_LOGIC_VECTOR (2 downto 0)。 WHEN 010=DATA=DATAIN(11 DOWNTO 8)。 WHEN 0010=SEG=0100100。 WHEN OTHERS=SEG=1111111。代碼編寫完成后保存編譯生成圖形文件符號如圖:,按照下圖連接各元件,保存編譯生成圖形文件符號如下圖:該模塊的輸入數據量太大難以仿真,故這里只對其中的掃描信號生成文件進行仿真,仿真文件代碼如下:LIBRARY ieee。 SIGNAL CLK : std_logic := 39。139。NET DCLK LOC = C16。NET SEG2 LOC = C13。 下載過程:光標移至【Generate Programing File】后單擊鼠標右鍵,然后單擊【Properties】在打開的對話框的左側欄選中【Configuration Options】將右側的Unused IOB Pins這一項改為Pull Up,單擊OK。%,誤差很小。通過對數字頻率計的設計實現,我深入的學習了ise軟件的使用,VHDL語言的編寫規(guī)范,語法結構等。將彈出的對話框關掉,雙擊【 Generate Prom, ACE,or JTAG File】在彈出的對話框中點擊Finish,然后點擊打開,在隨后的對話框中點擊Bypass。NET SEG4 LOC = A12。NET NECT LOC = D7。 END PROCESS。 SIGNAL SEL : std_logic_vector(2 downto 0)。USE 。 if OVERIN=39。 WHEN 0100=SEG=0011001。 WHEN 100=DATA=DATAIN(19 DOWNTO 16)。 DATAIN : in STD_LOGIC_VECTOR (23 downto 0)。end Behavioral。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 12)=0000 AND DIN(11 DOWNTO 8)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 IF DP1=39。 QOU(15 DOWNTO 0)=DIN(15 DOWNTO 0)。139。 QOU(19 DOWNTO 0)=DIN(19 DOWNTO 0)。 DIN : in STD_LOGIC_VECTOR (23 downto 0)。 SEL=CNT。beginPROCESS(CLK) IS BEGIN IF CLK39。編寫完成后保存編譯生成圖形文件符號如圖:再編寫用于數碼管掃描顯示的的位選信號生成文件,其代碼如下:library IEEE。139。039。039。 SEL : in STD_LOGIC_VECTOR (2 downto 0)。其中對鎖存數據的處理包括溢出有效時的數據消除,和對高位無意義零的自動消隱。 將總線的對應位進行連接S6(19 DOWNTO 16)=S1。 S1 : in STD_LOGIC_VECTOR (3 downto 0)。 END IF。entity LATCH1 is Port ( CLK : in STD_LOGIC。 THEN 當時鐘信