Monthly Archives: August 2010

The 360 Element Shift Register

As mentioned in the three-bit shift register article, one of the applications for non-maximal length LFSRs/NLFSRs is in angle sensors.  I had read an article on generating LFSRs of a given length.  For the 360 element case, it came up … Continue reading

Posted in Math | Tagged , | Comments Off on The 360 Element Shift Register

Functions Vs Scripts

I recently decided to re-write the logic portion of my Reed-Solomon encoder to use VHDL functions instead of script-generated logic.  I defined a “permute” function to perform the logic manipulation:

Posted in FPGA, VHDL | Comments Off on Functions Vs Scripts

Reed-Solomon Encoder

This article describes how to make a performance optimized Reed-Solomon encoder.  The actual encoder is for an full-length, narrow-sense RS code.  In this case, the code generated was an code that could allow at least 8 bytes to be corrected, … Continue reading

Posted in FPGA, Math | Tagged , | Comments Off on Reed-Solomon Encoder

Three-Bit Feedback Shift Register

One question that I’ve often pondered is how to generate non-maximal length LFSRs or NLFSRs.  I decided to see what could be done with an 8b shift register that took 3 taps, and performed a logic operation to generate the … Continue reading

Posted in Math | Tagged , | Comments Off on Three-Bit Feedback Shift Register

Variables in VHDL

In a previous article, misuses of variables in processes was discussed. This article describes useful uses of variables in VHDL.

Posted in VHDL | Comments Off on Variables in VHDL

Non-Blocking Nuances

Nonblocking assignments are very common in VHDL.  They have some pitfalls to look out for. VHDL is different from Verilog in that it forces the use of nonblocking assignments for signals.  This means a design will use nonblocking assignments somewhere.

Posted in VHDL | Comments Off on Non-Blocking Nuances

Shifting an LFSR Multiple Times

One useful operation for a Galois Field is the multiplication by a constant value.  This is very useful, as it allows very simple logic to be used to generate the product .  This avoids the need to convert between polynomial … Continue reading

Posted in Math | Tagged , | Comments Off on Shifting an LFSR Multiple Times

Precomputing Logic

One of the most powerful optimizations is the ability to make assumptions about inputs to a system. In this article, timing is met when a comparison is precomputed. This basic method often improves timing. The cost is that assumptions on … Continue reading

Posted in Fundamentals | Tagged | Comments Off on Precomputing Logic

Basic Math In a Galois Field

A Galois Field presents unique challenges, as basic operations like addition and multiplication are different.  This article addresses basic methods for addition, subtraction, multiplication, and division of field elements.  FPGA considerations are included.

Posted in Math | Tagged , | Comments Off on Basic Math In a Galois Field

Intro to Galois LFSRs

There is another, natural way to write the code for an LFSR.  This article describes the Galois implementation of an LFSR.  This also shows how LFSRs are related to Galois fields.  This implementation is claimed to be a bit faster … Continue reading

Posted in Math | Tagged , | Comments Off on Intro to Galois LFSRs