国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Avalon-MM的I2C總線控制器設(shè)計(jì)及VMM驗(yàn)證

2016-03-17 01:55:44張曉龍
關(guān)鍵詞:覆蓋率控制器

張曉龍

(上海大學(xué) 微電子研究與開(kāi)發(fā)中心,上海 200072)

?

基于Avalon-MM的I2C總線控制器設(shè)計(jì)及VMM驗(yàn)證

張曉龍

(上海大學(xué) 微電子研究與開(kāi)發(fā)中心,上海200072)

摘要:分析了Avalon-MM總線的架構(gòu)以及I2C總線的傳輸方式,提出了一種可行的I2C總線控制設(shè)計(jì)方案,并說(shuō)明了詳細(xì)的實(shí)現(xiàn)過(guò)程;設(shè)計(jì)的基于Avalon-MM總線的I2C總線控制器可復(fù)用IP核,可以不加修改地應(yīng)用在基于Altera公司產(chǎn)品的SOPC系統(tǒng)中;使用VMM驗(yàn)證方法學(xué)構(gòu)建了多層次可復(fù)用的驗(yàn)證平臺(tái),對(duì)設(shè)計(jì)進(jìn)行了全面的驗(yàn)證;整個(gè)驗(yàn)證平臺(tái)使用systemverilog語(yǔ)言實(shí)現(xiàn),仿真工具使用VCS-MX200606;最后仿真結(jié)果顯示,設(shè)計(jì)被完全地驗(yàn)證并達(dá)到100%覆蓋率。

關(guān)鍵詞:總線接口;控制器;驗(yàn)證方向?qū)W;覆蓋率

0引言

現(xiàn)在半導(dǎo)體制造技術(shù)的發(fā)展已經(jīng)可以實(shí)現(xiàn)一塊芯片容納幾億個(gè)晶體管,這使得一塊芯片中可以集成更多的系統(tǒng)功能,并且引發(fā)了芯片設(shè)計(jì)方法學(xué)的變革。制造工藝的發(fā)展和對(duì)功能更強(qiáng)產(chǎn)品的需求使得SOC的設(shè)計(jì)成為主流[1]。傳統(tǒng)的設(shè)計(jì)方法已經(jīng)不能適用于這種規(guī)模復(fù)雜芯片的設(shè)計(jì),對(duì)于SOC設(shè)計(jì),設(shè)計(jì)復(fù)用-重用之前編寫(xiě)和驗(yàn)證過(guò)的代碼-是唯一以可接收的代價(jià)完成 如此復(fù)雜設(shè)計(jì)的方法[2]?,F(xiàn)在設(shè)計(jì)人員的主要挑戰(zhàn)是使完成的設(shè)計(jì)是可復(fù)用的和如何復(fù)用之前的設(shè)計(jì)。

使用標(biāo)準(zhǔn)總線接口的設(shè)計(jì)可以有效提高可重用性,使用標(biāo)準(zhǔn)的接口可使設(shè)計(jì)易于理解和易于找到可用的IP核加快設(shè)計(jì)的進(jìn)度[3]。另外,針對(duì)此標(biāo)準(zhǔn)接口的驗(yàn)證IP核也可在多個(gè)項(xiàng)目中重用,加速驗(yàn)證過(guò)程。使用標(biāo)準(zhǔn)接口的設(shè)計(jì)的功能模塊也更容易在系統(tǒng)層次的集成,因?yàn)镮P接口信號(hào)與總線信號(hào)是統(tǒng)一的[4]。

