不同建模方式的介紹 RTL建模筆記(1)

說明:該專欄"RTL建模筆記"是《RTL Modeling with SystemVerilog for Simulation and Synthesis》的翻譯;該筆記略過了第一章第一小節中背景介紹內容,以及第二小節前面部分的門級、RTL級建模介紹,對于后續學習不影響。

1.行為級和事務級建模

????????SystemVerilog過程塊可用于在比RTL更高的抽象層次上進行建模,這種抽象層次的模型通常被稱為行為級模型(也稱為總線功能模型或算法模型)。由于RTL級和行為級模型都使用過程塊,因此它們的外觀可能非常相似。

行為級模型與RTL級模型的區別在于兩個方面,或者兩者兼而有之:

  • RTL過程塊會在一個時鐘周期內執行其編程語句,如果是組合邏輯,則可能在零個時鐘周期內完成。而行為過程塊可能需要任意數量的時鐘周期來執行其語句。
  • RTL模型必須遵循嚴格的語言限制,以便能夠被RTL綜合編譯器所綜合。而行為模型則可以充分利用完整的System-Verilog語言。

????????高層次的抽象是事務級建模。事務模型通常用于驗證代碼,并且通常使用 SystemVerilog 的面向對象編程結構進行建模。?

????????行為和事務的抽象級別無法由RTL綜合編譯器進行綜合。

2.定義SystemVerilog可綜合子集

????????由于缺乏 SystemVerilog綜合標準,不同綜合編譯器支持 SystemVerilog 標準的子集不同,這意味著在設計階段需要針對不同的編譯器進行適配。工程師在編寫用于綜合的模型時需格外小心,要參考將要使用的綜合編譯器的文檔,并遵循該編譯器的語言子集。在一種綜合編譯器編寫的模型可能需要進行修改,才能與另一種綜合編譯器配合使用。

????????本書定義了SystemVerilog的一個子集,該子集可與市面上大多數的SystemVerilog RTL綜合編譯器兼容。設計工程師可以放心,只要遵循本書中所述的語言限制和編碼準則,模型便可在任何主要的SystemVerilog綜合編譯器上得到綜合。

3.ASIC和FPGA建模

????????ASIC和FPGA技術的完整定義超出了本書的范圍,本書的主題是與SystemVerilog語言相關的正確數字邏輯建模風格。

3.1 標準ASIC元件

? ? ? ? ASIC是Application Specific Integrated Circuit的首字母縮寫,IC包含不同的功能,ASIC 的設計宗旨是執行特定任務(因此得名“應用專用芯片”),控制器、音頻格式轉換和視頻處理是適合由 ASIC執行的特定應用任務示例。為了執行一般性操作以及其特定任務,ASIC還可包含一個或多個嵌入式處理器。帶有嵌入式處理器的 ASIC通常被稱為片上系統(SoC,system on chip)。

?????????大多數ASIC技術采用標準單元,即預先設計好的邏輯塊,由一到數個邏輯門組成。一個SIC單元庫可能包含數百個標準單元,例如AND、NAND、OR、NOR、異或、異或非、二選一多路復用器、D型觸發器、鎖存器等。每個單元都具有明確的電氣特性,如傳播延遲、設置時間和保持時間,以及電容。

????????設計ASIC的流程包括從庫中選取合適的單元,并將它們連接起來以實現所需的性能。在整個過程中會用到軟件工具。ASIC設計的典型流程如下圖所示。

