【正文】
LOGIC_VECTOR(3 DOWNTO 0)。 qa=tma。 if tma=1001 then tma:=0000。then tma:=0000。 qa: out STD_LOGIC_VECTOR(3 DOWNTO 0)。u3:count60 port map(en,reset,b2,a3,a4,b3)。 S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。ponent count24 PORT( en,Reset,clk: in STD_LOGIC。 wei:out std_logic_vector(2 downto 0)。 元件例化就是將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個元件,然后利用特定的語句將此元件與當(dāng)前的設(shè)計(jì)實(shí)體中的指定端口相連接,從而為當(dāng)前設(shè)計(jì)實(shí)體引入一個新的低一級的設(shè)計(jì)層次。同時整個計(jì)數(shù)器有清零。 WHEN 1000 = LED= 1111111 。 PRO2: PROCESS(SHUJU) BEGIN CASE SHUJU IS WHEN 0000 = LED= 1111110 。 SHUJU = S5。 SHUJU = S1。END ENTITY。 將二十四進(jìn)制計(jì)數(shù)器和2個六十進(jìn)制計(jì)數(shù)器的輸出作為LED顯示模塊的輸入,在時鐘信號的控制下通過此模塊完成6個LED數(shù)碼管的顯示,輸出信號為WEI[2…0]和LED[6…0],分別為位選信號和段碼輸出。 END IF。 THEN CNT6=0 。USE 。 qa=tma。tmb:=tmb+1。then tma:=0000。ENTITY count24 ISPORT( en,Reset,clk: in STD_LOGIC。qb=tmb。 if tmb=0101 then tmb:=0000。 tmb:=0000。 qb: out STD_LOGIC_VECTOR(3 DOWNTO 0)。 圖2 六十進(jìn)制計(jì)數(shù)器示圖3秒計(jì)數(shù)器的仿真波形圖波形分析利用60進(jìn)制計(jì)數(shù)器完成00到59的循環(huán)計(jì)數(shù)功能,當(dāng)秒計(jì)數(shù)至59時,再來一個時鐘脈沖則產(chǎn)生進(jìn)位輸出,即enmin=1;reset作為復(fù)位信號低電平有效,即高電平時正常循環(huán)計(jì)數(shù),低電平清零。需要說明的是,它們在硬件中都是并行運(yùn)行的。 VHDL的設(shè)計(jì)結(jié)構(gòu)VHDL描述數(shù)字電路系統(tǒng)設(shè)計(jì)的行為、功能、輸入和輸出。此外,通過更換庫再重新綜合很容易移植為ASIC設(shè)計(jì)。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。主要用于描述離散電子系統(tǒng)的結(jié)構(gòu)和行為。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。二是適用于可邏輯編程器件的硬件編程技術(shù),三是可編程邏輯器件設(shè)計(jì)的EDA開發(fā)工具,它主要用來進(jìn)行可編程邏輯器件應(yīng)用的具體實(shí)現(xiàn)。可編程邏輯器件和相應(yīng)的設(shè)計(jì)技術(shù)體現(xiàn)在三個主要方面:一是可編程邏輯器件的芯片技術(shù)。這些器件可以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。HDL是用形式化的方法描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,(即IEEE標(biāo)準(zhǔn)的10761993版本)主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。在對一個設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個實(shí)體。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。所以,即使在遠(yuǎn)離門級的高層次(即使設(shè)計(jì)尚未完成時),設(shè)計(jì)者就能夠?qū)φ麄€工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性進(jìn)行查驗(yàn),并做出決策。結(jié)構(gòu)體可以包含相連的多個進(jìn)程process或者組建ponent等其他并行結(jié)構(gòu)。 六十進(jìn)制計(jì)數(shù)器模塊 設(shè)計(jì)一個八位的六十進(jìn)制計(jì)數(shù)器模塊,輸入信號為en、reset、clk,分別為使能、復(fù)位和時鐘信號,輸出信號為qa[3…0]、qb[3…0]、rco,分別為低4位輸出、高4位輸出和進(jìn)位位。 qa: out STD_LOGIC_VECTOR(3 DOWNTO 0)。then tma:=0000。 if tma=1001 then tma:=0000。 qa=tma。USE 。039。 then if tma=1001 then tma:=0000。end if。USE 。039。 END IF。動態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 CASE CNT6 IS WHEN 0 = WEI = 000。 WHEN 4 = WEI = 100。END PROCESS。 WHEN 0111 = LED= 1110000 。規(guī)定每一模塊的功能和各模塊之間的接口。通過元件例化將各個模塊連接起來,組成一個整體。entity dzjsq isport(en,clk,reset:in std_logic。 end ponent。ponent clock1 PORT(CLK: IN STD_LOGIC。u2:count60 port map(en,reset,b1,a1,a2,b2)。ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC。039。 thenrco=tmb(2)and tmb(0)and tma(3)and tma(0)。 end if。ENTITY count24 ISPORT( en,Reset,clk: in STD_LOGIC。then tma:=0000。tmb:=tmb+1。 qa=tma。 CLK_OUT:out std_logic)。EVENT AND CLK=39。 END PROCESS。 LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 CASE CNT6 IS WHEN 0 = WEI = 000。 WHEN 4 = WEI = 100。 END PROCESS。 WHEN 0111 = LED= x07 。想借次機(jī)會感謝兩年半以來給我?guī)椭乃欣蠋?、同學(xué),你們的友誼是我人生的財(cái)富,是我生命中不可或缺的一部分。此次設(shè)計(jì)過程中,各種系統(tǒng)的適用條件,各種程序的選用標(biāo)準(zhǔn),各種元件的 安裝方式,我都是隨著設(shè)計(jì)的不斷深入而不斷熟悉并學(xué)會應(yīng)