音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

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

高手幫我看看這個(gè)狀態(tài)機(jī)設(shè)計(jì)(Verilog描述,序列檢測(cè))

作者:daiduohao 欄目:EDA技術(shù)
高手幫我看看這個(gè)狀態(tài)機(jī)設(shè)計(jì)(Verilog描述,序列檢測(cè))
MODULE set_det(clk,seqIn,rst,detOut);
input clk,seqIn,rst;
OUTPUT detOut;

reg[5:0] state;
wire detOut;

parameter Idle=6'b000001,
A=6'b000010,
B=6'b000100,
C=6'b001000,
D=6'b010000,
E=6'b100000;

assign detOut=((state==D)&&(seqIn==0))? 1'b1:1'b0;

always@(posedge clk or negedge rst)
if (!rst)
     begin
         state<=Idle;
     end
else
    casex(state)
    Idle:if (seqIn==1)
        state<=A;
        else
        state<=Idle;
    A:if (seqIn==0)
        state<=B;
        else
        state<=A;
    B:if (seqIn==0)
        state<=C;
        else
        state<=A;
    C:if (seqIn==1)
        state<=C;
        else
        state<=Idle;    
    D:if (seqIn==0)
        state<=E;
        else
        state<=A;    
    E:if (seqIn==1)
        state<=A;
        else
        state<=C;
    default state<=Idle;
    endcase
endMODULE


圖片給出了警告,編譯器是FPGA Compiler,Q2下編譯的



2樓: >>參與討論
吳明詩(shī)
看不到圖片
不過(guò),你用的時(shí)雙邊沿促發(fā),并且在進(jìn)程中還判斷敏感信號(hào),估計(jì)就是這里。always@(posedge clk or negedge rst)把negedge rst去掉就可以了。別的應(yīng)該不用動(dòng)了



3樓: >>參與討論
吳明詩(shī)
另外
else 開(kāi)頭結(jié)尾出少begin -end

4樓: >>參與討論
吳明詩(shī)
哎呀,突然看到少了很多呀,每個(gè)case,超過(guò)一句的都需要
 
5樓: >>參與討論
daiduohao
RE
????
就一句話,不需要begin----end啊,而且casex語(yǔ)句分支有if--else,不需要額外begin和end.你編譯一下試試,語(yǔ)法的常識(shí)我還是有的。
還有一點(diǎn),我敏感量并沒(méi)有用到雙邊沿檢測(cè),用的異步復(fù)位,如果按照你的修改就成同步復(fù)位了,與我的設(shè)計(jì)意圖不符合。

6樓: >>參與討論
吳明詩(shī)
不能那么用的,你可以用兩個(gè)狀態(tài)來(lái)檢測(cè)rst,但不可這么用
 
7樓: >>參與討論
crazywolf
??
我覺(jué)的rst可以這么用
最好還是不要這樣寫(xiě)狀態(tài)機(jī),還是三段論寫(xiě)法比較好
樓主這樣寫(xiě)我看不見(jiàn)敏感表?

8樓: >>參與討論
吳明詩(shī)
想一下,這么做很不穩(wěn)定呀
想一下在一個(gè)信號(hào)的上升沿對(duì)一個(gè)信號(hào)進(jìn)行采樣。不穩(wěn)定呀。
再加上這種寫(xiě)法就像兩個(gè)進(jìn)程一樣,不允許呀。

9樓: >>參與討論
f0rmat
呵呵,樓主的狀態(tài)機(jī)有兩個(gè)跳不到
呵呵,樓主的狀態(tài)機(jī)有兩個(gè)跳不到,你可以看看,什么時(shí)候能跳到D,E?
這樣是一定會(huì)出問(wèn)題的.
樓主的代碼寫(xiě)法的風(fēng)格也是見(jiàn)過(guò)不少的,個(gè)人認(rèn)為不好,但是很多大公司給出來(lái)的參考代碼都是這個(gè)風(fēng)格,也就不亂評(píng)價(jià)了.
樓主看看你的warning是不是這個(gè)問(wèn)題.

10樓: >>參與討論
雷風(fēng)
always@(posedge clk or negedge rst)
這種寫(xiě)法也可以,主要是一些參考書(shū)都這樣寫(xiě),我也這樣寫(xiě)過(guò)東西,沒(méi)什么問(wèn)題的,這樣就是異步復(fù)位

為什么用casex,不直接用case?
還有,你的警告在哪里

11樓: >>參與討論
f0rmat
warning
他的warning肯定是跳不到d,e兩個(gè)狀態(tài)造成得.

12樓: >>參與討論
daiduohao
re
搞定了!
C:if (seqIn==1)
        state<=C;
        else
        state<=Idle;

應(yīng)該是
C:if (seqIn==1)
        state<=D;
        else
        state<=Idle;
to 吳明詩(shī):敏感變量檢測(cè)沒(méi)有任何問(wèn)題,也不存在可靠性的問(wèn)題,我從來(lái)都是這個(gè)搞。

13樓: >>參與討論
吳明詩(shī)
呵呵,知道了,我可不會(huì)這樣用的,會(huì)出問(wèn)題的
以前用maxplus時(shí)間長(zhǎng)了,那個(gè)就不行了。

14樓: >>參與討論
daiduohao
re
warning是說(shuō)輸出被強(qiáng)拉到0了,實(shí)際上是狀態(tài)機(jī)轉(zhuǎn)不到D造成的。比較低級(jí)的錯(cuò)誤,但是警告說(shuō)強(qiáng)拉到0使我一頭霧水。
謝謝f0rmat!

15樓: >>參與討論
吳明詩(shī)
不過(guò),摟主可要細(xì)心一些呀,才這么一點(diǎn)就出問(wèn)題了
 
16樓: >>參與討論
smz
異步復(fù)位很常用的沒(méi)問(wèn)題
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
補(bǔ)一下剛才的圖片,謝謝
vhdl實(shí)現(xiàn)倍頻!
單片機(jī)與CPLD如何連接??
我想在Xilinx的CPLD外部管腳輸入時(shí)鐘脈沖。。。
郁悶,上海(或是全國(guó)郵購(gòu))那里可以買到Altera的FPGA Cyclone
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)