OpenCores
URL https://opencores.org/ocsvn/wbuart32/wbuart32/trunk

Subversion Repositories wbuart32

[/] [wbuart32/] [trunk/] [doc/] [src/] [spec.tex] - Diff between revs 12 and 15

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 12 Rev 15
Line 234... Line 234...
% described.
% described.
%
%
 
 
To use the core, a couple of steps are required.  First, wire it up.  This
To use the core, a couple of steps are required.  First, wire it up.  This
includes wiring the {\tt i\_uart} and {\tt o\_uart} ports, as well as any
includes wiring the {\tt i\_uart} and {\tt o\_uart} ports, as well as any
{\tt i\_rts} and/or {\tt o\_cts} hardware flow control.  The
{\tt i\_cts\_n} and/or {\tt o\_rts\_n} hardware flow control.  The
{\tt rxuart.v} and {\tt txuart.v} files may be wired up for use individually,
{\tt rxuart.v} and {\tt txuart.v} files may be wired up for use individually,
or as part of a large module such as the example in{\tt wbuart-insert.v}.
or as part of a large module such as the example in{\tt wbuart-insert.v}.
Alternatively, the {\tt wbuart.v} file may be connected to a straight 32--bit
Alternatively, the {\tt wbuart.v} file may be connected to a straight 32--bit
wishbone bus.
wishbone bus.
Second, set the UART configuration register.  This is ideally set by setting
Second, set the UART configuration register.  This is ideally set by setting
Line 597... Line 597...
{\tt if (!clk)} \= \\
{\tt if (!clk)} \= \\
\> {\tt tb->i\_uart\_rx} {\tt = } {\tt uartsim(tb->o\_uart\_tx);}
\> {\tt tb->i\_uart\_rx} {\tt = } {\tt uartsim(tb->o\_uart\_tx);}
\end{tabbing}
\end{tabbing}
 
 
For those interested in hardware flow control, the core also offers an
For those interested in hardware flow control, the core also offers an
{\tt i\_rts} input to control the flow out of our transmitter, and an
{\tt i\_cts\_n} input to control the flow out of our transmitter, and an
{\tt o\_cts} output when the receiver is full.
{\tt o\_rts\_n} output to indicate when the receiver is full.  Both of these
 
wires are active low.
 
 
 
For those not interested in flow control there are three
 
possibilities.  First, one can set the module parameter
 
{\tt HARDWARE\_FLOW\_CONTROL\_PRESENT} to zero which will disable hardware
 
flow control.  This will also permanently set the hardware flow control is off
 
bit in the setup register.  Second, hardware flow control can be disabled by
 