隨著芯片門(mén)數(shù)和復(fù)雜度的急劇增加,芯片驗(yàn)證的工作量達(dá)到了整個(gè)芯片研發(fā)的70%,功能驗(yàn)證越來(lái)越成為設(shè)計(jì)過(guò)程中的瓶頸[5]。這催生了專(zhuān)門(mén)用于驗(yàn)證的編程語(yǔ)言(systemverilog)和一系列基于該語(yǔ)言的驗(yàn)證方法學(xué)的產(chǎn)生和發(fā)展,例如VMM,AVM,OVM,UVM等?;诜椒▽W(xué)的驗(yàn)證可通過(guò)多種機(jī)制顯著提高驗(yàn)證生成率,例如斷言、抽象、自動(dòng)化和重用[6]。

本文設(shè)計(jì)了一個(gè)I2C總線控制器[7],該控制器使用Avalon-MM標(biāo)準(zhǔn)接口,可不加修改地應(yīng)用于使用Altera公式產(chǎn)品構(gòu)建的SOPC系統(tǒng)中[8]。然后應(yīng)用VMM驗(yàn)證方法學(xué)為該設(shè)計(jì)搭建了一個(gè)可移植、重用、擴(kuò)展、完全自動(dòng)檢查、具有層次化結(jié)構(gòu)的驗(yàn)證平臺(tái),使用受約束的隨機(jī)激勵(lì)生成和功能覆蓋率等技術(shù),對(duì)設(shè)計(jì)進(jìn)行了全面的功能驗(yàn)證,并且達(dá)到100% 的覆蓋率。

1設(shè)計(jì)描述

設(shè)計(jì)可以分為兩個(gè)主要部分:I2C協(xié)議產(chǎn)生部分和Avalon-MM總線接口部分。I2C總線協(xié)議部分負(fù)責(zé)完成在I2C總線上按照協(xié)議完成數(shù)據(jù)的傳輸。Avalon-MM總線接口部分聯(lián)系系統(tǒng)處理器和I2C控制器部分,處理器通過(guò)該接口完成對(duì)I2C傳輸數(shù)據(jù)和地址等信息的控制。設(shè)計(jì)的詳細(xì)模塊如圖1所示。

圖1 設(shè)計(jì)架構(gòu)

1.1I2C協(xié)議產(chǎn)生器

I2C,全稱(chēng)Inter Integrated Circuit,是由飛利浦公司開(kāi)發(fā)的一種兩線式串行總線。它用兩根線,時(shí)鐘線和數(shù)據(jù)線,實(shí)現(xiàn)數(shù)據(jù)的雙向同步傳輸,具有結(jié)構(gòu)簡(jiǎn)單,成本低等優(yōu)點(diǎn),得到越來(lái)越廣泛的應(yīng)用。I2C已經(jīng)成為芯片間低速串行通信的事實(shí)標(biāo)準(zhǔn),應(yīng)用于各類(lèi)消費(fèi)電子、電子控制設(shè)備和各式傳感器中。

I2C總線采用簡(jiǎn)單的兩線式結(jié)構(gòu),可以最小化引腳和PCB布線的開(kāi)銷(xiāo)。I2C總線支持多主機(jī)結(jié)構(gòu),但在同一時(shí)刻只允許一個(gè)主機(jī)獲得總線控制權(quán),所以要通過(guò)仲裁來(lái)解決多個(gè)主機(jī)爭(zhēng)搶總線的問(wèn)題,以免發(fā)生數(shù)據(jù)沖突。每個(gè)從機(jī)都有唯一的7比特的地址碼,主機(jī)依據(jù)此地址碼選址從機(jī)。

I2C定義了嚴(yán)格的數(shù)據(jù)傳輸時(shí)序,它以一個(gè)字節(jié)為單位進(jìn)行數(shù)據(jù)傳輸,一次8比特?cái)?shù)據(jù)傳輸結(jié)束后,接收方應(yīng)發(fā)送一位響應(yīng)位以確認(rèn)數(shù)據(jù)接收成功。每次傳輸主機(jī)都要發(fā)送一位開(kāi)始位和結(jié)束位來(lái)發(fā)起和結(jié)束一次數(shù)據(jù)傳輸。

