線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1088
推到 Plurk!
推到 Facebook!

VHDL狀態控制,狀態編碼問題

答題得分者是:
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-23 12:47:16 IP:218.171.xxx.xxx 未訂閱
各位大大    請問MAX+PLUS II下VHDL使用狀態控制    要如何自訂狀態編碼如 binary,gray,onehot     vhdl要如何描述呢    我看到一本書上面使用attribute enum_encoding of  STATE:type is"00 01 10 11";    可是我加上這行compile時會出現錯誤    以下是code    
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;    ENTITY state_test IS       PORT (
        clk,reset:IN STD_LOGIC;  
        contr_in:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
        out0:OUT STD_LOGIC
       );         
END state_test;    ARCHITECTURE state_machine OF state_test IS    TYPE statetype IS(s0,s1,s2,s3);    attribute enum_encoding of                         
statetype:type is"00 01 10 11";    SIGNAL next_state:statetype;    BEGIN
  PROCESS(clk,reset)
   
    BEGIN
        IF reset='1'THEN
           next_state<=s0;
        ELSIF(clk'event and clk='1') THEN
           CASE next_state IS
              WHEN s0=>
                   IF(contr_in="01") THEN
                      next_state<=s1;
                   ELSIF(contr_in="10") THEN
                      next_state<=s2;
                   ELSIF(contr_in="11") THEN
                      next_state<=s3;                
                   END IF;
              WHEN s1=>
                   IF(contr_in="00") THEN
                      next_state<=s0;
                   ELSIF(contr_in="10") THEN
                      next_state<=s2;
                   ELSIF(contr_in="11") THEN
                      next_state<=s3;
                   END IF;
              WHEN s2=>
                   IF(contr_in="00") THEN
                      next_state<=s0;
                   ELSIF(contr_in="01") THEN
                      next_state<=s1;
                   ELSIF(contr_in="11") THEN
                      next_state<=s3;
                   END IF;                  WHEN s3=>
                   IF(contr_in="00") THEN
                      next_state<=s0;
                   ELSIF(contr_in="01") THEN
                      next_state<=s1;
                   ELSIF(contr_in="10") THEN
                      next_state<=s2;
                   END IF;               END CASE;
           IF(next_state=S1 OR next_state=S3) THEN
              out0<='1';
           ELSE
              out0<='0';
           END IF;
        END IF;
  END PROCESS;
END state_machine
發表人 - addn 於 2005/07/23 12:52:23

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-30 12:05:37 IP:220.134.xxx.xxx 未訂閱
加入這一行應該就ok了. USE ieee.numeric_std.all
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-30 21:03:10 IP:218.171.xxx.xxx 未訂閱
引言: 加入這一行應該就ok了. USE ieee.numeric_std.all
我加上這行後,會出現錯誤,如圖所示 是不是因我的ieee目錄裡沒有numeric_std的檔案呢 才會發生這樣的錯誤呢

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-30 21:51:53 IP:220.134.xxx.xxx 未訂閱
引言: 是不是因我的ieee目錄裡沒有numeric_std的檔案呢 才會發生這樣的錯誤呢
YES.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-31 10:55:25 IP:218.171.xxx.xxx 未訂閱
引言:
引言: 是不是因我的ieee目錄裡沒有numeric_std的檔案呢 才會發生這樣的錯誤呢
YES.
那這個numeric_std檔案有地方可以下載嗎

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-01 00:01:31 IP:220.134.xxx.xxx 未訂閱
我忘了要去那下載了. 看你的書本光碟有沒有提供吧. 我現在用的Quartus 4.2有內建, 不過Max PlusII 無法使用(我有試過) sn903209兄有測試成功 : http://delphi.ktop.com.tw/topic.php?TOPIC_ID=75581 你可以問問他在那下載的, 或請他mail給你.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
sn903209
初階會員


發表:53
回覆:86
積分:32
註冊:2005-03-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-01 00:16:00 IP:218.169.xxx.xxx 未訂閱
to ㊣ 版大 其實我是去找其他的範例來解決的 所以那個numeric_std 我並沒有真正去做測試
系統時間:2024-07-03 10:28:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!