<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 編寫(xiě)高效的測試設計(testbenches)

編寫(xiě)高效的測試設計(testbenches)

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

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

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

   顯示結果

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

  下面是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操作不同。因為它的輸出是事件驅動(dòng)的。例中的變量$ realtime(由用戶(hù)賦值到當前的仿真時(shí)間)用于觸發(fā)信號列表中值的顯示。信號表由變量 $realtime開(kāi)始,跟隨其他將要顯示的信號名(clock, reset, load等)。以%開(kāi)始的關(guān)鍵字包含一個(gè)格式描述的表,用來(lái)控制如何格式化顯示信號列表中的每個(gè)信號的值。格式列表是位置確定的。每個(gè)格式說(shuō)明有序地與信號列表中的信號順序相關(guān)。比如%t說(shuō)明規定了$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準則了解完整的關(guān)鍵字及格式描述符)

   簡(jiǎn)單的設計

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

  以下是一個(gè)簡(jiǎn)單的用Verilog實(shí)現的設計,它實(shí)現了一個(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)單的測試設計示例移位寄存器設計的例子,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)鍵詞: 測試 HLL

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>