1)空閑狀態(tài):I2C總線的空閑狀態(tài)是時(shí)鐘信號(hào)SCL的數(shù)據(jù)信號(hào)SDA同時(shí)處于高電平的狀態(tài),此時(shí)沒(méi)有主機(jī)占用總線,由于上拉電阻的緣故,兩根信號(hào)被上拉至高電平。

2)起始位:I2C總線定義在SCL為高電平時(shí),SDA由高電平跳到低電平為起始信號(hào)。通過(guò)發(fā)送起始位信號(hào),主機(jī)通知從機(jī)開(kāi)始數(shù)據(jù)傳輸。

3)數(shù)據(jù)幀:在發(fā)送起始位后,主機(jī)開(kāi)始從SDA逐位發(fā)送或結(jié)收數(shù)據(jù)幀,主機(jī)首先發(fā)送一個(gè)字節(jié)的從機(jī)地址碼以尋址從機(jī),該字節(jié)包含7比特的從器件地址和一位讀寫(xiě)標(biāo)志,1代表讀,0代表寫(xiě)。需要注意的是,在數(shù)據(jù)幀傳輸期間SDA信號(hào)值只能在SCL為低時(shí)改變,只有在起始位結(jié)束位時(shí),SDA才能在SCL為高電平時(shí)改變。

4)相應(yīng)位:主機(jī)或從機(jī)每發(fā)送完一個(gè)字節(jié),需要對(duì)方釋放掉SDA的控制權(quán)來(lái)接收對(duì)方的響應(yīng)。如果對(duì)方響應(yīng)(SDA為低電平)則可繼續(xù)傳輸,如果不響應(yīng)(SDA為高電平)則應(yīng)結(jié)束傳輸。

5)結(jié)束位:I2C總線規(guī)定當(dāng)SCL為高時(shí),SDA由低電平變?yōu)楦唠娖綖榻Y(jié)束信號(hào)。結(jié)束位的產(chǎn)生代表著一次傳輸?shù)慕Y(jié)束,總線回到空閑狀態(tài),直到下次起始位。

圖2 I2C控制的狀態(tài)機(jī)

1.2Avalon-MM總線接口

Avalon-MM是Avalon總線的一個(gè)子集。Avalon總線是Altera公司專(zhuān)門(mén)為可編程芯片片上系統(tǒng)(System-On-a-Programmable-Chip, 以下簡(jiǎn)稱(chēng)SOPC)而推出的一套片內(nèi)總線系統(tǒng),與Nios系列的處理器軟核一起,二者構(gòu)成了Altera公司SOPC解決方案中的核心部分。

Avalon-MM全稱(chēng)是Avalon Memory- Mapped,是一套互聯(lián)式總線接口,主要用于多節(jié)點(diǎn)的互聯(lián),具有較好的數(shù)據(jù)交換特性和很高的總線帶寬,由于是針對(duì)SOPC設(shè)計(jì)的,Avalon-MM總線模塊具有結(jié)構(gòu)簡(jiǎn)單,采用全同步時(shí)序,以及可以靈活地配置等特點(diǎn),其運(yùn)行時(shí)鐘、位寬、接口信號(hào)以及接口時(shí)序等都可以靈活地選擇或配置。

Avalon-MM總線外設(shè)的控制或數(shù)據(jù)寄存器都可映射為處理器尋址空間內(nèi)的一個(gè)地址。該設(shè)計(jì)中使用4個(gè)映射到地址空間的寄存器為I2C控制器提供所需的數(shù)據(jù)信息。寄存器slave_ID用于指示要控制的從機(jī)編號(hào)和最后一位讀寫(xiě)控制位。寄存器sub_addr用于說(shuō)明要訪問(wèn)的從機(jī)內(nèi)部地址。寄存器data 是要寫(xiě)入從設(shè)備或從從機(jī)接收到的數(shù)據(jù)。寄存器status 指示控制器的當(dāng)前狀態(tài)。圖3是本文設(shè)計(jì)的控制器選擇的接口信號(hào)和對(duì)控制器內(nèi)寄存器的讀寫(xiě)時(shí)序。

