1 |
4 |
liubenoff |
\hypertarget{class_display_driverw_decoder___top}{}\section{Display\+Driverw\+Decoder\+\_\+\+Top Entity Reference}
|
2 |
|
|
\label{class_display_driverw_decoder___top}\index{Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}}
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
Top entity of the display driver.
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
\subsection*{Entities}
|
9 |
|
|
\begin{DoxyCompactItemize}
|
10 |
|
|
\item
|
11 |
|
|
\hyperlink{class_display_driverw_decoder___top_1_1arch}{arch} architecture
|
12 |
|
|
\begin{DoxyCompactList}\small\item\em Architecture definition of the \hyperlink{class_display_driverw_decoder___top}{Display\+Driverw\+Decoder\+\_\+\+Top}. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
13 |
|
|
\subsection*{Libraries}
|
14 |
|
|
\begin{DoxyCompactItemize}
|
15 |
|
|
\item
|
16 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_a0a6af6eef40212dbaf130d57ce711256}\label{class_display_driverw_decoder___top_a0a6af6eef40212dbaf130d57ce711256}}
|
17 |
|
|
\hyperlink{class_display_driverw_decoder___top_a0a6af6eef40212dbaf130d57ce711256}{ieee}
|
18 |
|
|
\end{DoxyCompactItemize}
|
19 |
|
|
\subsection*{Use Clauses}
|
20 |
|
|
\begin{DoxyCompactItemize}
|
21 |
|
|
\item
|
22 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_acd03516902501cd1c7296a98e22c6fcb}\label{class_display_driverw_decoder___top_acd03516902501cd1c7296a98e22c6fcb}}
|
23 |
|
|
\hyperlink{class_display_driverw_decoder___top_acd03516902501cd1c7296a98e22c6fcb}{std\+\_\+logic\+\_\+1164}
|
24 |
|
|
\item
|
25 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_a2edc34402b573437d5f25fa90ba4013e}\label{class_display_driverw_decoder___top_a2edc34402b573437d5f25fa90ba4013e}}
|
26 |
|
|
\hyperlink{class_display_driverw_decoder___top_a2edc34402b573437d5f25fa90ba4013e}{numeric\+\_\+std}
|
27 |
|
|
\end{DoxyCompactItemize}
|
28 |
|
|
\subsection*{Ports}
|
29 |
|
|
\begin{DoxyCompactItemize}
|
30 |
|
|
\item
|
31 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_a4a4609c199d30b3adebbeb3a01276ec5}\label{class_display_driverw_decoder___top_a4a4609c199d30b3adebbeb3a01276ec5}}
|
32 |
|
|
\hyperlink{class_display_driverw_decoder___top_a4a4609c199d30b3adebbeb3a01276ec5}{clk} {\bfseries {\bfseries \textcolor{keywordflow}{in}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic}\textcolor{vhdlchar}{ }}
|
33 |
|
|
\begin{DoxyCompactList}\small\item\em input clock, xx M\+Hz. \end{DoxyCompactList}\item
|
34 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_aad8dc6359d9e23dabcbf342fadf2fa06}\label{class_display_driverw_decoder___top_aad8dc6359d9e23dabcbf342fadf2fa06}}
|
35 |
|
|
\hyperlink{class_display_driverw_decoder___top_aad8dc6359d9e23dabcbf342fadf2fa06}{reset} {\bfseries {\bfseries \textcolor{keywordflow}{in}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic}\textcolor{vhdlchar}{ }}
|
36 |
|
|
\begin{DoxyCompactList}\small\item\em active high \end{DoxyCompactList}\item
|
37 |
|
|
\hyperlink{class_display_driverw_decoder___top_a11737d50bbf001c0d64a327a2afca193}{ascii\+\_\+in} {\bfseries {\bfseries \textcolor{keywordflow}{in}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic\+\_\+vector}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{(}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{7} \textcolor{vhdlchar}{ }\textcolor{keywordflow}{downto}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{0} \textcolor{vhdlchar}{ }\textcolor{vhdlchar}{)}\textcolor{vhdlchar}{ }}
|
38 |
|
|
\item
|
39 |
5 |
liubenoff |
\mbox{\Hypertarget{class_display_driverw_decoder___top_a8f9235710fc037196ed1f7fa93aa0ef3}\label{class_display_driverw_decoder___top_a8f9235710fc037196ed1f7fa93aa0ef3}}
|
40 |
|
|
\hyperlink{class_display_driverw_decoder___top_a8f9235710fc037196ed1f7fa93aa0ef3}{wr\+\_\+en} {\bfseries {\bfseries \textcolor{keywordflow}{in}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic}\textcolor{vhdlchar}{ }}
|
41 |
|
|
\begin{DoxyCompactList}\small\item\em active high write enable to store the A\+S\+C\+II code in a register \end{DoxyCompactList}\item
|
42 |
|
|
\hyperlink{class_display_driverw_decoder___top_afe85e1682ca9b85576a5169bef98848c}{disp\+\_\+data} {\bfseries {\bfseries \textcolor{keywordflow}{out}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic\+\_\+vector}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{(}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{14} \textcolor{vhdlchar}{ }\textcolor{keywordflow}{downto}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{0} \textcolor{vhdlchar}{ }\textcolor{vhdlchar}{)}\textcolor{vhdlchar}{ }}
|
43 |
4 |
liubenoff |
\item
|
44 |
|
|
\hyperlink{class_display_driverw_decoder___top_ac39d5faa22b7c7b88914e8915f901d69}{disp\+\_\+sel} {\bfseries {\bfseries \textcolor{keywordflow}{out}\textcolor{vhdlchar}{ }}} {\bfseries \textcolor{comment}{std\+\_\+logic}\textcolor{vhdlchar}{ }}
|
45 |
|
|
\end{DoxyCompactItemize}
|
46 |
|
|
|
47 |
|
|
|
48 |
|
|
\subsection{Detailed Description}
|
49 |
|
|
Top entity of the display driver.
|
50 |
|
|
|
51 |
|
|
\subsection{Member Data Documentation}
|
52 |
|
|
\mbox{\Hypertarget{class_display_driverw_decoder___top_a11737d50bbf001c0d64a327a2afca193}\label{class_display_driverw_decoder___top_a11737d50bbf001c0d64a327a2afca193}}
|
53 |
|
|
\index{Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}!ascii\+\_\+in@{ascii\+\_\+in}}
|
54 |
|
|
\index{ascii\+\_\+in@{ascii\+\_\+in}!Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}}
|
55 |
|
|
\subsubsection{\texorpdfstring{ascii\+\_\+in}{ascii\_in}}
|
56 |
|
|
{\footnotesize\ttfamily \hyperlink{class_display_driverw_decoder___top_a11737d50bbf001c0d64a327a2afca193}{ascii\+\_\+in} {\bfseries \textcolor{keywordflow}{in}\textcolor{vhdlchar}{ }} {\bfseries \textcolor{comment}{std\+\_\+logic\+\_\+vector}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{(}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{7} \textcolor{vhdlchar}{ }\textcolor{keywordflow}{downto}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{0} \textcolor{vhdlchar}{ }\textcolor{vhdlchar}{)}\textcolor{vhdlchar}{ }} \hspace{0.3cm}{\ttfamily [Port]}}
|
57 |
|
|
|
58 |
5 |
liubenoff |
A\+S\+C\+II symbols are coded in 1B having values from 0x00 to 0x7F. Current implementation uses 104-\/\+Character A\+S\+C\+II Font Map described in M\+A\+X6955 Datasheet. \href{https://datasheets.maximintegrated.com/en/ds/MAX6955.pdf}{\tt https\+://datasheets.\+maximintegrated.\+com/en/ds/\+M\+A\+X6955.\+pdf} The M\+SB is used to light the display dot. For example if you want to display H the code will be 0x48 (or 01001000b). If you want to display H. the code will be 0x\+C8 (or 11001000b). \mbox{\Hypertarget{class_display_driverw_decoder___top_afe85e1682ca9b85576a5169bef98848c}\label{class_display_driverw_decoder___top_afe85e1682ca9b85576a5169bef98848c}}
|
59 |
4 |
liubenoff |
\index{Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}!disp\+\_\+data@{disp\+\_\+data}}
|
60 |
|
|
\index{disp\+\_\+data@{disp\+\_\+data}!Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}}
|
61 |
|
|
\subsubsection{\texorpdfstring{disp\+\_\+data}{disp\_data}}
|
62 |
5 |
liubenoff |
{\footnotesize\ttfamily \hyperlink{class_display_driverw_decoder___top_afe85e1682ca9b85576a5169bef98848c}{disp\+\_\+data} {\bfseries \textcolor{keywordflow}{out}\textcolor{vhdlchar}{ }} {\bfseries \textcolor{comment}{std\+\_\+logic\+\_\+vector}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{(}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{14} \textcolor{vhdlchar}{ }\textcolor{keywordflow}{downto}\textcolor{vhdlchar}{ }\textcolor{vhdlchar}{ } \textcolor{vhdldigit}{0} \textcolor{vhdlchar}{ }\textcolor{vhdlchar}{)}\textcolor{vhdlchar}{ }} \hspace{0.3cm}{\ttfamily [Port]}}
|
63 |
4 |
liubenoff |
|
64 |
5 |
liubenoff |
Typically the data fed to display (single or multiple) is provided for single display at a time. If multiple displays are required disp\+\_\+sel signal must be provided (according typical dynamic display indication).\hypertarget{class_display_driverw_decoder___top_disp_data_bit_mapping}{}\subsection{Display Segment Bit Mapping}\label{class_display_driverw_decoder___top_disp_data_bit_mapping}
|
65 |
|
|
\tabulinesep=1mm
|
66 |
|
|
\begin{longtabu} spread 0pt [c]{*{16}{|X[-1]}|}
|
67 |
|
|
\hline
|
68 |
|
|
\rowcolor{\tableheadbgcolor}\PBS\centering \textbf{ Bit Number }&\PBS\centering \textbf{ 0 }&\PBS\centering \textbf{ 1}&\PBS\centering \textbf{ 2}&\PBS\centering \textbf{ 3}&\PBS\centering \textbf{ 4}&\PBS\centering \textbf{ 5}&\PBS\centering \textbf{ 6}&\PBS\centering \textbf{ 7}&\PBS\centering \textbf{ 8}&\PBS\centering \textbf{ 9}&\PBS\centering \textbf{ 10}&\PBS\centering \textbf{ 11}&\PBS\centering \textbf{ 12}&\PBS\centering \textbf{ 13}&\PBS\centering \textbf{ 14 }\\\cline{1-16}
|
69 |
|
|
\endfirsthead
|
70 |
|
|
\hline
|
71 |
|
|
\endfoot
|
72 |
|
|
\hline
|
73 |
|
|
\rowcolor{\tableheadbgcolor}\PBS\centering \textbf{ Bit Number }&\PBS\centering \textbf{ 0 }&\PBS\centering \textbf{ 1}&\PBS\centering \textbf{ 2}&\PBS\centering \textbf{ 3}&\PBS\centering \textbf{ 4}&\PBS\centering \textbf{ 5}&\PBS\centering \textbf{ 6}&\PBS\centering \textbf{ 7}&\PBS\centering \textbf{ 8}&\PBS\centering \textbf{ 9}&\PBS\centering \textbf{ 10}&\PBS\centering \textbf{ 11}&\PBS\centering \textbf{ 12}&\PBS\centering \textbf{ 13}&\PBS\centering \textbf{ 14 }\\\cline{1-16}
|
74 |
|
|
\endhead
|
75 |
|
|
\PBS\centering Display Segment&\PBS\centering a &\PBS\centering b&\PBS\centering c&\PBS\centering d&\PBS\centering e&\PBS\centering f&\PBS\centering g1&\PBS\centering g2&\PBS\centering h&\PBS\centering i&\PBS\centering j&\PBS\centering k&\PBS\centering l&\PBS\centering m&\PBS\centering dp \\\cline{1-16}
|
76 |
|
|
\end{longtabu}
|
77 |
|
|
Note that there is no standard way to name the segments. Current data bits correspondt to display segments according this picture\+: \href{https://www.maximintegrated.com/en/images/appnotes/3211/3211Fig02.gif}{\tt https\+://www.\+maximintegrated.\+com/en/images/appnotes/3211/3211\+Fig02.\+gif} \mbox{\Hypertarget{class_display_driverw_decoder___top_ac39d5faa22b7c7b88914e8915f901d69}\label{class_display_driverw_decoder___top_ac39d5faa22b7c7b88914e8915f901d69}}
|
78 |
4 |
liubenoff |
\index{Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}!disp\+\_\+sel@{disp\+\_\+sel}}
|
79 |
|
|
\index{disp\+\_\+sel@{disp\+\_\+sel}!Display\+Driverw\+Decoder\+\_\+\+Top@{Display\+Driverw\+Decoder\+\_\+\+Top}}
|
80 |
|
|
\subsubsection{\texorpdfstring{disp\+\_\+sel}{disp\_sel}}
|
81 |
|
|
{\footnotesize\ttfamily \hyperlink{class_display_driverw_decoder___top_ac39d5faa22b7c7b88914e8915f901d69}{disp\+\_\+sel} {\bfseries \textcolor{keywordflow}{out}\textcolor{vhdlchar}{ }} {\bfseries \textcolor{comment}{std\+\_\+logic}\textcolor{vhdlchar}{ }} \hspace{0.3cm}{\ttfamily [Port]}}
|
82 |
|
|
|
83 |
|
|
If more displays needs to be fed change disp\+\_\+sel to vector with length equal to number of displays. Use principles of the standard dynamic indication\+: provide data then enable the displays sequentially. If brightness control is desired just A\+ND the selector and the P\+WM controller output.
|
84 |
|
|
|
85 |
|
|
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
|
86 |
|
|
\item
|
87 |
|
|
C\+:/\+Projects/single-\/14-\/segment-\/display-\/driver-\/w-\/decoder/\+Project/\+Sources/\hyperlink{_display_driverw_decoder___top_8vhd}{Display\+Driverw\+Decoder\+\_\+\+Top.\+vhd}\end{DoxyCompactItemize}
|