I'm programming a blackboard using Verilog. The hardware information is provided in the link above.
My goal is to light up the seven-segment display such that I can see characters on the segment display after programming. I would like to add the option of turning the display off at the push of a button, but I need to overcome the issue of lighting up the display with different characters first.
I'm a student learning to program and I thought of achieving my goal by studying the schematic. I found that if I could manage to do the following:
b0001000 (turn "off" D, should display A)
b0100100 (turn "off" B and E, should display S)
b0110000 (turn "off" all except B and C, should display I)
The problem I saw was that all four segments displayed the same items.
I found this forum to be very helpful as far as providing information but I have trouble understanding because I'm still learning all the terms. One of the post mentioned multiplexing and charlieplexing, and I understand the concept just not how to implement said idea into the device. I feel like the answer is staring me in the face, but IDK.
Additionally, in the 3rd link from the top it seems that I may be able to control the displays using the following: SVN_SEG_DATA (0x43C10004 - 0x43C10010) but that's as far as my brain got.
Any help would be greatly appreciated, thank you!
https://www.realdigital.org/hardware/blackboard
https://www.realdigital.org/doc/586fb4c3326dcd493a5774b2a6050f41
https://www.realdigital.org/doc/ad0c5fbdaddde0e930abbd9eda84f88b
How to display character on multiplexed seven segment?
`timescale 1ns / 1ps
module Seven_segment_LED_Display_Controller(
output [3:0]seg_an,
output [7:0] seg_cat
//input btn
);
//assign seg_an = btn;
//assign seg_an[1] = seg_an[0];
//assign seg_an[2] = seg_an[0];
//assign seg_an[3] = seg_an[0];
assign seg_an[0] = ~seg_cat[0] & ~seg_cat[1] & ~seg_cat[2] & seg_cat[3] & ~seg_cat[4] & ~seg_cat[5] & ~seg_cat[6] & seg_cat[7];
assign seg_an[1] = ~seg_cat[0] & seg_cat[1] & ~seg_cat[2] & ~seg_cat[3] & seg_cat[4] & ~seg_cat[5] & ~seg_cat[6] & seg_cat[7];
assign seg_an[2] = ~seg_cat[0] & seg_cat[1] & seg_cat[2] & ~seg_cat[3] & ~seg_cat[4] & ~seg_cat[5] & ~seg_cat[6] & seg_cat[7];
assign seg_an[3] = seg_an[0];
endmodule