hello guys,
i changed my old board DE2-70 to DE2_115 and i am trying to test the boards
i got my old code and changed the pis assignment and everything and the code work when testing switches and LEDS.
i want to test the Seven Segment display but got no result (the codes runs fine).
below is the code (just for testing ) :
`timescale 1ns/100ps
`default_nettype none
module convert_hex_to_seven_segment (
input logic [3:0] hex_value,
output logic [6:0] converted_value
);
always_comb begin
case(hex_value)
4'h1: converted_value = 7'b1111001;
4'h2: converted_value = 7'b0100100;
4'h3: converted_value = 7'b0110000;
4'h4: converted_value = 7'b0011001;
4'h5: converted_value = 7'b0010010;
4'h6: converted_value = 7'b0000010;
4'h7: converted_value = 7'b1111000;
4'h8: converted_value = 7'b0000000;
4'h9: converted_value = 7'b0011000;
4'ha: converted_value = 7'b0001000;
4'hb: converted_value = 7'b0000011;
4'hc: converted_value = 7'b1000110;
4'hd: converted_value = 7'b0100001;
4'he: converted_value = 7'b0000110;
4'hf: converted_value = 7'b0001110;
4'h0: converted_value = 7'b1000000;
endcase
end
endmodule
here is the main code:
`timescale 1ns/100ps
`default_nettype none
module counter (
/////// switches ////////////
input logic[17:0] SW, // toggle switches
/////// 7 segment displays/LEDs ////////////
output logic[6:0] HEX0, // 8 seven segment displays
output logic[6:0] HEX1,
output logic[6:0] HEX2,
output logic[6:0] HEX3,
output logic[6:0] HEX4,
output logic[6:0] HEX5,
output logic[6:0] HEX6,
output logic[6:0] HEX7,
output logic[8:0] LEDG,
output logic[17:0] LEDR // 9 green LEDs
);
logic [3:0] value;
logic [6:0] value_7_segment;
// Instantiate a module for converting hex number to 7-bit value for the 7-segment display
convert_hex_to_seven_segment unit0 (
.hex_value(value),
.converted_value(value_7_segment)
);
// A priority encoder using if-else statement
always_comb begin
if (SW[9] == 1'b1) begin
value = 4'd9;
end else begin
if (SW[8] == 1'b1) begin
value = 4'd8;
end else begin
if (SW[7] == 1'b1) begin
value = 4'd7;
end else begin
if (SW[6] == 1'b1) begin
value = 4'd6;
end else begin
if (SW[5] == 1'b1) begin
value = 4'd5;
end else begin
if (SW[4] == 1'b1) begin
value = 4'd4;
end else begin
if (SW[3] == 1'b1) begin
value = 4'd3;
end else begin
if (SW[2] == 1'b1) begin
value = 4'd2;
end else begin
if (SW[1] == 1'b1) begin
value = 4'd1;
end else begin
if (SW[0] == 1'b1) begin
value = 4'd0;
end else begin
value = 4'hF;
end
end
end
end
end
end
end
end
end
end
end
assign HEX0 = value_7_segment;
assign HEX1 = value_7_segment;
assign HEX2 = value_7_segment;
assign HEX3= value_7_segment;
assign HEX4= 7'h7f;
assign HEX5= 7'h7f;
assign HEX6= 7'h7f;
assign HEX7= 7'h7f;
assign LEDR = SW;
assign LEDG = {5'h00, value};
endmodule
if anyone can help will be so thankful
i changed my old board DE2-70 to DE2_115 and i am trying to test the boards
i got my old code and changed the pis assignment and everything and the code work when testing switches and LEDS.
i want to test the Seven Segment display but got no result (the codes runs fine).
below is the code (just for testing ) :
`timescale 1ns/100ps
`default_nettype none
module convert_hex_to_seven_segment (
input logic [3:0] hex_value,
output logic [6:0] converted_value
);
always_comb begin
case(hex_value)
4'h1: converted_value = 7'b1111001;
4'h2: converted_value = 7'b0100100;
4'h3: converted_value = 7'b0110000;
4'h4: converted_value = 7'b0011001;
4'h5: converted_value = 7'b0010010;
4'h6: converted_value = 7'b0000010;
4'h7: converted_value = 7'b1111000;
4'h8: converted_value = 7'b0000000;
4'h9: converted_value = 7'b0011000;
4'ha: converted_value = 7'b0001000;
4'hb: converted_value = 7'b0000011;
4'hc: converted_value = 7'b1000110;
4'hd: converted_value = 7'b0100001;
4'he: converted_value = 7'b0000110;
4'hf: converted_value = 7'b0001110;
4'h0: converted_value = 7'b1000000;
endcase
end
endmodule
here is the main code:
`timescale 1ns/100ps
`default_nettype none
module counter (
/////// switches ////////////
input logic[17:0] SW, // toggle switches
/////// 7 segment displays/LEDs ////////////
output logic[6:0] HEX0, // 8 seven segment displays
output logic[6:0] HEX1,
output logic[6:0] HEX2,
output logic[6:0] HEX3,
output logic[6:0] HEX4,
output logic[6:0] HEX5,
output logic[6:0] HEX6,
output logic[6:0] HEX7,
output logic[8:0] LEDG,
output logic[17:0] LEDR // 9 green LEDs
);
logic [3:0] value;
logic [6:0] value_7_segment;
// Instantiate a module for converting hex number to 7-bit value for the 7-segment display
convert_hex_to_seven_segment unit0 (
.hex_value(value),
.converted_value(value_7_segment)
);
// A priority encoder using if-else statement
always_comb begin
if (SW[9] == 1'b1) begin
value = 4'd9;
end else begin
if (SW[8] == 1'b1) begin
value = 4'd8;
end else begin
if (SW[7] == 1'b1) begin
value = 4'd7;
end else begin
if (SW[6] == 1'b1) begin
value = 4'd6;
end else begin
if (SW[5] == 1'b1) begin
value = 4'd5;
end else begin
if (SW[4] == 1'b1) begin
value = 4'd4;
end else begin
if (SW[3] == 1'b1) begin
value = 4'd3;
end else begin
if (SW[2] == 1'b1) begin
value = 4'd2;
end else begin
if (SW[1] == 1'b1) begin
value = 4'd1;
end else begin
if (SW[0] == 1'b1) begin
value = 4'd0;
end else begin
value = 4'hF;
end
end
end
end
end
end
end
end
end
end
end
assign HEX0 = value_7_segment;
assign HEX1 = value_7_segment;
assign HEX2 = value_7_segment;
assign HEX3= value_7_segment;
assign HEX4= 7'h7f;
assign HEX5= 7'h7f;
assign HEX6= 7'h7f;
assign HEX7= 7'h7f;
assign LEDR = SW;
assign LEDG = {5'h00, value};
endmodule
if anyone can help will be so thankful