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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > VHDL語(yǔ)言中信號(hào)的不同形式設(shè)置

          VHDL語(yǔ)言中信號(hào)的不同形式設(shè)置

          作者: 時(shí)間:2011-10-10 來(lái)源:網(wǎng)絡(luò) 收藏

          end process;
          End a;

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

          備注:

          (1) 對(duì)所有字母的大小寫(xiě)狀態(tài)不敏感,關(guān)鍵在于語(yǔ)句要正確規(guī)范。

          (2) 在中,所使用的標(biāo)點(diǎn)符號(hào)均是英文標(biāo)點(diǎn)符號(hào)。凡是單個(gè)的值均需使用 單引號(hào),而序列值必須使用雙引號(hào)。

          (3) 請(qǐng)參看相關(guān)資料。

          3討論

          3.1本例能否使用“Wait Until”表達(dá)方式

          很遺憾,類(lèi)似此例的情況不能使用這個(gè)語(yǔ) 句。起碼筆者經(jīng)過(guò)多次嘗試之后均沒(méi)有通過(guò)編譯檢查。但是在使用此語(yǔ)句時(shí)應(yīng)該注意以下事項(xiàng):

          (1) Wait Until 后面緊接的語(yǔ)句中不能出現(xiàn)序列的值,例如不能寫(xiě)成如下

          Wait Until s=000 也不能寫(xiě)成組合條件(無(wú)論是否使用括號(hào)):

          Wait Until s=000 or s=011 or s=110 or s=111

          (2) 使用此表達(dá)方式編寫(xiě)程序代碼時(shí),不能設(shè)定輸出引腳的初始值(通過(guò)第三方信號(hào)傳遞也不 行,但是在進(jìn)行仿真時(shí)可以設(shè)定初始輸出值),不能寫(xiě)成如下

          ……

          s: in std_logic;

          ……

          Architecture a of hf is

          Begin

          z=0; --就算z的初、終值通過(guò)兩個(gè)常量信號(hào)(如c=‘0’,d=‘1 ’)傳遞

          Process --也不行,因?yàn)閦不能規(guī)定兩個(gè)狀態(tài)。否則編譯時(shí)出錯(cuò);

          Begin

          wait until s=‘0’; --此處也不可以寫(xiě)成序列信號(hào)形式,更不能使用邏輯運(yùn)算符將其

          z=1; --寫(xiě)成組合條件形式。Wait Until語(yǔ)句不支持組合條件。

          End process;
          END a;

          3.2更簡(jiǎn)單的實(shí)現(xiàn)方法

          順序語(yǔ)句除了前文所敘的幾種基本表達(dá)方式以 外,還有一種循環(huán)語(yǔ)句:For-Loop;而并行同時(shí)語(yǔ)句也還有方塊語(yǔ)句(Block)、組件定義(Component)與組件映像(Port Map)等多個(gè)模塊化語(yǔ)法。而使用“For-Loop”編寫(xiě)此類(lèi)有重復(fù)動(dòng)作需求的代碼無(wú)疑是最簡(jiǎn)單直觀(guān)的:

          ……
          Architecture a OF hf IS
          Begin
          Process(s)
          Variable Tmp: Std_Logic;
          Begin
          Tmp:=‘0’;
          For I In 0 to 2 Loop
          Tmp:=Tmp XOR s(I);
          End Loop;
          Z=s Tmp;
          End Process;
          End a;

          其他更加簡(jiǎn)單的方法,限于篇幅與本文主 旨,在此就不予深究了。

          4結(jié)束語(yǔ)

          從以上解法可以看出,各種基本的表達(dá)

          方式均有各自的特點(diǎn):采用“When -Else”表達(dá)式(解法1)與“When -Else-When”表達(dá)式(解法2)編寫(xiě)編寫(xiě)代碼的優(yōu)點(diǎn)是直觀(guān),但是代碼很多,欲實(shí)現(xiàn)復(fù) 雜的功能時(shí)工作量將會(huì)很大;采用“IF-Else”表達(dá)式(解法4)編寫(xiě)代碼的優(yōu)點(diǎn)是直觀(guān)與簡(jiǎn)單并舉,尤其是允許使用由邏輯運(yùn)算符(And、Or等等)寫(xiě)成的組合條件更是精簡(jiǎn)了不少代碼。

          另外,在編寫(xiě)程序的過(guò)程中,的 表達(dá)式中,表示語(yǔ)句結(jié)束的符號(hào)是的,這一點(diǎn)在 我們學(xué)習(xí)和使用VHDL的過(guò)程中值得特別留意。

          參考文獻(xiàn)

          [1]盧毅、賴(lài)杰.VHDL與數(shù)字電路設(shè)計(jì).北京:科學(xué)出版社,2001-04

          [2]李廣軍、孟憲元.可編程ASIC設(shè)計(jì)及應(yīng)用.成都:電子科技大學(xué)出版社.2000-10

          [3]徐志軍等.大規(guī)??删幊踢壿嬈骷捌鋺?yīng)用.成都:電子科技大學(xué)出版社.2000-11

          何鋒 男,1979年出生,本科,研究方向?yàn)橛布枋?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/語(yǔ)言">語(yǔ)言設(shè)計(jì),嵌入式系統(tǒng)開(kāi)發(fā)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();