• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2011-06-01 02:53:58申志飛易茂祥梅春雷
      電子科技 2011年12期
      關(guān)鍵詞:信箱驅(qū)動(dòng)器事務(wù)

      閆 濤,申志飛,易茂祥,梅春雷

      (合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院,安徽合肥 230009)

      隨著SOC的快速發(fā)展,數(shù)字邏輯設(shè)計(jì)復(fù)雜度隨之提高,驗(yàn)證的難度也越來(lái)越大。調(diào)查顯示,有1/2以上的SOC項(xiàng)目在第一次流片失敗的主要原因是存在功能缺陷。

      統(tǒng)計(jì)顯示,驗(yàn)證設(shè)計(jì)很大難度。將復(fù)雜模塊集成后,難以在驗(yàn)證中將芯片實(shí)際可能遇到的所有條件模擬執(zhí)行。發(fā)現(xiàn)設(shè)計(jì)中的邊界條件以及深層次的設(shè)計(jì)缺陷也是面臨的關(guān)鍵挑戰(zhàn),因此需要先進(jìn)的驗(yàn)證方法學(xué)研究和應(yīng)用。Synopsys公司推出基于Systemverilog語(yǔ)言的VMM(Verification Methodology Manual)驗(yàn)證方法學(xué)則是較突出的一種,在業(yè)界也有廣泛的應(yīng)用,并逐漸取代了Verilog語(yǔ)言的傳統(tǒng)驗(yàn)證方法,成為IC驗(yàn)證領(lǐng)域的一種發(fā)展趨勢(shì)[1-2]。

      SystemVerilog建立在 Verilog語(yǔ)言的基礎(chǔ)上,是IEEE 1364 Verilog-2001標(biāo)準(zhǔn)的擴(kuò)展增強(qiáng),兼容Verilog 2001,并成為下一代硬件設(shè)計(jì)和驗(yàn)證的語(yǔ)言[3]。相對(duì)于傳統(tǒng)的Verilog語(yǔ)言,SysemVerilog具有豐富語(yǔ)言能力,能描述復(fù)雜驗(yàn)證環(huán)境,包括帶約束隨機(jī)激勵(lì)產(chǎn)生、面向?qū)ο缶幊毯凸δ芨采w統(tǒng)計(jì)。這些特點(diǎn)使用戶開(kāi)發(fā)出能自動(dòng)產(chǎn)生大量驗(yàn)證情節(jié)的測(cè)試平臺(tái)。文中介紹了基于SystemVerilog語(yǔ)言的驗(yàn)證平臺(tái),并在分析I2C總線協(xié)議的基礎(chǔ)上重點(diǎn)介紹事務(wù)產(chǎn)生及驅(qū)動(dòng)模塊的設(shè)計(jì)[4]。

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

      驗(yàn)證平臺(tái)主要是為了生成激勵(lì)信號(hào)并將激勵(lì)信號(hào)提供給DUT,再進(jìn)一步分析DUT的響應(yīng)是否正確。包括以下步驟:(1)產(chǎn)生激勵(lì)。(2)把激勵(lì)施加到DUT上。(3)捕獲激勵(lì)。(4)檢驗(yàn)正確性。

      1.1 基于Verilog的傳統(tǒng)驗(yàn)證

      傳統(tǒng)的Verilog驗(yàn)證方法是用Verilog語(yǔ)言搭建驗(yàn)證平臺(tái)。對(duì)DUT的功能驗(yàn)證只能用人工腳本編寫(xiě)Testcase來(lái)配置和控制DUT,以實(shí)現(xiàn)預(yù)定功能的測(cè)試。然而這需要消耗大量資源,而且還無(wú)法驗(yàn)證到?jīng)]有預(yù)料到的缺陷。當(dāng)驗(yàn)證完成后,仍只能依賴人工檢測(cè)驗(yàn)證是否完備,除了消耗資源以外,還無(wú)法得到理想的功能覆蓋率。顯而易見(jiàn),諸如此類的問(wèn)題在基于Verilog的傳統(tǒng)驗(yàn)證中是難以避免的[5]。

      1.2 基于SystemVerilog的驗(yàn)證環(huán)境

      使用SystemVerilog語(yǔ)言建立的激勵(lì)生成器(generate),事務(wù)驅(qū)動(dòng)器(drive),監(jiān)控器(monitor),記分板(scoreboard)等完成上述步驟。

      圖1展示了I2C的SystemVerilog驗(yàn)證環(huán)境架構(gòu),包括DUT、接口和驗(yàn)證平臺(tái)。其中驗(yàn)證平臺(tái)由激勵(lì)發(fā)生器、事務(wù)驅(qū)動(dòng)器、總線監(jiān)視、DUT監(jiān)視器和記事板等組成。

      圖1 基于SystemVerilog的驗(yàn)證結(jié)構(gòu)圖

      接口(interface)是SystemVerilog提供的一個(gè)新的、高層抽象的模塊連接。接口在關(guān)鍵字interface和endinterface之間定義,它獨(dú)立于模塊。接口在模塊中就像一個(gè)單一的端口一樣使用。在最簡(jiǎn)單的形式下,一個(gè)接口可以認(rèn)為是一組線網(wǎng)。通過(guò)使用接口,在進(jìn)行一個(gè)設(shè)計(jì)時(shí)可以不需要首先建立各模塊間的互連。隨著設(shè)計(jì)的深入,設(shè)計(jì)細(xì)節(jié)也會(huì)變得越來(lái)越清晰,而接口內(nèi)的信號(hào)也會(huì)表示出來(lái)。當(dāng)接口發(fā)生變化時(shí),這些變化會(huì)在使用該接口的所有模塊中反映出來(lái),而無(wú)需更改每個(gè)模塊。一個(gè)接口可以像模塊那樣例化,也可以像信號(hào)一樣連接到端口。SystemVerilog的接口還可以包含內(nèi)建的協(xié)議檢查以及被使用該接口的模塊所共用的功能。

      激勵(lì)產(chǎn)生器是一個(gè)受約束的隨機(jī)激勵(lì)發(fā)生器,在驗(yàn)證環(huán)境開(kāi)始工作時(shí)創(chuàng)建一個(gè)事務(wù),隨機(jī)化其值,然后將其放入信箱傳遞給驅(qū)動(dòng)器。在SystemVerilog中可以用約束限制隨機(jī)值的范圍,使他們是有效的值,也可以通過(guò)其設(shè)置測(cè)試某些專用功能。

      產(chǎn)生器和驅(qū)動(dòng)器通過(guò)信道交換數(shù)據(jù)。信道可以看成一個(gè)具有源端和收端的FIFO。源端把數(shù)據(jù)放進(jìn)信箱,收端從信箱獲取數(shù)據(jù)。信箱可以有容量限制,也可以沒(méi)有。當(dāng)源端線程試圖向容量飽和的信箱放入數(shù)值時(shí),會(huì)發(fā)生阻塞直到信箱里的數(shù)據(jù)被移走。驗(yàn)證平臺(tái)中信箱的容量為1,每次產(chǎn)生器只能放一筆數(shù)據(jù)在信箱,直到被驅(qū)動(dòng)器移走才放入下一筆,這樣就可以實(shí)現(xiàn)對(duì)象間通信的同步。

      驅(qū)動(dòng)器從發(fā)生器接收事務(wù)信息,在經(jīng)過(guò)一定的處理后將其輸送給DUT。信號(hào)監(jiān)視器用于監(jiān)控DUT的輸入和輸出,將其輸送至記分板從而通過(guò)比較相關(guān)信號(hào)來(lái)驗(yàn)證DUT的設(shè)計(jì)是否正確。所有組件都是基于SystemVerilog設(shè)計(jì),SystemVerilog語(yǔ)言的面向?qū)ο蟮奶匦源蟠筇岣吡蓑?yàn)證IP核的可重用性。

      2 驗(yàn)證環(huán)境IP的設(shè)計(jì)

      圖2 I2C總線傳輸協(xié)議圖

      文中要驗(yàn)證的DUT是7位尋址的I2C總線模塊,其傳輸協(xié)議如圖2所示。I2C總線用于連接微控制器及外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。S代表START,P為STOP,在傳輸過(guò)程中第一個(gè)Byte的頭7位組成了從機(jī)地址,最低位(LSB)是第8位,它決定了傳輸?shù)钠胀ê蛶е貜?fù)開(kāi)始條件的7位地址格式方向。第一個(gè)Byte的最低位是“0”,表示主機(jī)會(huì)寫(xiě)信息到被選中的從機(jī);“1”表示主機(jī)會(huì)向從機(jī)讀信息,當(dāng)發(fā)送了一個(gè)地址后,系統(tǒng)中的每個(gè)器件都在起始條件后將頭7位與其地址比較,如果一樣,器件會(huì)判定其被主機(jī)尋址,至于是從機(jī)接收器還是從機(jī)發(fā)送器,都由R/W位決定。而在數(shù)據(jù)傳輸過(guò)程中,發(fā)送到SDA線上的每個(gè)Byte必須為8位,每次傳輸可以發(fā)送的Byte數(shù)量不受限制。每個(gè)Byte后必須跟一個(gè)響應(yīng)位,在響應(yīng)的時(shí)鐘脈沖期間發(fā)送器釋放SDA線(高),首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB)。

      2.1 事務(wù)產(chǎn)生及驅(qū)動(dòng)器的設(shè)計(jì)

      文中重點(diǎn)研究事務(wù)產(chǎn)生及事務(wù)驅(qū)動(dòng)器的設(shè)計(jì)。事務(wù)產(chǎn)生器通過(guò)約束隨機(jī)產(chǎn)生符合I2C協(xié)議的事務(wù)。在I2C總線模塊驗(yàn)證模塊中使用到的約束包括:

      (1)合理的尋址范圍。(2)改變R/W位之前必須STOP再重新 START。(3)收到 ACK為“0”時(shí)必須STOP等,這些約束可以保證生成正確的事務(wù)。然而,(1)連續(xù)發(fā)送不同的數(shù)據(jù)。(2)按一定比例產(chǎn)生R/W,ACK位的“0”,“1”等。這些約束則可以驗(yàn)證更多邊沿特性,提高驗(yàn)證覆蓋率。

      還可以約束配置條件,例如生成一定數(shù)目的事務(wù),以及發(fā)生錯(cuò)誤的處理方法。總之,采用受約束的隨機(jī)測(cè)試法自動(dòng)產(chǎn)生的測(cè)試集是產(chǎn)生驗(yàn)證負(fù)責(zé)設(shè)計(jì)所需激勵(lì)的唯一可行方法,SystemVerilog提供了多種產(chǎn)生隨機(jī)激勵(lì)的方法。圖3為本次設(shè)計(jì)中所用到的一些約束條件。

      圖3 事務(wù)約束條件

      事務(wù)驅(qū)動(dòng)模塊的工作,是通過(guò)信箱從事務(wù)產(chǎn)生器中取出事務(wù),并根據(jù)特定的DUT輸入信號(hào)的特性對(duì)其進(jìn)行處理,再通過(guò)接口輸送至DUT。因?yàn)轵?qū)動(dòng)器的結(jié)構(gòu)是取決于DUT,要根據(jù)此協(xié)議產(chǎn)生相應(yīng)的事務(wù),輸送至I2C總線。事務(wù)驅(qū)動(dòng)器相當(dāng)于DUT的軟核或者行為級(jí)描述。

      驗(yàn)證環(huán)境作為主機(jī)時(shí),發(fā)送至總線的事務(wù)依次需要START位,7位尋址信號(hào)和R/W位,R/W位決定主機(jī)對(duì)總線的讀或?qū)?。收到響?yīng)的ACK位再寫(xiě)數(shù)據(jù)到總線或從總線上讀數(shù)據(jù),每次讀周期后主機(jī)會(huì)發(fā)送響應(yīng)ACK位,而每次寫(xiě)周期后會(huì)等待從機(jī)發(fā)送的響應(yīng)ACK位。ACK位為1時(shí),主機(jī)要發(fā)送STOP位,則傳輸終止。ACK為0則傳輸繼續(xù)。在R/W位要改變時(shí),傳輸必須重新開(kāi)始,即收到或發(fā)出的ACK位為1,然后主機(jī)發(fā)送STOP。

      驗(yàn)證環(huán)境作為從機(jī)時(shí),DUT主機(jī)、START位、7位尋址信號(hào)和R/W位依次由DUT發(fā)出。而從機(jī)在發(fā)出對(duì)尋址信號(hào)的響應(yīng)ACK位后,DUT會(huì)做類似驗(yàn)證環(huán)境為主機(jī)時(shí)的操作。主機(jī)或從機(jī)在操縱總線時(shí),相應(yīng)的從機(jī)或主機(jī)必須釋放總線。

      2.2 驗(yàn)證環(huán)境流程

      圖4為驗(yàn)證環(huán)境在實(shí)驗(yàn)中運(yùn)行的流程,首先需要生成配置條件并把驗(yàn)證環(huán)境中的各模塊像事務(wù)生成、驅(qū)動(dòng)及監(jiān)控器等連接起來(lái),DUT復(fù)位后將會(huì)按照配置條件的運(yùn)行。在測(cè)試結(jié)束后將會(huì)自動(dòng)生成測(cè)試記錄,通過(guò)此文本文件檢查是否通過(guò)驗(yàn)證。

      圖4 驗(yàn)證環(huán)境流程圖

      2.3 仿真波形分析

      驗(yàn)證過(guò)程中產(chǎn)生的波形如圖5和圖6所示,圖5中 scl_bus、sda_bus為總線信號(hào),scl_loc、sda_loc 為驗(yàn)證環(huán)境的輸出信號(hào),sda_out、scl_out為DUT的輸出信號(hào)。在此波形中DUT為主機(jī),驗(yàn)證環(huán)境中的從機(jī)地址為0x66,則主機(jī)依次發(fā)送START位和7位尋址信號(hào)0x22時(shí)應(yīng)答位為1。重新發(fā)送尋址信號(hào)0x66及R/W位1后,主機(jī)與從機(jī)建立起連接并由從機(jī)寫(xiě)數(shù)據(jù)至主機(jī)。從波形可以看出,主機(jī)和從機(jī)的區(qū)別即是主機(jī)控制總線時(shí)鐘的生成。

      圖5 DUT做主機(jī)仿真波形

      圖6 DUT做從機(jī)仿真波形

      在產(chǎn)生256個(gè)事務(wù)后,DUT的配置做相關(guān)改變,主要目的是把DUT的所有情況都遍歷一遍,在總共產(chǎn)生20 000個(gè)事務(wù)后停止仿真。通過(guò) VCS軟件中的Coverage功能可以看到此次驗(yàn)證覆蓋了所有的功能點(diǎn),其中 line_coverage,condition_coverage,fsm_coverage 達(dá)到100%,toggle_coverage也幾乎達(dá)到了100%。

      從實(shí)驗(yàn)過(guò)程看出,基于SystemVerilog的方法在整個(gè)驗(yàn)證過(guò)程中不再需要人工干預(yù),實(shí)現(xiàn)了事務(wù)的自動(dòng)生成,驅(qū)動(dòng)、信號(hào)的監(jiān)控、比對(duì),最終生成報(bào)告并退出仿真。在仿真次數(shù)和運(yùn)行時(shí)間上,基于SystemVerilog的驗(yàn)證方法比使用Verilog的方法無(wú)論在仿真次數(shù)和運(yùn)行時(shí)間上都大大減少。

      文中設(shè)計(jì)的驗(yàn)證平臺(tái)結(jié)構(gòu)清晰,模塊相對(duì)獨(dú)立。針對(duì)文中的DUT,在其IP復(fù)用到其他系統(tǒng)芯片時(shí),驗(yàn)證平臺(tái)中的事務(wù)驅(qū)動(dòng)器,監(jiān)控器等都可直接重用,而接口模型可針對(duì)DUT不同的特性稍加修改。這樣可以大大節(jié)省驗(yàn)證平臺(tái)的開(kāi)發(fā)時(shí)間,提高驗(yàn)證效率。

      3 結(jié)束語(yǔ)

      通過(guò)采用SystemVerilog方法設(shè)計(jì)的DUT驗(yàn)證平臺(tái)與傳統(tǒng)的驗(yàn)證平臺(tái)相比更具有抽象層次、結(jié)構(gòu)清晰,隨機(jī)約束的方法可以預(yù)期到更多情況?;赟ystemVerilog設(shè)計(jì)的驗(yàn)證平臺(tái),模塊性強(qiáng)、易于理解和重用,驗(yàn)證過(guò)程是一個(gè)自動(dòng)化過(guò)程,節(jié)省了人力資源和時(shí)間,提高了驗(yàn)證效率。

      [1]賀珊,張多利,何偉.基于OpenVera的IIC總線接口功能驗(yàn)證平臺(tái)的搭建[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2007,30(3):261 -264.

      [2]詹文法.測(cè)試平臺(tái)的可重用性研究[D].合肥:合肥工業(yè)大學(xué),2004.

      [3]Aceellera.SystemVerilog 3.1a Language Reference Manual[M].Napa,California:Aceellera,2004.

      [4]克里斯·斯皮爾.SystemVerilog驗(yàn)證—測(cè)試平臺(tái)編寫(xiě)指南[M].張春,麥宋平,趙益新,譯.北京:科學(xué)出版社,2009.

      [5]夏宇聞.數(shù)字系統(tǒng)設(shè)計(jì)——Verilog實(shí)現(xiàn)[M].北京:高等教育出版社,2006.

      猜你喜歡
      信箱驅(qū)動(dòng)器事務(wù)
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      河湖事務(wù)
      藏起驅(qū)動(dòng)器號(hào)確保數(shù)據(jù)安全
      壓電陶瓷驅(qū)動(dòng)器的遲滯特性
      互動(dòng)信箱
      心信箱
      SiC基和Si基永磁同步電動(dòng)機(jī)驅(qū)動(dòng)器的比較
      新型低電壓大變形微驅(qū)動(dòng)器數(shù)值求解及仿真
      SQLServer自治事務(wù)實(shí)現(xiàn)方案探析
      天台县| 基隆市| 贵德县| 双辽市| 昌黎县| 河池市| 怀宁县| 浦城县| 长白| 曲沃县| 沙田区| 余庆县| 巨鹿县| 辽阳市| 洛浦县| 亳州市| 尉氏县| 定陶县| 博乐市| 平安县| 孟州市| 新晃| 黄大仙区| 瑞金市| 增城市| 普兰店市| 天镇县| 体育| 克东县| 顺昌县| 德江县| 辽中县| 红桥区| 普洱| 泽普县| 扎囊县| 荣成市| 沽源县| 墨脱县| 仁化县| 沅陵县|