音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

如何設(shè)計(jì)最優(yōu)化的狀態(tài)機(jī) (經(jīng)驗(yàn)介紹)

作者:hziee2003 欄目:EDA技術(shù)
如何設(shè)計(jì)最優(yōu)化的狀態(tài)機(jī) (經(jīng)驗(yàn)介紹)
如何設(shè)計(jì)最優(yōu)化的狀態(tài)機(jī)
前言:數(shù)字電路通常分為組合邏輯電路和時(shí)序電路,
組合邏輯電路 outputs = F(current inputs)
時(shí)序電路     outputs = F(current inputs,past inputs)
有限狀態(tài)機(jī)就是時(shí)序電路的數(shù)學(xué)抽象,一個(gè)有限狀態(tài)機(jī)系統(tǒng)包括inputs ,outputs, states .狀態(tài)機(jī)分為同步狀態(tài)機(jī)(synchronous)和異步狀態(tài)機(jī)(asynchronous),異步狀態(tài)機(jī)由于輸出信號(hào)不穩(wěn)定,所以不詳細(xì)討論,對(duì)絕大多數(shù)設(shè)計(jì)來(lái)說(shuō),用的最廣泛的是同步狀態(tài)機(jī)。下面主要討論了同步狀態(tài)機(jī)的設(shè)計(jì)。

一.狀態(tài)機(jī)的基礎(chǔ)知識(shí)
1.1. moore狀態(tài)機(jī)和mealy狀態(tài)機(jī)的區(qū)別:
2.1.1moore狀態(tài)機(jī)輸出只依賴于及其的當(dāng)前狀態(tài),與輸入信號(hào)無(wú)關(guān)。這是moore狀態(tài)機(jī)的優(yōu)點(diǎn)。下面是moore狀態(tài)機(jī)的模型:

moore狀態(tài)機(jī)比較容易用數(shù)學(xué)的方式來(lái)分析,因此被更廣泛的用在代數(shù)狀態(tài)機(jī)理論中(algebraic FSM theory)。

Mealy狀態(tài)機(jī)輸出依賴于機(jī)器現(xiàn)在的狀態(tài)和輸入的值,如果輸入改變,輸出可以在一個(gè)時(shí)鐘周期中將發(fā)生了改變。其模型如下:

圖的說(shuō)明:state MEMORY :保存現(xiàn)在的狀態(tài)(current state  s(t) )
          state transistion function :根據(jù)現(xiàn)態(tài)和輸入x(t),s(t+1)來(lái)決定下一個(gè)狀態(tài)。
          OUTPUT function :根據(jù)s(t)和x(t)來(lái)決定最后的輸出。
Mealy 狀態(tài)機(jī)通?梢杂懈俚臓顟B(tài)變量,因此在工程領(lǐng)域有更為廣闊的應(yīng)用,
狀態(tài)變量越少,則所需的存儲(chǔ)單元就越少。

下面用簡(jiǎn)單的實(shí)例來(lái)具體說(shuō)明兩者編程的區(qū)別,和綜合出來(lái)的結(jié)果的不同:

Mealy狀態(tài)機(jī)的簡(jiǎn)單例子:
1.    源程序:
   demo_PROCESS:PROCESS(clk,reset)
   begin
       if(reset = '1')then
         state    <= s0;
         out1    <= (others=>'0');
       elsif rising_edge(clk) then
         case state is
             when s0 => if(in1 = '1')then
                         state <= s1;
                         out1  <= "1000";
                         end if;
             when s1 => if(in1 = '0')then
                         state <= s2;
                          out1 <= "1001";
                       end if;
             when s2 => if(in1 = '1')then
                         state <= s3;
                         out1 <= "1100";
                       end if;
             when s3 => if(in1 = '0')then
                         state <= s0;
                         out1 <= "1111";
                       end if;
             when others =>
                       null;
             end case;
        end if;
end PROCESS;

modelsim仿真結(jié)果:

synplify綜合結(jié)果:






1.模塊表示圖:

在這張綜合圖上可以明顯得看出紅線即input所參與決定的是狀態(tài)的產(chǎn)生和輸出。而且輸出out1為了防止輸出的波形不好(因?yàn)橥ㄟ^(guò)組合電路輸出的波形不穩(wěn)定),所以加了一個(gè)觸發(fā)器。
2.門級(jí)綜合結(jié)果(僅作參考):


其中狀態(tài)機(jī)模塊編碼采用兩個(gè)觸發(fā)器,見(jiàn)下圖:

所以如果在語(yǔ)言中沒(méi)有對(duì)狀態(tài)進(jìn)行編碼,那么綜合器會(huì)自動(dòng)將編碼方式設(shè)為順序編碼。


