在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用APB_I2C模塊搭建層次化驗(yàn)證平臺(tái)

電子工程師 ? 來(lái)源:博客園 ? 作者:博客園 ? 2022-08-10 11:14 ? 次閱讀

	

一、前言

近期疫情嚴(yán)重,身為社畜的我只能在家中繼續(xù)鉆研技術(shù)了。之前寫(xiě)過(guò)一篇關(guān)于搭建FIFO驗(yàn)證平臺(tái)的博文,利用SV的OOP特性對(duì)FIFO進(jìn)行初步驗(yàn)證,但有很多不足之處,比如結(jié)構(gòu)不夠規(guī)范、驗(yàn)證組件類不獨(dú)立于DUT等問(wèn)題。此次嘗試驗(yàn)證更復(fù)雜的IP,并利用SV的更多高級(jí)特性來(lái)搭建層次化驗(yàn)證平臺(tái)。

二、APB_I2C IP概述

實(shí)踐出真知,于是在opencores網(wǎng)站上下載了個(gè)APB_I2C的IP核,便著手展開(kāi)驗(yàn)證工作。第一步是理清楚這個(gè)IP的整體功能、引腳作用以及頂層結(jié)構(gòu)。整體功能從模塊名稱便可得知是帶有APB總線接口的I2C_master。要了解引腳作用與時(shí)序,直接截取SPEC上的示意圖查看:

APB_WRITE:

41e5a8a4-17df-11ed-ba43-dac502259ad0.png

APB_READ:

41fa1dc0-17df-11ed-ba43-dac502259ad0.png

I2C_PROTOCOL:

421c0b88-17df-11ed-ba43-dac502259ad0.png

接口和協(xié)議這里就不細(xì)說(shuō)了,感興趣的朋友查找相關(guān)的資料。至于頂層結(jié)構(gòu)這方面,最好還是交給工具方便點(diǎn)。無(wú)奈回家沒(méi)有帶回我的虛擬機(jī)硬盤(pán),只能下載個(gè)WINDOW版本的EDA工具了。本文使用QuestaSim,原理圖如下:

4230e9c2-17df-11ed-ba43-dac502259ad0.png

很容易看出該模塊頂層包含APB接口模塊APB、分別用于緩存發(fā)送和接收數(shù)據(jù)的FIFO_TX和FIFO_RX,以及I2C協(xié)議轉(zhuǎn)換模塊I2X_INTERNAL_RX_TX。master通過(guò)APB總線訪問(wèn)該IP核內(nèi)部的數(shù)據(jù)緩存區(qū)和配置寄存器,無(wú)需關(guān)注內(nèi)部實(shí)現(xiàn)。

除了這幾個(gè)方面,配置寄存器的訪問(wèn)也非常重要。IP核必須做出正確的配置和使能才可以按照需要正常工作。配置寄存器見(jiàn)下表:

4247bd64-17df-11ed-ba43-dac502259ad0.png

三、QuestaSim常用指令

QuestaSim工具的WINDOWS/LINUX版本很容易下載到,和Modelsim的主要區(qū)別是對(duì)SV UVM的支持性較好,這一點(diǎn)非常符合本文的意愿。但仿真過(guò)程中一次次點(diǎn)擊鼠標(biāo)很麻煩,只好學(xué)習(xí)學(xué)習(xí)操作命令了,寫(xiě)個(gè)腳本配合SV實(shí)現(xiàn)自動(dòng)化仿真。以下是在官方文檔user manual和tutorial中截取的常用指令及解釋。

1 Compile the source files. vloggates.v and2.v cache.v memory.v proc.v set.v top.v

2 Use thevoptcommand to optimize the design with full visibility into all design units

vopt +acc -o -debugdb

The+accargument enables full visibility into the design for debugging purposes. The-oargument is required for naming the optimized design object. The-debugdbargument collects combinatorial and sequential logic data into the work library.

3 Use the optimized design name to load the design with thevsimcommand: vsim testcounter_opt -debugdb

4set WildcardFilter "Variable Constant Generic Parameter SpecParam Memory Assertion Endpoint ImmediateAssert" With this command, youremove “CellInternal”from the default list of Wildcard filters. This allows all signals in cells to be logged by the simulator so they will be visible in the debug environment.

5Add Wave*

