999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于UVM驗證方法學(xué)的IIS接口設(shè)計的驗證

2021-11-05 08:03:34何正浩李威震
電子技術(shù)與軟件工程 2021年17期
關(guān)鍵詞:信號語言設(shè)計

何正浩 李威震

(江蘇海洋大學(xué)電子工程學(xué)院 江蘇省連云港市 222005)

1 綜述

1.1 課題的研究背景

伴隨著集成電路技術(shù)的進(jìn)步,SoC 設(shè)計的規(guī)模和復(fù)雜性也隨之快速增長,此時對于驗證人員而言,高效、結(jié)構(gòu)化的驗證環(huán)境變得比以往任何時候都更加重要。在實際芯片驗證工作當(dāng)中,在人力資源分配方面,很多時候驗證人員是設(shè)計人員的1.5 倍,而對于實際工作量,“驗證人員的工作量基本占到整體驗證工作量的60%~80%”[1]。就通常情況而言,由于芯片設(shè)計的長周期特性,約在早期發(fā)現(xiàn)bug,所修補花費的成本也就越低,若是直至流片后才檢查出,有可能造成芯片報廢,需要重新更改設(shè)計后送交流片。這就對驗證工作提出了更高要求,盡可能提高驗證效率以滿足工作進(jìn)度需求,這就需要驗證組件具有較強的可復(fù)用性,在不同層級驗證時,驗證組件能夠復(fù)用,減少驗證人員工作量,從而加快對目標(biāo)模塊的仿真速度,以達(dá)到快速驗證,最終實現(xiàn)設(shè)計的快速迭代。

1.2 國內(nèi)外研究現(xiàn)狀

“對于驗證,最傳統(tǒng)的方法是直接使用Verilog 來編寫testbench”[2]。這種方法對于簡單的模塊尚可一用,在復(fù)雜的設(shè)計當(dāng)中,Verilog 就越來越力不從心。于是Verisity Design 公司(2005年被Cadence 收購)在2000年提出了e 語言,一種面向?qū)ο蟮木幊陶Z言。e 語言包括激勵生成,結(jié)果對比,覆蓋率模型等內(nèi)容。“這是業(yè)內(nèi)首次使用面向?qū)ο蟮木幊陶Z言來構(gòu)建驗證平臺”[3]。2002年,Verisity 提出了第一個驗證庫,eRM(elanguage Reusable Methodology)。“2003年Synopsys 公司推出了采用Vera 語言的RVM(Reuseable Verification Methodology) 驗證庫”[4]。2006年,Menter 公布了基于System C 的AVM(Advanced Verification Methodology)。

2006年,Synopsys 推出了基于新語言System Verilog 的VMM(Verification Methodology Manual), 放棄了Vera 語言。次年Cadence 公司也放棄e 語言,全面過渡至System Verilog,并退出URM(Universal Reusable Methodology)。

2008年,“Cadence 與Mentor 聯(lián)合推出開源的OVM(Open Verification Methodology)”[6]。2010年,Accellera 公 司 基 于OVM,推出了UVM(Universal Verification Methodology),UVM綜合了VMM 和OVM 的優(yōu)點,從VMM 中引入了寄存器解決方案。

2010年,“Synopsys 公司推出VMM1.2,這個版本參考了OVM 的TLM 通信機制和implicit phase,并進(jìn)一步優(yōu)化驗證流程”[7]。2011年,“Accellera 公司正式宣布了UVM 1.0 版本,同時得到各EDA 廠商的大力支持”[8],目前最新框架版本是1.2 版本,由于UVM 作為新一代驗證方法學(xué),沒有舊版本的兼容性負(fù)擔(dān),同時綜合過往驗證方法學(xué)的優(yōu)點,目前UVM 已成為驗證領(lǐng)域事實上的統(tǒng)一標(biāo)準(zhǔn)。

隨著驗證方法學(xué)的發(fā)展,作為硬件驗證語言(Hardware Verification Language,HVL)的最新成果,System Verilog 目前已經(jīng)成為使用最廣泛的IC 驗證語言。其綜合了Verilog,VHDL,C++的語法特性,兼容Verilog。此外在不斷演變過程中OpenVera發(fā)展成為SystemVerilog 中硬件驗證語言子集,進(jìn)一步擴展了語言特性。2005年,SystemVerilog 獲批成為IEEE 1800-2005 標(biāo)準(zhǔn)。當(dāng)時Verilog 作為IEEE 1364-2005 標(biāo)準(zhǔn)尚獨立存在。2009年,SystemVerilog 與的Verilog 進(jìn)行了合并,成為了新的IEEE 1800-2009 標(biāo)準(zhǔn)。現(xiàn)在的最新標(biāo)準(zhǔn)是IEEE 1800-2012 標(biāo)準(zhǔn)。

