OpenCores
URL https://opencores.org/ocsvn/single-14-segment-display-driver-w-decoder/single-14-segment-display-driver-w-decoder/trunk

Subversion Repositories single-14-segment-display-driver-w-decoder

[/] [single-14-segment-display-driver-w-decoder/] [trunk/] [Project/] [Sources/] [display_driver_w_decoder.vhd] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 liubenoff
--------------------------------------------------------------------------------
2 8 liubenoff
-- Entity: display_driver_w_decoder
3 3 liubenoff
-- Date:2017-01-06  
4
-- Author: GL     
5
--
6
-- Description: Top module for display driver with decoder
7
--! @file
8
--! @brief Display Driver With Decoder Top Level Module
9
--------------------------------------------------------------------------------
10
 
11
library ieee;
12
use ieee.std_logic_1164.all;
13
use ieee.numeric_std.all;
14
 
15 8 liubenoff
--! @brief Top entity of the display driver.
16
--! @details Top entity of the decoder architecture. Module description also goes here.
17
entity display_driver_w_decoder is
18 3 liubenoff
        port  (
19
        clk     : in    std_logic;                                      --! input clock, xx MHz.
20
        reset   : in    std_logic;                                      --! active high
21
 
22 8 liubenoff
        ascii_in: in    std_logic_vector(7 downto 0);                   --! input ASCII code to display
23 5 liubenoff
        wr_en   : in    std_logic;                                      --! active high write enable to store the ASCII code in a register
24 3 liubenoff
 
25
        --! Typically the data fed to display (single or multiple) is provided for single display at a time.
26 9 liubenoff
        --! If multiple displays are required scan signal must be additionally provided (according typical dynamic display indication).
27 5 liubenoff
        --! 
28
        --! \section disp_data_bit_mapping Display Segment Bit Mapping
29 6 liubenoff
        --! |Bit Number     |   14|   13|   12|   11|   10|    9|    8|    7|    6|    5|    4|    3|    2|    1|0    |
30 5 liubenoff
        --! |:--------:     |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
31 6 liubenoff
        --! |Display Segment|   dp|    m|    l|    k|    j|    i|    h|   g2|   g1|    f|    e|    d|    c|    b|a    |
32 5 liubenoff
        --! Note that there is no standard way to name the segments. 
33 8 liubenoff
        --! Current data bits correspondt to display segments according this picture: @image html https://www.maximintegrated.com/en/images/appnotes/3211/3211Fig02.gif
34 9 liubenoff
        disp_data_q : out std_logic_vector(14 downto 0)
35 3 liubenoff
        );
36 8 liubenoff
end display_driver_w_decoder;
37 3 liubenoff
 
38 8 liubenoff
--! @brief Architecture definition of the display_driver_w_decoder
39
--! @details Architecture describes the structure of the module together with doxygen description for doumentation generatior
40
architecture display_driver_w_decoder_arch of display_driver_w_decoder is
41 3 liubenoff
 
42 5 liubenoff
    signal ascii_reg: std_logic_vector(7 downto 0);
43
 
44
    attribute syn_noprune: boolean;
45
    attribute syn_noprune of ascii_reg: signal is true;
46 3 liubenoff
begin
47
 
48 8 liubenoff
    --! \mainpage 14-segment Display Driver Info
49 5 liubenoff
    --!
50
    --! \section intro_sec Introduction
51
    --!
52 8 liubenoff
    --! The main purpose of this module is to be fed with ASCI symbol codes and it will output word lighting up the exact segments 
53
    --! on the 14-segment display to visualize the ASCII character. Current implementation uses input register to store the input code. 
54 5 liubenoff
    --!
55 8 liubenoff
    --! ASCII symbols are coded in Byte having values from 0x00 to 0x7F. This range covers all the symbols in the decoding table.
56
    --! The range is doubled because the symbols may be lit with DP on or off. More information may be found in MAX6955 datasheet.
57
    --! Follows small revised quote of the most descriptive part related to decoding. Not applicable words are removed.
58
    --!
59
    --! ... includes 104-character ASCII font maps for 14-segment... . The characters follow the standard ASCII font, with the
60
    --! addition of the following common symbols: GBP, EUR, Yen, degree, micro, plus/minus, arrow up, and arrow down. 
61
    --! Seven bits represent the 104-character font map; an 8th bit is used to select whether the decimal point (DP) is lit.
62
    --! source: https://datasheets.maximintegrated.com/en/ds/MAX6955.pdf
63
    --!
64
    --! \section port_disp_data Display Data Out
65
    --! 
66
    --! \subsection disp_data_bit_mapping Display Segment Bit Mapping
67
    --! |Bit Number     |   14|   13|   12|   11|   10|    9|    8|    7|    6|    5|    4|    3|    2|    1|0    |
68
    --! |:--------:     |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
69
    --! |Display Segment|   dp|    m|    l|    k|    j|    i|    h|   g2|   g1|    f|    e|    d|    c|    b|a    |
70
    --! Note that there is no standard way to name the segments. 
71
    --! Current data bits correspondt to display segments according this picture: @image html https://www.maximintegrated.com/en/images/appnotes/3211/3211Fig02.gif
72
 
73 9 liubenoff
    ascii_decoder_module:entity work.ascii_decoder
74 6 liubenoff
    port map(
75
        clk         => clk,
76
        reset       => reset,
77
        ascii_in    => ascii_in,
78 8 liubenoff
        disp_data_q => disp_data_q
79 6 liubenoff
    );
80 5 liubenoff
 
81 8 liubenoff
end display_driver_w_decoder_arch;
82 3 liubenoff
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.