IC驗證 AHB-RAM 項目(二)——接口與事務代碼的編寫

目錄

  • 準備工作
  • 接口相關代碼編寫
  • 事務相關代碼編寫


準備工作

DVT(Design and Verification Tools)是一款專門為 IC 驗證打造的 IDE 插件,可以理解為智能的 Verilog/System Verilog 編輯器,在 VS Code、Eclipse 軟件中使用。

接口相關代碼編寫

  • lvc_ahb_if.sv 是面向 DUT 的接口,方便 TB 與 DUT 建立總線通信
  • rkv_ahbram_if.sv 是面向 TB 的接口,提供全局的 testbench 控制
  • rkv_ahbram_tb.sv 是 TB 頂層文件,由于時鐘信號較為固定,無需在后續測試過程中更改,所以可以把時鐘信號生成的代碼放于此

下面將介紹各文件的代碼更新內容:

  • lvc_ahb_defines.svh
    • 定義 AHB 總線相關的宏
  • lvc_ahb_if.sv
    • 定義 AHB 總線信號
  • rkv_ahbram_if.sv
    • 定義時鐘和復位信號
    • 定義 task 任務產生復位信號,interface 里定義的 task/function 都是靜態的,為了避免出現多個進程同時調用時,局部變量被覆蓋的情況,這里使用動態任務
task automatic assert_reset(input int active_cycles = 5,    // 復位保持多少個時鐘周期input int start_delay   = 0     // 復位開始前延遲多少個時鐘周期
);rstn <= 1;repeat(start_delay) @(posedge clk);   // 等待 start_delay 個時鐘周期后開始復位rstn <= 0;repeat(active_cycles) @(posedge clk); // 復位保持 active_cycles 個時鐘周期后釋放復位rstn <= 1;
endtask
  • rkv_ahbram_tb.sv
    • 例化接口 lvc_ahb_if 類和 rkv_ahbram_if 類
    • 使用 lvc_ahb_if 類的 interface 實例化 DUT(設計文件:ahb_blockram_32.v)
    • 產生時鐘信號

事務相關代碼編寫

  • lvc_ahb_types.sv 集中定義了協議里各種枚舉類型
  • lvc_ahb_transaction.sv 用于存放一次 AHB 傳輸需要的變量。作為輸入激勵,需要 sequence 隨機化生成的變量定義為 rand 類型;仿真過程中記錄/監測的變量為 非rand
    在這里插入圖片描述

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

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

相關文章

基于Spring Boot的智能民宿預訂與游玩系統設計與實現 民宿管理系統 民宿預訂系統 民宿訂房系統

&#x1f525;作者&#xff1a;it畢設實戰小研&#x1f525; &#x1f496;簡介&#xff1a;java、微信小程序、安卓&#xff1b;定制開發&#xff0c;遠程調試 代碼講解&#xff0c;文檔指導&#xff0c;ppt制作&#x1f496; 精彩專欄推薦訂閱&#xff1a;在下方專欄&#x1…

大模型的底層運算線性代數

深度學習的本質是用數學語言描述并處理真實世界中的信息&#xff0c;而線性代數正是這門語言的基石。它不僅提供了高效的數值計算工具&#xff0c;更在根本上定義了如何以可計算、可組合、可度量的方式表示和變換數據。 1 如何描述世界&#x1f4ca; 真實世界的數據&#xff08…

Rust 中 i32 與 *i32 的深度解析

Rust 中 &i32 與 *i32 的深度解析 在 Rust 中&#xff0c;&i32 和 *i32 是兩種完全不同的指針類型&#xff0c;它們在安全性、所有權和使用方式上有本質區別。以下是詳細對比&#xff1a; 核心區別概覽 #mermaid-svg-rCa8lLmHB7MK9P6K {font-family:"trebuchet ms…

【PyTorch項目實戰】OpenNMT本地機器翻譯框架 —— 支持本地部署和自定義訓練

文章目錄一、OpenNMT&#xff08;Neural Machine Translation&#xff0c;NMT&#xff09;1. 概述2. 核心特性3. 系統架構4. 與其他翻譯工具的區別二、基于 OpenNMT-py 的機器翻譯框架1. 環境配置&#xff08;以OpenNMT-py版本為例&#xff09;&#xff08;1&#xff09;pip安裝…

基于prompt的生物信息學:多組學分析的新界面

以前總以為綜述/評論是假大空&#xff0c;最近在朋友的影響下才發現&#xff0c;大佬的綜述/評論內容的確很值得一讀&#xff0c;也值得分享的。比如這篇講我比較感興趣的AI輔助生信分析的&#xff0c;相信大家都是已經實踐中用上了&#xff0c;看看大佬的評論&#xff0c;拓寬…

Nacos-8--分析一下nacos中的AP和CP模式

Nacos支持兩種模式來滿足不同場景下的需求&#xff1a;AP模式&#xff08;強調可用性&#xff09;和CP模式&#xff08;強調一致性&#xff09;。 這兩種模式的選擇主要基于CAP理論&#xff0c;該理論指出在一個分布式系統中&#xff0c;無法同時保證一致性&#xff08;Consist…

水閘安全監測的主要核心內容

