일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- BFS
- 코드트리빵
- 나무박멸
- 마법의숲탐색
- 시뮬레이션
- 이진탐색
- 싸움땅
- 왕실의기사대결
- 3Dreconstruction
- ISER
- Calibration
- 포탑부수기
- 토끼와 경주
- ARM
- 조합
- 삼성기출
- 수영대회결승전
- 구현
- 백준
- 루돌프의반란
- 마이크로프로세서
- dfs
- 순서대로방문하기
- 코드트리
- 소프티어
- DP
- DenseDepth
- ros
- 슈퍼컴퓨터클러스터
- ICER
Archives
- Today
- Total
from palette import colorful_colors
[verilog] counter 구현 본문
counter.v 파일
`timescale 1ns/1ns
module counter (rst, on, clk, count, in, out0609);
input rst, on, clk;
output reg [3:0] count;
reg [6:0]tmp;
input in;
output reg [6:0] out0609;
always@(posedge clk) begin
if(rst == 0) begin
count = 0;
out0609 = 0;
end
else if (on) begin //on이 1일때 가동
if(count == 6) begin
count <=0;
out0609 <= tmp;
tmp <= 0;
end
else begin
count <= count + 1;
tmp[count] <= in;
end
end
end
endmodule
counter_tb.v 파일
`timescale 1ns/1ns
module counter_tb();
parameter [83:0] pj1data = 84'b100100011001011101100110110011011111011111101011111011111110010110110011001000101011;
parameter pj1legth = 84;
reg rst, on, clk;
wire [3:0] count;
reg in;
wire [6:0] out0609;
reg [83:0] data;
integer i;
counter u1 (rst, on, clk, count, in, out0609);
initial begin
rst = 0; on = 1; clk = 0; in = 0;
data = pj1data;
#4 rst = 1;
//#2 on = 1;s
if (clk ==1) begin
for (i=pj1legth-1; i>=0 ; i=i-1)
in = data[i];
end
else in = in;
#50 $finish;
end
always begin
#1 clk <= ~clk;
end
initial begin
$dumpfile("output.vcd");
$dumpvars(0);
$monitor("count:%d, out0609:%b", count, out0609);
end
endmodule
'EE 학부과목 > verilog' 카테고리의 다른 글
[verilog] d-flipflop 구현 (0) | 2023.03.13 |
---|---|
[verilog] 16bit ALU구현 (0) | 2023.03.13 |
[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 |