最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

一個狀態(tài)機程序,編譯出錯,請高手指點(已解決)

作者:wuzm02 欄目:EDA技術
一個狀態(tài)機程序,編譯出錯,請高手指點(已解決)
////程序總共有8個錯誤,提示錯誤都是在case語句中的賦值語句中。
MODULE adc (din,clk,EOC,
            OE,ADDA,ALE,START,dout,qq);
parameter st0=3'd0, st1=3'd1, st2=3'd2, st3=3'd3,
          st4=3'd4, st5=3'd5, st6=3'd6, st7=3'd7;

input         clk;
input          EOC;  
input[7:0]  din;

OUTPUT        OE;
OUTPUT         ADDA;
OUTPUT        ALE;  //地址鎖存
OUTPUT        START;
OUTPUT[7:0] dout; //轉換數據輸出
OUTPUT[7:0] qq;  //即時狀態(tài)顯示

reg            ALE;  
reg            START;
reg            LOCK;
reg[7:0]    dout;
reg[7:0]    qq;
reg[2:0]    state;
reg[2:0]    next;
reg            a,b;

assign  ADDA=1;  //選通道IN1

always@(posedge clk )//or state or EOC)
  begin
    if(a)
      begin  next=st0; a=0; end  //初始化
    else begin
  case(state)
     st0:
        begin
        qq=0; ALE=0;START=0; OE=0; LOCK=0;
        end
     st1:
        begin
        qq=1; ALE=1;START=0; OE=0; LOCK=0;
        next=st2;
        end
      st2:
        begin
        qq=2; ALE=1;START=1;  //啟動采樣信號START
         OE=0; LOCK=0;
        next=st3;
        end
      st3:
        begin
        qq=3; ALE=1;START=1; OE=0; LOCK=0;
        if(EOC==0)  next=st4;
         else         next=st3;
        end
      st4 :
        begin
        qq=4; ALE=0;START=0; OE=0; LOCK=0;
        if(EOC==1)  next=st5;
        else        next=st4;
        end
      st5:
        begin
        qq=4; ALE=0;START=1; OE=1; //開啟輸出允許OE
        LOCK=0;
        next=st6;
        end
      st6:
        begin
        qq=5; ALE=0;START=0; OE=1; LOCK=1;
        next=st0;
        end
        st7:
        begin
        qq=6; ALE=0;START=0; OE=1; LOCK=1;
        next=st0;  //延遲一個脈沖
        end
     default state=st0;
   endcase
    state=next;
  end
end
always@(posedge LOCK)  //輸出數據鎖存
  begin
    dout=din;
  end

endMODULE


* - 本貼最后修改時間:2005-4-19 9:42:42 修改者:wuzm02

2樓: >>參與討論
littleou
看看書吧
最起碼的coding style 都沒有寫對。
code不是這么寫的

3樓: >>參與討論
wuzm02
首先謝謝littleou,我是認真看書后才上網發(fā)貼求教的。
首先謝謝littleou,我是認真看書后才上網發(fā)貼求教的。
我知道是在case語句當中的賦值出了問題,如果是只給一個寄存器賦值,而把后面的注解掉(如下):
case(state)
     st0:
        begin
        qq=0;  //ALE=0;START=0; OE=0; LOCK=0;
        end
     ……
則程序沒不會出錯(當然端口聲明也要改)。
   但是,為了實現程序的功能,卻不能不給ALE=0;START=0; OE=0; LOCK=0;賦值.

   從書上,我知道,在case的分支中,也有同時給兩個變量賦值的。所以,我希望能夠知道我的程序是哪方面出了問題。如果要實現功能,我的程序應該如何去改正。

   敬請指正。

4樓: >>參與討論
wuzm02
請大家多給點建議。
請大家多給點建議。

5樓: >>參與討論
a_tu01
是漏寫了還是其他原因?
進入st0后,如何進入其他狀態(tài)?
OE是否也應該定義為reg?

6樓: >>參與討論
wuzm02
謝謝a_tu01,我是漏寫了
謝謝a_tu01,我之前一直以為是在case語句中的賦值有問題,而沒有仔細檢查沒個語句,
現在發(fā)現錯誤是由于自身疏忽造成的。
再次謝謝a_tu01。


參與討論
昵稱:
討論內容:
 
 
相關帖子
求教:array賦值怎么不行?
請教各位大師,關于CPLD掃描鍵盤去抖動的問題
用VHDL語言描述555電路 怎么做?
請教cpld中時鐘信號來源
ISE5.2安裝求助!!急
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號