2 UVM驗證方法學(xué)的基本結(jié)構(gòu)與主要特性

UVM 自身主要給出一套驗證標(biāo)準(zhǔn)庫,包含常用的基類和方法,這使得驗證人員在搭建驗證環(huán)境時,它的結(jié)構(gòu)得以標(biāo)準(zhǔn)化。由于驗證常常需要眾多人員共同參與,一個標(biāo)準(zhǔn)化且組織良好的testbench結(jié)構(gòu),一致性的驗證平臺就顯得尤為重要。同時可以減少多個驗證工程師完成的驗證工作之間的質(zhì)量差距。UVM 給出了一種方法來提高驗證的工作效率,驗證代碼的可移植性以及EDA 軟件與VIP之間的互操作性。UVM 的所有功能并非都能適用于所有情況,UVM 的應(yīng)用取決于用戶和設(shè)計環(huán)境。

UVM 提供一系列的標(biāo)準(zhǔn)單元組件包括:Sequence 和Sequencer,負(fù)責(zé)激勵的產(chǎn)生。Sequence 會借助SV 的隨機化方法,產(chǎn)生符合要求目標(biāo)數(shù)量和要求的事務(wù),每個事務(wù)的數(shù)據(jù)均不相同。transaction 經(jīng)由Sequencer 發(fā)往Driver。Sequencer 是uvm_component 類型,其自身并不產(chǎn)生激勵,作用是作為sequence 與driver 之間的管道。transaction 是封裝好的一組數(shù)據(jù),一般是按照總線通信協(xié)議要求的各種參數(shù)的數(shù)據(jù)包。Driver 承擔(dān)向Sequencer發(fā)出請求的責(zé)任,不斷地要求transaction,除非仿真停止,否則這一過程會一直進(jìn)行下去。在拿到事務(wù)數(shù)據(jù)后,driver 利用TLM 通信機制把收到的事務(wù)數(shù)據(jù)轉(zhuǎn)化為實際信號發(fā)送給DUT。Monitor 負(fù)責(zé)的內(nèi)容與driver 相反,monitor 負(fù)責(zé)從DUT 上采集信號,并轉(zhuǎn)化為transaction 交給scoreboard。Agent 自身沒有實際的操作內(nèi)容,它主要用于將sequencer、driver 和monitor 進(jìn)行一個簡單封裝,便于不同項目或仿真層次下,相同協(xié)議模塊的復(fù)用,以減少驗證人員的工作量,優(yōu)化工作效率。Reference module 是用于模擬DUT 的功能,它會將和DUT 接收相同的數(shù)據(jù),并將各自輸出交由scoreboard進(jìn)行比較。Environment 是對整個驗證環(huán)境的封裝,便于復(fù)用。

UVM 的主要特性:

(1)UVM 加入了Phase 機制,利用這一機制,即可在仿真階段就開始進(jìn)行組件層次化。

(2)UVM Factory 機制的存在使得在驗證環(huán)境中替換實例和類型更容易、更靈活。但是被替換的組件必須與被替換的組件兼容。

(3)在UVM 則通過objection 機制來控制驗證平臺的關(guān)閉。

(4)利用域的自動化有關(guān)的宏,可以簡化對象的復(fù)制。

(5)config 提供這樣一個機制,來實現(xiàn)仿真時的環(huán)境控制。

3 基于UVM的驗證設(shè)計

3.1 設(shè)計目標(biāo)規(guī)劃

