色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

            VHDL進(jìn)程塊和Verilog初始?jí)K與設(shè)計(jì)文件中的其他的進(jìn)程塊或初始?jí)K同時(shí)執(zhí)行。然而,在每一個(gè)進(jìn)程塊或初始?jí)K中,事件是按照書(shū)寫(xiě)的順序有序的規(guī)劃的。這說(shuō)明在仿真時(shí)間零點(diǎn)并發(fā)的每一個(gè)塊激勵(lì)的順序。多模塊應(yīng)該被用來(lái)將復(fù)雜的激勵(lì)順序分解為有 更好的可讀性和方便維護(hù)的代碼。

          本文引用地址:http://cafeforensic.com/article/84843.htm

             顯示結(jié)果

            在verilog中推薦使用關(guān)鍵字$display 和 $monitor 顯示結(jié)果。雖然vhdl沒(méi)有等效的顯示指令,它提供了std_textio標(biāo)準(zhǔn)文本輸入輸出程序包。它允許文件的i/o重定向到顯示終端窗口(作為這個(gè)技術(shù)的示例,參看下面的自較驗(yàn)查驗(yàn)證設(shè)計(jì))

            下面是verilog示例,它將在終端屏幕上顯示一些值。

            // pipes the ASCII results to the terminal or text editor

            initial begin

            $timeformat(-9,1,"ns",12);

            $display(" Time Clk Rst Ld SftRg Data Sel");

            $monitor("%t %b %b %b %b %b %b", $realtime,

            clock, reset, load, shiftreg, data, sel);

            end

            關(guān)鍵字 $display在終端屏幕上輸出引用的附加的說(shuō)明文字(“。。。”).關(guān)鍵字$monitor操作不同。因?yàn)樗妮敵鍪鞘录?qū)動(dòng)的。例中的變量$ realtime(由用戶(hù)賦值到當(dāng)前的仿真時(shí)間)用于觸發(fā)信號(hào)列表中值的顯示。信號(hào)表由變量 $realtime開(kāi)始,跟隨其他將要顯示的信號(hào)名(clock, reset, load等)。以%開(kāi)始的關(guān)鍵字包含一個(gè)格式描述的表,用來(lái)控制如何格式化顯示信號(hào)列表中的每個(gè)信號(hào)的值。格式列表是位置確定的。每個(gè)格式說(shuō)明有序地與信號(hào)列表中的信號(hào)順序相關(guān)。比如%t說(shuō)明規(guī)定了$realtime的值是時(shí)間格式。并且第一個(gè)%b說(shuō)明符格式化clock的值是二進(jìn)制形式。verilog 提供附加的格式說(shuō)明,比如%h用于說(shuō)明十六進(jìn)制,%d說(shuō)明十進(jìn)制,%c說(shuō)明顯示為八進(jìn)制。(參見(jiàn)verilog準(zhǔn)則了解完整的關(guān)鍵字及格式描述符)

             簡(jiǎn)單的設(shè)計(jì)

            簡(jiǎn)單的設(shè)計(jì)實(shí)例化用戶(hù)設(shè)計(jì),然后提供相應(yīng)的激勵(lì)。輸出被圖形化顯示在仿真器的波形窗口里或者作為文本發(fā)送到用戶(hù)的終端或者是管道輸出文本。

            以下是一個(gè)簡(jiǎn)單的用Verilog實(shí)現(xiàn)的設(shè)計(jì),它實(shí)現(xiàn)了一個(gè)移位寄存器的功能。

            module shift_reg (clock, reset, load, sel, data, shiftreg);

            input clock;

            input reset;

            input load;

            input [1:0] sel;

            input [4:0] data;

            output [4:0] shiftreg;

            reg [4:0] shiftreg;

            always @ (posedge clock)

            begin

            if (reset)

            shiftreg = 0;

            else if (load)

            shiftreg = data;

            else

            case (sel)

            2’b00 : shiftreg = shiftreg;

            2’b01 : shiftreg = shiftreg << 1;

            2’b10 : shiftreg = shiftreg >> 1;

            default : shiftreg = shiftreg;

            endcase

            end

            endmodule
           
            以下是簡(jiǎn)單的測(cè)試設(shè)計(jì)示例移位寄存器設(shè)計(jì)的例子,verilog描述。

            module testbench; // declare testbench name

            reg clock;

            reg load;

            reg reset; // declaration of signals

            wire [4:0] shiftreg;

            reg [4:0] data;

            reg [1:0] sel;

            // instantiation of the shift_reg design below

            shift_reg dut(.clock (clock),

            .load (load),

            .reset (reset),

            .shiftreg (shiftreg),

            .data (data),

            .sel (sel));

            //this process block sets up the free running clock

            initial begin

            clock = 0;

            forever #50 clock = ~clock;

            end

            initial be gin// this process block specifies the stimulus.



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

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