-------------------------------------------------------------------------------- -- Entity: display_driver_w_decoder -- Date:2017-01-06 -- Author: GL -- -- Description: Top module for display driver with decoder --! @file --! @brief Display Driver With Decoder Top Level Module -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; --! @brief Top entity of the display driver. --! @details Top entity of the decoder architecture. Module description also goes here. entity display_driver_w_decoder is port ( clk : in std_logic; --! input clock, xx MHz. reset : in std_logic; --! active high ascii_in: in std_logic_vector(7 downto 0); --! input ASCII code to display wr_en : in std_logic; --! active high write enable to store the ASCII code in a register --! Typically the data fed to display (single or multiple) is provided for single display at a time. --! If multiple displays are required scan signal must be additionally provided (according typical dynamic display indication). --! --! \section disp_data_bit_mapping Display Segment Bit Mapping --! |Bit Number | 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|0 | --! |:--------: |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| --! |Display Segment| dp| m| l| k| j| i| h| g2| g1| f| e| d| c| b|a | --! Note that there is no standard way to name the segments. --! Current data bits correspondt to display segments according this picture: @image html https://www.maximintegrated.com/en/images/appnotes/3211/3211Fig02.gif disp_data_q : out std_logic_vector(14 downto 0) ); end display_driver_w_decoder; --! @brief Architecture definition of the display_driver_w_decoder --! @details Architecture describes the structure of the module together with doxygen description for doumentation generatior architecture display_driver_w_decoder_arch of display_driver_w_decoder is signal ascii_reg: std_logic_vector(7 downto 0); attribute syn_noprune: boolean; attribute syn_noprune of ascii_reg: signal is true; begin --! \mainpage 14-segment Display Driver Info --! --! \section intro_sec Introduction --! --! The main purpose of this module is to be fed with ASCI symbol codes and it will output word lighting up the exact segments --! on the 14-segment display to visualize the ASCII character. Current implementation uses input register to store the input code. --! --! ASCII symbols are coded in Byte having values from 0x00 to 0x7F. This range covers all the symbols in the decoding table. --! The range is doubled because the symbols may be lit with DP on or off. More information may be found in MAX6955 datasheet. --! Follows small revised quote of the most descriptive part related to decoding. Not applicable words are removed. --! --! ... includes 104-character ASCII font maps for 14-segment... . The characters follow the standard ASCII font, with the --! addition of the following common symbols: GBP, EUR, Yen, degree, micro, plus/minus, arrow up, and arrow down. --! Seven bits represent the 104-character font map; an 8th bit is used to select whether the decimal point (DP) is lit. --! source: https://datasheets.maximintegrated.com/en/ds/MAX6955.pdf --! --! \section port_disp_data Display Data Out --! --! \subsection disp_data_bit_mapping Display Segment Bit Mapping --! |Bit Number | 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|0 | --! |:--------: |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| --! |Display Segment| dp| m| l| k| j| i| h| g2| g1| f| e| d| c| b|a | --! Note that there is no standard way to name the segments. --! Current data bits correspondt to display segments according this picture: @image html https://www.maximintegrated.com/en/images/appnotes/3211/3211Fig02.gif ascii_decoder_module:entity work.ascii_decoder port map( clk => clk, reset => reset, ascii_in => ascii_in, disp_data_q => disp_data_q ); end display_driver_w_decoder_arch;