// (C) Tomonori Izumi , Oct. 2007 // リハビリ問題 組合回路編 4ビットALU // テストベンチの例 // Icarus Verilog の場合のシミュレーション実行例 // iverilog -o tb_alu.vvp tb_alu.v alu.v ; vvp tb_alu.vvp // NC-Verilog + SimVision の場合のシミュレーション実行例 // ncverilog tb_alu.v alu.v +gui +ncdebug -s `timescale 1ns / 1ns module top; integer i,j,k; reg [3:0] x,y; reg [1:0] func; wire [3:0] z; /* モジュールの使用(実体化)。入力は reg で与え、出力は wire で受ける。 */ alu_module alu1(.mode(func), .a(x), .b(y), .o(z)); /* initial begin ... end で与える信号系列を作成する */ /* 最後に $finish を忘れずに */ initial begin $dumpfile("tb_alu.vcd"); $dumpvars; for (i=0;i<4;i=i+1) begin for (j=0;j<16;j=j+1) begin for (k=0;k<16;k=k+1) begin x<=k; y<=j; func<=i; #10; $display("time=%5d func=%2b x=%4b(%2d) y=%4b(%2d) z=%4b(%2d)",$time, func, x, x, y, y, z, z); end end end $finish; end endmodule