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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 用VHDL設(shè)計專用串行通信芯片

          用VHDL設(shè)計專用串行通信芯片

          作者: 時間:2009-07-17 來源:網(wǎng)絡(luò) 收藏
          (5)WTHR.VHD

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

          WTHR.VHD作為整個的發(fā)送模塊,其中包括發(fā)送保持器、并/串轉(zhuǎn)換。

          端口描述如下:

          entity wthr is

          port (sen:in STD_LOGIC; --發(fā)送使能信號

          whtr: in STD_LOGIC; --寫發(fā)送保持器信號

          dbus: in STD_LOGIC_VECTOR (7 downto 0;

          --8位數(shù)據(jù)線,單向

          rsthr:in STD_LOGIC; --清發(fā)送保持器

          thre:out STD_LOGIC; --發(fā)送保持器數(shù)據(jù)空

          thre:out STD_LOGIC; --發(fā)送數(shù)據(jù)線

          clkout:out STD_LOGIC; --發(fā)送數(shù)據(jù)同步時鐘信號

          sclk: in STD_LOGIC); --波特率發(fā)生器產(chǎn)生的分頻信號

          end wthr;

          當發(fā)送保持器無數(shù)據(jù)時,thre信號有效,通知CPU可寫。一旦CPU寫入數(shù)據(jù)且sen有效,便根據(jù)波特率發(fā)生器產(chǎn)生的sclk信號將數(shù)據(jù)并/串轉(zhuǎn)換,并通過dout和clkout將數(shù)據(jù)和同步時鐘發(fā)送。

          仿真波形如圖5。部分實現(xiàn)代碼如下:

          process (rsthr,sclk,sen,sef) --parallel data to serial data variable l:integer range 0 to 7;

          begin

          if rsthr='1' then

          m=0;

          1:=7;

          sef='1';

          elsif wthr='1'then

          sef='0';

          elsif sen='1'and sef='0' then

          if sclk'event and sclk='1' then

          dout=w_p(1);

          m=m+1;

          l:=1-1;

          if m=7 then

          m=0;

          1:=7;

          esf=='1';

          end if;

          end if;

          end if;

          end process;

          3 實現(xiàn)難點及使用應(yīng)注意的一些問題

          由于語言是描述硬件行為的,相對其它開發(fā)軟件的高級語言而言,在編程過程中有一些特殊性,所以經(jīng)常會出現(xiàn)語法正確但無法綜合的問題。其原因多半因為編程者對硬件內(nèi)部的工作原理了解不夠,寫出的代碼硬件無法實現(xiàn)。通過這塊,在此總結(jié)出一些應(yīng)注意的問題,供大家參考:

          (1)在一個進程中只允許一個信號上升沿作為觸發(fā)條件。

          (2)信號值改變后要經(jīng)過一個小的延時才能生效,同個信號不能在多個進程中賦值(因為多個信號源不能同時對同一個信號驅(qū)動)。

          (3)時序電路和組合電路最好不要在同一個進程中,以免費資源。

          (4)一個功能模塊最好按上升沿信號分多個進程完成,各進程間用信號聯(lián)系。

          (5)同一個信號在進程中的值改變后,要注意該值改變前后該進程中其它變量的變化,避免邏輯死鎖。

          (6)在順序語句中,注意信號因賦值后需延時改變而與變量的不同。

          (7)雙向三態(tài)數(shù)據(jù)線時,內(nèi)部數(shù)據(jù)線最好讀寫分開。與外部結(jié)合時,不同讀數(shù)據(jù)線之間,讀寫數(shù)據(jù)線之間應(yīng)使用三態(tài)門,且由讀信號控制。

          由于采用了語言作為輸入方式并細合可編程邏輯門陣列CPLD,大大縮短了設(shè)計周期,提高了設(shè)計的可靠性、靈活性,使用戶可根據(jù)自己的需求,方便、高效地設(shè)計出適合的。


          上一頁 1 2 下一頁

          評論


          相關(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); })();