【正文】
lkout100, clkout1K = clkout1K)。 tb : PROCESS BEGIN clk=39。039。 wait for 10 ps。 clk=39。139。 wait for 10 ps。 END PROCESS。END。對(duì)該模塊進(jìn)行仿真結(jié)果如下:有上圖可知分頻器工作正常,產(chǎn)生的個(gè)信號(hào)也沒有毛刺,結(jié)果十分理想。閘門選擇器: 在這個(gè)模塊中我們有四個(gè)輸出端和六個(gè)輸入端,其中四個(gè)輸出端中有一個(gè)是頻率輸出端,是通過(guò)三個(gè)閘門選擇開關(guān)輸入和三個(gè)輸入頻率決定的,另外三個(gè)輸出端則是用來(lái)后面的小數(shù)點(diǎn)控制的,而六個(gè)輸入端中的三個(gè)是上面分頻器的三個(gè)輸出1HZ,10HZ和100HZ,另外三個(gè)是電路板上的撥動(dòng)開關(guān),用來(lái)選擇閘門,控制輸出。其原程序和分析如下: library IEEE。use 。use 。use 。entity SELE is Port ( SE1 : in STD_LOGIC。 SE10 : in STD_LOGIC。 SE100 : in STD_LOGIC。 F1HZ : IN STD_LOGIC。 F10HZ : IN STD_LOGIC。 F100HZ :IN STD_LOGIC。 FREF : out STD_LOGIC。 DP1 : out STD_LOGIC。 DP2 : out STD_LOGIC。 DP3 : out STD_LOGIC)。end SELE。architecture Behavioral of SELE isbeginPROCESS(SE1,SE10,SE100) IS BEGIN IF SE1=39。139。 AND SE10=39。039。 AND SE100=39。039。 THEN FREF=F1HZ。 當(dāng)閘門控制在第一檔的時(shí)候,令輸出端輸出1HZ輸入端的輸入,小數(shù)點(diǎn)控制dp1有效,dp2,dp3無(wú)效 DP1=39。039。 DP2=39。139。 DP3=39。139。 END IF。 IF SE1=39。039。 AND SE10=39。139。 AND SE100=39。039。 THEN FREF=F10HZ。 第二檔,輸出為10HZ,dp2有效 DP1=39。139。 DP2=39。039。 DP3=39。139。 END IF。 IF SE1=39。039。 AND SE10=39。039。 AND SE100=39。139。 THEN FREF=F100HZ。 第三檔,輸出為100HZ,dp3有效 DP1=39。139。 DP2=39。139。 DP3=39。039。 END IF。 END PROCESS。end Behavioral。源代碼編寫完成后保存并生成圖形文件符號(hào)如圖:仿真文件編寫如下:LIBRARY ieee。USE 。USE 。USE 。ENTITY TTB_vhd ISEND TTB_vhd。ARCHITECTURE behavior OF TTB_vhd IS COMPONENT SELE PORT(SE1 : IN std_logic。 SE10 : IN std_logic。 SE100 : IN std_logic。 F1HZ : IN std_logic。 F10HZ : IN std_logic。 F100HZ : IN std_logic。 FREF : OUT std_logic。 DP1 : OUT std_logic。 DP2 : OUT std_logic。 DP3 : OUT std_logic)。 END COMPONENT。 SIGNAL SE1 : std_logic := 39。139。 SIGNAL SE10 : std_logic := 39。039。 SIGNAL SE100 : std_logic := 39。039。 SIGNAL F1HZ : std_logic := 39。039。 SIGNAL F10HZ : std_logic := 39。039。 SIGNAL F100HZ : std_logic := 39。039。 SIGNAL FREF : std_logic。 SIGNAL DP1 : std_logic。 SIGNAL DP2 : std_logic。 SIGNAL DP3 : std_logic。BEGIN uut: SELE PORT MAP( SE1 = SE1, SE10 = SE10, SE100 = SE100, F1HZ = F1HZ, F10HZ = F10HZ, F100HZ = F100HZ, FREF = FREF, DP1 = DP1, DP2 = DP2, DP3 = DP3)。 tb : PROCESS BEGIN F1HZ=39。039。FREF=39。039。 wait for 100 ns。 F1HZ=39。139。FREF=39。139。 WAIT FOR 100 NS。 END PROCESS。END。仿真結(jié)果如圖:有仿真結(jié)果可知閘門選擇器工作正常,能夠準(zhǔn)確輸出我們所需的信號(hào)。 門控信號(hào):在此模塊中有一個(gè)輸入端和兩個(gè)輸出端,輸入端為上面的閘門選擇器輸出的頻率,兩個(gè)輸出端分別為計(jì)數(shù)器是能控制信號(hào)(鎖存器控制信號(hào)),和計(jì)數(shù)器清零信號(hào)。具體源程序即分析如下: library IEEE。use 。use 。use 。entity CONTROLS is Port ( FREF : in STD_LOGIC。 GAT : out STD_LOGIC。 CLR : out STD_LOGIC)。end CONTROLS。architecture Behavioral of CONTROLS isSIGNAL G1: STD_LOGIC:=39。039。begin PROCESS(FREF) IS BEGIN IF FREF39。EVENT AND FREF=39。139。 THEN G1=NOT G1。 該過(guò)程對(duì)時(shí)鐘信號(hào)又一次進(jìn)行分頻,產(chǎn)生出半個(gè)周期時(shí)間為1的控制信號(hào),作為計(jì)數(shù)使能,保證了時(shí)間的準(zhǔn)確性 END IF。 END PROCESS。 PROCESS(FREF,G1) IS BEGIN IF FREF=39。039。 AND G1=39。039。 THEN CLR=39。139。 該過(guò)程產(chǎn)生清零信號(hào),即當(dāng)使能信號(hào)為無(wú)效0同時(shí)時(shí)鐘為0時(shí),即在技術(shù)始終無(wú)效半個(gè)時(shí)鐘時(shí)間后,對(duì)計(jì)數(shù)器清零 ELSE CLR=39。039。 清零信號(hào)高電平有效 END IF。 END PROCESS。 GAT=G1。 將G1賦給gat輸出端,它是計(jì)數(shù)器的使能信號(hào)同時(shí)也是鎖存器的鎖存信號(hào)end Behavioral。源文件編寫完成后保存編譯并生成圖形文件符號(hào)如圖:仿真文件代碼如下:LIBRARY ieee。USE 。USE 。USE 。ENTITY TBCON_vhd ISEND TBCON_vhd。ARCHITECTURE behavior OF TBCON_vhd IS COMPONENT CONTROLS PORT(FREF : IN std_logic。 GAT : OUT std_logic。 CLR : OUT std_logic)。 E