module CMOSsw(out,in,n_ctr,p_ctr);
output out;
input in,n_ctr,p_ctr;
nmos gn(out,in,n_ctr);
pmos gp(out,in,p_ctr);
endmodule
Example 10.6 CMOS Switch – 1
module tst_CMOSsw();
reg in,n_ctr,p_ctr; wire out;
CMOSsw cmsw(out,in,n_ctr,p_ctr);
initial begin
in=1'b0;n_ctr=1'b1;p_ctr=~n_ctr; end
always #5 in =~in;
always begin #3 n_ctr=~n_ctr; #0p_ctr
=~n_ctr; end
initial $monitor($time , "in = %b , n_ctr =
%b , p_ctr = %b , output = %b
",in,n_ctr,p_ctr,out);
initial #39 $
# 0in = 0 , n_ctr = 1 , p_ctr = 0 , output = 0
# 3in = 0 , n_ctr = 0 , p_ctr = 1 , output = z
# 5in = 1 , n_ctr = 0 , p_ctr = 1 , output = z
# 6in = 1 , n_ctr = 1 , p_ctr = 0 , output = 1
# 9in = 1 , n_ctr = 0 , p_ctr = 1 , output = z
# 10in = 0 , n_ctr = 0 , p_ctr = 1 , output = z
# 12in = 0 , n_ctr = 1 , p_ctr = 0 ,output = 0