Welcome
Welcome to cdstahl.orgCategories
-
Recent Posts
- VHDL Procedures
- Exporting Hierarchy from Vivado
- VHDL and Division vs Shifting
- Inferring Multiple BRAMs
- SSH Host-Key Setup
- Numeric_Std vs Std_Logic_Unsigned
- Creative Uses of Addition
- Sandbox, Bit Counting
- Using GIT to Manage Builds
- Mixing LFSRs
- Affine Feedback Shift Register
- Verilog’s Casex Issue
- Linear Regression
- Non-Orthogonal Basis Vectors
- Viterbi Decoder, Traceback
Archives
Meta
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
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:
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
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
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
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
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.
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