Moore狀態(tài)機(jī)的簡(jiǎn)單例子:
1源程序:
  demo_PROCESS:PROCESS(clk,reset)
  begin
       if(reset = '1')then
            state    <= s0;
            out1        <= (others=>'0');
elsif rising_edge(clk) then
            case state is
                  when s0 => if(in1 = '1')then
                              state <= s1;
                            end if;
                            out1  <= "1000";
                  when s1 => if(in1 = '0')then
                              state <= s2;
                             end if;
                            out1 <= "1001";
                  when s2 => if(in1 = '1')then
                              state <= s3;
                            end if;
                   
2樓: >>參與討論
吳明詩(shī)
摟主辛苦了,頂一下
 
3樓: >>參與討論
hqgboy
好。。。。。。。。。
 
4樓: >>參與討論
代成志
怎么看不見(jiàn)圖呢??
好文

5樓: >>參與討論
lwsmile
樓主好人啊!
辛苦了樓主!
可是看不見(jiàn)圖啊!

6樓: >>參與討論
tuo176
看不見(jiàn)圖啊,不過(guò)分析的不錯(cuò)!
 
7樓: >>參與討論
n3207
如果在這里貼圖不方便,可以上傳PDF的格式,方便大家閱讀
 
8樓: >>參與討論
julianmoon
EDA 技術(shù)
好東西啊,但是能看到圖就更好拉!

9樓: >>參與討論
Faucon
Re
看不見(jiàn)圖啊

10樓: >>參與討論
peiassaa
回復(fù)
有東西大家來(lái)分享。。樓主做的不錯(cuò)啊

11樓: >>參與討論
pzlvisiter
好累啊
 
12樓: >>參與討論
月光寶盒
樓主辛苦!·
 
13樓: >>參與討論
劍寒情暖
辛苦
 
14樓: >>參與討論
yezaixiao
好東西
好東西,頂,頂,頂!

15樓: >>參與討論
4wolf
寫(xiě)得好,還有好的分享嗎?
謝謝

16樓: >>參與討論
future_god
樓主辛苦了,不過(guò)我看不大懂啊
 
17樓: >>參與討論
sagestar
ok
不錯(cuò),加油

18樓: >>參與討論
無(wú)常
作個(gè)記號(hào)
好東西


19樓: >>參與討論
wang_4972
看不見(jiàn)圖,建議摟主,給出Pdf版本
分析的很好,想看圖

20樓: >>參與討論
ryan999
ddffdfdfd
 
21樓: >>參與討論
leonyang
辛苦拉
 
22樓: >>參與討論
robshine
無(wú)圖
急,怎么沒(méi)圖的?

23樓: >>參與討論
laurel_lei
收下了
 
24樓: >>參與討論
jds9710
謝謝了,樓主
 
25樓: >>參與討論
kugou
簡(jiǎn)單,易入手!
 
26樓: >>參與討論
wuhanmcu
樓主厲害!
 
27樓: >>參與討論
zyz013920
好帖!
好帖!

28樓: >>參與討論
李海松

   看你寫(xiě)的好?墒俏乙稽c(diǎn)也看不明的。我也是個(gè)電子愛(ài)好者。學(xué)的還是電子以為自已知道一點(diǎn),F(xiàn)在明的白了,電子的深。以后還要多多學(xué), 

29樓: >>參與討論
lspower
我還看不懂
 
30樓: >>參與討論
sunhuaiyi
好文章,支持!
 
31樓: >>參與討論
sharn
好象沒(méi)圖!
 
32樓: >>參與討論
解牛
很經(jīng)典 很簡(jiǎn)練
可是為什么看不見(jiàn)圖呢 

33樓: >>參與討論
ddc21ic
很詳細(xì),辛苦了,謝謝樓主的奉獻(xiàn)!!
 
34樓: >>參與討論
伊萊克斯
寫(xiě)單片機(jī)程序也推薦使用MOORE模型
我一直就是這么干的,感覺(jué)這樣寫(xiě)思路很清楚.

35樓: >>參與討論
seal0072
book mark
GOOD thing!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
Verilog內(nèi)如何實(shí)現(xiàn)左移而不增加字長(zhǎng)
小弟初入門,在此有小問(wèn)題向各位大俠請(qǐng)教!
請(qǐng)教一下,altera的cyclone器件名稱后的f324指什么意思
問(wèn)問(wèn),XILINX和ALTERA的CPLD芯片那家好一些
有一困擾已久的問(wèn)題想弄明白
免費(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)