新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > VHDL語言中信號的不同形式設置

        VHDL語言中信號的不同形式設置

        作者: 時間:2011-10-10 來源:網絡 收藏

        end process;
        End a;

        本文引用地址:http://www.104case.com/article/150123.htm

        備注:

        (1) 對所有字母的大小寫狀態不敏感,關鍵在于語句要正確規范。

        (2) 在中,所使用的標點符號均是英文標點符號。凡是單個的值均需使用 單引號,而序列值必須使用雙引號。

        (3) 請參看相關資料。

        3討論

        3.1本例能否使用“Wait Until”表達方式

        很遺憾,類似此例的情況不能使用這個語 句。起碼筆者經過多次嘗試之后均沒有通過編譯檢查。但是在使用此語句時應該注意以下事項:

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

        Wait Until s=000 也不能寫成組合條件(無論是否使用括號):

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

        (2) 使用此表達方式編寫程序代碼時,不能設定輸出引腳的初始值(通過第三方信號傳遞也不 行,但是在進行仿真時可以設定初始輸出值),不能寫成如下

        ……

        s: in std_logic;

        ……

        Architecture a of hf is

        Begin

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

        Process --也不行,因為z不能規定兩個狀態。否則編譯時出錯;

        Begin

        wait until s=‘0’; --此處也不可以寫成序列信號形式,更不能使用邏輯運算符將其

        z=1; --寫成組合條件形式。Wait Until語句不支持組合條件。

        End process;
        END a;

        3.2更簡單的實現方法

        順序語句除了前文所敘的幾種基本表達方式以 外,還有一種循環語句:For-Loop;而并行同時語句也還有方塊語句(Block)、組件定義(Component)與組件映像(Port Map)等多個模塊化語法。而使用“For-Loop”編寫此類有重復動作需求的代碼無疑是最簡單直觀的:

        ……
        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;

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

        4結束語

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

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

        另外,在編寫程序的過程中,的 表達式中,表示語句結束的符號是的,這一點在 我們學習和使用VHDL的過程中值得特別留意。

        參考文獻

        [1]盧毅、賴杰.VHDL與數字電路設計.北京:科學出版社,2001-04

        [2]李廣軍、孟憲元.可編程ASIC設計及應用.成都:電子科技大學出版社.2000-10

        [3]徐志軍等.大規模可編程邏輯器件及其應用.成都:電子科技大學出版社.2000-11

        何鋒 男,1979年出生,本科,研究方向為硬件描述設計,嵌入式系統開發。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 北辰区| 紫金县| 宁河县| 宜兴市| 长子县| 黄龙县| 介休市| 潢川县| 日土县| 金乡县| 哈巴河县| 五大连池市| 通化市| 涪陵区| 会泽县| 台江县| 黔南| 阿图什市| 永平县| 德格县| 临邑县| 井冈山市| 沂水县| 启东市| 班玛县| 贵港市| 绥中县| 安西县| 泸溪县| 正镶白旗| 吉木萨尔县| 夹江县| 鄂托克前旗| 彭阳县| 丰镇市| 灵川县| 长武县| 澜沧| 专栏| 西乌珠穆沁旗| 玉树县|