圖3 接口讀取時(shí)序

1.3接口與協(xié)議產(chǎn)生部分的連接

I2C總線是低速總線,其時(shí)鐘最大不超過(guò)400 kHz。而外部的主器件可能工作在很高的頻率,比如50 MHz甚至更高。這樣兩個(gè)時(shí)鐘域之間的信息交換可能會(huì)由于不能滿(mǎn)足建立時(shí)間或保持時(shí)間而導(dǎo)致亞穩(wěn)態(tài)的發(fā)生。為了避免亞穩(wěn)態(tài),使用了全同步式設(shè)計(jì),所有的寄存器都由接口的高頻時(shí)鐘驅(qū)動(dòng),但為了實(shí)現(xiàn)I2C的低頻傳輸,將使用分頻得到的低頻時(shí)鐘作為參考時(shí)鐘,通過(guò)脈沖邊沿檢測(cè)的方式,控制I2C狀態(tài)機(jī)的轉(zhuǎn)換,完成數(shù)據(jù)的低頻傳輸。

Avalon接口的status寄存器是狀態(tài)寄存器,Avalon可以寫(xiě)入該寄存器以控制I2C協(xié)議發(fā)生器,也可以讀取該寄存器以了解I2C的當(dāng)前狀態(tài)。寄存器最后一位代表I2C協(xié)議發(fā)生器的閑忙狀態(tài),0代表空閑,接口可以通過(guò)寫(xiě)入寄存器相應(yīng)的值,并在status寄存器最后一位寫(xiě)入1來(lái)啟動(dòng)一次I2C傳輸,每次傳輸結(jié)束該位會(huì)被清零,可以接收下一次的傳輸。

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

本文使用VMM驗(yàn)證方法學(xué)實(shí)現(xiàn)了一個(gè)分層驗(yàn)證平臺(tái),并設(shè)計(jì)了足夠的測(cè)試用例來(lái)覆蓋所有可能的邊界條件。如圖4所示,該驗(yàn)證平臺(tái)包含激勵(lì)生成器、驅(qū)動(dòng)器、監(jiān)視器、記分板和覆蓋率統(tǒng)計(jì)等功能組件,它們協(xié)同工作完成對(duì)DUT(design under test,待驗(yàn)證設(shè)計(jì),這里指的是I2C控制器)的功能驗(yàn)證。

圖4 分層結(jié)構(gòu)的驗(yàn)證平臺(tái)

2.1激勵(lì)生成器

激勵(lì)生成器i2c_gen派生至vmm_xactor類(lèi),用來(lái)隨機(jī)產(chǎn)生用于激勵(lì)DUT的各種數(shù)據(jù),并通過(guò)數(shù)據(jù)通道(i2c_trans_channel)傳輸給下層結(jié)構(gòu)i2c_Driver。生成器產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)i2c_trans派生至vmm_data,加入了工程相關(guān)的特定的數(shù)據(jù)結(jié)構(gòu)和子程序。要進(jìn)行一次I2C總線傳輸,需要知道從設(shè)備的標(biāo)號(hào)、訪問(wèn)的從設(shè)備內(nèi)部地址和傳輸?shù)臄?shù)據(jù)的等信息。但是不是每一個(gè)由生成器產(chǎn)生的這些信息都是有效的,所以使用受約束的激勵(lì)生成器可以產(chǎn)生理想的數(shù)據(jù),而不是之后分析并丟棄無(wú)效的數(shù)據(jù)。

隨機(jī)生成器的目標(biāo)是應(yīng)該能生成完全驗(yàn)證特定設(shè)計(jì)所需的全部激勵(lì)。不同的測(cè)試用例可能需產(chǎn)生不同的激勵(lì),所以生成器中使用了工廠模式,可以實(shí)現(xiàn)在testcase中改變要產(chǎn)生的目標(biāo)數(shù)據(jù),而不是修改i2c_gen結(jié)構(gòu)。

