<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 編寫高效的測(cè)試設(shè)計(jì)(testbenches)

          編寫高效的測(cè)試設(shè)計(jì)(testbenches)

          作者: 時(shí)間:2008-06-26 來(lái)源:電子開(kāi)發(fā)網(wǎng) 收藏

            Data_in_t[6] =10’b1111011111;

          本文引用地址:http://www.ex-cimer.com/article/84843.htm

            Data_in_t[7] =10’b1110111111;

            Data_in_t[8] =10’b1101111111;

            Data_in_t[9] =10’b1011111111;

            Data_in_t[10]=10’b0111111111;

            Data_in_t[11]=10’b1111111110;

            Data_in_t[12]=10’b1111111110;

            Data_in_t[13]=10’b1111111101;

            Data_in_t[14]=10’b1111111011;

            Data_in_t[15]=10’b1111110111;

            Data_in_t[16]=10’b1111101111;

            Data_in_t[17]=10’b1111011111;

            Data_in_t[18]=10’b1110111111;

            Data_in_t[19]=10’b1101111111;

            Data_in_t[20]=10’b1011111111;

            Data_in_t[21]=10’b0111111111;

            Data_in_t[22]=10’b1111111110;

            Data_in_t[23]=10’b1111111110;

            Data_in_t[24]=10’b1111111101;

            Data_in_t[25]=10’b1111111011;

            end

            reg GSR;

            assign glbl.GSR = GSR;

            initial begin

            GSR = 1;

            // ///////////////////////////////

            // Wait till Global Reset Finished

            // ///////////////////////////////

            #100 GSR = 0;

            end

            // ////////////////

            // Create the clock

            // ////////////////

            initial begin

            tbclk = 0;

            // Wait till Global Reset Finished, then cycle clock

            #100 forever #60 tbclk = ~tbclk;

            end

            initial begin

            // //////////////////////////

            // Initialize All Input Ports

            // //////////////////////////

            tbreset = 1;

            tbstrtstop = 1;

            // /////////////////////

            // Apply Design Stimulus

            // /////////////////////

            #240 tbreset = 0;

            tbstrtstop = 0;

            #5000 tbstrtstop = 1;

            #8125 tbstrtstop = 0;

            #500 tbstrtstop = 1;

            #875 tbreset = 1;

            #375 tbreset = 0;

            #700 tbstrtstop = 0;

            #550 tbstrtstop = 1;

            // /////////////////////////////////////////////////////

            // simulation must be halted inside an initial statement

            // /////////////////////////////////////////////////////

            // #100000 $stop;

            end

            integer i,errors;

            ///////////////////////////////////////////////////////////////////

            ///////////////

            // Block below compares the expected vs. actual results

            // at every negative clock edge.

            /////////////////////////////////////////////////////////// ////////
            ///////////////

            always @ (posedge tbclk)

            begin

            if (tbstrtstop)

            begin

            i = 0;

            errors = 0;

            end

            else

            begin

            for (i = 1; i <= cycles; i = i + 1)

            begin

            @(negedge tbclk)

            // check result at negedge

            $display("Time%d ns; TBSTRTSTOP=%b; Reset=%h; Expected

            TenthsOut=%b; Actual TenthsOut=%b", $stime, tbstrtstop, tbreset,

            Data_in_t[i], tbtenthsout);

            if ( tbtenthsout !== Data_in_t[i] )

            begin

            $display(" ------ERROR. A mismatch has occurred-----");

            errors = errors + 1;

            end

            end

            if (errors == 0)

            $display("Simulation finished Successfully.");

            else if (errors > 1)

            $display("%0d ERROR! See log above for details.",errors);

            else

            $display("ERROR! See log above for details.");

            #100 $stop;

            end

            end

            endmodule

            這種簡(jiǎn)單的自較驗(yàn)設(shè)計(jì)可以轉(zhuǎn)換到任何場(chǎng)合----當(dāng)然,預(yù)期的輸出值和信號(hào)的名字在重用時(shí)是需要更改的。如果不需要每個(gè)時(shí)鐘沿檢查,需要的話可以修改for-loop結(jié)構(gòu)。

            如果仿真成功,下圖的信息就會(huì)在顯示終端上顯示:


          上一頁(yè) 1 2 3 4 下一頁(yè)

          關(guān)鍵詞: 測(cè)試 HLL

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();