《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 高速狀態下使用CPLD實現狀態機的辦法
高速狀態下使用CPLD實現狀態機的辦法
摘要: 本文給出了采用這些技術的高速環境狀態機設計的規范及分析方法和優化方法,并給出了相應的示例。
關鍵詞: 高速 CPLD 狀態機
Abstract:
Key words :

本文給出了采用這些技術的高速環境狀態機設計的規范及分析方法和優化方法,并給出了相應的示例。

為了使FPGA或CPLD中的狀態機設計滿足高速環境要求,設計工程師需要認識到以下幾點:寄存器資源和邏輯資源已經不是問題的所在,狀態機本身所占用的FPGA或CPLD邏輯資源或寄存器資源非常??;狀態機對整體數據流的是串行操作,如果希望數據處理的延時非常小,就必須提高操作的并行程度,壓縮狀態機中狀態轉移的路徑長度;高速環境下應合理分配狀態機的狀態及轉移條件。本文將結合實際應用案例來說明。

1.jpg

狀態機設計規范

 

2.jpg

1. 使用一位有效的方式進行狀態編碼

狀態機中狀態編碼主要有三種:連續編碼(sequential encoding)、一位有效(one-hot encoding)方式編碼以及不屬于這兩種的編碼。例如,對于一個5個狀態(State0~State4)的狀態機,連續編碼方式狀態編碼為:State0-000、State1-001、State2-010、State3-011、State4-100。一位有效方式為下為:State0-00001、State1-00010、State2-00100、State3-01000、State4-10000。對于自行定義的編碼則差別很大,例如試圖將狀態機的狀態位直接作為輸出所需信號,這可能會增加設計難度。

使用一位有效編碼方式使邏輯實現更簡潔,因為一個狀態只需要用一位來指示,而為此增加的狀態寄存器數目相對于整個設計來說可以忽略。一位有效至少有兩個含義:對每個狀態位,該位為1對應唯一的狀態,判斷當前狀態是否為該狀態,只需判斷該狀態位是否為1;如果狀態寄存器輸入端該位為1,則下一狀態將轉移為該狀態,判斷下一狀態是否為該狀態,只需判斷表示下一狀態的信號中該位是否為1。

2. 合理分配狀態轉移條件

在狀態轉移圖中,每個狀態都有對應的出線和入線,從不同狀態經不同的轉移條件到該狀態的入線數目不能太多。以采用與或邏輯的CPLD設計來分析,如果這樣的入線太多則將會需要較多的乘積項及或邏輯,這就需要更多級的邏輯級聯來完成,從而增加了寄存器間的延遲;對于FPGA則需要多級查找表來實現相應的邏輯,同樣會增加延遲。狀態機的應用模型如圖1所示。

狀態機設計的分析方法

狀態機設計的分析方法可以分為兩種:一種是流程處理分析,即分析數據如何分步處理,將相應處理的步驟依次定為不同狀態,該方法能夠分析非常復雜的狀態機,類似于編寫一個軟件程序的分析,典型設計如讀寫操作和數據包字節分析;另一種方法是關鍵條件分析,即根據參考信號的邏輯條件來確定相應的狀態,這樣的參考信號如空或滿指示、起始或結束、握手應答信號等。這兩種分析方法并沒有嚴格的界限,在實際的狀態機設計分析時往往是這兩種方法結合使用。下面分別說明這兩種分析方法。

1. 流程處理分析

例如,在一個讀取ZBT SRAM中數據包的設計中,要根據讀出的數據中EOP(End of Packet)信號是否為1來決定一個包的讀操作是否結束,由于讀取數據的延后,這樣就會從ZBT SRAM中多讀取數據,為此可以設計一個信號VAL_out來過濾掉多讀的數據。