connecting a {\tt 1'b0} wire to {\tt i\_cts\_n} and by ignoring the
 
{\tt o\_rts\_n} output.  In this case, the hardware flow control setup bit
 
becomes an unused flip flop within the driver. The third way to disable
 
hardware flow control is to simply disable it within the setup register.  In
 
general, these approaches will only affect the transmitter's operation and how
 
the {\tt o\_rts\_n} bit gets set.
 
 
A more detailed discussion of the connections associated with these modules
A more detailed discussion of the connections associated with these modules
can begin with Tbl.~\ref{tbl:rxports},
can begin with Tbl.~\ref{tbl:rxports},
\begin{table}\begin{center}\begin{portlist}
\begin{table}\begin{center}\begin{portlist}
{\tt i\_clk}    & 1 & Input & The system clock \\\hline
{\tt i\_clk}    & 1 & Input & The system clock \\\hline
Line 626... Line 639...
{\tt i\_setup}  & 31 & Input & The 31--bit setup register \\\hline
{\tt i\_setup}  & 31 & Input & The 31--bit setup register \\\hline
{\tt i\_break}  & 1 & Input & Set to true to place the transmit channel into a break condition\\\hline
{\tt i\_break}  & 1 & Input & Set to true to place the transmit channel into a break condition\\\hline
{\tt i\_wr}     & 1 & Input & An input strobe.  Set to one when you wish to transmit data, clear once it has been accepted\\\hline
{\tt i\_wr}     & 1 & Input & An input strobe.  Set to one when you wish to transmit data, clear once it has been accepted\\\hline
{\tt i\_data}   & 8 & Input & The data to be transmitted, ignored unless
{\tt i\_data}   & 8 & Input & The data to be transmitted, ignored unless
                {\tt (i\_wr)\&\&(!o\_busy)} \\\hline
                {\tt (i\_wr)\&\&(!o\_busy)} \\\hline
{\tt i\_rts}    & 1 & Input & A hardware flow control wire, true if the receiver is ready to receive\\\hline
{\tt i\_cts\_n} & 1 & Input & A hardware flow control wire, true if the transmitter is cleared to send, active low\\\hline
{\tt o\_uart}   & 1 & Output & The wire to be connected to the external port\\\hline
{\tt o\_uart}   & 1 & Output & The wire to be connected to the external port\\\hline
{\tt o\_busy}   & 1 & Output & True if the transmitter is busy, false if it will receive data\\\hline
{\tt o\_busy}   & 1 & Output & True if the transmitter is busy, false if it will receive data\\\hline
\end{portlist}\caption{TXUART port list}\label{tbl:txports}
\end{portlist}\caption{TXUART port list}\label{tbl:txports}
\end{center}\end{table}
\end{center}\end{table}
detailing the I/O ports of the UART transmitter, and Tbl.~\ref{tbl:wbports}
detailing the I/O ports of the UART transmitter, and Tbl.~\ref{tbl:wbports}
\begin{table}\begin{center}\begin{tabular}{|p{1.15in}|p{0.1in}|p{0.75in}|p{3.375in}|}
\begin{table}\begin{center}\begin{tabular}{|p{1.15in}|p{0.1in}|p{0.75in}|p{3.375in}|}
\rowcolor[gray]{0.85} Port & W & Direction & Description \\\hline\hline
\rowcolor[gray]{0.85} Port & W & Direction & Description \\\hline\hline
{\tt i\_uart\_rx}& 1 & Input & The receive wire coming from the external port\\\hline
{\tt i\_uart\_rx}& 1 & Input & The receive wire coming from the external port\\\hline
{\tt o\_uart\_tx}& 1 & Output & The transmit wire to be connected to the external port\\\hline
{\tt o\_uart\_tx}& 1 & Output & The transmit wire to be connected to the external port\\\hline
{\tt i\_rts}& 1 & Input  & The hardware flow control {\tt ready-to-send} (i.e. receive) input for the transmitter\\\hline
{\tt i\_cts\_n}& 1 & Input  & The hardware flow control {\tt clear-to-send} input for the transmitter, active low\\\hline
{\tt o\_cts}& 1 & Output & The hardware flow control {\tt clear-to-send} output\\\hline
{\tt o\_rts\_n}& 1 & Output & The hardware flow control {\tt ready-to-send} (receive) output, also active low\\\hline
{\tt o\_uart\_rx\_int}  & 1 & Output & True if a byte may be read from the receiver\\\hline
{\tt o\_uart\_rx\_int}  & 1 & Output & True if a byte may be read from the receiver\\\hline
{\tt o\_uart\_tx\_int}  & 1 & Output & True if a byte may be sent to the transmitter\\\hline
{\tt o\_uart\_tx\_int}  & 1 & Output & True if a byte may be sent to the transmitter\\\hline
{\tt o\_uart\_rxfifo\_int}&1& Output & True if the receive FIFO is half full\\\hline
{\tt o\_uart\_rxfifo\_int}&1& Output & True if the receive FIFO is half full\\\hline
{\tt o\_uart\_txfifo\_int}&1& Output & True if the transmit FIFO is half empty\\\hline
{\tt o\_uart\_txfifo\_int}&1& Output & True if the transmit FIFO is half empty\\\hline
\end{tabular}\caption{WBUART port list}\label{tbl:wbports}
\end{tabular}\caption{WBUART port list}\label{tbl:wbports}

powered by: WebSVN 2.1.0

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