本文的待設(shè)計模塊是soc 系統(tǒng)當(dāng)中的一部分。設(shè)計是基于平頭哥的無劍100 開源平臺實現(xiàn)音頻播放,無劍100 開源平臺是一個以E902 為核心的soc 系統(tǒng),此平臺搭載了gpio,uart,iic 等基礎(chǔ)外設(shè)模塊,內(nèi)部也集成了DMA 等模塊,功能較為齊全。設(shè)計就是在此平臺基礎(chǔ)之上實現(xiàn)MP3 播放。采用sd card 存放MP3 文件,在sd card 上掛載FATFS。通過FATFS 來讀取MP3 文件,使用開源的helixMP3 解碼庫,helix 是一個定點的解碼庫,其占用內(nèi)存較小,比較適合用在小型的32 位處理器上。解碼之后的數(shù)據(jù)通過DMA 復(fù)制到IIS 模塊,而CPU 與此同時繼續(xù)解碼,并行工作,增強CPU 工作效率。此外添加了vga 顯示模塊,用于實時展示播放狀態(tài)和簡單外部按鍵操作提示。至此實現(xiàn)了一個完整的應(yīng)用場景。

3.2 驗證設(shè)計目標(biāo)接口

本模塊是屬于音頻傳輸部分。在CPU 對音頻數(shù)據(jù)解碼完成后,即可將解碼后的數(shù)據(jù)傳輸給本模塊,本模塊負(fù)責(zé)將從ahb 接收到的數(shù)據(jù)緩存并轉(zhuǎn)換為iis 接口格式的數(shù)據(jù),隨后發(fā)送給音頻芯片。功能可以概括為協(xié)議轉(zhuǎn)換,狀態(tài)寄存器控制,fifo 數(shù)據(jù)緩存,數(shù)據(jù)發(fā)送。

之所以只用fifo 是由于ahb 與iis 時鐘處在不同時鐘域,解決跨時鐘域問題。在CPU 利用AHB 端口發(fā)送數(shù)據(jù)時,本設(shè)計會檢測ahb 控制信號,判斷是否選通當(dāng)前設(shè)計,trans,write 是否有效,將檢測后的數(shù)據(jù)寫入狀態(tài)寄存器,作為fifo 的控制使能。而fifo 的時鐘自然為ahb 時鐘,同時fifo 會返回一個狀態(tài)信號給hrdata。

對于數(shù)據(jù)發(fā)送,模塊首先檢測IIS LRC 字段選擇信號的跳變,在這里我們默認(rèn)左右聲道數(shù)據(jù)相同。檢測IIS CK 串行時鐘線,利用計數(shù)器,作為數(shù)據(jù)指針將數(shù)據(jù)并轉(zhuǎn)串發(fā)送數(shù)據(jù)。

I2S 模塊接口如圖1所示。

圖1:I2S 模塊接口

3.3 驗證實現(xiàn)與仿真

驗證實現(xiàn)完成了對接口模塊、事務(wù)級建模、序列發(fā)生器、驅(qū)動器、監(jiān)視器、代理器等模塊的編程設(shè)計。interface 接口模塊是用于連接硬件和軟件部分的橋梁。一般將模塊接口信號在interface 中定義為logic 類型,通過運用modport 來設(shè)置信號的傳輸方向。利用clocking,基于時鐘周期對信號進(jìn)行驅(qū)動和采樣,同時可以一定程度上避免信號競爭。利用clocking 進(jìn)行事件同步。通過定義clocking skew(時鐘偏移量),一般定義輸入采樣為負(fù)值,輸出驅(qū)動為正值。這樣形成事件時間前后的采樣驅(qū)動可以有效避免出現(xiàn)信號競爭。如代碼所示,在這其中我們定義輸入驅(qū)動延時1ps,輸出采樣延時1ps。

接口設(shè)計中部分代碼如下:

驗證仿真工具是采用Mentor 公司的Questa Sim 2020.1。Questa與通常熟知的Modelsim 仿真軟件類似,Questa 是其的升級版,主要是對UVM 的支持更好。驗證過程是采用Makefile 腳本自動管理。通過Questa 通過的命令接口,以命令行的形式來控制仿真的過程。這種方法簡化了復(fù)雜的圖形化界面操作,自動創(chuàng)建過程并添加文件,啟動仿真并添加波形。

使用vlib 指令創(chuàng)建環(huán)境,通過vlog 語句來編譯目標(biāo)文件,在這里要注意,uvm 驗證環(huán)境當(dāng)中類的編譯順序是有要求的,底層的要先編譯,高層的后編譯。隨后利用vsim 語句來啟動仿真,使用附加指令-do,來添加tcl 腳本實現(xiàn)自動添加波形;“使用+UVM_TESTNAME 來指定當(dāng)前仿真的測試激勵”[12]。目前版本需要添加附加選項-voptargs=+acc 來避免設(shè)計被優(yōu)化導(dǎo)致仿真結(jié)果不符合要求。

