0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RTL時序邏輯的綜合要求

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2023-01-13 13:57 ? 次閱讀

數字門級電路可分為兩大類:組合邏輯和時序邏輯。鎖存器是組合邏輯和時序邏輯的一個交叉點,在后面會作為單獨的主題處理。

組合邏輯描述了門級電路,其中邏輯塊的輸出直接反映到該塊的輸入值的組合,例如,雙輸入AND門的輸出是兩個輸入的邏輯與。如果輸入值發(fā)生變化,輸出值將反映這一變化,組合邏輯的RTL模型需要反映這種門級行為,這意味著邏輯塊的輸出必須始終反映該邏輯塊當前輸入值的組合。

SystemVerilog有三種在可綜合RTL級別表示組合邏輯的方法:連續(xù)賦值語句、always程序塊和函數。接下來幾篇文章將探討每種編碼風格,并推薦最佳實踐編碼風格。

c6752962-9301-11ed-bfe3-dac502259ad0.png

時序邏輯概念

時序邏輯描述了一種重要的門級電路,其中輸出反映了一個由門的內部狀態(tài)存儲的值。只有特定的輸入變化,如時鐘沿,才會導致存儲的變化。對于D觸發(fā)器,時鐘輸入的特定邊沿將改變觸發(fā)器的存儲,但D輸入值的變化并不直接改變存儲。相反,特定的時鐘沿會使觸發(fā)器的內部存儲更新為時鐘沿的D輸入值。

時序邏輯的RTL模型需要反映這種門級行為,也就是說,邏輯塊的輸出必須在一個或多個時鐘周期內存儲一個值,并且只為特定的輸入變化而更新存儲的值,而不是所有輸入變化。在RTL層面,一個always或always_ff過程被用來模擬這種時序行為。本系列文章主要研究:

RTL時序邏輯的綜合要求

always_ff 時序邏輯建模

時序邏輯時鐘到Q的傳播和建立/保持時間

使用非阻塞賦值來模擬時鐘到Q的傳播效應

同步和異步復位

多個時鐘和時鐘域交叉(CDC)。

在時序邏輯RTL模型中使用單元延時

建立有限狀態(tài)機(FSM)模型

對Mealy和Moore FSM架構進行建模

狀態(tài)解碼器,并使用獨熱碼的獨特情況

對內存設備進行建模,如RAM

觸發(fā)器和寄存器的RTL模型

觸發(fā)器和寄存器被用來在一段時間內存儲信息。術語觸發(fā)器和寄存器經常被當作同義詞使用,盡管它們在加載和復位的方式上可能存在差異。觸發(fā)器是一種存儲元件,在時鐘沿上改變存儲的狀態(tài)。各種各樣的硬件應用都可以由觸發(fā)器構建,如計數器、數據寄存器、控制寄存器、移位寄存器和狀態(tài)寄存器。寄存器可以由任何類型的數據存儲設備構建,包括觸發(fā)器、鎖存器和RAM。大多數硬件寄存器是由觸發(fā)器建立的。

時序邏輯觸發(fā)器和寄存器的RTL模型是用一個帶有靈敏度列表的always或always_ff過程建模的,該過程使用時鐘邊沿來觸發(fā)過程的評估。一個RTL觸發(fā)器的例子是:

c682ca22-9301-11ed-bfe3-dac502259ad0.png

一般來說,RTL模型被寫成在時鐘輸入的正邊沿觸發(fā)觸發(fā)器。所有的ASICFPGA器件都支持在時鐘的上升沿(正邊沿)觸發(fā)的觸發(fā)器。一些ASIC或FPGA器件還支持在時鐘的下降沿觸發(fā)的觸發(fā)器。觸發(fā)器和由觸發(fā)器組成的寄存器可以是不可復位或可復位的。復位可以是同步的,也可以是與時鐘觸發(fā)不同步的。一些觸發(fā)器也有一個異步復位輸入。

在門級設計中,有幾種類型的觸發(fā)器,例如。SR, D,JK和T觸發(fā)器。RTL模型可以從這個實現(xiàn)細節(jié)中抽象出來,并被寫成通用的觸發(fā)器。

在RTL建模中,重點是設計功能,而不是設計實現(xiàn)。綜合編譯器的作用是將抽象的RTL功能描述映射到具體的門級實現(xiàn)。大多數ASIC和FPGA器件使用D型觸發(fā)器,所以本文假設綜合編譯器從RTL觸發(fā)器中推斷出的觸發(fā)器類型。

