【文章內(nèi)容簡介】
process(clk,key)BEGIN if (key=111) then t0=0。 elsif (clk39。event and clk=39。139。) then if t01999999 then t0=0。temp=key。 else t0=t0+1。 end if。 end if。 end process。process(clk)begin if (clk39。event and clk=39。139。) then t=t+1。 if t10000000 then clk_fresh=39。039。 elsif t20000000 then clk_fresh=39。139。 elsif t20000000 then t=0。 end if。end if。end process。process(clk_fresh)BEGINif (clk_fresh39。event and clk_fresh=39。139。) then if (temp=110) then q_temp=d。 elsif (temp=101)then jk=jamp。k。 case jk is when 00=q_temp=q_temp。 when01=q_temp=39。039。 when10=q_temp=39。139。 when11=q_temp=not q_temp。 when others=q_temp=NULL。 end case。 elsif (temp=011)then if (t=39。039。)then q_temp=q_temp。 else q_temp=not q_temp。 end if。 end if。end if。q=q_temp。nq=not q_temp。end process。end Behavioral。 基本觸發(fā)器器由VHDL程序?qū)崿F(xiàn)后,可以得到D觸發(fā)器,JK觸發(fā)器,T觸發(fā)器的仿真圖。:基本觸發(fā)器的引腳分配如下:4 結(jié)束語通過兩星期的緊張工作,最后完成了我的設(shè)計任務(wù)。通過課程設(shè)計,發(fā)現(xiàn)自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還急需提高。同時也體會到設(shè)計課的重要性和目的性所在。本次設(shè)計課不僅僅培養(yǎng)了我們實際操作能力,也培養(yǎng)了我們靈活運用課本知識,理論聯(lián)系實際,獨立自主的進(jìn)行設(shè)計的能力。它不僅僅是一個學(xué)習(xí)新知識新方法的好機會,同時也是對我所學(xué)知識的一次綜合的檢驗和復(fù)習(xí),使我明白了自己的缺陷所在,從而查漏補缺。希望學(xué)校以后多安排一些類似的實踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。在設(shè)計中要求我要有耐心和毅力,還要細(xì)心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,而對錯誤的檢查要求我要有足夠的耐心,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗,對以后從事集成電路設(shè)計工作會有一定的幫助。在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并行運行與其他軟件(C語言)順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。用VHDL硬件描述語言的形式來進(jìn)行數(shù)字系統(tǒng)的設(shè)計方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極大地減少了電路設(shè)計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設(shè)計方法必將在未來的數(shù)字系統(tǒng)設(shè)計中發(fā)揮越來越重要的作用。在此次課程設(shè)計中,非常感謝肖曉麗老師對我的指導(dǎo)與大力的幫助。參考文獻(xiàn)[1] :電子工業(yè)出版社,2003[2] 曾繁泰,[M].北京:清華大學(xué)出版社,2001[3][M].成都:電子科技大學(xué)出版社,2000[4] 侯伯亨,:西安電子科技大出版社,2003[5] :湖南大學(xué)出版社,2004[6] :機械工業(yè)出版社,2005 [7] :機械工業(yè)出版社,2006附 錄1. 數(shù)據(jù)選擇器的VHDL程序LIBRARY IEEE。USE 。USE 。ENTITY mux41 ISPORT ( a,b,c,d:IN STD_LOGIC。 s0,s1:IN STD_LOGIC。 y:OUT STD_LOGIC)。END ENTITY。ARCHITECTURE rtl OF mux41 ISSIGNAL s:STD_LOGIC_VECTOR(1 DOWNTO 0)。SIGNAL Y_TEMP:STD_LOGIC。BEGINs=s1amp。s0。PROCESS(s1,s0,a,b,c,d) BEGIN CASE s IS WHEN 00=Y_TEMP=a。 WHEN 01=Y_TEMP=b。 WHEN 10=Y_TEMP=c。 WHEN 11=Y_TEMP=d。 WHEN OTHERS=Y_TEMP=39。X39。END CASE。y=Y_TEMP。END PROCESS。END rtl。2 基本觸發(fā)器的VHDL代碼library IEEE。use 。use 。use 。entity trigger is Port ( d,j,k,t:in std_logic。 clk:in std_logic。 key: in std_logic_vector(2 downto 0)。 q,nq:out std_logic )。end trigger。architecture Behavioral of trigger issignal temp: std_logic_vector(2 downto 0)。signal q_temp:std_logic:=39。039。signal clk_fresh:std_logic。signal jk:std_logic_vector(1 downto 0)。signal t0: integer range 0 to 2000000。signal t: integer range 0 to 20000