国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

VHDL設(shè)計(jì)MOORE型有限狀態(tài)機(jī)時(shí)速度問(wèn)題的探討

發(fā)布時(shí)間:2010-9-25 23:39    發(fā)布者:eetech
關(guān)鍵詞: Moore , VHDL , 速度 , 狀態(tài)機(jī)
1 引言

隨著微電子技術(shù)的迅速發(fā)展,人們對(duì)數(shù)字系統(tǒng)的需求也在提高。不僅要有完善的功能,而且對(duì)速度也提出了很高的要求。對(duì)于大部分?jǐn)?shù)字系統(tǒng),都可以劃分為控制單元和數(shù)據(jù)單元兩個(gè)組成部分。通常,控制單元的主體是一個(gè)有限狀態(tài)機(jī),它接收外部信號(hào)以及數(shù)據(jù)單元產(chǎn)生的狀態(tài)信息,產(chǎn)生控制信號(hào)序列。MOORE型有限狀態(tài)機(jī)的設(shè)計(jì)方法有多種,采用不同的設(shè)計(jì)方法,雖然可以得到相同功能的狀態(tài)機(jī),但它們的速度、時(shí)延特性、占用資源可能有較大的差異。在某些對(duì)速度要求很高的場(chǎng)合,如內(nèi)存控制器,則需要針對(duì)速度進(jìn)行優(yōu)化設(shè)計(jì)。

2 MOORE型有限狀態(tài)機(jī)的幾種設(shè)計(jì)方法

2.1 輸出由狀態(tài)位經(jīng)組合譯碼得到

它的實(shí)現(xiàn)方案是:現(xiàn)態(tài)與輸入信號(hào)經(jīng)組合邏輯得到次態(tài),在時(shí)鐘的上升沿到來(lái)時(shí),狀態(tài)寄存器將次態(tài)鎖存得到現(xiàn)態(tài),現(xiàn)態(tài)經(jīng)過(guò)輸出組合邏輯譯碼得到輸出信號(hào)。如圖 1所示。由于輸出必須由現(xiàn)態(tài)的狀態(tài)位經(jīng)過(guò)譯碼得到,這就需要在現(xiàn)態(tài)與輸出之間增加一級(jí)組合譯碼邏輯,從而加大了從狀態(tài)位到器件輸出管腳的傳輸延遲,同樣也增加了時(shí)鐘-輸出時(shí)延TCO。



假設(shè)一個(gè)簡(jiǎn)單的內(nèi)存控制器的狀態(tài)轉(zhuǎn)換圖如圖2所示。一個(gè)完整的讀寫(xiě)周期是從空閑狀態(tài)idle開(kāi)始。在ready信號(hào)有效之后的下一個(gè)時(shí)鐘周期轉(zhuǎn)移到判斷狀態(tài)decision,然后根據(jù)read_write信號(hào)再轉(zhuǎn)移到read或write狀態(tài)。則采用這種設(shè)計(jì)方法的VHDL源程序如下:



signalpresent_state,next_state:std_logic_vector(1 downto 0);
process(clk,ready,read_write,present_state)
begin
if(clk'eventandclk='1')then
casepresent_stateis
when idle=>oe<='0';wr<='0';
if ready='1' then
next_state<=decision;
else next_state<=idle;
endif;
when decision=>oe<='0';wr<='0';
if(read_write='1')then
next_state<=read;
else next_state<=write;
endif;
when read=>oe<='1';wr<='0';
if(ready='1')then
next_state<=idle;
else next_state<=read;
endif;
when others=>oe<='0';wr<='1';
if(ready='1')then next_state<=idle;
else next_state<=write;
endif;
endcase;endif;
endprocess;
state_clock:process(clk)begin
if(clk'eventandclk='1')then
present_state<=next_state;
endif;
endprocess;

對(duì)此程序綜合出的電路如圖3所示。現(xiàn)態(tài)present_state與次態(tài)next_state均由兩個(gè)觸發(fā)器構(gòu)成,輸出wr和oe均由 present_state經(jīng)組合譯碼得到,因此從時(shí)鐘的上升沿到狀態(tài)機(jī)輸出的延遲為通過(guò)邏輯陣列的時(shí)鐘-輸出時(shí)延TCO2,而不是較短的時(shí)鐘-輸出時(shí)延 TCO,且輸出信號(hào)wr,oe直接來(lái)自組合邏輯電路,因而可能有毛刺發(fā)生。



2.2 輸出由并行輸出寄存器譯碼得到

在第一種方法中,主要由于輸出組合邏輯引入了延時(shí),從而加大了時(shí)鐘-輸出時(shí)延。為了縮短狀態(tài)機(jī)輸出到達(dá)管腳的延時(shí),可以在鎖存狀態(tài)位之前,先進(jìn)行輸出的組合邏輯譯碼并將其鎖存到專(zhuān)用寄存器中,時(shí)鐘上升沿到來(lái)時(shí),專(zhuān)用寄存器中直接輸出wr和oe而沒(méi)有了組合邏輯引入的延時(shí),從而使?fàn)顟B(tài)機(jī)輸出的延遲為T(mén)CO。實(shí)現(xiàn)該方案的方框圖如圖4。采用這種設(shè)計(jì)方法的VHDL源程序如下:



signalpresent_state:std_logic_vector(1 downto 0);
signalnext_state:std_logic_vector(1 downto 0);
signalwr_d,oe_d:std_logic;
begin
process(clk,ready,read_write)
begin
if(clk'event and clk='1')then
case present_stateis
when idle=>
if ready='1'thennext_state<=decision;
else next_state<=idle;
endif ;
when decision=>
if(read_write='1') then next_state<=read;
else next_state<=write;
endif;
when read=>
if(ready='1')then
next_state<=idle;
else next_state<=read;
endif;
when others=>
if(ready='1')then
next_state<=idle;
else next_state<=write;
endif;
endcase;
endif;
endprocess;
withnext_stateselect
oe_d<='0' whenidle|decision|write,'1'when others;
withnext_stateselect
wr_d<='0'whenidle|decision|read,'1'when others;
state_clock:process(clk)
begin
if(clk'eventandclk='1')then
present_state<=next_state;
oe<=oe_d;
wr<=wr_d;
endif;
endprocess;

在此程序中,用到了兩個(gè)新的信號(hào)oe_d和wr_d,對(duì)次態(tài)next_state進(jìn)行鎖存,不象第一種方案中將現(xiàn)態(tài)present_state進(jìn)行譯碼從而得到在下一個(gè)時(shí)鐘周期oe和wr的取值。對(duì)此程序綜合出的電路如圖5所示。oe_d和wr_d作為鎖存器D1和D2的輸入。因此D1、D2的輸出為上一個(gè)次態(tài)(即現(xiàn)態(tài))的值。clk的上升沿到來(lái)時(shí),D1、D2即將oe_d和wr_d鎖存,從而得輸出oe和wr。因此從時(shí)鐘的上升沿到狀態(tài)機(jī)輸出的延遲為時(shí)鐘-輸出時(shí)延TCO而不是通過(guò)邏輯陣列的時(shí)鐘-輸出時(shí)延TCO2。又由于時(shí)鐘信號(hào)將輸出加載到附加的D觸發(fā)器中,因而消除了輸出信號(hào)的毛刺。然而,這種方法存在兩個(gè)缺點(diǎn):(1)由于用到了輸出寄存器,它比第一種設(shè)計(jì)需要多用兩個(gè)寄存器;(2)雖然它的時(shí)鐘-輸出時(shí)延從TCO2減小到TCO,但從狀態(tài)機(jī)的狀態(tài)位到達(dá)oe和wr需要經(jīng)過(guò)兩級(jí)組合邏輯,這就影響了系統(tǒng)時(shí)鐘的最高頻率。



2.3 輸出直接從狀態(tài)位得到

為了能夠把時(shí)鐘-輸出時(shí)延限制在TCO內(nèi),也可以將狀態(tài)位本身作為輸出信號(hào)。對(duì)于狀態(tài)位不是很多的狀態(tài)機(jī)而言,這種方法也許較前兩種更為優(yōu)越。某種情況下,可能會(huì)出現(xiàn)兩種不同狀態(tài)有相同的狀態(tài)位,此時(shí)只需增加一位狀態(tài)位加以區(qū)別即可。如此程序中,idle、decision、read、write四種狀態(tài)可分別編碼為000,001,100,010。采用這種方法所對(duì)應(yīng)的程序如下:

signalpresent_state:std_logic_vector(2downto0);
state:process(clk,ready,read_write);
begin
if(clk'eventandclk='1')then
case present_stateis
when "000"=>ifready='1' then present_state<="001";
else present_state<="000";
endif;
when "001"=>if(read_write='1') then
present_state<="100";
else present_state<="001";
endif;
when "100"=>if(ready='1')then
present_state<="000";
elsepresent_state<="100";
endif;
when "010"=>if(ready='1') then present_state<="000";
else present_state<="010";
endif;
when others=>present_state<="---";
endcase;
endif;
endprocess;
oe<=present_state(2);
wr<=present_state(1);

對(duì)此程序綜合出的電路如圖6所示。從圖中可知,輸出信號(hào)未通過(guò)額外的邏輯對(duì)現(xiàn)態(tài)進(jìn)行譯碼,而是直接來(lái)自狀態(tài)寄存器,因而輸出信號(hào)上沒(méi)有毛刺,并且它所用的宏單元少于通過(guò)并行輸出寄存器輸出的方式。




3 結(jié)論

從以上分析可知,普通MOORE型狀態(tài)機(jī)時(shí)延最長(zhǎng),速度最慢,可應(yīng)用于對(duì)速度要求不高的場(chǎng)合。同時(shí),由于它的輸出信號(hào)中有毛刺,更加限制了它的應(yīng)用范圍。后兩種方案在相同的條件下,具有相同的時(shí)延,即速度是相同的,但第二 種方案所占用面積要比第三種大得多,且對(duì)時(shí)鐘頻率有一定限制。如果可能的話(huà),選擇“輸出直接從狀態(tài)位得到”類(lèi)型狀態(tài)機(jī)是一個(gè)理想的方案,因?yàn)槠渌俣茸羁欤娣e最小,設(shè)計(jì)這種狀態(tài)機(jī)時(shí),必須在VHDL源碼中對(duì)狀態(tài)的編碼加以明確的規(guī)定,使?fàn)顟B(tài)和輸出信號(hào)的取值一致。所以只有在狀態(tài)機(jī)的規(guī)模較小時(shí),才能很好地實(shí)現(xiàn)這種類(lèi)型的設(shè)計(jì)。
本文地址:http://www.qingdxww.cn/thread-29211-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 我們是Microchip
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久这里只有精品加勒比 | 在线欧洲成人免费视频 | 欧美日韩午夜精品不卡综合 | 俄罗斯xx| 亚洲欧美日韩综合二区三区 | 久久久久国产视频 | 国产麻豆媒一区一区二区三区 | 久久99热精品免费观看无卡顿 | 国产高清a毛片在线看 | 欧美激情在线精品video | 久久中文字幕不卡一二区 | 国产精品久久久久久免费 | 91精品导航在线网址 | 亚洲欧美男人天堂 | 国产欧美日韩不卡在线播放在线 | 99久久国产综合精品网成人影院 | 四虎影院免费观看视频 | 国产精品99久久 | 国产第5页| 亚洲热在线观看 | 亚色在线 | 欧美日韩一区二区三区色综合 | 欧美成人片在线 | 最近中文字幕完先锋资源 | 亚洲欧美日韩另类在线专区 | 亚洲日韩视频免费观看 | 亚洲欧美日韩在线播放 | 国产精品中文字幕在线 | 97在线免费看视频 | 中文一级国产特级毛片视频 | www.色综合 | 日韩精品欧美 | 天天摸夜夜摸夜夜狠狠摸 | 精品视频 九九九 | 青青国产线免观看手机版精品 | 日韩欧美网 | 99精选视频 | 久久99视频精品 | 欧美激情免费观看一区 | 久久6精品 | 日本3级网站 |