2.2驅(qū)動(dòng)器和監(jiān)測(cè)器

在驗(yàn)證平臺(tái)中,位于命令層的驅(qū)動(dòng)器(driver)和監(jiān)測(cè)器(monitor)是直接與DUT交互的功能組件,將上層的事務(wù)轉(zhuǎn)化為信號(hào)層DUT引腳的實(shí)際激勵(lì)。他們是基于事務(wù)(transaction)的驗(yàn)證環(huán)境的基礎(chǔ),更高的抽象級(jí)別是驗(yàn)證平臺(tái)不在關(guān)注底層信號(hào)的細(xì)節(jié),更容易復(fù)雜的功能。

接口(interface)是systemverilog中的一個(gè)重要數(shù)據(jù)結(jié)構(gòu),它是連接DUT中靜態(tài)信號(hào)和驗(yàn)證環(huán)境中動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)的紐帶。I2C控制器的Avalon總線接口被抽象成一個(gè)interface數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)在驅(qū)動(dòng)器實(shí)例化時(shí)被傳進(jìn)該驗(yàn)證組件內(nèi)部,在驅(qū)動(dòng)器內(nèi)部以虛接口(virtual interface)的形式存在。之后,驅(qū)動(dòng)器就可根據(jù)從上層組件接收到的事務(wù)并按照Avalon總線的時(shí)序?qū)μ摻涌趦?nèi)的信號(hào)進(jìn)行操作完成對(duì)DUT的驅(qū)動(dòng)。

同樣地,監(jiān)測(cè)器也是通過(guò)虛接口跟I2C總線交互,通過(guò)監(jiān)測(cè)這兩根信號(hào)的變化,按照I2C協(xié)議來(lái)接收數(shù)據(jù)并做相應(yīng)的響應(yīng)。并將監(jiān)測(cè)和響應(yīng)的信息抽象成事務(wù)傳輸給上層結(jié)構(gòu)。

2.3自檢結(jié)構(gòu)和斷言

自檢結(jié)構(gòu)記分板(scoreboard)是在運(yùn)行時(shí)檢查DUT響應(yīng)是否正確的驗(yàn)證組件。記分板按順序比較驅(qū)動(dòng)器發(fā)給DUT的激勵(lì)和監(jiān)視器響應(yīng)的數(shù)據(jù),如果不相等則報(bào)出一個(gè)錯(cuò)誤。

斷言(assertion)是觀察和定位設(shè)計(jì)中協(xié)議或規(guī)則錯(cuò)誤的一種有效手段,當(dāng)斷言在仿真過(guò)程中失敗,從報(bào)告的錯(cuò)誤信息中很容易定位到錯(cuò)誤所在。在本文中使用斷言檢測(cè)Avalon總線協(xié)議和I2C協(xié)議的正確性。

2.4功能覆蓋率

功能覆蓋率是衡量設(shè)計(jì)可信度和驗(yàn)證進(jìn)度的重要指標(biāo),驗(yàn)證的目的是保證設(shè)計(jì)在實(shí)際的運(yùn)行過(guò)程中的行為正確。設(shè)計(jì)規(guī)范對(duì)設(shè)計(jì)的行為進(jìn)行詳細(xì)的描述,驗(yàn)證計(jì)劃從中抽象出相應(yīng)的設(shè)計(jì)特性。驗(yàn)證平臺(tái)為設(shè)計(jì)仿真出實(shí)際的運(yùn)行環(huán)境,并從驗(yàn)證環(huán)境中收集數(shù)據(jù)以確定設(shè)計(jì)的哪些行為特性已經(jīng)被仿真覆蓋,以此估計(jì)驗(yàn)證的功能覆蓋率。

