加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    •  
    • 文件說明
    •  
    • 運行仿真
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于UVM的UART驗證環(huán)境

2020/12/14
235
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

今天偶然在群里看到有人分享了Mentor Graphics提供的一個 UART 的 UVM 驗證環(huán)境代碼,包含了 UVM 的基本使用以及進階的 UVM 寄存器模型。這里也分享給大家。

?

文件說明

agents/apb_agent - APB agent used in the UVM testbench
agents/uart_agent - UART agent user in the UVM testbench
agents/modem_agent - UART Modem interface agent, used in the UVM testbench
docs
protocol_monitor - contains an example APB protocol monitor
rtl - Contains the UART RTL source code***
sim - Simulation directory for the example, contains the Makefile
uvm_tb/tb - Top level testbench
uvm_tb/tests
uvm_tb/virtual_sequences
uvm_tb/sequences
uvm_tb/register_model
uvm_tb/env - contains the functional coverage monitors described in the cookbook

DUT 是 16550A UART 模塊,接口主要包含 apb、uart 以及一些狀態(tài)信號,agents 下是不同接口的 agent,16550A UART 的詳細 spec 建議大家自己搜索下載。

docs 是 uart 模塊的簡單說明,包含了一些寄存器的說明

protocol_monitor 是一個協(xié)議檢查模塊,通過斷言對 apb 協(xié)議進行檢查

環(huán)境集成以及 sequence 等編寫在 uvm_tb 下。

?

運行仿真

想要運行可以通過 sim 目錄下的 makefile 進行,makefile 調(diào)用的是 quesatsim 進行仿真,如果沒有的話,需要自己編寫 vcs 的 makefile 進行仿真。

如果想要在 window 下通過 makefile 運行仿真,需要以下幾個步驟

  • 安裝 git_bash,git 的 bash 實際上也就是一個 mingw,是可以支持部分 linux 指令的,但是只有少部分,可以讓我們的的終端更加像 linux 下的操作。這個時候還是不支持 makefile,需要我們自行安裝,教程可以參考下面的鏈接

https://www.eemaker.com/git-bash-make.html

  • 安裝 questasim

完成以后就能直接通過 make all 運行啦。

默認的 makefile 只進行到仿真這一步,沒有生成覆蓋率報告,我在 makefile 中加了入了覆蓋率相關的命令

先合并覆蓋率數(shù)據(jù)庫,然后生成覆蓋率報告的 html 文件

rpt_cg:
	vcover merge -out merge_coverage.ucdb *.ucdb
	vcover report -details -html merge_coverage.ucdb
	@echo "html has been created in ./sim/covhtmlreport"

?

詳細的內(nèi)容請查看 README

后臺回復uart獲得驗證環(huán)境

相關推薦

電子產(chǎn)業(yè)圖譜