• 
    

    
    

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

      基于VMM的LTE 小區(qū)搜索模塊驗證

      2013-12-14 01:36:34鄭建宏
      關(guān)鍵詞:方法學(xué)覆蓋率數(shù)據(jù)包

      郭 旭,鄭建宏

      (重慶郵電大學(xué)通信與信息工程學(xué)院,重慶400065)

      0 引言

      摩爾定律指出,芯片上集成電路的數(shù)量每隔十八個月翻一倍。近年來,在百萬門級ASIC項目的研發(fā)過程中,驗證工作占用了大部分的設(shè)計開發(fā)時間。隨著芯片設(shè)計復(fù)雜度的不斷提高,功能驗證的復(fù)雜度也以指數(shù)增長,功能驗證已經(jīng)成為了芯片研發(fā)的瓶頸。因此,如何提高芯片驗證的效率,已經(jīng)變得越來越重要。

      SystemVerilog語言建立在Verilog語言的基礎(chǔ)上,是IEEE Std 1364-2001 Verilog標(biāo)準(zhǔn)的擴展增強,并兼容Verilog2001,已經(jīng)成為了新一代硬件設(shè)計和驗證語言[1]。VMM(verifacation methodology manual)是Synopsys公司推出的基于SystemVerilog的驗證方法學(xué),已經(jīng)得到了業(yè)內(nèi)的廣泛推廣 ?;赩MM驗證方法學(xué)搭建起來的驗證平臺具有良好的結(jié)構(gòu)性和可重用性,大大縮短了搭建驗證平臺所花費的時間。同時,VMM驗證方法學(xué)支持帶約束的隨機激勵生成、自動對比數(shù)據(jù)以及功能覆蓋率驅(qū)動等功能,提高了驗證的完備性和驗證的效率,縮短了芯片的開發(fā)周期。

      1 SystemVerilog和VMM方法學(xué)簡介

      1.1 SystemVerilog

      SystemVerilog是新興的一種工程語言:硬件描述與驗證語言(hardware description and verification language,HDVL)。SystemVerilog使得工程師不但可以建模大型的復(fù)雜的ASIC設(shè)計,并且可以驗證這些ASIC設(shè)計的功能是否達到了預(yù)期的目標(biāo)[3]。

      SystemVerilog的優(yōu)點如下:①語言單一,是同時支持設(shè)計與驗證的語言;②支持帶約束的隨機激勵的產(chǎn)生;③支持覆蓋率統(tǒng)計;④支持?jǐn)嘌缘尿炞C;⑤提供面向?qū)ο蟮木幊?,有助于采用事?wù)級的驗證,提高驗證的重用性[4]。

      作為一門新興的語言,SystemVerilog得到了來自SYNOPSYS,Mentor Graphic和Cadence三大 EDA廠家的大力支持,已經(jīng)被業(yè)界各大公司廣泛應(yīng)用到實際的研發(fā)項目中。Verilog編譯仿真器(verilog compile simulation,VCS),QuestaSim 以及 Incisive等多種仿真器都支持SystemVerilog的編譯仿真,VMM等基于SystemVerilog的驗證方法學(xué)也被廣泛采用;SystemVerilog已逐漸取代VERA語言和e語言成為設(shè)計工程師和驗證工程師的首選。

      1.2 VMM方法學(xué)簡介

      VMM驗證方法學(xué),是Synopsys公司推出的基于SystemVerilog語言建立的事務(wù)級的驗證環(huán)境。驗證工程師能夠通過使用VMM驗證方法學(xué)提供的帶約束的隨機激勵、層次化結(jié)構(gòu)以及覆蓋率驅(qū)動等特點,來提高現(xiàn)今的驗證效率,構(gòu)建一個可重用的和通用的驗證平臺。VMM驗證方法學(xué)是一種層次化的架構(gòu)、事務(wù)級通信的驗證方法學(xué),VMM驗證方法學(xué)的基本結(jié)構(gòu)分為5層,即:測試層、場景層、功能層、命令層和信號層,每個層次都有獨立的功能,驗證平臺的層次化結(jié)構(gòu)如圖1所示[5]。

      場景層包含配置器(configure)和生成器(generator),此層位于測試層之下,可以產(chǎn)生帶有一定約束關(guān)系的隨機事務(wù)。場景層是以隨機的序列和次序生成場景,從而產(chǎn)生相應(yīng)場景的事務(wù)數(shù)據(jù)流。

      圖1 VMM驗證平臺結(jié)構(gòu)Fig.1 Structure of VMM verification platform

      功能層一般包含事務(wù)驅(qū)動器(transactor)、記分板(scoreboard)以及比較器(checker),它與高層模塊的功能相關(guān)。功能層除了包含一些添加的協(xié)議檢查器外,與物理層的信號傳輸沒有必然的聯(lián)系,它可以判斷設(shè)計功能的正確性。

      指令層一般包括驅(qū)動器(driver)、信號監(jiān)視器(monitor)、總線功能模型(bus function model,BFM),這些組件都與設(shè)計的物理層協(xié)議有關(guān)。指令層能夠通過信號層來驅(qū)動被測設(shè)計(design under test,DUT)的管腳,同時為功能層提供事務(wù)級的傳輸通道。

      信號層為DUT提供信號級的連接,它能夠采用SystemVerilog中一些特殊的結(jié)構(gòu),例如接口、端口、時鐘等,將設(shè)計模塊的管腳名進行抽象,從而使得當(dāng)設(shè)計模塊的管腳發(fā)生變化時不需要更改驗證環(huán)境。

      2 LTE小區(qū)搜索模塊驗證平臺搭建

      2.1 LTE小區(qū)搜索過程簡介

      移動終端(user equipment,UE)剛開機時,必須首先確定出LTE小區(qū)所在的頻點,這是通過計算頻點處的接收的信號強度指示 (received signal strength indicator,RSSI)來判斷的,確定了系統(tǒng)頻點后,需要檢測出主同步信號(primary synchronization signal,PSS)所在的位置,這樣UE就能夠獲取小區(qū)ID的一部分信息了,再利用這一部分信息去檢測輔同步信號(secondary synchronization signal,SSS)就可以獲得關(guān)于小區(qū)ID的全部信息,以及幀定時、循環(huán)前綴(cyclic prefix,CP)長度、雙工模式等信息。去檢測物理廣播信道 (primary broadcast channel,PBCH)以獲得更詳細(xì)的小區(qū)信息。

      2.2 LTE小區(qū)搜索模塊功能介紹

      LTE小區(qū)搜索模塊主要完成的功能是小區(qū)初始搜索中對扇區(qū)ID和小區(qū)組ID的檢測,即檢測主同步信號PSS和輔同步信號SSS,以獲得所在小區(qū)的物理層小區(qū)ID和與該小區(qū)的幀同步,用以UE的后續(xù)接入過程。小區(qū)搜索模塊中快速傅立葉變換(fast fourier transform,F(xiàn)FT)功能采用基2的時間抽取運算方法。除了FFT功能外,小區(qū)搜索模塊還具備頻域軟糾正、歸一化因子和最大值輸出、本地PSS和SSS的產(chǎn)生、SSS信號的分段相關(guān)等功能。

      2.3 小區(qū)搜索模塊所需驗證功能點

      1)寄存器的復(fù)位值和讀寫功能;

      2)存儲器的讀寫功能和清零功能;

      3)中斷使能情況下,中斷信號能正確到來;

      4)中斷屏蔽情況下,中斷標(biāo)志寄存器能正確置位和中斷標(biāo)志寄存器清除功能;

      5)功能時鐘和接口時鐘變頻功能;

      6)數(shù)字信號處理(digital signal processing,DSP)啟動模塊功能;

      7)直接內(nèi)存存取(direct memory access,DMA)啟動模塊功能;

      8)輸入輸出數(shù)據(jù)控制功能;

      9)輸出數(shù)據(jù)按比特取反功能;

      10)FFT功能和FFT的最大值及歸一化因子輸出功能;

      11)頻域軟糾正功能;

      12)PSS,SSS序列產(chǎn)生功能;

      13)滑動相關(guān)功能;

      14)SSS序列的分段相關(guān)功能;

      15)PSS,SSS序列的沖激響應(yīng)產(chǎn)生功能;

      16)最大值查找功能;

      17)M0值估計功能;

      18)M1值估計功能。

      2.4 模塊級分層驗證平臺搭建

      根據(jù)對LTE小區(qū)搜索模塊的功能、接口時序和協(xié)議的分析理解,整理了本模塊所需驗證的功能點,采用了VMM驗證方法學(xué),搭建了小區(qū)搜索模塊的驗證平臺,驗證平臺的結(jié)構(gòu)如圖2所示。

      1)驗證環(huán)境(environment):VMM驗證方法學(xué)提供了運行驗證環(huán)境的基本類vmm_env,其采用了9步順序執(zhí)行的機制:gen_cfg(隨機化配置參數(shù))、build(建立并且連接環(huán)境組件)、reset_dut(DUT硬件復(fù)位)、cfg_dut(配置 DUT的寄存器)、start(開始運行所用環(huán)境組件)、wait_for_end(等待仿真結(jié)束條件)、stop(停止運行所用環(huán)境變量)、cleanup(檢查記錄狀態(tài),清除剩余數(shù)據(jù))、report(報告仿真結(jié)果)。小區(qū)搜索模塊驗證平臺所用的事務(wù)都通過繼承的vmm_env類生成例化,并將驗證組件按照驗證平臺結(jié)構(gòu)圖連接起來,在vmm_env的框架中運行。

      圖2 小區(qū)搜索驗證平臺結(jié)構(gòu)Fig.2 Structure of cell search verification platform

      2)配置(configure):利用配置組件對小區(qū)搜索模塊的工作模式進行了隨機配置,并且對各個寄存器在不同的工作模式下進行了約束隨機配置,以達到對相應(yīng)功能進行驗證的目的。小區(qū)搜索模塊的工作模式分為只進行FFT/快速傅里葉逆變換(inverse fast fourier transform,IFFT)、只進行頻域軟糾正、FFT結(jié)合頻域軟糾正、PSS/SSS序列生成、滑動相關(guān)、FFT結(jié)合SSS分段相關(guān)、FFT結(jié)合PSS/SSS的沖激信號生成、主峰值查找、M0值估計、M1值估計等。配置組件的部分代碼如圖3所示。

      3)數(shù)據(jù)包(packet):對DUT的輸入輸出數(shù)據(jù)進行定義,并約束輸入數(shù)據(jù)的位寬、取值范圍、長度等[6]。對小區(qū)搜索模塊來說,輸入數(shù)據(jù)是隨機的16 bit的有符號數(shù),這些數(shù)據(jù)需要進行FFT/IFFT處理。數(shù)據(jù)包能夠通過傳輸通道(channel)傳遞給其他的驗證組件。

      4)數(shù)據(jù)包生成器(generator):用于生成帶有約束的隨機數(shù)據(jù)包。小區(qū)搜索模塊的生成器通過調(diào)用VMM標(biāo)準(zhǔn)庫中的宏vmm_atomic_gen自動產(chǎn)生,不需要驗證人員手動創(chuàng)建,大大節(jié)省了搭建驗證平臺的時間。

      5)廣播器(broadcast):小區(qū)搜索模塊的廣播器用于將數(shù)據(jù)包生成器產(chǎn)生的同一個數(shù)據(jù)包分別發(fā)送給驅(qū)動器和參考模型,實現(xiàn)數(shù)據(jù)包的重復(fù)利用,并保證DUT和參考模型輸入數(shù)據(jù)的一致性。

      圖3 配置類代碼Fig.3 Part of code for configure class

      6)驅(qū)動器(driver):小區(qū)搜索模塊的驅(qū)動器從廣播器中得到數(shù)據(jù)包,根據(jù)配置組件中的配置信息對DUT進行驅(qū)動,并且Driver將模擬ARM對DUT進行配置。

      7)接收器(receiver):小區(qū)搜索模塊的接收器將判斷中斷是否來臨,并且及時清除中斷。在中斷到來后,接收器從存儲器中讀出DUT的結(jié)果數(shù)據(jù),結(jié)合總線的數(shù)據(jù)位寬和數(shù)據(jù)包的數(shù)據(jù)類型對數(shù)據(jù)格式進行處理,并通過傳輸通道將處理后的數(shù)據(jù)傳送給記分板。

      8)參考模型(reference model):針對小區(qū)搜索模塊,參考模型實現(xiàn)了與DUT一樣的功能,但采用不同于設(shè)計的描述語言。參考模型的主要功能是根據(jù)輸入的數(shù)據(jù)包進行相應(yīng)的運算,并產(chǎn)生正確的結(jié)果數(shù)據(jù)后傳送給記分板,便于與DUT的輸出結(jié)果進行對比,確認(rèn)DUT的代碼中是否存在的錯誤。

      9)記分板(scoreboard):小區(qū)搜索模塊的記分板從通道中分別取得接收器和參考模型的輸出數(shù)據(jù),并調(diào)用packet中的對比函數(shù),完成對數(shù)據(jù)的自動對比。對比時,首先對比數(shù)據(jù)的長度,然后根據(jù)索引,對各個數(shù)據(jù)分別進行對比。在對比過程中,任意一個數(shù)據(jù)對比錯誤都會終止仿真,并打印錯誤信息,便于找到錯誤的根源。

      10)覆蓋(coverage):對小區(qū)搜索模塊的工作模式、數(shù)據(jù)的有效位寬、時鐘頻率等各功能點的覆蓋情況進行統(tǒng)計,達到覆蓋率快速收斂的目的 。當(dāng)功能覆蓋率收斂到一定值以后,便可自動停止仿真。

      11)測試?yán)?testcase):根據(jù)小區(qū)搜索模塊的不同應(yīng)用場景,編寫不同的測試?yán)?]。在每一個測試?yán)?,對各組件進行繼承,對隨機變量進行新的約束,使DUT工作在特定的某項功能下。以產(chǎn)生本地SSS序列的測試?yán)秊槔瑴y試?yán)a如圖4所示。首先,由于在配置組件中,對每種功能場景下每個寄存器的配置值進行了約束,所以在測試?yán)?,只須繼承驗證環(huán)境的配置類,并添加一個新的約束,將該測試?yán)\行的功能場景約束為只運行本地SSS產(chǎn)生在這個功能即可。接著,對驗證環(huán)境和新的配置類進行創(chuàng)建(new方法),并將新的配置類對象賦給驗證環(huán)境的配置類對象。最后,調(diào)用run()任務(wù),對9個機制進行順序執(zhí)行,其中已經(jīng)調(diào)用過的gen_cfg和build不會執(zhí)行。

      圖4 SSS產(chǎn)生功能測試?yán)鼺ig.4 Testcase of SSS generate function

      從圖4中可以看出,采用VMM驗證方法學(xué)搭建的驗證平臺,測試?yán)糠值拇a是十分簡潔的,用少量的代碼就能對目標(biāo)功能進行驗證。對于不同場景下的測試?yán)?,只須修改約束中場景的約束,節(jié)省了編寫測試?yán)臅r間。

      3 驗證結(jié)果

      本驗證工作采用系統(tǒng)環(huán)境為UNIX操作系統(tǒng)的Solrais9,使用Synopsys公司的VCS仿真器,對小區(qū)搜索模塊進行了全面的功能驗證。

      以產(chǎn)生本地SSS序列的功能為例,仿真波形如圖5所示。

      從圖5中可以看出,小區(qū)搜索模塊的SSS序列產(chǎn)生功能結(jié)束后,能正常產(chǎn)生中斷信號(fft_irq信號線拉高),并保持32個ZSP時鐘周期。中斷產(chǎn)生后,從存儲器中能夠讀取模塊運算的結(jié)果數(shù)據(jù)。經(jīng)過與參考模型產(chǎn)生的正確輸出數(shù)據(jù)對比,證明在不同的扇區(qū)ID和小區(qū)組ID情況下,小區(qū)搜索模塊產(chǎn)生的本地SSS信號是正確的,該功能能達到預(yù)期的目標(biāo)。

      圖5 SSS產(chǎn)生功能波形Fig.5 Undee figure of SSS generate function

      驗證工作完成后(即驗證過程中發(fā)現(xiàn)的BUG都已經(jīng)解決且所需驗證的功能點均驗證通過),將所有的測試?yán)匦逻\行一遍,對代碼的覆蓋率進行統(tǒng)計。最終的覆蓋率統(tǒng)計結(jié)果如圖6所示。

      圖6 覆蓋率統(tǒng)計Fig.6 Statistics figure of coverage

      從圖6中我們可以看出斷言覆蓋率和功能覆蓋率均達到了100%,而行覆蓋率、條件覆蓋率、翻轉(zhuǎn)覆蓋率和狀態(tài)機覆蓋率都沒有達到100%。經(jīng)過分析,行覆蓋率沒有達到100%的原因是設(shè)計代碼中存在一些冗余代碼,模塊運行中不會涉及到這些代碼,這些冗余代碼是應(yīng)該被刪除掉的。條件覆蓋率為95.37%,原因是存在正常情況下不會出現(xiàn)的條件。翻轉(zhuǎn)覆蓋率沒有達到100%的原因是一些變量定義的位寬比實際使用的位寬大,實際運行中多余的位寬的數(shù)據(jù)始終為0,不會翻轉(zhuǎn)到1。狀態(tài)機覆蓋率只有79.91%,是所有覆蓋率中最低的,造成這個結(jié)果的原因是設(shè)計代碼中考慮了中途斷電的問題,設(shè)計了許多正常工作狀態(tài)會跳往空閑狀態(tài),而在正常工作中是不會出現(xiàn)這樣的跳轉(zhuǎn)。經(jīng)過對覆蓋率的分析,此驗證工作達到了預(yù)期的目標(biāo),所有的功能點都覆蓋到了,沒有遺漏。

      在LTE小區(qū)搜索模塊驗證完成后,模塊的質(zhì)量評估(quality assurance,QA)統(tǒng)計數(shù)據(jù)與以前相同規(guī)模和難度的模塊的統(tǒng)計數(shù)據(jù)比較如表1所示。由于本次驗證采用了VMM驗證方法學(xué)搭建驗證平臺,搭建驗證平臺的時間減少了1/3。層次化的驗證平臺結(jié)構(gòu),降低了編寫測試?yán)臅r間,提高了測試?yán)膱?zhí)行速度。對于功能覆蓋率和斷言的引入比較方便,測試?yán)脖容^靈活,覆蓋率得到了提高。因此,整個模塊驗證所用時間縮短了1個多月,并且驗證效率和驗證的完備性都得到了提高。

      表1 驗證時間對比Tab.1 Verification time comparison

      4 結(jié)論

      本文以SystemVerilog語言和VMM驗證方法學(xué)為基礎(chǔ)構(gòu)建的驗證平臺,利用帶約束的隨機激勵、斷言、覆蓋率驅(qū)動等先進的驗證技術(shù),完成了對小區(qū)搜索模塊的功能點的驗證,并且得到了覆蓋率統(tǒng)計結(jié)果,使驗證工作更加完備。VMM驗證架構(gòu)具有良好的代碼重用性,可以縮短搭建驗證平臺所用的時間,能夠高效地完成復(fù)雜設(shè)計的驗證,并且極大地提高了可靠性。

      [1]CHRIS Spear.SystemVerilog for Verification[M].New York:Springer,2006:1-18.

      [2]JANICK Bergeron,EDUARD Cemy,ALAN Hunter.Verification Methodology Manual for System Verilog[M].New York:Springer,2005:10-16.

      [3]鐘文楓.SystemVerilog與功能驗證[M].北京:機械工業(yè)出版社,2010:5-9.ZHONG Wenfeng.SystemVerilog and functional verification[M].Beijing:China Machine Press,2010:5-9.

      [4]Accellera Organizationtion.SystemVerilog3.1 a Language Reference Manual Accellera’s Extensions to Verilog[M].California:Accellera,2004:30-45.

      [5]BERGERON Janick.Writing Testbenches using System Verilog[M].New York:Springer,2006:5-8.

      [6]楊鑫,徐偉俊,陳先勇.SystemVerilog中的隨機化激勵[J].中國集成電路,2007,23(1):58-62.YANG Xin,XU Weijun,CHEN Xianyong.Random excitation in SystemVerilog [J].China integrated circuit,2007,23(1):58-62.

      [7]ANDREW Piziali. FunctionalVerification Coverage Measurement and Analysis[M].New York:Kluwer Academic Publisher,2004:13-15

      [8]方穎立.基于VMM的寄存器抽象層驗證[J].電子設(shè)計技術(shù),2007,35(4):103-104.FANG Yingli.The register abstraction layer verification based on VMM[J].Electronic design technology,2007,35(4):103-104.

      猜你喜歡
      方法學(xué)覆蓋率數(shù)據(jù)包
      全球首個氫燃料電池汽車碳減排方法學(xué)獲批
      民政部等16部門:到2025年村級綜合服務(wù)設(shè)施覆蓋率超80%
      大型學(xué)術(shù)著作《藥理研究方法學(xué)》出版發(fā)行
      我國全面實施種業(yè)振興行動 農(nóng)作物良種覆蓋率超過96%
      SmartSniff
      基于噴丸隨機模型的表面覆蓋率計算方法
      追蹤方法學(xué)在院前急救護理安全管理中的應(yīng)用
      人降鈣素原定量檢測方法學(xué)評價
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
      基于覆蓋率驅(qū)動的高性能DSP指令集驗證方法
      計算機工程(2014年6期)2014-02-28 01:28:03
      荣成市| 平罗县| 池州市| 双流县| 南京市| 庐江县| 来宾市| 阿拉善左旗| 庄河市| 建平县| 辽宁省| 大同市| 黔东| 循化| 台中市| 垣曲县| 阜平县| 托克逊县| 余庆县| 扎囊县| 阳西县| 临桂县| 墨脱县| 壤塘县| 永州市| 揭西县| 通山县| 平原县| 合水县| 舟曲县| 辽源市| 濮阳县| 新干县| 湾仔区| 莱州市| 正镶白旗| 五指山市| 乐业县| 铜山县| 横山县| 伊春市|