根據數據到達的先后及占用的時鐘周期數,可以設計如圖2所示的狀態機(本文設定:文字說明及插圖中當前狀態表示為s_State[n:0],為狀態寄存器的輸出;下一狀態next_State[n:0],為狀態寄存器的輸入;信號之間的邏輯關系采用Verilog語言(或C語言)中的符號表示;#R表示需要經過一級寄存器,輸出信號對應寄存器的輸出端)。該狀態機首先判斷是否已經到達包尾,如果是,則依次進入6個等待狀態,等待狀態下的數據無效,6個等待狀態結束后將正常處理數據。

2. 關鍵條件分析

圖3為一個路由器線卡高速數據包分發處理的框圖,較高速率的數據包經過分發模塊以包為單位送往兩個較低速率數據通路(即寫入FIFO1或FIFO2)。

對于分發模塊設計,關鍵參考信號是EOP及快滿信號AF1、AF2,參考EOP可以實現每次處理一個包,參考AF1、AF2信號可以決定相應的包該往哪個FIFO中寫入。分發算法為:FIFO1未滿(AF1=0),數據包將寫入FIFO1;如果FIFO1將滿且FIFO2未滿(AF1=1,且AF2=0),則下一數據包將寫入FIFO2;如果FIFO1、FIFO2都將滿(AF1=1且AF2=1),則進入丟包狀態。狀態機描述如圖4所示:UseFifo1狀態下數據包將寫入FIFO1,UseFifo2狀態下數據包將寫入FIFO2,丟包狀態下數據包被丟棄,提供丟包計數使能DropCountEnable。

狀態機的進一步優化

3.jpg

1. 利用一位有效編碼方式

如前所述,狀態機的工作頻率跟狀態機中各個狀態對應的不同轉移條件的入線數目有關。如果到一個狀態的轉移條件相同但入線數非常多,其邏輯實現很可能并不復雜。在一位有效編碼方式下,對于某個狀態,如果其他所有狀態經相同的轉移條件到該狀態,那么其邏輯實現可以很好地化簡。

例4:一位有效編碼方式下狀態位s_State[n:0]中,

s_State[1] | s_State[2] | ... | s_State[n]=1與 s_State[0]=1等價,那么

next_State[0]=(s_State[0]&S) | (s_State[1]&T) | (s_State[2]&T) | ... | (s_State[n]) 可以化簡為:

next_State[0]=(s_State[0]&S) | ((~s_State[0])&T),右端輸入信號數目大大減少。

2. 利用寄存器的使能信號

多數FPGA或CPLD寄存器提供使能端,如果所有的狀態機轉移必須至少滿足某個條件,那么這個條件可以通過使能信號連接實現,從而可以降低寄存器輸入端的邏輯復雜度。如上例中不同狀態間轉移必須以EOP為1作為前提,因而可以將該信號作為使能信號來設計。

3. 結合所選FPGA或CPLD內部邏輯單元結構編寫代碼

以Xilinx FPGA為例,一個單元內2個4輸入查找表及相關配置邏輯可以實現5個信號輸入的最復雜的邏輯,或8~9個信號的簡單邏輯(例如全與或者全或),延時為一級查找表及配置邏輯延時;如果將相鄰單元的4個4輸入查找表輸出連接到一個4輸入查找表,那么可以實現最復雜的6輸入邏輯,此時需要兩級查找表延時及相關配置邏輯延時。更復雜的邏輯需要更多的級連來實現。針對高速狀態機的情況,可以盡量將狀態寄存器輸入端的邏輯來源控制在7個信號以內,從而自主控制查找表的級連級數,提高設計的工作頻率。

4. 通過修改狀態機

如果一個狀態機達不到工作頻率要求,則必須根據延時最大路徑修改設計,通常的辦法有:改變狀態設置,添加新狀態或刪除某些狀態,簡化轉移條件及單個狀態連接的轉移數目;修改轉移條件設置,包括改變轉移條件的組合,以及將復雜的邏輯改為分級經寄存器輸出由寄存器信號再形成的邏輯,后者將會改變信號時序,因而可能需要改變狀態設置。

5. 使用并行邏輯

很多情況下要參考的關鍵信號可能非常多,如果參考這些關鍵信號直接設計狀態機所得到的結果可能很復雜,個別狀態的出線或入線將會非常多,因而將降低工作頻率??梢钥紤]通過設計并行邏輯來提供狀態機的關鍵信號以及所需的中間結果,狀態機負責維護并行邏輯以及產生數據處理的流程。并行邏輯應分級設計,級間為寄存器,從而減少寄存器到寄存器的延時。