功能覆蓋率信息的收集使用驅(qū)動(dòng)器回調(diào)函數(shù)(callback method)的方式實(shí)現(xiàn),這能保證驗(yàn)證環(huán)境的靈活性。不同的測(cè)試用例可能要求驗(yàn)證組件表現(xiàn)不同的行為,回調(diào)函數(shù)使驗(yàn)證組件的功能是可控的和可配置的,而不必為每一個(gè)測(cè)試用例使用不同的驗(yàn)證組件。驅(qū)動(dòng)器在每次向DUT發(fā)送激勵(lì)后,執(zhí)行回調(diào)函數(shù)并將激勵(lì)信息作為參數(shù)傳給回調(diào)函數(shù),函數(shù)內(nèi)的covergroup結(jié)構(gòu)完成覆蓋率信息的收集。

2.5驗(yàn)證環(huán)境

驗(yàn)證環(huán)境類(lèi)i2c_env派生至vmm_env類(lèi),作為驗(yàn)證平臺(tái)的頂層包裝,它將各種驗(yàn)證組件封裝在一起,并提供仿真過(guò)程控制的語(yǔ)法。驗(yàn)證平臺(tái)的各種組件都會(huì)在該環(huán)境類(lèi)中被創(chuàng)建和實(shí)例化,并在環(huán)境類(lèi)的控制下完成仿真。為了避免競(jìng)爭(zhēng)和冒險(xiǎn),仿真過(guò)程被分成許多個(gè)執(zhí)行步驟,各個(gè)階段完成指定的工作,這通過(guò)環(huán)境類(lèi)中的各種虛函數(shù)實(shí)現(xiàn)。當(dāng)i2c_env::run()函數(shù)在testcase中被顯式調(diào)用時(shí),環(huán)境類(lèi)中的以下虛函數(shù)會(huì)依次地被隱含地調(diào)用,完成各自的功能,最后完成仿真過(guò)程。

1)gen_cfg(),該函數(shù)產(chǎn)生隨機(jī)的DUT和驗(yàn)證平臺(tái)配置數(shù)據(jù)。用于配置DUT和驗(yàn)證平臺(tái)的工作狀態(tài)。

2)build(),該函數(shù)創(chuàng)建各個(gè)驗(yàn)證組件,并用產(chǎn)生的配置信息配置驗(yàn)證環(huán)境,將各驗(yàn)證組件通過(guò)管道相互連接,以傳輸數(shù)據(jù)。

3)reset_dut(),該函數(shù)給DUT發(fā)送重置信號(hào),是DUT進(jìn)入初始狀態(tài),避免因?yàn)闆](méi)有正確初始化導(dǎo)致的錯(cuò)誤。

4)cfg_dut(),該函數(shù)用產(chǎn)生的配置信息配置DUT,使其工作在合適的工作狀態(tài)。

5)start(),該函數(shù)使各個(gè)驗(yàn)證組件開(kāi)始工作。

6)wait_for_end(),該函數(shù)阻塞以等待測(cè)試的結(jié)束條件。

7)stop(),該函數(shù)使各驗(yàn)證組件停止工作。

8)cleanup(),該函數(shù)清理殘留的數(shù)據(jù),使仿真正常地結(jié)束。

9)report(),該函數(shù)報(bào)告最終的仿真結(jié)果是失敗還是成功,并關(guān)閉所有文件。至此一次仿真過(guò)程結(jié)束。

3實(shí)驗(yàn)結(jié)果