水閘安全監測是指通過一系列技術手段和管理措施&#xff0c;對水閘的結構狀態、運行性能及環境條件進行實時或定期的觀測與評估&#xff0c;以確保水閘在設計壽命期內的安全性和可靠性。其核心目標是及時發現潛在的安全隱患&#xff0c;防止事故發生&#xff0c;保障水利工程的…

嵌入式系統學習Day19(數據結構)

數據結構的概念&#xff1a; 相互之間存在一種或多種特定關系的數據元素的集合。數據之間關系&#xff1a;邏輯關系&#xff1a;集合&#xff0c;線性&#xff08;1對1&#xff0c;中間位置的值有且僅有一個前驅&#xff0c;一個后繼&#xff09;&#xff0c;樹&#xff08;1對…

Pandas中數據清理、連接數據以及合并多個數據集的方法

一、簡介1.數據清理的重要性&#xff1a;在進行數據分析前&#xff0c;需進行數據清理&#xff0c;使每個觀測值成一行、每個變量成一列、每種觀測單元構成一張表格。2.數據組合的必要性&#xff1a;數據整理好后&#xff0c;可能需要將多張表格組合才能進行某些分析&#xff0…

JavaSSM框架從入門到精通!第二天(MyBatis(一))!

一、 Mybatis 框架1. Mybatis 框架簡介Mybatis 是 apache 的一個開源項目&#xff0c;名叫 iBatis &#xff0c;2010 年這個項目由 apache 遷移到了 google&#xff0c;并命名為 Mybatis&#xff0c;2013 年遷移到了 GitHub&#xff0c;可以在 GitHub 下載源碼。2. Mybatis 的下…

Linux下Mysql命令,創建mysql,刪除mysql

在 Linux 系統下&#xff0c;您可以通過命令行來創建和刪除 MySQL 數據庫。以下是詳細的操作步驟&#xff0c;包括創建和刪除數據庫、用戶&#xff0c;以及常見的相關管理命令。1. 登錄 MySQL在執行任何 MySQL 操作之前&#xff0c;需要先登錄 MySQL。1.1 使用 root 用戶登錄 M…

假設檢驗的原理

假設檢驗是統計學中用于判斷樣本數據是否支持某個特定假設的方法。其核心思想是通過樣本數據對總體參數或分布提出假設&#xff0c;并利用統計量來判斷這些假設的合理性。假設檢驗的基本步驟如下&#xff1a;1. 假設&#xff08;Hypothesis&#xff09;在統計學中&#xff0c;假…

信號、內存共享等實現

信號&#xff08;signal&#xff09;#include <signal.h> #include <stdio.h> #include <unistd.h>void handler(int sig) {printf("收到信號: %d\n", sig); }int main() {signal(SIGUSR1, handler); // 注冊用戶自定義信號printf("進程 PI…

《從日常到前沿:AI 在教育、醫療、制造業的真實落地案例》文章提綱

引言&#xff1a;AI 落地的多元圖景?簡述 AI 從實驗室走向實際應用的發展趨勢?說明選擇教育、醫療、制造業的原因 —— 覆蓋民生與基礎產業&#xff0c;落地場景具有代表性?AI 在教育領域的落地案例?個性化學習&#xff1a;如某在線教育平臺利用 AI 分析學生學習數據&#…

決策樹(1)

一、樹模型與決策樹基礎決策樹概念&#xff1a;從根節點開始一步步走到葉子節點得出決策&#xff0c;所有數據最終都會落到葉子節點&#xff0c;既可用于分類&#xff0c;也可用于回歸。樹的組成根節點&#xff1a;第一個選擇點。非葉子節點與分支&#xff1a;中間決策過程。葉…

電視系統:開啟視聽新時代

在當今數字化浪潮席卷的時代&#xff0c;電視領域正經歷著一場深刻的變革&#xff0c;而電視系統無疑是這場變革中的耀眼明星。簡單來講&#xff0c;電視系統就是互聯網協議電視&#xff0c;它宛如一座橋梁&#xff0c;巧妙地利用寬帶有線電視網&#xff0c;將多媒體、互聯網、…

字節開源了一款具備長期記憶能力的多模態智能體:M3-Agent

貓頭虎AI分享&#xff5c;字節開源了一款具備長期記憶能力的多模態智能體&#xff1a;M3-Agent 近年來&#xff0c;多模態大模型的發展迅猛&#xff0c;但如何賦予智能體類似人類的長期記憶能力&#xff0c;一直是研究中的核心挑戰。字節跳動開源的 M3-Agent&#xff0c;正是面…

第十六屆藍橋杯青少組C++省賽[2025.8.10]第二部分編程題(6、魔術撲克牌排列)

參考程序&#xff1a;#include<bits/stdc.h> using namespace std; long long dp[105]; long long c(int n) {dp[0] 1;for(int i1; i< n; i){for(int j0; j<i; j){dp[i] dp[j] * dp[i -1-j];}}return dp[n]; } int main() {int n;cin >> n;cout <<c(n…

【實時Linux實戰系列】實時平臺下的圖像識別技術

在當今數字化時代&#xff0c;圖像識別技術已經廣泛應用于各個領域&#xff0c;如自動駕駛、安防監控、智能醫療等。它通過計算機對圖像進行分析和處理&#xff0c;從而實現對物體、場景或人的識別。實時Linux作為一種高效的實時操作系統&#xff0c;為圖像識別技術提供了強大的…

IPD流程執行檢查表

IPD流程執行檢查表 稽查