模板-V1
模型功能
- system verilog和verilog的區(qū)別:引入面向?qū)ο缶幊蹋?lèi)似C和C++的區(qū)別
- system verilog的應(yīng)用范圍:硬件描述、系統(tǒng)仿真、系統(tǒng)驗(yàn)證
- system verilog的使用方法:按照UVM或者其他驗(yàn)證方法學(xué)進(jìn)行系統(tǒng)級(jí)仿真及驗(yàn)證
模型框圖
system verilog與verilog的主要區(qū)別
| 屬性 | verilog | system verilog |
|---|---|---|
| 硬件描述 | 具備 | 具備 |
| 模塊仿真 | 具備 | 具備 |
| 系統(tǒng)仿真 | 不具備 | 具備 |
| 系統(tǒng)斷言 | 不具備 | 具備 |
| 面向?qū)ο?/td> | 不具備 | 具備 |
system verilog的應(yīng)用范圍
| 應(yīng)用范圍 | verilog實(shí)現(xiàn) | system verilog實(shí)現(xiàn) |
|---|---|---|
| RTL | 主要應(yīng)用場(chǎng)景 | 可以使用verilog語(yǔ)法實(shí)現(xiàn)完美兼容 |
| 邏輯層 | 支持 | 拓展了端口interface在端口中傳輸,實(shí)現(xiàn)總線(xiàn)傳輸 |
| 系統(tǒng)層 | 支持 | 兼容 |
| 系統(tǒng)層 | 支持 | 兼容 |
| 驅(qū)動(dòng)仿真 | 支持 | 兼容 |
| 系統(tǒng)仿真 | 不支持 | 使用對(duì)象完成場(chǎng)景搭建,可以完美匹配系統(tǒng)仿真的需求 |
| 系統(tǒng)斷言 | 簡(jiǎn)單支持 | 完美支持,具備專(zhuān)用斷言語(yǔ)法 |
一個(gè)簡(jiǎn)易的system verilog系統(tǒng)仿真及驗(yàn)證模型

- DUT是設(shè)計(jì)單元
- 總線(xiàn)合集是利用interface支持傳遞進(jìn)行數(shù)據(jù)的分流控制
- 場(chǎng)景描述使用并行描述,用于確保新功能可以和舊功能同步工作
- 階段描述使用選擇性描述,用于確保每個(gè)總線(xiàn)都可以支持多種形式的工作
- 斷言則是對(duì)數(shù)據(jù)進(jìn)行格式檢查,同時(shí)支持按照?qǐng)鼍斑M(jìn)行檢查
實(shí)現(xiàn)步驟
DUT設(shè)計(jì)
- 為了保持描述的獨(dú)立性,一般用verilog進(jìn)行描述,最終形成一個(gè)頂層文件
- 將頂層文件作為一個(gè)模塊加入到仿真系統(tǒng)就可以進(jìn)行仿真
- DUT的中一些高延時(shí)的參數(shù)可以根據(jù)仿真進(jìn)行降低,所以DUT最好將MD_SIM傳遞到每個(gè)模塊,方便仿真和設(shè)計(jì)分離(FPGA設(shè)計(jì)技巧)
總線(xiàn)合集
- 使用interface實(shí)現(xiàn)的總線(xiàn)可以在system verilog中傳遞,所以可以將verilog頂層的信號(hào)全部轉(zhuǎn)化為總線(xiàn)合集
!轉(zhuǎn)化成總線(xiàn)可以有效避免由于信號(hào)增加導(dǎo)致的連接層工作量 - 增加穿透性總線(xiàn),直接連接到verilog里面,用于斷言檢測(cè)中間變量
- 合并總線(xiàn)聲明到一個(gè)文件
- 這個(gè)主要是vivado的文件調(diào)用會(huì)合并顯示,導(dǎo)致分文件的總線(xiàn)會(huì)占用大量的位置,導(dǎo)致尋找困難
場(chǎng)景描述
- 首先確定一個(gè)簡(jiǎn)單的場(chǎng)景,用于數(shù)據(jù)格式及輸入輸出控制信號(hào)的檢查,也就是理論運(yùn)行場(chǎng)景
- 建立場(chǎng)景對(duì)應(yīng)的運(yùn)行階段
- 并行運(yùn)行各個(gè)總線(xiàn)的對(duì)應(yīng)階段
- 建立場(chǎng)景對(duì)應(yīng)的結(jié)果確認(rèn),替代手動(dòng)檢查,同時(shí)完成理論檢查
階段實(shí)現(xiàn)
- 確定本階段需要調(diào)用的總線(xiàn)
- 實(shí)現(xiàn)總線(xiàn)需要進(jìn)行驅(qū)動(dòng)邏輯
- 選擇若干邏輯進(jìn)行運(yùn)行,完成場(chǎng)景的階段性邏輯
驅(qū)動(dòng)的編寫(xiě)
- 在階段內(nèi)聲明驅(qū)動(dòng)任務(wù)
- 將驅(qū)動(dòng)時(shí)序使用延時(shí)實(shí)現(xiàn)
- 輸出驅(qū)動(dòng)斷言狀態(tài),方便總線(xiàn)檢測(cè)的開(kāi)啟和結(jié)束
總線(xiàn)的斷言檢測(cè)
- 獲取需要觀測(cè)的總線(xiàn)
!可以是仿真頂層的總線(xiàn),也可以是DUT內(nèi)部的總線(xiàn)的輸入輸出 - 等待驅(qū)動(dòng)運(yùn)行,出現(xiàn)允許檢查標(biāo)志
- 按照總線(xiàn)格式進(jìn)行格式檢查
- 導(dǎo)入軟件仿真結(jié)果進(jìn)行數(shù)據(jù)信息檢查
- 輸出標(biāo)準(zhǔn)的檢查報(bào)告
最終效果
合集實(shí)現(xiàn)
- 本合集將會(huì)按照本文的模型總覽,逐個(gè)實(shí)現(xiàn)每個(gè)步驟
!一些步驟可能會(huì)比較多,需要進(jìn)行多次實(shí)現(xiàn) - 接下來(lái)將以圖像的簡(jiǎn)易灰度來(lái)演示整個(gè)系統(tǒng)級(jí)仿真的流程
- 后續(xù)的system verilog都將以SV替代,方便書(shū)寫(xiě)
調(diào)用內(nèi)容
verilog基礎(chǔ)模型
======== ======\\ ======= -
|| || \\ // \\ /-\
|| || || // // \\
|| || // || // \\
====== ======= || === ========
|| || || \\ // \\
|| || \\ || // \\
|| || \\ // // \\
|| || ======= // \\
作者:綠葉落秋風(fēng),專(zhuān)注FPGA技術(shù)分析和分享,轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.rzrgm.cn/electricdream/p/18113467,文中資源鏈接如下:
1. GITHUB開(kāi)源倉(cāng)庫(kù)
浙公網(wǎng)安備 33010602011771號(hào)