iverilog/ivtest/vpi/pr2048463.v

62 lines
1.4 KiB
Verilog

/**********************************************************************
* $my_monitor example -- Verilog HDL test bench.
*
* Verilog test bench to test the $my_monitor PLI application.
*
* For the book, "The Verilog PLI Handbook" by Stuart Sutherland
* Copyright 1999 & 2001, Kluwer Academic Publishers, Norwell, MA, USA
* Contact: www.wkap.il
* Example copyright 1998, Sutherland HDL Inc, Portland, Oregon, USA
* Contact: www.sutherland-hdl.com
*********************************************************************/
`timescale 1ns / 1ns
module test;
reg a, b, ci, clk;
wire sum, co;
addbit i1 (a, b, ci, sum, co);
initial
$my_monitor(i1);
initial
begin
#0 a = 0;
#0 b = 0;
#0 ci = 0;
#10 a = 1;
#10 a = 0;
#10 b = 1;
#10 a = 1;
#10 $finish(0);
end
endmodule
/*** A gate level 1 bit adder model ***/
`timescale 1ns / 1ns
module addbit (a, b, ci, sum, co);
input a, b, ci;
output sum, co;
wire a, b, ci, sum, co,
n1, n2, n3;
/*
assign n1 = a ^ b;
assign sum = n1 ^ ci;
assign n2 = a & b;
assign n3 = n1 & ci;
assign co = n2 | n3;
*/
// Gate delays are used to ensure the signal changes occur in a
// defined order.
xor #1 (n1, a, b);
and #2 (n2, a, b);
and #3 (n3, n1, ci);
xor #4 (sum, n1, ci);
or #4 (co, n2, n3);
endmodule
/*********************************************************************/