Binary coded decimal
BCD에 3을 더한 값


디코더를 이용하여 전광판 숫자 키기
`timescale 1ns/1ps
module bcd_to_7seg(
input [3:0] bcd,
output reg [6:0] seg // seg{g,f,e,d,c,b,a}
);
always @ (*)
begin
case(bcd)
4'd0 : seg= 7'b0111111;
4'd1 : seg= 7'b0000110;
4'd2 : seg= 7'b1011011;
4'd3 : seg= 7'b1001111;
4'd4 : seg= 7'b1100110;
4'd5 : seg= 7'b1101101;
4'd6 : seg= 7'b1111101;
4'd7 : seg= 7'b0000111;
4'd8 : seg= 7'b1111111;
4'd9 : seg= 7'b1101111;
default: seg =7'b00000000;
endcase
end
endmodule
`timescale 1ns/1ps
module bcd_to_7seg_tb;
reg [3:0] bcd;
wire [6:0] seg;
// 테스트할 DUT 인스턴스
bcd_to_7seg uut (
.bcd(bcd),
.seg(seg)
);
initial begin
$display("BCD to 7-Segment Decoder Test");
$display("------------------------------");
$display("BCD | Segments");
$display("------------------------------");
// 0부터 9까지 BCD 테스트
for (bcd = 0; bcd < 10; bcd = bcd + 1) begin
#10; // 10ns 지연
$display(" %d | %b", bcd, seg);
end
// default 케이스 (invalid BCD)
bcd = 4'd10;
#10;
$display(" %d | %b (default case)", bcd, seg);
$finish;
end
endmodule

참고: System integrated Circuit design lab