上圖的步驟是:

  1. 第一步指定設計的預期功能。
  2. 所需的功能在模型的抽象RTL級別上進行建模。在這個階段,重點是功能,而非物理實現。
  3. 仿真用于驗證功能。該書第1.5節(第17頁)詳細討論了仿真的內容。
  4. 綜合過程用于將RTL功能映射到目標ASIC類型的相應標準單元上。綜合的輸出稱為門級網表。綜合過程將在第1.6節(第31頁)中作更詳細的描述。
  5. 通過仿真邏輯等價檢查器(一種形式驗證方法),可以驗證門級實現在功能上等同于RTL功能。--> 現在常用形式驗證工具做等價驗證,常用工具為s家fmt和c家lec。
  6. 時鐘樹綜合用于將時鐘驅動器均勻地分布到整個設計中。通常會使用掃描鏈(scan chain)插入工具來增強設計的可測試性。
  7. 布局和布線軟件會計算如何在實際的硅芯片上布局單元,并規劃互連走線。布局和布線軟件的輸出是一個圖形數據系統文件(GDSII)文件。GDSII是一種二進制格式,其中包含有關幾何形狀(多邊形)和其他數據的信息,這些信息對于在硅芯片上實際構建IC是必要的。
  8. 通過執行設計規則檢查(DRC),確保將由該代工廠制造的ASIC所遵循的所有規則都已得到遵守,例如柵極扇出負載。
  9. 進行靜態時序分析(STA)以確保設置/保持時間得到滿足,同時考慮到互相作用的net和時鐘樹偏移的延遲影響。
  10. 最后將GDSII文件和其他數據發送給負責制造ASIC的代工廠。將這些文件交給代工廠的過程被稱為“tapeout” ASIC,因為在ASIC設計的早期階段,人們使用磁帶將文件發送給代工廠。

?3.2 FPGA

????????FPGA 是現場可編程 門陣列(Field Programmable Gate Array)的縮寫,FPGA是一種集成電路,包含一定數量的邏輯塊,這些邏輯塊在IC制造完成后可以進行配置(而ASIC的內容和布局必須在制造之前確定)。FPGA所包含的功能性無法與 ASIC 相媲美,且運行時鐘速度較慢,這在 RTL級別的設計中是重要的考量因素。但FPGA技術的最新進展顯著縮小了 FPGA和 ASIC 之間的差距。總的來說,FPGA 可以用于實現與ASIC 相同的功能。

