【正文】
DP2=39。139。 DP3=39。039。 END IF。 END PROCESS。 end Behavioral。 library IEEE。 use 。 use 。 use 。 entity CONTROLS is Port ( FREF : in STD_LOGIC。 GAT : out STD_LOGIC。 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 28 CLR : out STD_LOGIC)。 end CONTROLS。 architecture Behavioral of CONTROLS is SIGNAL G1: STD_LOGIC:=39。039。 begin PROCESS(FREF) IS BEGIN IF FREF39。EVENT AND FREF=39。139。 THEN G1=NOT G1。 該過程對時鐘信號又一次進行分頻,產(chǎn)生出半個周期時間為 1的控制信號,作為計數(shù)使能,保證了時間的準確性 END IF。 END PROCESS。 PROCESS(FREF,G1) IS BEGIN IF FREF=39。039。 AND G1=39。039。 THEN CLR=39。139。 該過程產(chǎn)生清零信號,即當(dāng)使能信號為無效 0同時時鐘為 0時,即在技術(shù)始終無效半個時鐘時間后,對計數(shù)器清零 ELSE CLR=39。039。 清零信號高電平有效 END IF。 END PROCESS。 GAT=G1。 將 G1賦給 gat輸出端 , 它是計數(shù)器的使能信號同時也是鎖存器的鎖存信號 end Behavioral。 library IEEE。 use 。 use 。 use 。 entity CNT10 is Port ( CLK : in STD_LOGIC。 CLR : in STD_LOGIC。 ENA : in STD_LOGIC。 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 29 CQ : out STD_LOGIC_VECTOR (3 downto 0)。 CO : out STD_LOGIC)。 end CNT10。 architecture Behavioral of CNT10 is SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):=0000。 定義中間信號 CQI,用于數(shù)據(jù)輸出的循環(huán)計數(shù) begin PROCESS(CLK,CLR) IS BEGIN IF CLR=39。139。 THEN CQI=0000。 當(dāng) CLR清零信號有效時使輸出為 0000,無效時進行下述操作 ELSIF CLK39。EVENT AND CLK=39。139。 THEN 對時鐘進行計數(shù) IF ENA=39。139。 THEN 判斷使能信號,有效則進行計數(shù),否則不作處理 IF CQI=1001 THEN CQI=0000。 數(shù)據(jù) 0~9循環(huán),計滿后重新回到 0 ELSE CQI=CQI+39。139。 END IF。 END IF。 END IF。 END PROCESS。 CO = 39。139。 when ena = 39。139。 and cqi = 9 else 39。039。 進位信號,最高位的僅為信號作為計數(shù)的溢出信號 CQ=CQI。 當(dāng)且僅當(dāng)使能有效且計數(shù)為 9時產(chǎn)生進位信號 , 進位信號1有效 , 同步并聯(lián)時連高位的使能端 end Behavioral。 library IEEE。 use 。 use 。 use 。 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 30 entity LATCH4 is Port ( CLK : in STD_LOGIC。 DIN : in STD_LOGIC_VECTOR (3 downto 0)。 QOU : out STD_LOGIC_VECTOR (3 downto 0))。 end LATCH4。 architecture Behavioral of LATCH4 is begin PROCESS(CLK,DIN) IS BEGIN IF CLK39。EVENT AND CLK=39。039。 THEN 當(dāng)時鐘信號下降沿時,實現(xiàn)鎖存 QOU=DIN。 END IF。 END PROCESS。 end Behavioral。 上述文件編寫完成后保存編譯生成圖形文件符號如圖: 再編寫一位鎖存器,源程序代碼如下: library IEEE。 use 。 use 。 use 。 entity LATCH1 is Port ( CLK : in STD_LOGIC。 DIN : in STD_LOGIC。 QOU : out STD_LOGIC)。 end LATCH1。 architecture Behavioral of LATCH1 is begin PROCESS(CLK,DIN) IS BEGIN IF CLK39。EVENT AND CLK=39。039。 THEN 當(dāng)時鐘信號下降沿時,實現(xiàn)鎖存 QOU=DIN。 END IF。 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 31 END PROCESS。 end Behavioral。 文件編寫完成后保存編譯生成圖形文件符號,如圖: 鎖存完成后有六組四位二進制數(shù)和一個一位二進制數(shù),所以我們隊總線進行了合并,即將六組四位數(shù)合并成一個二十四位數(shù),合并程序如下: library IEEE。 use 。 use 。 use 。 entity ADVOCATES is Port ( S0 : in STD_LOGIC_VECTOR (3 downto 0)。 S1 : in STD_LOGIC_VECTOR (3 downto 0)。 S2 : in STD_LOGIC_VECTOR (3 downto 0)。 S3 : in STD_LOGIC_VECTOR (3 downto 0)。 S4 : in STD_LOGIC_VECTOR (3 downto 0)。 S5 : in STD_LOGIC_VECTOR (3 downto 0)。 S6 : out STD_LOGIC_VECTOR (23 downto 0))。 end ADVOCATES。 architecture Behavioral of ADVOCATES is begin S6(23 DOWNTO 20)=S0。 將總線的對應(yīng)位進行連接 S6(19 DOWNTO 16)=S1。 S6(15 DOWNTO 12)=S2。 S6(11 DOWNTO 8)=S3。 S6(7 DOWNTO 4)=S4。 S6(3 DOWNTO 0)=S5。 end Behavioral。 文件編寫完成后保存編譯生成圖形文件符號,如圖: 創(chuàng)建該模塊的頂層圖形文件 LAT將上述個文件按照如圖所示連接,保存編譯生成圖形文件符號如圖: 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 32 圖 鎖存器模塊器件內(nèi)部結(jié)構(gòu) 圖 鎖存器模塊生成器件 library IEEE。 use 。 use 。 use 。 entity POINTCON is Port ( SE1 : in STD_LOGIC。 SE10 : in STD_LOGIC。 SE100 : in STD_LOGIC。 SEL : in STD_LOGIC_VECTOR (2 downto 0)。 DP : out STD_LOGIC)。 end POINTCON。 architecture Behavioral of POINTCON is 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 33 begin PROCESS(SE1,SE10,SE100,SEL) IS BEGIN IF SE1=39。139。 AND SE10=39。039。 AND SE100=39。039。 AND SEL=011 THEN DP=39。039。 當(dāng)為第一檔時,令第四位的數(shù)碼管的小數(shù)點點亮,其他的不亮 ELSIF SE1=39。039。 AND SE10=39。139。 AND SE100=39。039。 AND SEL=010 THEN DP=39。039。 第二檔時,第三位的數(shù)碼管小數(shù)點點亮 ELSIF SE1=39。039。 AND SE10=39。039。 AND SE100=39。139。 AND SEL=001 THEN DP=39。039。 第三檔時,第二位的小數(shù)點點亮 ELSE DP=39。139。 不符合上述三檔時,小數(shù)點全部消隱 END IF。 END PROCESS。 end Behavioral。 編寫完成后保存編譯生成圖形文件符號如圖: 再編寫用于數(shù)碼管掃描顯示的的位選信號生成文件,其代碼如下: library IEEE。 use 。 use 。 use 。 entity CTRLS is Port ( CLK : in STD_LOGIC。 SEL : out STD_LOGIC_VECTOR (2 downto 0))。 end CTRLS。 architecture Behavioral of CTRLS is SIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0):=000。 begin PROCESS(CLK) IS BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN 接入 1KHZ的時鐘信號,使 CNT進行循環(huán)計數(shù),從 000到 101 IF CNT=”101” THEN CNT=”000”。 計滿則清零,不滿 則加一 ELSE CNT=CNT+’1’。 金陵科技學(xué)院學(xué)士學(xué)位論文 附錄 34 END IF。 END IF。 END PROCESS。 SEL=CNT。 將 CNT信號賦給 SEL輸出 end Behavioral。 文件編寫完成后保存編譯生成圖形文件符號如圖 : 再編寫使高位無意義零自動消隱功能的的文件 , 源程序代碼如下 : library IEEE。 use 。 use 。 use 。 entity DSELE is Port ( DP1: IN STD_LOGIC。 DP2: IN STD_LOGIC。 DIN : in STD_LOGIC_VECTOR (23 downto 0)。 QOU : out STD_LOGIC_VECTOR (23 downto 0))。 end DSELE