Verilog HDL 기반 모드 60BCD 코드 카운터 설계
5229 단어 Verilog
Verilog HDL 기반 모드 60BCD 코드 카운터 설계
최근에verilog HDL 언어를 배웠는데 자신이 모드 60의 계수기를 썼는데 계수 인코딩은 BCD 코드로 위치 리셋이 가능하고 비트 출력이 있습니다. 코드는 다음과 같습니다.
module counter_60(clkin, rst_n, ld, data, out, c);
input clkin, rst_n, ld;
input [7:0] data;
output [7:0] out;
output c;
reg c = 0;
reg[3:0] ten, unit;
assign out = {ten, unit};
always@(posedge clkin or negedge rst_n or posedge ld)
begin
if(!rst_n)
{ten, unit} <= 0;
else if(ld)
{ten, unit} <= data;
else
begin
if(ten == 5)
begin
if(unit == 8)
begin
c = 1;
unit <= unit+1;
end
else if(unit == 9)
begin
c = 0;
{ten, unit} <= 0;
end
else
unit <= unit+1;
end
else if(unit == 9)
begin
ten <= ten+1;
unit <= 0;
end
else
unit <= unit+1;
end
end
endmodule
test bench 파일은 다음과 같습니다.
`timescale 1 ps/ 1 ps
module digitalClock_vlg_tst();
// constants
// general purpose registers
reg eachvec;
// test vector input registers
reg clkin;
reg [7:0] data;
reg ld;
reg rst_n;
// wires
wire c;
wire [7:0] out;
// assign statements (if any)
digitalClock i1 (
// port map - connection between master ports and signals/registers
.c(c),
.clkin(clkin),
.data(data),
.ld(ld),
.out(out),
.rst_n(rst_n)
);
initial
begin
rst_n = 1;
ld = 0;
clkin = 0;
data = 0;
#5 rst_n = 0;
#5 rst_n = 1;
repeat(2000)
#5 clkin = ~clkin;
data = {4'd4, 4'd7};
ld = 1;
#5 ld = 0;
repeat(20)
#5 clkin = ~clkin;
$stop;
end
endmodule
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
svls: SystemVerilog Language Server이 문서는 의 25 일째입니다. 7일째의 기사와 약간 입고 있습니다만, svls라고 하는 SystemVerilog용의 Language Server에 대해 소개합니다. Language Server란 Microsoft가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.