一個使用并行邏輯的狀態機,該設計用于使用單一數據總線將FIFO1~4中的數據發送到4個數據通路上去,該設計中并行邏輯產生每次操作時的通路及FIFO選擇結果,狀態機負責控制每次操作的流程:在“Idle”狀態下,如果FIFO1~4中有數據包供讀取,則進入“Schedule”狀態;獲得調度結果后“Schedule”經過一個“Wait”狀態,然后進入“ReadData”狀態讀取數據,同時開始計數,計數到達所指定數值或者讀到數據包尾時進入空閑狀態“Idle”,依次循環下去。

流水線設計

流水線(Pipelining)設計是將一個時鐘周期內執行的邏輯操作分成幾步較小的操作,并在較高速時鐘下完成。圖6a中邏輯被分為圖6b中三小部分,如果它的Tpd為T,則該電路最高時鐘頻率為1/T,而在圖6b中假設每部分的Tpd為T/3,則其時鐘頻率可提高到原來的3倍,因而單位時間內的數據流量可以達到原來的三倍。代價是輸出信號相對于輸入滯后3個周期,時序有所改變(圖6b中輸出信號的總延時與圖6a中一樣,但數據吞吐量提高了),同時增加了寄存器資源,而FPGA具有豐富的寄存器資源。