I2S 時鐘為11.025kHz,量化位寬16bit,DACLRC 則為BCLK的32 分之一,約為344.53Hz。I2S 模塊等待LRC 的跳變邊沿,利用邊沿檢測,在每次下降沿觸發(fā)傳輸。利用移位寄存器進(jìn)行并串轉(zhuǎn)換,隨后發(fā)送至輸出端口。

4 結(jié)論

通過自主搭建一個UVM 驗證環(huán)境,實現(xiàn)按預(yù)定要求生成激勵數(shù)據(jù),并發(fā)送,基本完成設(shè)計目標(biāo)。UVM 極大的提高了驗證的工作效率,每個模塊都是標(biāo)準(zhǔn)的輸入輸出,通過總線互聯(lián)矩陣來進(jìn)行連接。針對不同速率的傳輸,未來需要添加對應(yīng)的時鐘切換模塊,切換時要考慮到時鐘穩(wěn)定時間,切換結(jié)果的確認(rèn);同時對于時鐘切換,需要設(shè)置對應(yīng)的配置寄存器,并開放給CPU 訪問。設(shè)計改進(jìn)需要添加狀態(tài)寄存器,反應(yīng)當(dāng)前模塊的傳輸狀態(tài)信息,提高整個設(shè)計的處理效率。

猜你喜歡
信號語言設(shè)計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
瞞天過海——仿生設(shè)計萌到家
基于FPGA的多功能信號發(fā)生器的設(shè)計
電子制作(2018年11期)2018-08-04 03:25:42
讓語言描寫搖曳多姿
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
累積動態(tài)分析下的同聲傳譯語言壓縮
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 欧美亚洲国产一区| 欧美a在线视频| 国产99精品视频| 欧美日本视频在线观看| 国产91成人| 亚洲人成在线精品| 91精品伊人久久大香线蕉| 免费一看一级毛片| 熟女成人国产精品视频| 国产综合另类小说色区色噜噜 | 欧美激情一区二区三区成人| 亚洲欧美另类日本| 91麻豆国产视频| 日韩A∨精品日韩精品无码| 亚洲成人黄色在线| 亚洲一区黄色| 国产又色又刺激高潮免费看| 特级做a爰片毛片免费69| 在线观看国产精美视频| 亚洲色欲色欲www网| 伊人久久大香线蕉综合影视| 99精品高清在线播放| a欧美在线| 成人福利在线观看| 色窝窝免费一区二区三区 | 亚洲AⅤ无码日韩AV无码网站| 日韩精品免费在线视频| 亚洲日韩精品伊甸| 在线国产欧美| 亚洲国产一区在线观看| 国产精品亚洲а∨天堂免下载| 精品国产自在现线看久久| 热久久综合这里只有精品电影| 91成人在线观看视频| 九九久久99精品| 欧美国产日产一区二区| 亚洲色图欧美一区| 五月婷婷丁香综合| 色婷婷狠狠干| 91亚洲精品第一| 亚洲一区二区三区国产精品| 香蕉伊思人视频| 婷婷久久综合九色综合88| 91视频区| 国产中文一区二区苍井空| 热热久久狠狠偷偷色男同| 日韩无码白| 国产成熟女人性满足视频| 青青青国产在线播放| 99热这里只有精品国产99| 国产91视频观看| 亚洲黄色片免费看| 亚洲国产精品一区二区第一页免 | 国产欧美日韩资源在线观看| 国产后式a一视频| 欧美日韩免费在线视频| 亚洲一区无码在线| 欧洲日本亚洲中文字幕| 大香网伊人久久综合网2020| 久久婷婷六月| 色婷婷在线影院| 激情无码字幕综合| 四虎国产永久在线观看| 国产大片喷水在线在线视频| 97一区二区在线播放| 青草娱乐极品免费视频| 亚洲国产亚综合在线区| 一级毛片免费高清视频| 99久久精品视香蕉蕉| 亚洲日韩AV无码精品| 亚洲成a人片| 国产欧美日韩va另类在线播放| 在线亚洲精品福利网址导航| 99这里只有精品在线| 夜色爽爽影院18禁妓女影院| 成人精品视频一区二区在线| 久久伊人色| 亚洲人在线| 国产极品嫩模在线观看91| 国产成人免费手机在线观看视频 | 欧美α片免费观看| 久视频免费精品6|