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

        ?

        基于SystemVerilog的同步FIFO的驗(yàn)證平臺搭建

        2017-10-20 05:58:08邱玉泉劉世偉楊明翰
        無線電通信技術(shù) 2017年6期
        關(guān)鍵詞:時鐘代碼波形

        邱玉泉,曾 維,劉世偉,馮 坤,楊明翰

        (成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都610000)

        基于SystemVerilog的同步FIFO的驗(yàn)證平臺搭建

        邱玉泉,曾 維,劉世偉,馮 坤,楊明翰

        (成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都610000)

        針對于傳統(tǒng)驗(yàn)證平臺利用Verilog搭建的驗(yàn)證平臺效率低,準(zhǔn)確度低的局限性,提出了一種基于SystemVerilog系統(tǒng)級語言的驗(yàn)證平臺建模方法,可以有效地降低復(fù)雜度和設(shè)計風(fēng)險。由于FIFO在大多數(shù)工程中利用率極高,也極易出現(xiàn)問題,通過對FIFO模塊進(jìn)行驗(yàn)證平臺建模,可以有效地降低設(shè)計與驗(yàn)證的時序競爭風(fēng)險,實(shí)現(xiàn)驗(yàn)證平臺的復(fù)用和驗(yàn)證過程中的自動監(jiān)測,并且在搭建驗(yàn)證平臺的過程中闡述了基本的驗(yàn)證流程,以及結(jié)合SystemVerilog語言介紹了一些基本建模規(guī)則和技巧。

        驗(yàn)證流程;驗(yàn)證平臺;SystemVerilog;FIFO

        0 引言

        以往在采用Verilog搭建測試環(huán)境時,設(shè)計者難以對測試環(huán)境進(jìn)行分層設(shè)計,往往將大部分測試組件放在一個模塊中[1]。SystemVerilog則采用面向?qū)ο缶幊?Object Oriented Programming,OOP)的思想來完成驗(yàn)證平臺的分層建模。由于FIFO的功能并不復(fù)雜,因此將其中的一些放在一個組件來完成相關(guān)的功能[2]。

        FIFO是一種先進(jìn)先出的數(shù)據(jù)緩存器,根據(jù)工作時鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時鐘和寫時鐘為同一個時鐘,在時鐘沿來臨時同時發(fā)生讀寫操作,而異步FIFO指讀寫時鐘不一致,讀寫時鐘是相互獨(dú)立的[3]。

        1 FIFO測試驗(yàn)證與分析

        該FIFO使用16×8的FIFO,其接口包括datain寫入數(shù)據(jù)、dataout讀出數(shù)據(jù)、FIFO_push寫入使能信號、FIFO_o_valid讀出使能信號、rst復(fù)位信號、clk時鐘信號、FIFO_rdy_n數(shù)據(jù)丟失測試信號以及FIFO_almost_full接近滿指示信號[4]。

        該FIFO包括正常寫入寫出情況、輸出數(shù)據(jù)丟失情況。數(shù)據(jù)接近滿時警告指示,數(shù)據(jù)滿時無法寫入。通過上述功能的描述,可以制定以下驗(yàn)證計劃[5]:

        根據(jù)FIFO的功能要求,制定相應(yīng)的驗(yàn)證計劃。其驗(yàn)證計劃如下:① 驗(yàn)證FIFO是否能夠正常讀寫,其FIFO讀入數(shù)據(jù)與寫出數(shù)據(jù)一致;② FIFO接近滿時,fifo_almost_full拉高提示快滿的指示;③ 在丟失數(shù)據(jù)的情況下,判斷FIFO是否正常完成從FIFO中提取數(shù)據(jù),進(jìn)行輸出,保證輸出的數(shù)據(jù)不被丟失。

        2 搭建驗(yàn)證平臺

        根據(jù)FIFO的功能不復(fù)雜和滿足通用性的原則,搭建基于SystemVerilog的FIFO通用驗(yàn)證平臺,可以滿足基本FIFO的功能驗(yàn)證?,F(xiàn)根據(jù)FIFO的功能以及為了驗(yàn)證代碼的可維護(hù)性和可讀性以及擴(kuò)展性,將驗(yàn)證代碼分為頂層模塊、接口模塊和測試模塊3部分[6]。

        2.1 頂層模塊(TOP)

        頂層模塊包括時鐘產(chǎn)生以及DUT例化程序。若在后續(xù)的FIFO驗(yàn)證過程,需要增加FIFO的一些其他功能端口信號,只需在該模塊增加端口定義即可。時鐘的頻率也可以在此模塊修改參數(shù)模擬實(shí)際情況FIFO的頻率[7]。

        時鐘激勵主要程序如下[8]:其中Simulation_cylce為時鐘周期,每隔10 ns翻轉(zhuǎn)一次。

        parameter simulation_cycle =20;

        forever begin

        #(simulation_cycle/2) SystemClock =

        ~SystemClock;

        end

        2.2 接口模塊(interface)

        使用接口模塊為了提高設(shè)計復(fù)用,降低錯誤風(fēng)險,SystemVerilog采用接口(interface)對多個模塊共同使用一組信號,實(shí)現(xiàn)封裝,使之類似總線。該模塊主要是實(shí)現(xiàn)連接、同步以及2個或多個塊之間的通信功能,連接了設(shè)計塊和測試平臺[9],如圖1所示。

        圖1 橫跨兩個模塊的接口

        本文將接口設(shè)計代碼放在FIFO_io.sv文件中,用interface和endinterface將接口代碼包裹在里面,并且聲明信號的位寬以及接口類型,其部分代碼如下:

        interface fifo_io(input bit clk);

        logic rst_n;

        logic [DW-1:0] fifo2bus_data; //fifo to bus data

        clocking cb @(posedge clk);

        ………

        endclocking

        modport TB(clocking cb,output rst_n);

        endinterface

        上面fifo_io的接口聲明中,將接口中所要用到的所有信號都放入接口聲明中,并且使用clocking……endclocking將同一個時鐘域的信號包裹一起,這些代碼在時鐘clk上升沿發(fā)生時都處于激活狀態(tài)[10],同時使用modport對這些信號指定方向[11]。

        2.3 test模塊

        該文件主要編寫所有FIFO所有情況下的驗(yàn)證代碼,根據(jù)驗(yàn)證計劃,主要分為正常讀入寫出情況和輸出數(shù)據(jù)丟失情況。由于同步FIFO的功能較簡單,故driver、monitor以及compare都以task的形式放在test模塊中[12]。

        由于仿真是可以無限仿真的,在test中增加了對仿真時間的控制,有利于減少仿真時間,并達(dá)到需要的效果。并且在其中增加了S|vcdpluson語句,以便可以生成vdp的波形文件,若需要使用fsdb波形文件,則可以用 S|fsdbDumpfile(“xxx.fsdb”)、S|fsdbDumpvars命令[13]。

        仿真時間控制命令和生成波形文件的命令如下[14]:

        S|vcdpluson;

        # (300000*CLK_PRIOD);

        S|finish;

        根據(jù)驗(yàn)證計劃,F(xiàn)IFO正常讀寫情況下,輸入和輸出在同時鐘的控制下同步進(jìn)行,F(xiàn)IFO不會出現(xiàn)空和滿的情況,其模擬這種一直輸入和輸出的時序的主要代碼如下[15]:

        fifo.cb.fifo_i_data<=cnt;

        tdata[cnt]<=cnt;

        cnt<=cnt+1;

        repeat(1) @(fifo.cb);

        根據(jù)傳輸?shù)臋C(jī)制,丟失數(shù)據(jù)的現(xiàn)象不可避免。根據(jù)FIFO的需求,該FIFO對丟失數(shù)據(jù)有相應(yīng)的處理,故為了驗(yàn)證其FIFO的功能正確性,現(xiàn)根據(jù)需求模擬出FIFO丟失數(shù)據(jù)的情況。其核心代碼如下[16-17]:

        if(S| urandom_range(1,8)!=3) begin

        fifo.cb.fifo_rdy_n<=1′b0;

        ready<=1′b0;

        repeat(1) @(fifo.cb);

        end else begin

        fifo.cb.fifo_rdy_n<=1′b1;

        ready<=1′b1;

        repeat(1) @(fifo.cb);

        end

        代碼中根據(jù)S|urandom_range(1,8)!=3來模擬丟失數(shù)據(jù)的幾率,此處根據(jù)實(shí)際應(yīng)用場景來設(shè)置相應(yīng)的概率。該FIFO具有提前警示FIFO幾乎滿的功能,當(dāng)丟失數(shù)據(jù)個數(shù)超過24 h,其FIFO_almost_ful會拉高來警示FIFO快要滿了。根據(jù)DUT中的相應(yīng)的設(shè)計,其Verilog代碼實(shí)現(xiàn)如下:

        if( fifo_level > ({{(AW-3){1′b1}},3′b0}))

        fifo_almost_full <= 1′b1;

        if(fifo_level < ({1′b1,{(AW-1){1′b0}}}))

        fifo_almost_full <= 1′b0;

        在通常的情況下,經(jīng)過FIFO數(shù)據(jù)量很大,通過肉眼觀察波形來檢查FIFO輸入輸出的數(shù)據(jù)是否正確,其效率極低。特別是在信號繁多,數(shù)據(jù)和協(xié)議復(fù)雜的情況下,更需要一種機(jī)制來自動檢測DUT的功能和數(shù)據(jù)正確性。其monitor就是實(shí)現(xiàn)這種自動監(jiān)控輸出的機(jī)制,使驗(yàn)證更加高效可靠。以下是FIFO的monitor核心代碼實(shí)現(xiàn):

        if(fifo.cb.fifo_o_valid) begin

        rdata [r_cnt]<=fifo.cb.fifo_o_data;

        r_cnt<=r_cnt+1;

        repeat(1) @(fifo.cb);

        end else begin

        repeat(1) @(fifo.cb);

        end

        當(dāng)monitor監(jiān)測到輸出時的有效數(shù)據(jù)時,需要通過將輸出和輸入數(shù)據(jù)進(jìn)行自動比較,來檢測FIFO在傳輸數(shù)據(jù)的過程是否改變了相應(yīng)的值。其compare進(jìn)行比較的核心代碼實(shí)現(xiàn)如下[18]:

        if(tdata[i]==rdata[i]) begin

        S|display("tdata[%0d]=%0d",i,tdata[i],

        S|display("rdata[%0d]=%0d",i,rdata[i],

        S|display("-----SUCCESSFUL----- ");

        repeat(1) @(fifo.cb);

        end else begin

        S|display("tdata[%0d]=%0d",i,tdata[i],

        S|display("rdata[%0d]=%0d",i,rdata[i],

        S|display("-----FAILED----- ");

        repeat(1) @(fifo.cb);

        end

        3 驗(yàn)證結(jié)果的確認(rèn)

        驗(yàn)證結(jié)果的確認(rèn)主要通過自動監(jiān)測確認(rèn)和波形確認(rèn),根據(jù)驗(yàn)證結(jié)果來判斷FIFO設(shè)計是否符合設(shè)計要求。

        為了方便波形觀察,本文采用計數(shù)的方式對FIFO進(jìn)行輸入。其FIFO正常讀寫情況下波形如圖2所示,可以觀察到波形中的輸入輸出數(shù)據(jù)來初步確定FIFO滿足設(shè)計要求。

        圖2 FIFO正常讀寫波形圖

        圖3是在FIFO在丟失數(shù)據(jù)的情況下,可以看出FIFO在丟失數(shù)據(jù)時能夠?qū)?shù)據(jù)保存下來,等待下一時刻有效時將丟失數(shù)據(jù)重新發(fā)送出去。

        圖3 FIFO丟失數(shù)據(jù)波形圖

        當(dāng)丟失的數(shù)據(jù)超過24 h,fifo_almost_full幾乎滿信號拉高,如圖4所示。

        圖4 幾乎滿信號波形圖

        根據(jù)monitor和compare的代碼實(shí)現(xiàn),其自動監(jiān)測部分結(jié)果如下,通過打印的消息可得出結(jié)論,該FIFO設(shè)計滿足功能的實(shí)現(xiàn)。

        tdata[0]=0 300135

        rdata[0]=0 300135

        ------------SUCCESSFUL------------

        tdata[1]=1 300145

        rdata[1]=1 300145

        ------------SUCCESSFUL------------

        tdata[2]=2 300155

        rdata[2]=2 300155

        ------------SUCCESSFUL------------

        tdata[3]=3 300165

        rdata[3]=3 300165

        ------------SUCCESSFUL------------

        tdata[4]=4 300175

        rdata[4]=4 300175

        ------------SUCCESSFUL------------

        4 結(jié)束語

        在此,介紹了使用SystemVerilog進(jìn)行驗(yàn)證平臺建模的一般原則和技巧,以及面對建模過程中使用的一些接口,將自動檢測等新技術(shù)用于同步FIFO驗(yàn)證平臺的建模中,并使用VCS仿真驗(yàn)證工具進(jìn)行檢驗(yàn)。結(jié)果證明,使用這些建模技術(shù)的設(shè)計的驗(yàn)證平臺,很容易完成代碼的復(fù)用和驗(yàn)證過程中的自動監(jiān)測。

        [1] 張明.Verilog HDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,1999.

        [2] SystemVerilog Testbench Workshop Student Guide[M].California:Synopsys Customer Education Services,2011.

        [3] Cummings C E.Simualtion and Synthesis Techniques for Asyachrononous FIFO Design[M].USA:Sunburst Design,Inc.,2000.

        [4] 張毅,周成英.高速同步FIFO存儲器在數(shù)字信號源中的應(yīng)用[J].電子技術(shù),2003(11):48-50.

        [5] Lam W K.Hardwave Design Verification:Simulation and Formal Method-Based Approaches[M].Upper Saddle River,NJ:Prentice Hall,2005:81-120.

        [6] Janick B.Writing Testbench Using SystemVerilog[M].USA:Springer,2005.

        [7] Janick B,Eduard C,Hunter A L ,et al.SystemVerilog 驗(yàn)證方法學(xué)[M].夏宇聞,楊雷,陳先勇,等,譯.北京:北京航空航天大學(xué)出版社,2007.

        [8] 張春,麥宋平,趙益新,譯.SystemVerilog測試驗(yàn)證平臺編寫指南[M].北京:科學(xué)出版社,2009

        [9] Stuart S,Simon D,Peter F.SystemVerilog for Design[M]. US:Springer:2006.

        [10] Janick B.Write Testbenches Using SystemVerilog[M].USA:Springer,2006.

        [11] Lam W K.Hardwave Design Verification:Simulation and Formal Method-Based Approaches[M].Upper Saddle River,NJ:Prentice Hall,2005.

        [12] 常勇,申敏.一種基于事務(wù)的SoC功能驗(yàn)證方法[J].微計算機(jī)信息,2008,24(2):137-139.

        [13] 閆沫,張媛.基于SystemVerilog語言的設(shè)計驗(yàn)證技術(shù)[J].現(xiàn)代電子技術(shù),2008,31(6):8-11.

        [14] Bhadra J,Abadir M S,Wang L,et al.A Survey of Hybrid Techniques for Functional Verification[C]∥Design & Test of Computers,2007:112-122.

        [15] 鐘文楓.下一代芯片設(shè)計與驗(yàn)證語言:SystemVerilog(驗(yàn)證篇)[J].電子設(shè)計應(yīng)用,2008(12):61-67.

        [16] 劉杰,徐偉杰,夏宇聞,等.設(shè)計驗(yàn)證中的隨機(jī)約束[J].中國集成電路,2006(11):28-31.

        [17] Willamette H D L.SystemVerilog for Verification Training[M].USA:Willamette HDL,2008.

        VerificationPlatformofSynchronousFIFOBasedonSystemVerilog

        QIU Yu-quan,ZENG Wei,LIU Shi-wei,FENG Kun,YANG Ming-han

        (College of Information Science & Technology,Chengdu University of Technology,Chengdu Sichuan 610000,China)

        This paper mainly introduces the practical verification environment of synchronous FIFO based on SystemVerilog structures,which breaks through the traditional limitations in verification platform modeling,can greatly improve the efficiency of chip test and interface protocol,and can effectively reduce the risk of design. The FIFO verification platform in this paper can effectively reduce the risk of the time sequence competition between design and verification,realize verification platform reuse and automatic monitoring in verification process. The paper also describes basic verification process,and introduces some of basic rules and modeling skills combined with SystemVerilog language in the process of building verification platform.

        verification process; verification platform; SystemVerilog; FIFO

        TP391.8

        A

        1003-3114(2017)06-64-3

        10. 3969/j.issn. 1003-3114. 2017.06.16

        邱玉泉,曾維,劉世偉,等.基于SystemVerilog的同步FIFO的驗(yàn)證平臺搭建[J].無線電通信技術(shù),2017,43(6):64-66,96.

        [QIU Yuquan,ZENG Wei,LIU Shiwei,et al. Verification Platform of Synchronous FIFO Based on SystemVerilog [J]. Radio Communications Technology,2017,43(6):64-66,96.]

        2017-07-23

        邱玉泉(1992—),男,碩士研究生,主要研究方向:FPGA嵌入式設(shè)計與驗(yàn)證。曾 維(1976—),男,副教授,主要研究方向:數(shù)字電路設(shè)計和模擬電路分析。

        猜你喜歡
        時鐘代碼波形
        別樣的“時鐘”
        對《壓力容器波形膨脹節(jié)》2018版新標(biāo)準(zhǔn)的理解及分析
        古代的時鐘
        基于LFM波形的靈巧干擾效能分析
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        有趣的時鐘
        時鐘會開“花”
        欧美 国产 日产 韩国 在线 | 国产羞羞视频在线观看| 亚洲人成网站在线观看播放| 伊人久久综在合线亚洲不卡| 国产精品一区二区三级| 久久中文字幕久久久久91| 日本一区二区免费看片| 亚洲女同恋av中文一区二区| 狠狠cao日日橹夜夜十橹| 亚洲av成人无遮挡网站在线观看| 337p日本欧洲亚洲大胆精品| 黄 色 人 成 网 站 免 费 | 久久夜色精品国产三级| 三级日本理论在线观看| 最近中文字幕国语免费| 3344永久在线观看视频| 免费99视频| 女同性恋一区二区三区四区| 国产成人av区一区二区三| 麻豆69视频在线观看| 夜夜躁日日躁狠狠久久av| 日韩乱码人妻无码中文字幕久久| 色窝窝在线无码中文| 国内精品九九久久精品小草| 亚洲sm另类一区二区三区| 久久亚洲精品国产亚洲老地址| 国产精品白丝喷水在线观看| 在线观看国产精品91| 午夜亚洲精品视频网站| 国产精品会所一区二区三区| 国产两女互慰高潮视频在线观看| 无码国产精品一区二区免费模式 | 中文在线中文a| 人妻精品无码一区二区三区| 97人妻视频妓女网| 人妻丰满熟妇av一区二区| 日本最新一区二区三区在线| 亚洲熟妇色自偷自拍另类| 50岁熟妇大白屁股真爽| 中文字幕久热精品视频免费| 国产日产免费在线视频|