일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DP
- ARM
- 슈퍼컴퓨터클러스터
- 이진탐색
- dfs
- 왕실의기사대결
- ISER
- ICER
- 루돌프의반란
- 마법의숲탐색
- 수영대회결승전
- 소프티어
- 조합
- 삼성기출
- BFS
- ros
- 순서대로방문하기
- 토끼와 경주
- 마이크로프로세서
- Calibration
- 3Dreconstruction
- DenseDepth
- 싸움땅
- 구현
- 나무박멸
- 시뮬레이션
- 백준
- 코드트리
- 포탑부수기
- 코드트리빵
Archives
- Today
- Total
from palette import colorful_colors
[verilog] NAND 구현 본문
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
'EE 학부과목 > verilog' 카테고리의 다른 글
[verilog] 1:4 DEMUX 구현 (디멀티플렉서, Demultiplexer) (0) | 2023.03.13 |
---|---|
[verilog] 4:1 MUX 구현 (멀티플렉서, multiplexer) (0) | 2023.03.13 |
[verilog] Full Adder, 4bit Adder 구현 (2) | 2023.03.13 |
[verilog] inverter(인버터), bufer(버퍼) (0) | 2023.03.13 |
[verilog] 논리회로설계의 시작, verilog 설치와 문법 기초 (0) | 2023.03.13 |