????????FPGA包含許多稱為可配置邏輯塊(CLB)的小型邏輯組件的陣列。一些FPGA廠商將這些塊稱為邏輯陣列塊(LAB),一個典型的CLB可能包含一個或多個查找表(LUT)和一些選擇器(MUX),和一個存儲元素,例如D型觸發器。大多數FPGA中的查找表是小型RAM,編程時使用邏輯運算,如AND、OR和XOR。從LUT中選擇所需的操作允許CLB以多種方式使用,從簡單的"與"或"異"門到更復雜的組合功能。某些FPGA中的CLB可能還具有其他功能,例如加法器。MUX可使組合結果直接由CLB輸出(異步輸出)或存儲在存儲單元中((同步輸出)。

????????FPGA的制造過程中會包含一個由數百或數千個CLB單元組成的陣列,以及可配置的互連結構,這些互連結構可以被“編程”成所需的CLB單元配置。FPGA還包含I/O端口,這些端口可以配置為連接到CLB陣列的任意一列或一行。
下圖顯示了一個復雜FPGA的典型設計流程。

????????FPGA設計流程的前端與ASIC類似,但后端有所不同。與ASIC設計流程相比,FPGA設計流程后端的主要區別在于FPGA的放置和布線。對于ASIC,放置和布線軟件決定了IC的制造方式。而對于FPGA,綜合放置和布線軟件則決定了預先制造的IC將如何進行編程。本書將重點介紹前端步驟2和3,即RTL建模和模擬,這是ASIC和FPGA設計之間差異最小的部分。

3.3?適用于ASIC和FPGA的RTL編碼風格

????????理想情況下,相同的RTL代碼可以用于針對ASIC或FPGA進行開發:在RTL級別進行工作時,工程重點在于設計和驗證功能,而無需考慮具體的實現細節。綜合編譯器的職責是將RTL功能映射到特定的ASIC或FPGA技術上。

? ? ? ? 大多數(但不是全部)RTL代碼都能在ASIC和FPGA上得到同樣良好的綜合。但這一概括性結論也存在例外。RTL模型的某些方面需要考慮設計是將在ASIC還是FPGA上實現。這些方面包括:

  • reset,大多數ASIC單元庫都包含同步和異步復位觸發器。設計工程師可以使用被認為最適合設計的復位類型來編寫RTL模型;一些FPGA的靈活性較差,僅具備一種類型的復位觸發器(通常是同步的)。雖然綜合編譯器可以將具有異步復位的RTL模型映射到門級同步復位,或者反之,但需要額外的邏輯門。許多FPGA還支持全局復位功能和上電復位觸發器狀態,這是ASIC所不具備的。第8章第8.1.5節(第286 頁)更詳細地討論了建模復位。
  • Vector sizes(矢量大小),對于最大矢量寬度和矢量操作,ASIC具有相當程度的靈活性,處理大型矢量時,復雜的操作將需要大量的邏輯門,但大多數ASIC中使用的標準單元架構能夠支持這些操作。FPGA在這方面則較為受限。預定義的CLB數量及其在FPGA內的布局,可能限制了對大型矢量進行復雜操作的能力,這要么是因為可用的CLB數量有限,要么是因為在CLB之間進行互連的布線復雜性所致。ASIC和FPGA之間的這種差異確實意味著,即使是在RTL級別的抽象層面,設計工程師也必須考慮到設備的局限性,以確保實現的功能與之相匹配。

????????本書中所提供的多數示例、編碼風格和指南,同樣適用于ASIC和 FPGA 設計。對于針對 ASIC或 FPGA 時可能影響 RTL編碼風格的少數特殊情況,書中有所特別說明。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87238.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

<13>-MySQL用戶管理

目錄 一,用戶管理操作 1,創建用戶 2,查詢用戶 3,修改密碼 4,刪除用戶 二,數據庫權限 1,用戶授權 2,回收權限 一,用戶管理操作 1,創建用戶 --創建用戶…

如何使用超低噪聲電源提高AD 時鐘電路質量,改善超聲系統的圖像質量

超聲波技術是醫療診斷和其他應用中廣泛使用的無創工具,已經從靜態圖像進化到動態圖像,從黑白呈現變為彩色多普勒圖像。這些重大進步主要是由于引入了數字超聲技術。雖然這些進步提高了超聲成像的有效性和通用性,但同樣重要的是,這…

【解決方案】Kali 2022.3修復倉庫密鑰一鍵安裝docker,docker compose

1、Kali 2022.3 2、一鍵安裝docker,docker compose #!/bin/bashecho " 安全的Kali Docker安裝腳本 "# 備份重要配置 cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date %Y%m%d)# 修復Kali倉庫配置 echo "修復Kali倉庫配置..." ca…

Transformer、RNN (循環神經網絡) 和 CNN (卷積神經網絡)的區別

我們來詳細對比一下 Transformer、RNN (循環神經網絡) 和 CNN (卷積神經網絡) 這三種在深度學習中極其重要的架構,并通過具體例子說明它們的區別。 核心區別總結: 處理數據的方式: CNN: 專注于局部特征和空間/時間模式。通過卷積核在輸入數據…

408第二季 - 組成原理 - 數據類型轉換

這章內容會比較少 閑聊 如果題目說把8位改成4位,你保留低位就行了 這里保留的是0101 然后是有符號數和無符號數的轉換 機器數就是二進制長什么樣子 然后就是小數點是不參與存儲的 然后簡單看看代碼 這是short就說明是有符號數 unsigned就是說明是無符號數 然后y…

讓 Deepseek 寫電器電費計算器(html版本)

以下是一個簡單的電器電費計算器的HTML和CSS代碼&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

react_flow自定義節點、邊——使用darg布局樹狀結構

文章目錄 ?前言?引入react-flow?自定義節點nodeType?自定義邊edgeType?添加節點?inscode代碼塊?結束 ?前言 大家好&#xff0c;我是yma16&#xff0c;本文分享 前端 ——react_flow自定義節點、邊——使用darg布局樹狀結構。 自定義效果 可以自定義節點、邊、線條流動…

word表格批量轉excel,提取表格數據到excel

本文將帶你一步步實現一個將 Word 中的表格內容批量提取并轉換為 Excel 文件的自動化工具&#xff0c;適用于需要手動復制粘貼數據到excel的場景 假設我們有這樣的表格在word中&#xff0c;圖片世放在excel中便于截圖&#xff0c;現在需要將表格中有顏色的數據提取到對應的exce…

day2課程

1.添加pinia到Vue項目 2.counter基礎使用 3.getters和異步action 4.storeToRefs和調試 5.項目初始化和git管理 6.別名路徑聯想設置 7.elementsPlus自動按需導入配置 這個項目使用的是按需引入 1.安裝包管理器 npm install element-plus --save 2.按需引入 npm install -D unp…

Vue3 + TypeScript + Element Plus 設置表格行背景顏色

技術要點&#xff1a; 1、使用 :row-class-name"setRowClassName" 設置表格行類名 2、不能同時使用 stripe 3、設置行類名的樣式 應用效果&#xff1a; 同時使用 stripe 出來的效果&#xff1a; 參考代碼&#xff1a; ReagentTable.vue <script setup lang&…

山東大學 軟件項目管理知識點總結

軟件項目管理背誦總結 將老師所發ppt的知識點整理&#xff0c;方便查閱與背誦。 文章目錄 軟件項目管理背誦總結1. 概述1.1 什么是項目&#xff1f;1.2 項目有那些特征&#xff1f;1.3 項目于日常工作有什么區別&#xff1f;1.4 如何衡量一個項目是否成功&#xff1f;1.5 軟件項…

css基礎筆記簡潔版1

&#x1f4d8; CSS 基礎筆記 1 一、CSS 簡介 CSS&#xff08;層疊樣式表&#xff09;用于為網頁添加樣式&#xff0c;實現結構與樣式分離&#xff0c;能夠控制顏色、字體、布局、位置、動畫等視覺效果。 二、基本語法 選擇器 {屬性1: 值1;屬性2: 值2; }說明&#xff1a; 選…

reactor模型學習

學習鏈接 狂野架構師第四期netty視頻 - B站視頻 狂野架構師訓練營6期 - B站視頻 Netty學習example示例&#xff08;含官方示例代碼&#xff09; LG-Netty學習 【硬核】肝了一月的Netty知識點 - 啟動過程寫的很詳細 Reactor模型講解 一文搞懂Reactor模型與實現 高性能網絡編…

應用探析|千眼狼高速攝像機、sCMOS相機、DIC測量、PIV測量在光學領域的應用

2025&#xff0c;長春&#xff0c;中國光學學會學術大會。中科視界攜千眼狼品牌四大科學儀器高速攝像機、sCMOS科學相機、DIC應變測量系統、PIV流場測量系統亮相&#xff0c;在光學領域多個細分研究方向承載科學實驗的感知與測量任務。 1先進制造技術及其應用 激光切割、激光焊…

Kafka 4.0.0集群部署

Kafka 4.0.0集群部署 1.1 關閉防火墻和 selinux 關閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.service關閉selinux setenforce 0 #&#xff08;臨時生效&#xff09; sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #&…

探秘卷積神經網絡(CNN):從原理到實戰的深度解析

在圖像識別、視頻處理等領域&#xff0c;卷積神經網絡&#xff08;Convolutional Neural Network&#xff0c;簡稱 CNN&#xff09;如同一位 “超級偵探”&#xff0c;能夠精準捕捉圖像中的關鍵信息&#xff0c;實現對目標的快速識別與分析。從醫療影像診斷到自動駕駛中的路況感…

vue3導入xlsx表格處理數據進行渲染

下載插件 npm install -S xlsx import * as XLSX from "xlsx"; // Vue3 版本 <el-upload class"upload-demo"accept".xlsx":http-request"channel":show-file-list"false":limit"1"><el-button type&qu…

生成模型_條件編碼器

條件編碼器可以采用不同的網絡結構&#xff0c;UNet 是其中非常常見的一種&#xff0c;尤其在 Diffusion 和圖像生成任務中用得最多。 &#x1f9e0; 什么是“條件編碼器”&#xff1f; 在 **條件生成模型&#xff08;Conditional GAN / Diffusion&#xff09;**中&#xff0c…

@Scheduled, @PostConstruct, @PreDestroy, @Async, @OnApplicationEvent

注解名稱模塊功能引入年份版本是否推薦使用PostConstructjavax.annotation (Java EE) / spring-beansBean 初始化完成后執行的方法2006Java EE 5 / Spring 2.0?? 推薦PreDestroyjavax.annotation (Java EE) / spring-beansBean 銷毀前執行的方法2006Java EE 5 / Spring 2.0?…

小程序請求加載提示防閃爍機制詳解

目錄 一、問題背景&#xff1a;閃爍現象的產生 二、完整解決方案代碼 三、核心防閃爍機制解析 1. 請求計數器&#xff08;requestCount&#xff09; 2. 延遲隱藏定時器&#xff08;關鍵創新&#xff09; 3. 100ms緩沖期的重要意義 四、關鍵場景對比分析 場景1&#xff…