Category Archives: FPGA

FPGA-specific applications of digital logic.

Another Galois Field Multiply

After completing my Reed-Solomon decoder’s HDL, I decided to see how well it performed.  The results weren’t as good as I expected.  The limiting path was in the field math.  A bit of simple pipelining allowed 250MHz operation on my … Continue reading

Posted in FPGA, Math | Tagged , | Comments Off on Another Galois Field Multiply

Division by Multiplication

Occasionally, a value will need to be divided by a non-power of two.  Using the division cores from coregen is an option.  Certainly it is a good option if area isn’t a concern but a quick design time is.  Another … Continue reading

Posted in FPGA | Comments Off on Division by Multiplication

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

The Synthesizer Thanks You For Your Opinion

The synthesizer thanks you for your opinion but has decided to go in another direction. The problem of trying to infer a specific implementation. Continue reading

Posted in FPGA | Comments Off on The Synthesizer Thanks You For Your Opinion

Logically Good, Actually Bad

Often, things that sound like they should work well, but actually don’t.  This actually is related to one of my rules — “avoid excessively creative code.” In this case, I decided to compare the fancy “carry-lookahead” adder to whatever fabric-based … Continue reading

Posted in FPGA | Comments Off on Logically Good, Actually Bad