freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

verilog編碼規(guī)范方案(編輯修改稿)

2025-05-19 22:14 本頁面
 

【文章內(nèi)容簡介】 else if (full == 139。b1) nxt_state = W_DSCD。 else nxt_state = cur_state。 end W_BLOCK: begin if (have_space == 139。b1) nxt_state = STDBY。 else nxt_state = cur_state。 end W_DSCD: begin if (have_space == 139。b1) nxt_state = STDBY。 else nxt_state = W_BLOCK。 end default: nxt_state = STDBY。 endcaseend // OVC_FSM_NXT_ST// PART 2: SEQUENTIAL LOGIC FOR CURRENT STATEalways @(posedge clk or `RST_EDGE reset)begin: OVC_FSM_ST_TRANS if(reset == `RST_VALUE) cur_state = `DLY W_BLOCK。 else cur_state = `DLY nxt_state。end // OVC_FSM_ST_TRANS3 電路設(shè)計規(guī)則 時鐘s (建議)簡單的時鐘結(jié)構(gòu)易于理解、分析和維護(hù),而且容易產(chǎn)生好的綜合結(jié)果。最好是能夠有單一的全局時鐘,所有寄存器都在上升沿觸發(fā)。s 所有子模塊內(nèi)部使用單一時鐘單一時鐘沿,如條件不滿足時,必須注明原因,并提出對綜合以及布線的要求。s 設(shè)計中包含內(nèi)部產(chǎn)生的時鐘時,必須將所有需要的時鐘在一個單獨(dú)的模塊中生成。s 如果不得不用混合的時鐘沿,在綜合和時序分析時確保能滿足時鐘精度最差情況下的占空比。同時確保把假定的占空比寫入用戶手冊。在多數(shù)設(shè)計中,占空比是時鐘樹的函數(shù),而時鐘樹的插入通常又依賴于具體的工藝。使用Core的芯片設(shè)計者必須檢查實際的占空比能夠滿足Core的要求,也應(yīng)該了解怎樣改變綜合和時序分析的策略以使得Core能夠滿足實際的條件。s (建議)多數(shù)基于掃描鏈的測試方法要求對上升沿和下降沿觸發(fā)的寄存器分開處理。如果必須使用大量的上升沿和下降沿觸發(fā)的寄存器,將上升沿和下降沿觸發(fā)的寄存器分到不同的模塊中是很有用的。這樣容易確定下降沿觸發(fā)的寄存器,并可將它們放到不同的掃描鏈中。s (建議)避免在RTL級手工實例化時鐘Buffer。時鐘Buffer通常是在綜合以后在物理設(shè)計時插入的。在可綜合的RTL代碼中,時鐘網(wǎng)絡(luò)通常被認(rèn)為是理想的網(wǎng)絡(luò),沒有延時。在布局布線時,時鐘樹插入工具插入適當(dāng)?shù)慕Y(jié)構(gòu),盡可能的接近理想的、平衡的時鐘配布網(wǎng)絡(luò)。一個例外情況是在頂層模塊中可以插入廠家提供的偽時鐘Buffer,用于指明時鐘樹的源頭和時鐘樹的參數(shù)。s (建議)避免在RTL級使用門控時鐘或內(nèi)部產(chǎn)生的時鐘信號。門控時鐘電路依賴于具體的工藝和時序。門控時鐘不正確的時序可能導(dǎo)致假的時鐘信號和誤操作。不同局部時鐘SKEW還會導(dǎo)致保持時間沖突(violation)。門控時鐘還會降低電路的可測性,也使得綜合的約束變得困難。多數(shù)低功耗的電路需要門控時鐘,但它們不應(yīng)該出現(xiàn)在RTL級的編碼中,象Power Compiler這類工具可以自動去做。如果設(shè)計中必須使用門控時鐘、內(nèi)部產(chǎn)生的時鐘或復(fù)位信號,應(yīng)該讓產(chǎn)生這些信號的電路位于設(shè)計頂層的一個獨(dú)立的模塊中。它將違反編碼規(guī)范的地方限制在一個小的范圍內(nèi),有利于對這些產(chǎn)生電路開發(fā)特殊的測試策略。對于其他模塊將可采用標(biāo)準(zhǔn)的時序分析和掃描鏈插入技術(shù)。 復(fù)位s (建議)確保所有寄存器只被簡單的復(fù)位信號所控制。最好的情況是,復(fù)位信號是1bit寄存器的輸出。因為組合邏輯的輸出會帶有毛刺,對于異步復(fù)位電路,則會引起觸發(fā)器的異常。s (建議)盡可能避免內(nèi)部產(chǎn)生的條件復(fù)位信號。通常模塊內(nèi)所有寄存器應(yīng)在同一時間內(nèi)被復(fù)位。這種方式使得分析和設(shè)計更加簡單和容易。s (建議)如果需要條件復(fù)位,設(shè)置一個單獨(dú)的復(fù)位信號,并且將產(chǎn)生邏輯隔離于一個單獨(dú)的模塊。這種方式可使代碼更易讀,并易于綜合出好的結(jié)果。s 如果需要內(nèi)部產(chǎn)生異步復(fù)位信號,必須保證所產(chǎn)生的異步復(fù)位信號沒有毛刺,最好的辦法是保證異步復(fù)位信號最后為1bit觸發(fā)器的輸出,例如當(dāng)計數(shù)器達(dá)到一個預(yù)設(shè)值時,產(chǎn)生異步復(fù)位信號:bad: wire reset。 assign reset = (count==value)。better: reg reset。 always @(posedge clk) reset = (count==value)。 避免LATCH描述組合邏輯的always塊中,如果if語句缺乏else子句、case語句中各個條件所處理的變量不同都會在綜合時推斷出LATCH。使用下述方法可避免LATCH:s 對所有的輸入條件都給出輸出。s 保證always塊敏感列表完備。敏感列表應(yīng)包括:if(…),case(…)中的條件信號;所有always塊中位于賦值語句右邊的信號;當(dāng)信號為多bit向量時,應(yīng)包括向量的所有bit而不是部分。 s 在最終優(yōu)先級的分支上使用else子句,而不用elsif。s 所有的Case 應(yīng)該有一個default case。s 避免使用LATCH,除非能清楚地分析相關(guān)電路的時序以及毛刺帶來的影響 避免組合反饋s 在設(shè)計中避免組合反饋電路。這種電路違背了同步設(shè)計原則,難以控制其行為,對仿真、調(diào)試和DFT都極其不利。 賦值語句s 在寫可綜合的代碼時,在時序邏輯的always語句塊中總是使用非阻塞賦值。否則RTL級的仿真會和門級仿真的結(jié)果不一致。s 在組合邏輯的always語句塊中使用阻塞賦值。s 同一個觸發(fā)器不能在多個always塊中被賦值。 case語句和ifelse語句s (建議)如果不需要有優(yōu)先級的編碼結(jié)構(gòu),建議使用case語句而不要使用ifelse語句。對于基于cycle的仿真器,case語句的仿真速度要比if 語句的仿真速度快。對于大的多選器,case語句也比條件賦值語句的仿真速度快。對于綜合工具,case語句也往往能產(chǎn)生出時序和面積更優(yōu)化的電路。167。 (建議)對于條件分支為獨(dú)熱編碼的case語句,建議采用下列語句,對于綜合工具能產(chǎn)生較優(yōu)化的電路case(1’b1) condition1 : statement 。 condition2 : statement 。 … default : statement。endcase 狀態(tài)機(jī)s 將狀態(tài)機(jī)的描述分成兩個always塊,一個用來描述組合邏輯,一個用來描述時序邏輯。s (建議)用參數(shù)語句來定義狀態(tài)向量。s (建議)將狀態(tài)機(jī)的邏輯和非狀態(tài)機(jī)的邏輯分成不同的模塊,以便于綜合工具對狀態(tài)機(jī)進(jìn)行單獨(dú)優(yōu)化。s 必須使用default條件為狀態(tài)機(jī)指定一個默認(rèn)的狀態(tài),防止?fàn)顟B(tài)機(jī)進(jìn)入死鎖狀態(tài)。s FSM提供防死鎖機(jī)制,以防止限死在某個狀態(tài),特別是在異常情況下。s 在FSM邏輯比較復(fù)雜的時候,建議使用獨(dú)熱編碼方式,以提高時序。// PART 1: COMBINATERIAL LOGIC FOR NEXT STATEalways @(cur_state or full_new_fr or full or have_space)begin: OVC_FSM_NXT_ST case (cur_state) STDBY: begin if (full_new_fr == 139。b1) nxt_state = W_BLOCK。 else if (full == 139。b1) nxt_state = W_DSCD。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1