使用Synopsys公司的VCS仿真工具對(duì)該控制器的設(shè)計(jì)和驗(yàn)證平臺(tái)進(jìn)行了仿真,VCS首先對(duì)設(shè)計(jì)和驗(yàn)證環(huán)境的源代碼進(jìn)行編譯,然后執(zhí)行仿真過(guò)程。仿真的運(yùn)行過(guò)程有驗(yàn)證平臺(tái)的環(huán)境類(lèi)控制。首先隨機(jī)產(chǎn)生各種配置參數(shù),創(chuàng)建驗(yàn)證組件的實(shí)例并用產(chǎn)生的配置參數(shù)配置驗(yàn)證平臺(tái)。然后初始化并配置設(shè)計(jì)使之處于有效的狀態(tài),并開(kāi)始啟動(dòng)各個(gè)驗(yàn)證組件,產(chǎn)生激勵(lì)信息并驅(qū)動(dòng)設(shè)計(jì),同時(shí)觀察設(shè)計(jì)的響應(yīng),根據(jù)自檢結(jié)構(gòu)的比對(duì)結(jié)果判斷設(shè)計(jì)的功能正確與否。為了檢測(cè)各種條件下設(shè)計(jì)的運(yùn)行結(jié)果,讀寫(xiě)方式和讀寫(xiě)的地址空間都隨機(jī)化。這樣就可以產(chǎn)生讀讀、寫(xiě)寫(xiě)、寫(xiě)讀、讀寫(xiě)等不同的激勵(lì)序列,對(duì)設(shè)計(jì)進(jìn)行全方位的驗(yàn)證。等到功能覆蓋率組件檢測(cè)到預(yù)定義的覆蓋率達(dá)到一定值,驗(yàn)證完成,就可以結(jié)束仿真過(guò)程。在結(jié)束仿真工作退出前,還有做些收尾工作,如停止各個(gè)驗(yàn)證組件的運(yùn)行和報(bào)告仿真的結(jié)構(gòu)等。這些工作對(duì)于仿真的正常運(yùn)行和以后的統(tǒng)計(jì)和調(diào)試都是必不可少的。

仿真運(yùn)行結(jié)果如圖5所示??梢钥吹?,覆蓋率監(jiān)視器報(bào)告的最后對(duì)DUT的驗(yàn)證達(dá)到100%的覆蓋率,說(shuō)明驗(yàn)證全面,對(duì)該控制器的所有可能的運(yùn)行場(chǎng)景都進(jìn)行了仿真。而自檢結(jié)構(gòu)記分板的報(bào)告顯示共進(jìn)行了508次的比對(duì),并且全部比對(duì)正確。為了便于調(diào)試,在仿真過(guò)程中使用verdi工具提供的波形產(chǎn)生函數(shù)生成了波形,verdi查看波形如圖6所示。從圖中也可以看到,Avalon接口和I2C總線的時(shí)序都是滿(mǎn)足協(xié)議標(biāo)準(zhǔn)的。綜上所述,可以說(shuō)明設(shè)計(jì)的I2C控制器功能正確,可以用于工程應(yīng)用。

圖5 仿真運(yùn)行結(jié)果

4結(jié)論

