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

Subversion Repositories yahamm

[/] [yahamm/] [trunk/] [doc/] [src/] [specification.tex] - Diff between revs 9 and 11

Show entire file | Details | Blame | View Log

Rev 9 Rev 11
Line 192... Line 192...
\item \verb|parity_i|: input parity bits.  It must be connected to the \verb|parity_o| of the decoder.
\item \verb|parity_i|: input parity bits.  It must be connected to the \verb|parity_o| of the decoder.
\item \verb|data_o|: output data.  Length equal to MESSAGE\_LENGTH.
\item \verb|data_o|: output data.  Length equal to MESSAGE\_LENGTH.
\item data\_valid\_o: output valid signal for data\_o.  This is just en\_i delayed by the core latency.
\item data\_valid\_o: output valid signal for data\_o.  This is just en\_i delayed by the core latency.
\item \verb|cnt_errors_corrected_o|: counter of single errors corrected.  It is always zero if the generic \verb|CORRECT| is false.
\item \verb|cnt_errors_corrected_o|: counter of single errors corrected.  It is always zero if the generic \verb|CORRECT| is false.
\item \verb|cnt_errors_detected_o|: counter of errors detected.  It includes single, double and triple errors (not there's no way to distinguish between a single and a triple error), if the generic \verb|CORRECT| is false, otherwise it only counts double errors.
\item \verb|cnt_errors_detected_o|: counter of errors detected.  It includes single, double and triple errors (not there's no way to distinguish between a single and a triple error), if the generic \verb|CORRECT| is false, otherwise it only counts double errors.
\item \verb|log_wrong_bit_pos_data_o|: position of the single error in \verb|data_o|.  Zero if the generic \verb|CORRECT| is false or if it's not a single error.
\item \verb|log_wrong_bit_pos_data_o|: position of the single errors in \verb|data_o|.  A bit is asserted high when there is an error in the same position in \verb|data_o|.  They are only de-asserted by a synchrnous clear \verb|cnt_clr_i| or by a reset.  It is not used if generic \verb|CORRECT| is false or if it's not a single error.
\item \verb|log_wrong_bit_pos_data_o|: position of the single error in \verb|parity_o|.  Zero if the generic \verb|CORRECT| is false or if it's not a single error.
\item \verb|log_wrong_bit_pos_parity_o|: position of the single error in \verb|parity_o|.  A bit is asserted high when there is an error in the same position in \verb|parity_o|.  They are only de-asserted by a synchrnous clear \verb|cnt_clr_i| or by a reset.  It is not used if generic \verb|CORRECT| is false or if it's not a single error.
\end{enumerate}
\end{enumerate}
 
 
 
 
\section{SEC-DED and other possibilities}
\section{SEC-DED and other possibilities}
 
 
In order to have SEC-DED (Single Error Corrected - Double Error Detected) capability, user should leave the default values for the generics \verb|EXTRA_PARITY_BITS| to 1, and \verb|CORRECT| to true.
In order to have SEC-DED (Single Error Corrected - Double Error Detected) capability, user should use the default values for the generics \verb|EXTRA_PARITY_BITS| 1, and \verb|CORRECT| true.
 
 
Other choices can be made as described by the following table.
Other choices can be made as described by the following table.
 
 
\begin{table}
\begin{table}
  \begin{tabular}{||c|cc||}
  \begin{tabular}{||c|cc||}
Line 225... Line 225...
  }
  }
\end{table}
\end{table}
 
 
The generic \verb|EXTRA_PARITY_BITS| set to true (default) adds a parity bit so that the Hamming distance is $4$ between two code words (number of bits to flip in a code word to obtain another code word).  With \verb|EXTRA_PARITY_BITS| set to false the Hamming distance will be $3$.
The generic \verb|EXTRA_PARITY_BITS| set to true (default) adds a parity bit so that the Hamming distance is $4$ between two code words (number of bits to flip in a code word to obtain another code word).  With \verb|EXTRA_PARITY_BITS| set to false the Hamming distance will be $3$.
 
 
The generic \verb|CORRECT| set to true (default) corrects for single bit errors.  It can be set to false if only error detection is needed.  This allows triple error detection with \verb|EXTRA_PARITY_BIT| set to true.  Indeed, a triple error is indistinguishable from a single error with an Hamming distance 4 and the correction would be wrong in this case.  Similarly, with \verb|EXTRA_PARITY_BIT| set to false, hence with Hamming distance 3, a double error is indistinguishable from a single error and the correction would be wrong.  Note that if \verb|CORRECT| is false, the port \verb|cnt_errors_detected_o| provides the value of a counter that sums up any kind of error detected (single, double and triple).
The generic \verb|CORRECT| set to true (default) corrects for single bit errors.  It can be set to false if only error detection is needed.  This allows triple error detection with \verb|EXTRA_PARITY_BIT| set to true.  Indeed, a triple error is indistinguishable from a single error with an Hamming distance 4 and the correction would be wrong in this case.  Similarly, with \verb|EXTRA_PARITY_BIT| set to false, hence with Hamming distance 3, a double error is indistinguishable from a single error and the correction would be wrong.
 
 
 
If \verb|CORRECT| is false, the port \verb|cnt_errors_detected_o| provides the value of a counter that sums up any kind of error detected (single, double and triple).  If the configuration is SEC-DED, \verb|cnt_errors_detected_o| provides the counter for DED, \verb|cnt_errors_corrected_o| provides the counter for SEC.
 
 
For most applications, SEC-DED configuration (the default) is the preferred choice.  A communication channel can be considered reliable if the probability of double error is negligible.   A noisy channel showing double errors detected is not to be trusted because event a corrected single error may be a triple error and the correction would be wrong.
For most applications, SEC-DED configuration (the default) is the preferred choice.  A communication channel can be considered reliable if the probability of double error is negligible.   A noisy channel showing double errors detected is not to be trusted because event a corrected single error may be a triple error and the correction would be wrong.
 
 
 
 
\printindex
\printindex

powered by: WebSVN 2.1.0

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