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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > VHDL結構體的數(shù)據(jù)流描述法

          VHDL結構體的數(shù)據(jù)流描述法

          作者: 時間:2017-06-06 來源:網(wǎng)絡 收藏
          據(jù)流描述(dataflow description)是描述方法之一,它描述了程的運動路徑、運動方向和運動結果。例如,同樣是一個8位比較器采用法編程,則如例1-7所示。
          【例1-7】 用設計8位比較器
          LIBRARY IEEE;
          USE IEEE std_logic_1164.ALL;
          ENTITY comparator IS
          PORT (a,b:IN std_logic_vector(7 downto 0);
          g:out std_logic);
          END comparator;
          ARCHITECTURE dataflow OF  comp  IS
          BEGIN
          G =1 when (a = b) else0;
          END dataflow;
          上述程序設計的數(shù)據(jù)流程為:當a=b時,G=1;其余時間G=0。注意,數(shù)據(jù)流描述的句法與行為描述的句法是不一樣的。
          cale—when:條件信號賦值語句。
          with—select—when:選擇信號賦值語句。
          這兩種語句是數(shù)據(jù)流常用的語法,同樣采用布爾方程,也可用數(shù)據(jù)流,如例1-8所示。
          【例1-8】 用布爾方程的數(shù)據(jù)流描述法設計的8位比較器
          LIBRARY IEEE;
          USE IEEE std_logic_1164.ALL;
          ENTITY comparator IS
          PORT (a,b:IN std_logic_vector(7 downto 0);
          g:out std_logic);
          END  comparator;
          ARCHITECTURE bool OF comparator IS
          BEGIN
          g<=not(a(0)xorb(0))
          and not(a(1)xorb(1))
          and not(a(2)xorb(2))
          and not(a(3)xorb(3))
          and not(a(4)xorb(4))
          and not(a(5)xorb(5))
          and not(a(6)xorb(6))
          and not(a(7)xorb(7));
          END bool;
          布爾方程的數(shù)據(jù)流描述法描述了信號的數(shù)據(jù)流的路徑。這種描述法比例1-6的復雜,因為例1-6的描述與端口結構無關。只要a=b,G就輸出1,與a、b的大小無關。而例1-7是一個8位比較器,布爾方程定義的端口尺寸為8位。
          數(shù)據(jù)流描述法采用并發(fā)信號賦值語句,而不是進程順序語句。一個結構體可以有多重信號賦值語句,且語句可以并發(fā)執(zhí)行。


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();