from palette import colorful_colors

[verilog] NAND 구현 본문

EE 학부과목/verilog

[verilog] NAND 구현

colorful-palette 2023. 3. 13. 12:02

nand.v

module NANDgate(in1, in2, out1);
	input in1;
	input in2;
	output out1;
	assign out1 = ~(in1 & in2);
endmodule

 
nand_tb.v

`timescale 1ns/1ns
module NANDgate_tb();
  reg a;
  reg b;
  wire out1;
  
  NANDgate u1 (a, b,out1); 

 
  initial begin
    	a = 0 ;
	b = 0 ;
	#100 $finish;  
  end

  
  always begin
    #5 a = ~a;  
  end
  
  always begin
	#10 b = ~b;
  end
  
/* 위 always문 이용 대신 initial문 안에
	a = 0; b = 0 #5;
	a = 1; b = 0 #5;
	a = 0; b = 1 #5;
	a = 1; b = 1 #5;
	#100 $finish; 로 짤 수도 있다
 */
  
  /* 
  begin - end가 하나의 구문이고, always가 블럭 단위로 반복한다.
  
  #n: 'n x 단위시간'이 흐른다는 뜻. #n 뒤에 하나의 식만 들어가지 않아도 된다.
  ex) 
 #1 a = ~a;
 #1 a = ~a; b=~b; 식으로 쓰면 a의 주기는 2, b의 주기는 4가 된다.
 
  
  */
  initial begin
	$display("Hello World!\n");
	$dumpfile("output.vcd");
	$dumpvars(0);
  end
endmodule