www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]  通過減少寄存器間的邏輯延時來提高工作頻率,或通過流水線設(shè)計來優(yōu)化數(shù)據(jù)處理時的數(shù)據(jù)通路來滿足高速環(huán)境下FPGA或CPLD中的狀態(tài)機設(shè)計要求。本文給出了采用這些技術(shù)的高速環(huán)境狀態(tài)機設(shè)計的規(guī)范及分析方法和優(yōu)化方

  通過減少寄存器間的邏輯延時來提高工作頻率,或通過流水線設(shè)計來優(yōu)化數(shù)據(jù)處理時的數(shù)據(jù)通路來滿足高速環(huán)境下FPGA或CPLD中的狀態(tài)機設(shè)計要求。本文給出了采用這些技術(shù)的高速環(huán)境狀態(tài)機設(shè)計的規(guī)范及分析方法和優(yōu)化方法,并給出了相應(yīng)的示例。

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

  狀態(tài)機設(shè)計規(guī)范

  1. 使用一位有效的方式進行狀態(tài)編碼

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

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

  2. 合理分配狀態(tài)轉(zhuǎn)移條件

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

  狀態(tài)機設(shè)計的分析方法

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

  1. 流程處理分析

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

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

  2. 關(guān)鍵條件分析

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

  對于分發(fā)模塊設(shè)計,關(guān)鍵參考信號是EOP及快滿信號AF1、AF2,參考EOP可以實現(xiàn)每次處理一個包,參考AF1、AF2信號可以決定相應(yīng)的包該往哪個 FIFO中寫入。分發(fā)算法為:FIFO1未滿(AF1=0),數(shù)據(jù)包將寫入FIFO1;如果FIFO1將滿且FIFO2未滿(AF1=1,且 AF2=0),則下一數(shù)據(jù)包將寫入FIFO2;如果FIFO1、FIFO2都將滿(AF1=1且AF2=1),則進入丟包狀態(tài)。UseFifo1狀態(tài)下數(shù)據(jù)包將寫入FIFO1,UseFifo2狀態(tài)下數(shù)據(jù)包將寫入FIFO2,丟包狀態(tài)下數(shù)據(jù)包被丟棄,提供丟包計數(shù)

使能 DropCountEnable。

  狀態(tài)機的進一步優(yōu)化

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

  如前所述,狀態(tài)機的工作頻率跟狀態(tài)機中各個狀態(tài)對應(yīng)的不同轉(zhuǎn)移條件的入線數(shù)目有關(guān)。如果到一個狀態(tài)的轉(zhuǎn)移條件相同但入線數(shù)非常多,其邏輯實現(xiàn)很可能并不復(fù)雜。在一位有效編碼方式下,對于某個狀態(tài),如果其他所有狀態(tài)經(jīng)相同的轉(zhuǎn)移條件到該狀態(tài),那么其邏輯實現(xiàn)可以很好地化簡。

  例4:一位有效編碼方式下狀態(tài)位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),右端輸入信號數(shù)目大大減少。

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

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

  3. 結(jié)合所選FPGA或CPLD內(nèi)部邏輯單元結(jié)構(gòu)編寫代碼

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

  4. 通過修改狀態(tài)機

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

  5. 使用并行邏輯

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

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

  流水線設(shè)計

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

  本文所強調(diào)的通過減少寄存器間的邏輯延時來提高狀態(tài)機的工作頻率,與流水線設(shè)計的出發(fā)點一樣,不同的是流水線所強調(diào)的是數(shù)據(jù)處理時的數(shù)據(jù)通路優(yōu)化,而本文所強調(diào)的是狀態(tài)機中控制邏輯的優(yōu)化。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

(全球TMT2022年9月23日訊)近日,浪潮城市信息模型(CIM)基礎(chǔ)平臺V1.0正式發(fā)布。該產(chǎn)品綜合應(yīng)用數(shù)字孿生、物聯(lián)網(wǎng)、5G、區(qū)塊鏈、大數(shù)據(jù)等技術(shù),實現(xiàn)城市治理各環(huán)節(jié)全程管控、智能協(xié)同,強化城市全生命周期管理,助...

關(guān)鍵字: 模型 編碼 大數(shù)據(jù) 區(qū)塊鏈

"企業(yè)數(shù)字化運營解決方案" 收入在封城影響下仍然取得同比增長 "企業(yè)數(shù)字化運營解決方案"收入占比創(chuàng)新高達36% 香港2022年8月...

關(guān)鍵字: ICL CK STATE 數(shù)字化

加速小分子新藥的早期研發(fā)進程 上海2022年8月8日 /美通社/ -- 保諾-桑迪亞,一家由安宏資本投資的、業(yè)內(nèi)領(lǐng)先的藥物發(fā)現(xiàn)、開發(fā)和商業(yè)服務(wù)CRDMO公司,和小分子藥物研發(fā)DEL技術(shù)先驅(qū)X-Chem公司共同...

關(guān)鍵字: DNA 編碼 DM BSP

合作將為生物制藥公司提供 Guardant Health 系列腫瘤檢測產(chǎn)品,以推進臨床試驗開展和創(chuàng)新藥物開發(fā)。 中國杭州和新加坡2022年7月6日 /美通社/ -- 中國領(lǐng)...

關(guān)鍵字: HEALTH AN STATE BSP

摘要:傳統(tǒng)的備件倉儲管理模式存在備件到貨后備件計劃員未及時領(lǐng)用、備件實物查找效率低下、備件庫存信息更新不及時等問題,為此研發(fā)了一個備件倉儲管理輔助系統(tǒng)。該系統(tǒng)充分利用了互聯(lián)網(wǎng)技術(shù),提出了"互聯(lián)網(wǎng)+"倉儲管理模式,在備件到...

關(guān)鍵字: 倉儲管理 微信 編碼

摘要:基于傳統(tǒng)直角坐標(biāo)機器人控制技術(shù),以蓄電池極板連續(xù)生產(chǎn)線的碼垛機器人為應(yīng)用案例,根據(jù)設(shè)備需求、機器人控制原理和系統(tǒng)狀態(tài)機的設(shè)計,介紹了一種通用的、靈活的、開發(fā)周期短的多軸直角坐標(biāo)機器人控制方法。該機器人經(jīng)過實踐,驗證...

關(guān)鍵字: 直角坐標(biāo)機器人 狀態(tài)機 控制系統(tǒng)

首個中國科技公司代表 國際電信聯(lián)盟任命阿里云葉琰為編碼組副主席

關(guān)鍵字: 阿里云 編碼 視頻

對語音進行編碼的目的是為了將語音數(shù)字化并利用人的發(fā)聲過程中存在的冗余度和人的聽覺特性來降低編碼率。

關(guān)鍵字: 語音 編碼 數(shù)字化

▼點擊下方名片,關(guān)注公眾號▼歡迎關(guān)注【玩轉(zhuǎn)單片機與嵌入式】公眾號,回復(fù)關(guān)鍵字獲取更多免費資料。回復(fù)【加群】,限時免費進入知識共享群;回復(fù)【3D封裝庫】,常用元器件的3D封裝庫;回復(fù)【電容】,獲取電容、元器件選型相關(guān)的內(nèi)容...

關(guān)鍵字: 單片機 狀態(tài)機 傳感器中

差錯控制在數(shù)字通信中利用編碼方法對傳輸中產(chǎn)生的差錯進行控制,以提高傳輸正確性和有效性的技術(shù)。

關(guān)鍵字: 差錯控制 編碼 ARQ

電子設(shè)計自動化

21191 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