本文所強調的通過減少寄存器間的邏輯延時來提高狀態機的工作頻率,與流水線設計的出發點一樣,不同的是流水線所強調的是數據處理時的數據通路優化,而本文所強調的是狀態機中控制邏輯的優化。
 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久久这里只有精品| 国产精品日韩精品欧美精品| 欧美精品在线观看| 午夜精品www| 久久亚洲电影| 欧美视频在线观看一区二区| 国产日韩欧美精品综合| 欧美日韩精品二区第二页| 亚洲激情一区二区| 99国内精品久久| 亚洲美女精品成人在线视频| 欧美淫片网站| 欧美日韩在线精品一区二区三区| 午夜久久影院| 亚洲在线观看免费视频| 欧美婷婷在线| 欧美成人一区二区三区| 国产欧美一区二区白浆黑人| 国产欧美短视频| 国产一区二区三区四区在线观看| 欧美激情综合网| 久久中文久久字幕| 国产女主播视频一区二区| 日韩视频永久免费观看| 一本大道久久a久久精二百| 国产一区深夜福利| 国产女精品视频网站免费| 久久aⅴ国产紧身牛仔裤| 亚洲日本成人| 欧美影院在线| 国产精品乱人伦一区二区| 亚洲第一在线综合网站| 新67194成人永久网站| 欧美日韩国产精品一卡| 国产丝袜一区二区三区| 欧美激情按摩| 欧美三级电影网| 久久一区二区精品| 欧美日韩高清不卡| 亚洲欧美另类久久久精品2019| 久久九九热免费视频| 一区二区三区视频在线看| 久久精品中文字幕免费mv| 国产精品国产三级国产aⅴ9色| 久久精品中文字幕免费mv| 午夜精品成人在线视频| 91久久夜色精品国产网站| 亚洲精品日韩欧美| 欧美婷婷六月丁香综合色| 狠狠色综合一区二区| 日韩亚洲国产欧美| 校园春色综合网| 国模 一区 二区 三区| 亚洲素人在线| 久久精品国产亚洲高清剧情介绍| 麻豆成人综合网| 亚洲第一成人在线| 欧美综合第一页| 国产精品久久久久久久久婷婷| 国产乱理伦片在线观看夜一区| 狠狠色丁香婷综合久久| 国产精品私房写真福利视频| 亚洲人屁股眼子交8| 久久综合久久综合久久| 国产精品制服诱惑| 亚洲一级网站| 亚洲少妇最新在线视频| 欧美中文字幕视频在线观看| 久久久久综合| 亚洲娇小video精品| 日韩性生活视频| 中文av一区二区| 欧美国产三级| 午夜精品久久久久影视| 国产精品亚洲综合一区在线观看| 亚洲国产第一| 在线综合+亚洲+欧美中文字幕| 国产精品国产成人国产三级| 韩国一区二区三区在线观看| 国产女人精品视频| 9i看片成人免费高清| 欧美黄色网络| 国产欧美日韩三区| 欧美特黄一级| 亚洲一区二区三区涩| 亚洲天堂偷拍| 久久理论片午夜琪琪电影网| 亚洲欧美日韩精品久久久久| 韩国免费一区| 国产在线观看一区| 国产女主播一区二区三区| 香港久久久电影| 亚洲精品免费在线观看| 亚洲欧美中文日韩v在线观看| 欧美大胆a视频| 亚洲精品久久久久久久久久久久久| 欧美激情五月| 欧美三日本三级少妇三2023| 亚洲欧洲一区二区三区在线观看| 亚洲激情一区二区三区| 亚洲国产精品专区久久| 久久综合中文字幕| 亚洲欧美bt| 在线亚洲精品| 午夜精品久久久99热福利| 欧美成人资源网| 激情av一区二区| 激情综合五月天| 国产乱肥老妇国产一区二| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲一区精品电影| 亚洲精品综合久久中文字幕| 欧美在线精品免播放器视频| 国产欧美日韩亚洲一区二区三区| 欧美v亚洲v综合ⅴ国产v| 91久久在线视频| 在线观看亚洲一区| 欧美—级a级欧美特级ar全黄| 国产综合色在线视频区| 欧美区二区三区| 99视频国产精品免费观看| 久久久精品网| 欧美色视频在线| 欧美jizzhd精品欧美巨大免费| 国产精品毛片在线看| 欧美性猛交xxxx免费看久久久| 免费在线欧美黄色| 国产精品久久婷婷六月丁香| 欧美日韩一区高清| 欧美美女日韩| 久久一区精品| 久久精品水蜜桃av综合天堂| 欧美色综合天天久久综合精品| 日韩视频不卡| 亚洲伦理在线观看| 激情国产一区| 国产一区二区三区网站| 久久成人精品无人区| 国产精一区二区三区| 欧美视频不卡中文| 欧美午夜寂寞影院| 欧美日韩精品免费观看视一区二区| 一区二区日韩伦理片| 一区二区三区视频免费在线观看| 亚洲字幕在线观看| 激情婷婷亚洲| 久久精品一本| 国产一区二区主播在线| 亚洲精品日日夜夜| 欧美啪啪成人vr| 国产精品亚洲视频| 国语自产精品视频在线看一大j8| 黄色日韩在线| 久久精品一区二区三区四区| 国产欧美一区二区视频| 亚洲最快最全在线视频| 欧美午夜精品理论片a级大开眼界| 性刺激综合网| 欧美日韩999| 国产欧美日韩精品专区| 亚洲欧美日韩在线播放| 亚洲欧美一区二区三区在线| 免费观看成人鲁鲁鲁鲁鲁视频| 免费在线看成人av| 亚洲人精品午夜在线观看| 激情婷婷久久| 国产一区二区三区黄| 亚洲第一色中文字幕| 国产主播一区二区三区四区| 噜噜噜91成人网| 欧美在线亚洲在线| 欧美日韩中文在线| 美女尤物久久精品| 国产精品一区久久久| 亚洲国产成人精品久久| 久久久久久久久久久久久9999| 国产揄拍国内精品对白| 久久久天天操| 老司机一区二区三区| 在线观看视频日韩| 亚洲主播在线| 亚洲六月丁香色婷婷综合久久| 亚洲高清视频中文字幕| 久久久久久亚洲精品杨幂换脸| 国产一级一区二区| 国产精品香蕉在线观看| 欧美精品国产| 蜜臀久久久99精品久久久久久| 欧美在线观看视频一区二区三区| 亚洲欧洲午夜| 国产在线精品一区二区夜色| 亚洲精品国产日韩| 久久精品国产第一区二区三区| 国产精品久久看| 最近看过的日韩成人| 亚洲欧美综合| 久久久免费观看视频| 欧美日韩性视频在线| 久久爱91午夜羞羞| 欧美日韩免费区域视频在线观看| 欧美午夜精品久久久久久孕妇| 国产日韩精品一区观看| 尤物yw午夜国产精品视频明星| 亚洲国产人成综合网站| 一区二区三区在线视频观看| 99国产精品99久久久久久粉嫩| 久久疯狂做爰流白浆xx| 午夜在线视频一区二区区别| 午夜精品一区二区三区在线| 久热精品视频在线观看一区| 欧美极品在线播放| 狼狼综合久久久久综合网| 久久夜色精品国产| 一区二区三区无毛| 欧美日本在线播放| 亚洲午夜电影在线观看| 老司机精品视频一区二区三区| 久久夜色精品国产| 亚洲精品一区二区三区在线观看| 亚洲国产成人午夜在线一区| 亚洲精品一区二区三区樱花| 国产精品夜夜夜| 欧美日韩三区四区| 国产精品成人免费视频| 麻豆成人小视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美视频官网| 国产欧美一区二区精品忘忧草| 亚洲一区在线观看免费观看电影高清| 欧美精品97| 亚洲欧美韩国| 国产欧美一区二区精品性色| 国产精品va在线| 欧美一级大片在线观看| 狼人社综合社区| 欧美日韩成人激情| 国产网站欧美日韩免费精品在线观看| 久久久久www| 你懂的网址国产 欧美| 亚洲人成在线影院| 在线日韩日本国产亚洲| 欧美bbbxxxxx| 国产农村妇女精品一二区| 一区二区三区久久精品| 牛夜精品久久久久久久99黑人| 悠悠资源网久久精品| 国产精品网站视频| 欧美成人免费一级人片100| 亚洲天堂av综合网| 欧美亚洲免费高清在线观看| 99精品国产福利在线观看免费| 久久久噜噜噜久久人人看| 亚洲一级黄色av| 米奇777超碰欧美日韩亚洲| 亚洲观看高清完整版在线观看| 国产精品久久久久久久9999| 国产综合网站| 葵司免费一区二区三区四区五区| 亚洲一区久久久| 影音先锋久久| 亚洲乱码国产乱码精品精可以看| 欧美亚日韩国产aⅴ精品中极品| 玖玖国产精品视频| 欧美日韩国产高清视频| 一本色道久久综合亚洲精品不卡| 欧美在线三区| 午夜精品久久久久久久久久久久久| 欧美乱人伦中文字幕在线| 久久综合九色综合欧美就去吻| 99av国产精品欲麻豆| 午夜日韩在线观看| 在线电影欧美日韩一区二区私密| 一区二区欧美激情| 国产精品卡一卡二| 欧美日本一道本| 久久成人亚洲| 久久久91精品国产一区二区精品| 国产精品theporn88| 国产精品自在在线| 亚洲欧洲三级电影| 亚洲成人在线观看视频| 国产亚洲一二三区| 久热精品在线| 国产主播精品在线| 夜夜嗨av一区二区三区中文字幕| 麻豆久久精品| 一区精品久久| 亚洲欧美成aⅴ人在线观看| 欧美主播一区二区三区美女 久久精品人| 久久久视频精品| 久久男女视频| 欧美中文字幕在线视频| 国语自产精品视频在线看抢先版结局| 久久久亚洲午夜电影| 欧美一级片一区| 黑人巨大精品欧美黑白配亚洲| 国产视频久久久久久久| 国产精品成人一区二区艾草| 亚洲欧美日韩区| 性色一区二区| 国产精品久久影院| 欧美亚洲综合另类| 午夜视频在线观看一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美成人精品福利| 亚洲激情社区| 国产精品拍天天在线| 欧美大片第1页| 国产精品日韩在线观看| 国内精品视频在线播放| 亚洲欧洲在线观看| 国产亚洲成年网址在线观看| 久热成人在线视频| 欧美在线一二三| 久久夜色精品国产| 午夜日韩福利| 国产视频精品xxxx| 欧美中文字幕第一页| 久久久久国产精品麻豆ai换脸| 亚洲第一精品电影| 欧美激情综合五月色丁香| 亚洲欧美日韩电影| 先锋影音国产一区| 日韩午夜av| 亚洲国产成人久久综合| 欧美精品导航| 99视频一区二区| 美女脱光内衣内裤视频久久网站|