基于標(biāo)準(zhǔn)總線的設(shè)計(jì)可以使一個(gè)復(fù)雜的SOC工程分為幾個(gè)部分,各部分可以獨(dú)立地開(kāi)發(fā),最后集成在一起,并且可以`復(fù)用已有的IP核以加速整個(gè)SOC的研發(fā)。本文設(shè)計(jì)的I2C總線控制器,可不加修改地應(yīng)用于任何使用Altera公式產(chǎn)品構(gòu)建的SOPC系統(tǒng)中。復(fù)雜設(shè)計(jì)給驗(yàn)證的挑戰(zhàn)迫使驗(yàn)證在更高的抽象級(jí)別上進(jìn)行,本文基于VMM驗(yàn)證方法學(xué)搭建的驗(yàn)證平臺(tái)在事務(wù)級(jí)運(yùn)行,可顯著提高驗(yàn)證的效率。驗(yàn)證平臺(tái)的部分模塊也可在系統(tǒng)級(jí)驗(yàn)證平臺(tái)中復(fù)用。

參考文獻(xiàn):

[1] 鐘洪. 基于FPGA的SOC設(shè)計(jì)研究[J]. 機(jī)電元件, 2013(3):13-18.

[2] Keating M J, Bricaud P. Reuse Methodology Manual for System-on-a-Chip Designs[M]. System-on-a-Chip Designs. Springer-Verlag GmbH, 2007:486-490.

[3] Bergeron J. Verification Methodology Manual for SystemVerilog[M]. Springer, Berlin, 2006.

[4] 楊鑫, 徐偉俊, 陳先勇,等. Avalon總線最新接口標(biāo)準(zhǔn)綜述[J]. 中國(guó)集成電路, 2007, 16(11):24-29.

[5] Wang J, Ji X H, Yang N X, et al. An Advanced Verification Environment Based on VMM[J]. Advanced Materials Research, 2013, 655-657: 900-904.

[6] 馮星宇, 黃新, 顏學(xué)龍. 支持AVALON總線協(xié)議的SPI通信設(shè)計(jì)實(shí)現(xiàn)[J]. 國(guó)外電子測(cè)量技術(shù), 2013, 32(3):66-70.

[7] Semiconductor P. The I2C-Bus Specification Version2.1[EB/OL].2000: http://www.semiconductors.philips.com/acrobat/various/I2C_BUS_SPECIFICATION_3.pdf,2000.

Avalon-MM Based I2C Bus Controller Design and Verification Using VMM

Zhang Xiaolong

(Microelectronic Resarch and Development Center,Shanghai200072,China)

Abstract:In this paper, the architecture of Avalon-MM and the I2C bus protocol is analyzed. Then, a design of reusable I2C bus controller based on Avalon-MM bus and the detailed implement process is presented. This reusable IP core can be used in the SOPC system built on Altera company product without modification. A multi-level and reusable verification platform is implemented using VMM to verify this design. The whole verification environment uses the System Verilog language, and the simulation tool is Synopsys VCS-MX200606. The verification results indicate that design has been exactly checked out with 100% coverage.

Keywords:bus interface; controller; verification methodology manual; coverage

文章編號(hào):1671-4598(2016)02-0147-04

DOI:10.16526/j.cnki.11-4762/tp.2016.02.040

中圖分類(lèi)號(hào):TP332

文獻(xiàn)標(biāo)識(shí)碼:A

作者簡(jiǎn)介:張曉龍(1990-),男,河南開(kāi)封通許人,碩士研究生,主要從事圖像處理和集成電路的設(shè)計(jì)和驗(yàn)證工作。

收稿日期:2015-08-03;修回日期:2015-08-31。

猜你喜歡
覆蓋率控制器
民政部等16部門(mén):到2025年村級(jí)綜合服務(wù)設(shè)施覆蓋率超80%
工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實(shí)踐
我國(guó)全面實(shí)施種業(yè)振興行動(dòng) 農(nóng)作物良種覆蓋率超過(guò)96%
基于噴丸隨機(jī)模型的表面覆蓋率計(jì)算方法
基于DSP的復(fù)合跟蹤控制器的設(shè)計(jì)
2015年湖南省活立木蓄積量、森林覆蓋率排名前10位的縣市區(qū)
航空軟件代碼覆蓋率分析的項(xiàng)目管理
模糊PID控制器設(shè)計(jì)及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
紅獅控制 PID控制器PXU系列
宜宾市| 阿鲁科尔沁旗| 崇信县| 天台县| 共和县| 永川市| 彭泽县| 巫山县| 城步| 临邑县| 万荣县| 全州县| 马边| 台南县| 嘉荫县| 南召县| 临澧县| 临高县| 凤翔县| 昭苏县| 剑河县| 贵阳市| 蕲春县| 台州市| 英超| 雷山县| 龙游县| 湟中县| 夏邑县| 长白| 潮安县| 通道| 壶关县| 岳西县| 洛扎县| 敖汉旗| 田东县| 长武县| 腾冲县| 旺苍县| 平果县|