<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > VHDL設(shè)計(jì)中電路簡化問題的探討

          VHDL設(shè)計(jì)中電路簡化問題的探討

          作者:朱明程 林欣榮 時(shí)間:2008-06-25 來源:電子技術(shù)應(yīng)用 收藏

            ctemp<=″00000001″;??

          本文引用地址:http://www.ex-cimer.com/article/84777.htm

            elsif(count3=″001″)then

            ctemp<=″00000010″;??

            elsif(count3=″010″)then

            ctemp<=″00000100″;??

            elsif(count3=″011″)then

            ctemp<=″00001000″;??

            elsif(count3=″100″)then

            ctemp<=″00010000″;??

            elsif(count3=″101″)then

            ctemp<=″00100000″;??

            elsif(count3=″110″)then

            ctemp<=″01000000″;??

            elsif(count3=″111″)then

            ctemp<=″10000000″;??

            else

            ctemp<=″00000000″;??

            endif;??

            endif;??

            endprocess;??

            2.第二種設(shè)計(jì)方法的源程序

            process(clk,ctemp,count)

            begin

            if(clk='1'andclk'event)then

            count<=count+1;??

            if(count=″00000000000000000″)then

            ctemp<=″00000001″;??

            elsif(count=″001000000000000000″)then

            ctemp<=″00000010″;??

            elsif(count=″010000000000000000″)then

            ctemp<=″00000100″;??

            elsif(count=″011000000000000000″)then

            ctemp<=″00001000″;??

            elsif(count=″100000000000000000″)then

            ctemp<=″00010000″;??

            elsif(count=″101000000000000000″)then

            ctemp<=″00100000″;??

            elsif(count=″110000000000000000″)then

            ctemp<=″01000000″;??

            elsif(count=″111000000000000000″)then

            ctemp<=″10000000″;??

            endif;??

            endif;??

            endpeocess;??

            對(duì)于第一種的程序可以綜合出的如圖1所示。

            該用一個(gè)15位的加法器和寄存器組成一個(gè)15位的記數(shù)器。在記數(shù)器記完一周回到“000000000000000”時(shí),通過后面的15輸入的與非門和一位的觸發(fā)器就可以實(shí)現(xiàn)同步的進(jìn)行215次分頻,同步輸出32Hz的時(shí)鐘CCLK。CCLK再驅(qū)動(dòng)一8位的移位寄存器,便可實(shí)現(xiàn)每32秒輸出一信號(hào)。

            而用第二種的程序設(shè)計(jì)綜合出的如圖2所示。

            圖2所示的電路用一個(gè)18位的加法器和寄存器組成一個(gè)18位的記數(shù)器。后接了8個(gè)18輸入的邏輯門和8輸入的或門。輸入的1kHz時(shí)鐘經(jīng)過記數(shù)器被分頻,其中有八個(gè)相隔32Hz的記數(shù)狀態(tài),邏輯門就負(fù)責(zé)把這八狀態(tài)譯碼成所需的八組信號(hào)。譯碼后的數(shù)據(jù)通過選擇器輸出到8位的觸發(fā)器,以實(shí)現(xiàn)同步輸出。還有個(gè)鎖存器,是用來保持輸出信號(hào)不變,在八個(gè)狀態(tài)中的從一個(gè)狀態(tài)變到下一個(gè)之前,保持前一個(gè)的數(shù)值。選擇器當(dāng)邏輯門輸出新的數(shù)據(jù)時(shí)讓其輸出數(shù)據(jù)通過,在新數(shù)據(jù)到來之前輸出鎖存器的數(shù)據(jù)。

            以上兩種方法都能實(shí)現(xiàn)相同的邏輯功能,但圖2所示的方法由于運(yùn)用了較少位數(shù)的記數(shù)器,所用的邏輯門也較簡單,而且還少用了多路選擇器和鎖存器資源,所以綜合出來的電路較簡單,以XILINX SpartanS05-3芯片為例。第一種方法占用芯片CLB的12%,其中FMAPS為9%,最高工作速度為82Hz。而第二種方法占用了15%的CLB,F(xiàn)MAPS占用15%,最高工作速度只有69.9MHz。在這一個(gè)簡單的設(shè)計(jì)之中就能省20%的電路,提高12.1MHz的工作速度,由此可見科學(xué)的劃分設(shè)計(jì)對(duì)降低電路復(fù)雜程度的重要意義。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




          關(guān)鍵詞: VHDL 電路 集成電路

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();