Enabled 2 segments for seven seg display decoder (Q1), most code just needs comments
This commit is contained in:
1 parent
c27a04ef73
commit
afa8d9d4db
79 files changed
+1935
-1153
No files matched your search
+51
-22
@@ -1,26 +1,55 @@
|
||||
`ifndef SEVEN_SEG_H_SV
|
||||
`define SEVEN_SEG_H_SV
|
||||
module seven_seg(input logic [3:0] num, input logic [0:0] rbi_inv, output logic [7:0] segments);
|
||||
always_comb begin
|
||||
case (num)
|
||||
4'b0000: segments = (rbi_inv) ? ~(8'b01111111) : ~(8'b00000000);
|
||||
4'b0001: segments = ~(8'b00001101);
|
||||
4'b0010: segments = ~(8'b10110111);
|
||||
4'b0011: segments = ~(8'b10011111);
|
||||
4'b0100: segments = ~(8'b11001101);
|
||||
4'b0101: segments = ~(8'b11011011);
|
||||
4'b0110: segments = ~(8'b11111011);
|
||||
4'b0111: segments = ~(8'b00001111);
|
||||
4'b1000: segments = ~(8'b11111111);
|
||||
4'b1001: segments = ~(8'b11001111);
|
||||
4'b1010: segments = ~(8'b11101111);
|
||||
4'b1011: segments = ~(8'b11111001);
|
||||
4'b1100: segments = ~(8'b01110011);
|
||||
4'b1101: segments = ~(8'b10111101);
|
||||
4'b1110: segments = ~(8'b11110011);
|
||||
4'b1111: segments = ~(8'b11100011);
|
||||
default: segments = ~(8'bxxxxxxxx);
|
||||
endcase
|
||||
end
|
||||
|
||||
module seven_seg(
|
||||
input logic [3:0] num,
|
||||
input logic [0:0] rbi_inv,
|
||||
output logic [7:0] segments);
|
||||
|
||||
always_comb begin
|
||||
case (num)
|
||||
4'b0000: segments = (rbi_inv) ? ~(8'b01111111) : ~(8'b00000000); // zero or blank
|
||||
4'b0001: segments = ~(8'b00001101);
|
||||
4'b0010: segments = ~(8'b10110111);
|
||||
4'b0011: segments = ~(8'b10011111);
|
||||
4'b0100: segments = ~(8'b11001101);
|
||||
4'b0101: segments = ~(8'b11011011);
|
||||
4'b0110: segments = ~(8'b11111011);
|
||||
4'b0111: segments = ~(8'b00001111);
|
||||
4'b1000: segments = ~(8'b11111111);
|
||||
4'b1001: segments = ~(8'b11001111);
|
||||
4'b1010: segments = ~(8'b11101111);
|
||||
4'b1011: segments = ~(8'b11111001);
|
||||
4'b1100: segments = ~(8'b01110011);
|
||||
4'b1101: segments = ~(8'b10111101);
|
||||
4'b1110: segments = ~(8'b11110011);
|
||||
4'b1111: segments = ~(8'b11100011);
|
||||
default: segments = ~(8'bxxxxxxxx);
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
|
||||
module seven_seg_2digit(
|
||||
input logic [3:0] b, // left
|
||||
input logic [3:0] a, // right
|
||||
output logic [7:0] seg_b, // left
|
||||
output logic [7:0] seg_a); // right
|
||||
|
||||
logic rbo_b;
|
||||
|
||||
// seg_b
|
||||
seven_seg left_digit(
|
||||
.num(b),
|
||||
.rbi_inv(1'b0), // blanking enabled
|
||||
.segments(seg_b)
|
||||
);
|
||||
|
||||
// seg_a
|
||||
seven_seg right_digit(
|
||||
.num(a),
|
||||
.rbi_inv(1'b1), // blanking disabled
|
||||
.segments(seg_a)
|
||||
);
|
||||
|
||||
endmodule
|
||||
`endif
|
||||
Reference in new issue
Block a user