6add log /*

This will provide the historic values of the events of interest plus its drivers

7 run 500

四、搭建驗(yàn)證環(huán)境

這一節(jié)是本文的核心內(nèi)容了。通用的驗(yàn)證環(huán)境的結(jié)構(gòu)和組件如圖:

42589c24-17df-11ed-ba43-dac502259ad0.png

Stimulus將測(cè)試激勵(lì)送入待測(cè)試模塊DUT,Monitor觀察響應(yīng)并發(fā)送給檢Checker。遇到復(fù)雜的設(shè)計(jì)還需要設(shè)計(jì)Reference model,進(jìn)而對(duì)比實(shí)際響應(yīng)與黃金參考的響應(yīng)區(qū)別。并且當(dāng)Monitor無(wú)法簡(jiǎn)單直接地收集DUT響應(yīng)時(shí),還需要設(shè)計(jì)VIP來(lái)解析復(fù)雜的響應(yīng)信號(hào)時(shí)序。這幾天參照工具書(shū)和網(wǎng)上的教程視頻,根據(jù)APB_I2C模塊的特性構(gòu)思出基本的驗(yàn)證環(huán)境。

APB_I2C模塊并不復(fù)雜,所以沒(méi)必要設(shè)計(jì)reference model。若想利用Monitor組件獲取DUT響應(yīng)需要解析I2C協(xié)議時(shí)序,這里編寫(xiě)個(gè)VIP來(lái)幫助它解析出有效數(shù)據(jù),進(jìn)而與Stimulus數(shù)據(jù)對(duì)比。Monitor因VIP的存在得到了很大程度上的簡(jiǎn)化,主要的功能為將等待觸發(fā)事件發(fā)生后,將數(shù)據(jù)通過(guò)MAILBOX傳輸給Checker進(jìn)行比較。

另外,為了讓Stimulus脫離具體接口信號(hào)操作,建立Generator和Initiator類分別用于產(chǎn)生讀寫(xiě)訪問(wèn)和將讀寫(xiě)訪問(wèn)轉(zhuǎn)換成讀寫(xiě)操作對(duì)應(yīng)的具體信號(hào)邏輯。為了實(shí)現(xiàn)OOP特性中的“細(xì)節(jié)隱藏”,建立配置類Config來(lái)配置驗(yàn)證環(huán)境,這里主要是配置Generator發(fā)送特定場(chǎng)景的讀寫(xiě)請(qǐng)求。想要測(cè)試不同的功能特性,只需改動(dòng)傳入Config的參數(shù)即可。到此驗(yàn)證環(huán)境包含了Generator Initiator Monitor Checker Config五個(gè)驗(yàn)證組件,這里再建立Environment類將這些組件包在一起,方便調(diào)用方法。還是上圖更直觀些(有點(diǎn)丑,湊活看吧)

426c1204-17df-11ed-ba43-dac502259ad0.png

除了驗(yàn)證環(huán)境結(jié)構(gòu),好的代碼結(jié)構(gòu)也能極大提高平臺(tái)的重用性。這里將所有類及對(duì)應(yīng)的屬性方法封裝到Package components中,方便被import到testbench中。驗(yàn)證過(guò)程中用到的所有變量類型、參數(shù)放置在defines.sv中。

五、仿真分析

當(dāng)Config類對(duì)象的配置參數(shù)為CONFIG_WR_DATA時(shí),generator發(fā)起寫(xiě)請(qǐng)求。波形如下:

428462c8-17df-11ed-ba43-dac502259ad0.png

觀察打印的Log可以看出每個(gè)SCL時(shí)鐘周期采集到一個(gè)bit,MAILBOX正確傳輸,checker對(duì)比正確,故而仿真PASS。4295ba78-17df-11ed-ba43-dac502259ad0.png

驗(yàn)證過(guò)程中發(fā)現(xiàn)該模塊有很多BUG??!這里舉兩個(gè)例子。

1 SDA為雙向端口,但當(dāng)sda_enable為0時(shí),并沒(méi)有賦值為高阻態(tài),即釋放信號(hào)線控制權(quán)給slave。做出如下修改并讓VIP在ACK階段拉低SDA。 42a6af90-17df-11ed-ba43-dac502259ad0.png

2 SCL在讀操作狀態(tài)機(jī)中沒(méi)有被toggle,因此config的配置參數(shù)為CONFIG_RD_DATA時(shí)SCL沒(méi)有翻轉(zhuǎn)。在讀操作狀態(tài)機(jī)中添加翻轉(zhuǎn)邏輯,使BR_CLK_RX_O信號(hào)在counter_receive_data == clk_t_1_4時(shí)拉高,counter_receive_data==clk_t_3_4時(shí)拉低。

42dd7502-17df-11ed-ba43-dac502259ad0.png

波形顯示在讀操作時(shí)SCL正常翻轉(zhuǎn)。

42efb85c-17df-11ed-ba43-dac502259ad0.png

該模塊的讀操作很多地方不正確還有待修改,就不一一贅述了??偟膩?lái)說(shuō)就是根本不能用o(╥﹏╥)o 不抱希望了,之后我還是自己寫(xiě)一個(gè)吧。

六、總結(jié)

本文利用APB_I2C模塊為例搭建了層次化驗(yàn)證平臺(tái),但還有待改善。這里列出幾點(diǎn):

1 沒(méi)有完全做到測(cè)試用例與環(huán)境分離

2 沒(méi)有構(gòu)建場(chǎng)景層給予豐富的pattern

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1789

    瀏覽量

    151438
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1537

    瀏覽量

    127137
  • questasim
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7607
  • 驗(yàn)證平臺(tái)
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2949

原文標(biāo)題:SystemVerilog搭建APB_I2C IP 層次化驗(yàn)證平臺(tái)

文章出處:【微信號(hào):ZYNQ,微信公眾號(hào):ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如果芯片不具有硬件I2C模塊怎么辦?

    這樣做的好處是可以突破硬件上的限制,例如芯片不具有硬件 I2C 模塊,或者硬件 I2C 模塊損壞,又或者使用硬件 I2C
    的頭像 發(fā)表于 10-30 15:59 ?5103次閱讀
    如果芯片不具有硬件<b class='flag-5'>I2C</b><b class='flag-5'>模塊</b>怎么辦?

    利用MP3C和Spartan-IIE開(kāi)發(fā)板實(shí)現(xiàn)復(fù)雜FFT電路的驗(yàn)證

    MP3C系統(tǒng)是Aptix公司的產(chǎn)品,是一種價(jià)格低、驗(yàn)證速度快、基于層次化和模塊化的硬件驗(yàn)證平臺(tái),
    發(fā)表于 01-30 13:08 ?942次閱讀
    <b class='flag-5'>利用</b>MP3<b class='flag-5'>C</b>和Spartan-IIE開(kāi)發(fā)板實(shí)現(xiàn)復(fù)雜FFT電路的<b class='flag-5'>驗(yàn)證</b>

    i2c詳解+送apb_i2c工程+送中英文協(xié)議

    ? 0.本文的內(nèi)容目錄 本文一共接近一萬(wàn)一千字,為了幫助大家閱讀,我把本文的內(nèi)容目錄截圖如下,大家根據(jù)需要閱讀,或者一次閱讀不完,下次再讀的時(shí)候方便查閱。 1.I2C概述 I2C
    的頭像 發(fā)表于 01-02 01:19 ?2529次閱讀
    <b class='flag-5'>i2c</b>詳解+送<b class='flag-5'>apb_i2c</b>工程+送中英文協(xié)議

    利用RC1000和SoC設(shè)計(jì)展示評(píng)估平臺(tái)RC200搭建一個(gè)原型驗(yàn)證系統(tǒng)的樣機(jī)?

    SoC原型的Handel-C描述及其實(shí)現(xiàn)流程是怎樣的?利用RC1000和SoC設(shè)計(jì)展示評(píng)估平臺(tái)RC200搭建一個(gè)原型驗(yàn)證系統(tǒng)的樣機(jī)?
    發(fā)表于 05-28 06:15

    基于I2C總線的鍵盤(pán)顯示模塊設(shè)計(jì)

    介紹了利用P87LPC76X系列單片機(jī)設(shè)計(jì)的一個(gè)鍵盤(pán)顯示模塊,通過(guò)I2C總線與主控芯片相連,具有靈活、控制方便等特點(diǎn)。文中給出了部分硬件設(shè)計(jì)和軟件流程。關(guān)鍵詞:I2C總線;P87LPC
    發(fā)表于 08-05 14:43 ?24次下載

    I2C總線接口模塊設(shè)計(jì)

    本實(shí)驗(yàn)是基于EasyFPGA030的I2C總線接口模塊設(shè)計(jì),用EasyFPGA030開(kāi)發(fā)套件通過(guò)I2C協(xié)議實(shí)現(xiàn)對(duì)二線制I2C串行EEPROM的讀寫(xiě)操作,先把數(shù)據(jù)寫(xiě)入EEPROM,然后再
    發(fā)表于 11-02 17:01 ?41次下載

    ;C總線的驗(yàn)證及實(shí)現(xiàn)--Proven Imple

    ;C總線的驗(yàn)證及實(shí)現(xiàn)--Proven Implementations of the ;C Bus Abstract
    發(fā)表于 01-22 16:16 ?2227次閱讀
    <b class='flag-5'>I²</b>;<b class='flag-5'>C</b>總線的<b class='flag-5'>驗(yàn)證</b>及實(shí)現(xiàn)--Proven Imple

    AVR利用USI模塊作為I2C從機(jī)

    AVR利用USI模塊作為I2C從機(jī)
    發(fā)表于 10-08 17:02 ?82次下載
    AVR<b class='flag-5'>利用</b>USI<b class='flag-5'>模塊</b>作為<b class='flag-5'>I2C</b>從機(jī)

    基于SystemVerilog的I2C總線模塊驗(yàn)證

    文中分析了基于Systemverilog驗(yàn)證環(huán)境的結(jié)構(gòu),并在介紹I 2 C總線協(xié)議的基礎(chǔ)上,重點(diǎn)論述了驗(yàn)證環(huán)境中事務(wù)產(chǎn)生器及驅(qū)動(dòng)器的設(shè)計(jì)。
    發(fā)表于 12-22 17:20 ?27次下載
    基于SystemVerilog的<b class='flag-5'>I2C</b>總線<b class='flag-5'>模塊</b><b class='flag-5'>驗(yàn)證</b>

    VaaS平臺(tái)已支持區(qū)塊鏈平臺(tái)智能合約的形式化驗(yàn)證

    VaaS形式化驗(yàn)證平臺(tái),采用了多種形式化驗(yàn)證方法,具有驗(yàn)證效率高、自動(dòng)化程度高、人工參與度低、易于使用、支持多個(gè)合約開(kāi)發(fā)語(yǔ)言、可支持大容量區(qū)塊鏈底層
    發(fā)表于 12-14 10:18 ?1204次閱讀

    Arduino教程之I2C模塊使用教程資料免費(fèi)下載

    為什么叫I2C模塊?和一元硬幣差不多大小的一塊PCB上放了三個(gè)芯片,分管三個(gè)功能:時(shí)間計(jì)算、溫度偵測(cè)、數(shù)據(jù)存儲(chǔ)。這三個(gè)芯片都是通過(guò)I2C總線通信的。 我們知道,I2C理論上可以級(jí)聯(lián)
    發(fā)表于 01-22 16:59 ?9次下載
    Arduino教程之<b class='flag-5'>I2C</b><b class='flag-5'>模塊</b>使用教程資料免費(fèi)下載

    利用Systemverilog+UVM搭建soc驗(yàn)證環(huán)境

    利用Systemverilog+UVM搭建soc驗(yàn)證環(huán)境
    發(fā)表于 08-08 14:35 ?5次下載

    可編程邏輯電路—版圖驗(yàn)證工具的作用

    版圖驗(yàn)證工具不僅要支持扁平化驗(yàn)證,而且要支持層次化驗(yàn)證。扁平化驗(yàn)證是版圖驗(yàn)證工具的基礎(chǔ);
    發(fā)表于 08-29 11:00 ?3125次閱讀

    基于EsDA開(kāi)發(fā)平臺(tái)快速搭建I2C數(shù)據(jù)采集監(jiān)測(cè)系統(tǒng)

    EsDA開(kāi)發(fā)平臺(tái)為產(chǎn)品上線提供動(dòng)力。本文將基于EsDA開(kāi)發(fā)平臺(tái),通過(guò)拖拽、連線方式,10分鐘快速搭建一個(gè)I2C數(shù)據(jù)采集監(jiān)測(cè)業(yè)務(wù),為客戶產(chǎn)品開(kāi)發(fā)、部署、上線縮短周期。
    的頭像 發(fā)表于 10-14 11:48 ?1401次閱讀

    Testbench自動(dòng)化驗(yàn)證方法介紹

    自動(dòng)化驗(yàn)證testbench結(jié)果可以減少人工檢查的時(shí)間和可能犯的失誤,尤其對(duì)于比較大的設(shè)計(jì)。
    的頭像 發(fā)表于 09-04 09:15 ?1293次閱讀
    主站蜘蛛池模板: 最新久久精品 | 欧美tube最新的69hd | 天天干天天草天天 | 色婷婷综合久久久 | 午夜视频免费在线 | 天堂中文www在线 | 国产精品igao在线观看樱花日本 | 国产精品欧美久久久久天天影视 | 天天干天天操天天爱 | 久久99热精品这里久久精品 | 午夜特片网 | 福利一区二区在线观看 | 99视频热| 国产精品资源网 | 婷婷色影院 | 欧美三级视频网站 | 午夜五月天 | 久久免费看| 婷婷丁香花 | 免费啪视频在线观看 | 久久免费国产 | 天天综合色天天综合网 | 国模视频一区 | 嘿嘿嘿视频在线观看网站 | 久久精品国产免费看久久精品 | 日本videosgratis教师69 | 久操视频免费观看 | 日韩亚洲欧洲在线rrrr片 | 午夜三级理论在线观看视频 | 日本69sex护士hd | 大象焦伊人久久综合网色视 | www.五月激情 | 狠狠操夜夜 | 黄色生活毛片 | 可以免费看黄的网址 | 色综合久久98天天综合 | 天天干夜夜玩 | 三级精品在线观看 | 性久久久久久久久 | 天天操天天插 | 嫩草网 |