RTL時序邏輯的綜合要求

當always程序的敏感度列表包含關鍵字posedge或negedge時,綜合編譯器將嘗試推斷出一個觸發(fā)器。然而,綜合編譯器還要求滿足以下額外的代碼限制,以便推斷出一個觸發(fā)器。

程序靈敏度列表必須指定時鐘的哪個邊沿觸發(fā)更新觸發(fā)器的狀態(tài)(posedge或negedge)。

靈敏度列表必須指定任何異步設置或復位信號的前緣(posedge或negedge)(同步設置或復位不在靈敏度列表中列出)。

除了時鐘、異步設置或異步復位外,靈敏度列表不能包含任何其他信號,如D輸入或使能輸入。

該過程應該在零仿真時間內執(zhí)行。綜合編譯器會忽略#延遲,并且不允許@或等待時間控制。這條規(guī)則的一個例外是使用分配單元內的延遲(后續(xù)詳解)。

在時序邏輯程序中賦值的變量不能被任何其他程序或連續(xù)賦值所賦值(允許在同一程序中多次賦值)。

在一個時序邏輯程序中,一個被賦值的變量不能有阻塞和非阻塞的混合賦值。例如,復位分支不能用阻塞賦值建模,而時鐘分支則用非阻塞賦值建模。

審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1354

    瀏覽量

    114444
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59665
  • 觸發(fā)器
    +關注

    關注

    14

    文章

    1995

    瀏覽量

    61012
  • 時序邏輯
    +關注

    關注

    0

    文章

    39

    瀏覽量

    9134
  • 門級電路
    +關注

    關注

    0

    文章

    15

    瀏覽量

    1952

原文標題:數字硬件建模SystemVerilog-時序邏輯建模(1)RTL時序邏輯的綜合要求

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    淺談IC設計中邏輯綜合

    。由于主頻是芯片性能的重要指標之一,如果希望關鍵路徑的延遲滿足芯片設計的周期時間,不但需要RTL 代碼描述滿足要求,更要講究綜合中對關鍵路徑的處理方法。關鍵字:邏輯
    發(fā)表于 05-16 20:02

    [啟芯工作室] 邏輯綜合 02 Design and Technology File

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 03-09 16:09

    [啟芯工作室] 邏輯綜合 03 Design Objects

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 03-09 16:11

    [啟芯工作室] 邏輯綜合 05 Environment Attributes

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 03-09 16:13

    [啟芯工作室] 邏輯綜合 05-03 Environment Attributes

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 03-23 20:54

    [啟芯工作室]邏輯綜合 06 Timing Analysis

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 03-23 20:55

    [啟芯][公開課]數字邏輯綜合 02 Design and Technology File

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 07-03 16:41

    [啟芯][公開課] 數字邏輯綜合 03 Design Objects

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 07-03 16:45

    [啟芯][公開課] 數字邏輯綜合 04 Timing constraints

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 07-03 16:52

    [啟芯][公開課] 數字邏輯綜合 04-1 Timing constraints

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 07-03 16:55

    [啟芯][公開課] 數字邏輯綜合 05 Environment Attributes

    本課程主要介紹通過邏輯綜合工具,將Verilog RTL 代碼轉換成門級網表的方式,以滿足設計的時序要求。學習本課程可以熟悉
    發(fā)表于 07-03 16:57

    求一套手工邏輯綜合的方法和綜合步驟?

    手工綜合RTL級代碼的理論依據和實用方法時序邏輯綜合的實現(xiàn)方法
    發(fā)表于 04-08 06:06

    時序邏輯等效性的RTL設計和驗證流程介紹

    關于時序邏輯等效性的RTL設計和驗證流程介紹。
    發(fā)表于 04-28 06:13

    邏輯綜合與物理綜合

    利用工具將RTL代碼轉化為門級網表的過程稱為邏輯綜合。綜合一個設計的過程,從讀取RTL代碼開始,通過時序
    的頭像 發(fā)表于 11-28 16:02 ?2533次閱讀

    什么是邏輯綜合?邏輯綜合的流程有哪些?

    邏輯綜合是將RTL描述的電路轉換成門級描述的電路,將HDL語言描述的電路轉換為性能、面積和時序等因素約束下的門級電路網表。
    的頭像 發(fā)表于 09-15 15:22 ?4724次閱讀
    什么是<b class='flag-5'>邏輯</b><b class='flag-5'>綜合</b>?<b class='flag-5'>邏輯</b><b class='flag-5'>綜合</b>的流程有哪些?