亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于UVM 的Wishbone-SPI 驗(yàn)證平臺(tái)設(shè)計(jì)

        2022-07-22 06:32:42劉森態(tài)龐宇
        電子技術(shù)應(yīng)用 2022年6期
        關(guān)鍵詞:測(cè)試用例寄存器總線

        劉森態(tài),龐宇,魏 東

        (重慶郵電大學(xué) 光電工程學(xué)院,重慶 400065)

        0 引言

        基于TestBench 的傳統(tǒng)芯片驗(yàn)證方法,對(duì)人員的驗(yàn)證經(jīng)驗(yàn)要求高,且平臺(tái)可移植性差,難達(dá)到預(yù)期覆蓋率,不適于快速迭代芯片設(shè)計(jì)市場(chǎng)[1]。目前,UVM 已是IC 驗(yàn)證領(lǐng)域主流的方式,它由SystemVerilog 語(yǔ)言編寫,具有面向?qū)ο螅∣bject Oriented Programming,OOP)的特點(diǎn),擁有豐富的組件和基類,完善的通信機(jī)制,繼承并克服開源驗(yàn)證方法(Open Verifcation Methodology,OVM)沒有寄存器的解決方案,可以根據(jù)驗(yàn)證需求,快速地搭建工程[2-3]。

        串行外設(shè)接口SPI(Serial Peripheral Interface) 是由Motorola 公司定義一種單主機(jī)多從機(jī)全雙工的模式通信,協(xié)議標(biāo)準(zhǔn)下由主入從出數(shù)據(jù)線(Master Input Slave Output,MISO)、主出從輸入數(shù)據(jù)線(Master Output Slave Input,MOSI)、串行時(shí)鐘信號(hào)線(Serial Clock,SCK)和從機(jī)選擇信號(hào)線(Slave Select,SS)共4 種引腳組成。該接口可與模數(shù)轉(zhuǎn)換器DAC、數(shù)模轉(zhuǎn)換器DAC 和外部存儲(chǔ)器等芯片通信,是SoC(System on Chip)最主要的外設(shè)接口之一。

        Wishbone 總線是由Silicore 提出的,現(xiàn)由OpenCore 組織維護(hù)管理,是SoC 三大總線標(biāo)準(zhǔn)之一[4]。Wishbone 總線是一種IP 核(Intellectual Property Core)互聯(lián)體系結(jié)構(gòu),它定義IP 核之間公共接口,減輕系統(tǒng)組件集成難度,提高系統(tǒng)組件可重用性、可靠性和可移植性,兼容所有綜合工具,可用多種硬件描述語(yǔ)言實(shí)現(xiàn)[5]。Wishbone 總線為IP 核提供點(diǎn)到點(diǎn)、數(shù)據(jù)流、共享總線和交叉開關(guān)這四種互聯(lián)方式滿足不同模塊的通信需求。

        本文驗(yàn)證的模塊是由Wishbone-SPI 搭建的一個(gè)子系統(tǒng),并著重闡述模塊設(shè)計(jì)、驗(yàn)證環(huán)境搭建、寄存器模型生成、驗(yàn)證流程、激勵(lì)用例開發(fā)以及功能覆蓋率統(tǒng)計(jì),最終對(duì)仿真結(jié)果進(jìn)行統(tǒng)計(jì)和分析。

        1 Wishbone-SPI 模塊設(shè)計(jì)

        SPI 作為MCU 芯片重要外設(shè),在芯片內(nèi)完成串行數(shù)據(jù)流轉(zhuǎn)換與并行數(shù)據(jù)流的轉(zhuǎn)換[6]。該模塊有多種傳輸模式,其最大輸出時(shí)鐘為系統(tǒng)輸入時(shí)鐘的一半。不同SPI模塊的最大時(shí)鐘需求不同,需要用時(shí)鐘控制模塊來調(diào)節(jié)通信頻率。

        1.1 Wishbone 總線接口

        Wishbone 總線信號(hào)接口分為公共信號(hào)、數(shù)據(jù)信號(hào)和總線周期信號(hào)。

        公共信號(hào)包括復(fù)位信號(hào)rst 和時(shí)鐘信號(hào)clk,它們對(duì)于主設(shè)備和從設(shè)備都是公共的。

        總線控制信號(hào)有錯(cuò)誤信號(hào)err,重試信號(hào)rty,響應(yīng)信號(hào)ack,讀寫使能信號(hào)we,中斷請(qǐng)求信號(hào)int,選通信號(hào)stb,總線周期信號(hào)cyc,位寬信號(hào)sel。

        數(shù)據(jù)信號(hào)包括地址信號(hào)addr,數(shù)據(jù)發(fā)送信號(hào)dat_o,數(shù)據(jù)接收信號(hào)dat_i。

        Wishbone 支持多種單周期讀/寫,塊讀、讀修改寫。以單周期寫為例,如圖1 所示,在clk 上升沿a 時(shí)刻,主設(shè)備設(shè)置位寬sel 信號(hào)將地址信號(hào)addr 和待寫入數(shù)據(jù)dat發(fā)送到總線上,拉高we,同時(shí)將cyc 和stb 置高,開始一次總線的寫操作。在時(shí)鐘上升沿a 到達(dá)前,從機(jī)設(shè)備檢測(cè)到主設(shè)備的寫操作,鎖存總線上的數(shù)據(jù),同時(shí)拉高ack作為對(duì)主設(shè)備的響應(yīng)。從設(shè)備可以在ack 有效之間插入任意周期的等待狀態(tài)。在clk 上升沿b 時(shí)刻,主設(shè)備發(fā)現(xiàn)ack 為高,將stb 和cyc 置低表示操作完成。從設(shè)備發(fā)現(xiàn)stb 為低后將主設(shè)備ack 也置低。一次Wishbone 寫操作便完成。

        圖1 Wishbone 單次寫操作

        1.2 SPI 模塊

        考慮到SPI 協(xié)議接口信號(hào)具有不同通信模式的特點(diǎn),SPI 模塊設(shè)計(jì)采用基于狀態(tài)機(jī)的方法,SPI 模塊基本設(shè)計(jì)框架如圖2 所示??刂萍拇嫫魇荢PI 模塊的核心,用于控制SPI 通信方式,主要監(jiān)視Wishbone 總線上的讀寫命令,根據(jù)讀寫命令調(diào)用控制狀態(tài)機(jī),進(jìn)而控制數(shù)據(jù)的發(fā)送與接收。分頻器寄存器將模塊的輸入時(shí)鐘分頻后用于時(shí)鐘產(chǎn)生輸出SCK,從而靈活地選擇外設(shè)頻率。狀態(tài)寄存器反映模塊內(nèi)的運(yùn)行狀態(tài),如發(fā)送完成標(biāo)志,讀寫完成標(biāo)志。數(shù)據(jù)寄存器存放待發(fā)送到芯片或接收來自于外部模塊的數(shù)據(jù)。循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)校驗(yàn)器判斷傳輸數(shù)據(jù)是否正確,當(dāng)發(fā)送數(shù)據(jù)時(shí)將產(chǎn)生CRC 校驗(yàn)碼并附加到數(shù)據(jù)后面,接收數(shù)據(jù)時(shí)則自動(dòng)計(jì)算CRC 校驗(yàn)碼并與總線數(shù)據(jù)上的校驗(yàn)碼進(jìn)行比較得出結(jié)果并反映到狀態(tài)寄存器中。

        圖2 Wishbone-SPI 框圖

        2 UVM 驗(yàn)證平臺(tái)

        2.1 主要通用驗(yàn)證組件

        基本的UVM 平臺(tái)包括以下部分:Test 是最頂層的類,首要負(fù)責(zé)驗(yàn)證平臺(tái)的配置,創(chuàng)建下一級(jí)別的驗(yàn)證組件,可以用來啟動(dòng)Sequence 開始仿真。Environment 是一個(gè)容器,包含較高級(jí)別驗(yàn)證組件,包括Agent、Scoreboard、Config以便更高層次的復(fù)用。Agent 是一個(gè)將Driver、Monitor、Sequencer 三個(gè)組件進(jìn)行封裝的容器組件,方便相同功能的組件多次例化和復(fù)用。Driver 是將sequence 中的數(shù)據(jù)包發(fā)送到DUT 引腳上的組件,會(huì)根據(jù)特定的協(xié)議轉(zhuǎn)化為時(shí)序激勵(lì)。Monitor 用來觀察接口上的數(shù)據(jù)或信號(hào),可以通過事務(wù)極傳輸模型(Transaction-Level Modeling,TLM)將信號(hào)發(fā)送到其他組件上。Sequencer 管理不同類型的Sequence,并帶有仲裁的功能。Sequence 定義了需要發(fā)送或接收驅(qū)動(dòng)器Driver 的數(shù)據(jù)類型,需要掛載到相應(yīng)的Sequencer,是驗(yàn)證平臺(tái)中流動(dòng)的血液。Scoreboard 接收來自Monitor 的數(shù)據(jù)值并且與期望值進(jìn)行比較。接口Interface包含了連接、同步和兩個(gè)或者多個(gè)模塊之間的通信。

        如圖3 所示,本次設(shè)計(jì)中驗(yàn)證環(huán)境Wishbone2spi_env中包含Scoreboard、Coverage、Predictor、Agent 和Transaction。Agent 內(nèi)Driver、Monitor 和Sequencer 通過TLM 通信。在Sequencer 幫助下,頂層仿真序列Sequence 產(chǎn)生的數(shù)據(jù)類型送給Driver??偩€上的讀寫操作激勵(lì)將廣播到Predictor上。Predictor 根據(jù)DUT 配置和Wishbone 總線上的輸入來傳輸SPI 的激勵(lì)。Predictor 輸出發(fā)送到Scoreboard上,并與DUT 的輸出結(jié)果進(jìn)行比對(duì)。Coverage 記錄SPI 操作的功能覆蓋率。Virtual_sequencer 控制不同的Sequencer,起統(tǒng)一調(diào)度的作用[7]。平臺(tái)中有3 個(gè)Sequencer,一個(gè)是寄存器模型的數(shù)據(jù)傳輸,一個(gè)是控制Wishbone 到SPI 的數(shù)據(jù),還有一個(gè)則是控制SPI 到Wishbone 的數(shù)據(jù)產(chǎn)生。

        圖3 SPI 驗(yàn)證環(huán)境

        通常DUT 的接口數(shù)量不定,為滿足芯片驗(yàn)證需求,加快驗(yàn)證的準(zhǔn)備速度,通常相同功能驗(yàn)證組件封裝在Agent 容器內(nèi)。如圖4 所示,通過在Env 組件內(nèi)的config配置不同Agent 的config 屬性,實(shí)現(xiàn)驗(yàn)證環(huán)境集成多路接口驅(qū)動(dòng),并同時(shí)使用,滿足驗(yàn)證的不同需求。

        圖4 多驅(qū)動(dòng)驗(yàn)證平臺(tái)

        2.2 RAL 模型

        寄存器抽象層(Register Abstraction Layer,RAL)是一種中心化管理寄存器配置的模型[8],其核心思想是把需要驗(yàn)證的所有寄存器封裝在一個(gè)統(tǒng)一模型內(nèi),通過映射完成對(duì)寄存器的驗(yàn)證工作。RAL 模型一般包括不同寄存器的地址和不同位寬的功能段域,其中段域是控制模塊功能的最小單位,多個(gè)段域組成一個(gè)功能寄存器。使用RAL 模型一般使用腳本語(yǔ)言進(jìn)行管理,可以在大規(guī)模芯片設(shè)計(jì)中減少手動(dòng)檢查寄存器的時(shí)間,避免寄存器配置錯(cuò)誤,實(shí)現(xiàn)平臺(tái)復(fù)用性。

        UVM 中對(duì)寄存器的訪問方式包括前門訪問和后門訪問。前門訪問是在總線上模擬時(shí)序,進(jìn)而在寄存器模型上進(jìn)行讀寫操作,是真實(shí)的物理操作。而后門訪問是利用UVM 中的內(nèi)置方法,將寄存器的操作直接作用到DUT 內(nèi)的寄存器變量,比起前門訪問速度更快,段域值修改更便捷。前門訪問方式使用轉(zhuǎn)換器(adapter)類來充當(dāng)不同抽象層轉(zhuǎn)化媒介。該類將寄存器激勵(lì)信息轉(zhuǎn)化后發(fā)送到總線上,最后由總線上的driver 完成轉(zhuǎn)化。控制寄存器結(jié)構(gòu)如表1 所示。

        表1 控制寄存器

        RES(Reserved)域?yàn)楣δ鼙A?,只能讀;BIDIMODE(Bidirectional data mode enable)為雙向通信方向,寫1 時(shí)表示雙向傳輸,為0 時(shí)是單向傳輸。BIDIOE(Output enable in bidirectional mode)域用于雙向通信模式下的傳輸方向;CRCNEXT(CRC transfer next)表示下一次傳輸為CRC。CRCEN(Hardware CRC calculation enable)開啟硬件CRC。MSTR(Master selection)為主、從模式選擇。IE(Interrupt enable)域表示中斷使能;LSB(Least Significant Bit)域表示最低有效位收/發(fā)比特位置順序;SPE(SPI Enable)域表示SPI 使能。CPOL 與CPHA 組合控制著SPI 傳輸?shù)乃姆N模式。下面以SPI 的控制寄存器SPCR 為例,驗(yàn)證平臺(tái)的寄存器縮略代碼如圖5 所示。

        圖5 控制寄存器驗(yàn)證代碼

        依據(jù)模塊功能手冊(cè),寄存器每個(gè)域配置主要包括位域所屬的寄存器、段域的位寬大小、該段域最低位在寄存器中的位置、訪問方式、段域是否易變、復(fù)位后的默認(rèn)值、能否復(fù)位以及能否單獨(dú)訪問。其中訪問方式主要指讀 寫RW(Read Write)、只 讀RO(Read Only)、只 寫WO(Write Only)等。

        本次設(shè)計(jì)包含了12 個(gè)SPI 寄存器,如表2 所示,除了控制寄存器,還有狀態(tài)寄存器和數(shù)據(jù)寄存器等。每個(gè)寄存器位寬均是32位,偏移地址依次以4 遞增。發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器共享地址,通過控制寄存器中的讀寫標(biāo)志區(qū)分。在傳輸啟動(dòng)前,寫數(shù)據(jù)寄存器,則發(fā)送數(shù)據(jù);在完成傳輸后接收MISO 上的數(shù)據(jù),讀數(shù)據(jù)寄存器。Wishbone 總線上以前門訪問的方式來配置SPI 的功能。通過后門訪問方式讀取寄存器里的值,最后比較寫入值和期望值是否一致。

        表2 SPI 寄存器堆

        寄存器模型驗(yàn)證流程如圖6 所示,首先寄存器序列spi_reg_sequence 攜帶寄存器信息放到uvm_reg_item 實(shí)例中,并送到adapter。然后adapter 抽取出信息,生成總線所需的Wishbone_seq_item 類型,通過總線上Agent 實(shí)例發(fā)送到DUT內(nèi),完成寄存器的配置。

        圖6 寄存器模型驗(yàn)證

        2.3 平臺(tái)測(cè)試用例

        為了對(duì)SPI 特性全面測(cè)試,編寫如測(cè)試用例。測(cè)試用例列表及父子類關(guān)系如表3 所示。1 號(hào)測(cè)試用例是為了測(cè)試Wishbone 是否按照總線協(xié)議進(jìn)行讀寫。2 號(hào)測(cè)試用例繼承于1 號(hào)測(cè)試用例,它對(duì)總線地址進(jìn)行約束,限定訪問地址在SPI 寄存器地址范圍內(nèi),且檢測(cè)寄存器的讀寫方式,如狀態(tài)寄存器只能讀不能寫。3~7 號(hào)測(cè)試用例均繼承于2號(hào),其中3 號(hào)是測(cè)試SPI 開啟和關(guān)閉的激勵(lì),是發(fā)送或接收SPI 數(shù)據(jù)的基礎(chǔ)。4 號(hào)用來測(cè)試通信故障,如數(shù)據(jù)溢出、CRC 錯(cuò)誤。5 號(hào)檢測(cè)NSS 信號(hào)片選引腳在主機(jī)模式下是否拉低指定的從機(jī)設(shè)備引腳。6 號(hào)測(cè)試用例檢測(cè)復(fù)位時(shí)SPI 各個(gè)寄存器是否是設(shè)定值。7 號(hào)關(guān)注SPI 在不同傳輸模式下MISO 和MOSI 引腳的時(shí)序是否與協(xié)議一致。

        表3 測(cè)試用例列表及父子類關(guān)系

        2.4 功能覆蓋率組

        設(shè)計(jì)自動(dòng)統(tǒng)計(jì)功能覆蓋率的模型來評(píng)估驗(yàn)證結(jié)果是否滿足預(yù)期要求,通過覆蓋組實(shí)現(xiàn)覆蓋率的統(tǒng)計(jì)模型,如表4 包含驗(yàn)證平臺(tái)不同覆蓋組,以著重驗(yàn)證SPI 各個(gè)基本功能。

        表4 SPI 測(cè)試覆蓋組和描述

        3 功能覆蓋率統(tǒng)計(jì)及分析

        使用Questasim 工具運(yùn)行驗(yàn)證平臺(tái),激活測(cè)試用例,實(shí)例Wishbone 和SPI 接口并對(duì)接口信號(hào)分別進(jìn)行采集。運(yùn)行時(shí),先通過受約束的隨機(jī)測(cè)試,然后對(duì)未覆蓋的地方進(jìn)行定向測(cè)試,遍歷訪問空間,使功能覆蓋率達(dá)到100%。圖7 顯示了DUT 的功能覆蓋率結(jié)果,每一個(gè)覆蓋組的Coverage=100.0%,這說明驗(yàn)證中每一種情況都已經(jīng)覆蓋,平臺(tái)已達(dá)到驗(yàn)證目標(biāo)。

        圖7 功能覆蓋率仿真結(jié)果

        4 結(jié)論

        本平臺(tái)支持Wishbone-SPI 驗(yàn)證,使用UVM 減少驗(yàn)證平臺(tái)搭建時(shí)間,且功能覆蓋率達(dá)到100%,編寫高效率的測(cè)試用例配合腳本工具實(shí)現(xiàn)可移植復(fù)用的激勵(lì)。實(shí)際項(xiàng)目中,可依據(jù)項(xiàng)目實(shí)際情況改變接口代碼或配置代碼,而復(fù)用的代碼結(jié)構(gòu)對(duì)于其他驗(yàn)證工作起著積極的作用。后期在該驗(yàn)證平臺(tái)上可以加上處理器外殼[9],運(yùn)行C 的測(cè)試用例[10],做出訪問寄存器、處理中斷等行為,還可進(jìn)一步實(shí)現(xiàn)驗(yàn)證平臺(tái)的垂直復(fù)用,能大大縮短SoC 開發(fā)時(shí)間。

        猜你喜歡
        測(cè)試用例寄存器總線
        基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
        基于混合遺傳算法的回歸測(cè)試用例集最小化研究
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
        多通道ARINC429總線檢查儀
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
        河南科技(2014年16期)2014-02-27 14:13:22
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        女优av福利在线观看| 久久久久99精品成人片直播 | 国产成人高清亚洲一区二区| 国产三级精品av在线| 欧美丰满老熟妇aaaa片| аⅴ资源天堂资源库在线| 91精品国产91久久久无码95| 美女精品国产一区二区三区| 久亚洲一线产区二线产区三线麻豆| 中出人妻希奇杰卡西av| 99国产精品自在自在久久| 97无码人妻福利免费公开在线视频| 欧美激情国产亚州一区二区| 人妻系列少妇极品熟妇| 中文字幕乱码熟女人妻在线| 国产人妻人伦精品1国产| 亚洲乱码国产一区三区| 亚洲AV永久无码精品一区二国| 视频一区中文字幕日韩| 久久中文字幕人妻淑女| 国产精品久久久久9999吃药| 久久精品国内一区二区三区| 国产强伦姧在线观看| 成年人视频在线观看麻豆| 国产国产精品人在线视| 国产精品无圣光一区二区| 乱人伦视频69| 人妖系列在线免费观看| 91伦理片视频国产精品久久久| 国产精品成人aaaaa网站| 亚洲熟妇av乱码在线观看| 情色视频在线观看一区二区三区| av手机免费在线观看高潮| 久久伊人精品一区二区三区| 日韩好片一区二区在线看| 久久久亚洲欧洲日产国码是AV| 成人av资源在线观看| 中文精品久久久久人妻不卡| 国产性一交一乱一伦一色一情| 午夜无码片在线观看影院y| 国产精品国产传播国产三级|