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
Category Archives: Fundamentals
Numeric_Std vs Std_Logic_Unsigned
One of VHDL’s annoyances is the excessive typing. It’s one of the things VHDL got wrong. As a result, two competing solutions were developed. Sadly, neither is perfect.
Posted in Fundamentals, VHDL
Comments Off on Numeric_Std vs Std_Logic_Unsigned
Creative Uses of Addition
I’ve never been a fan of VHDL’s numeric_std. It makes a distinction between unsigned, signed, and std_logic_vector for the addition operation. The operation is (or should be) the same in all cases. My main issue is that over half of … Continue reading
Posted in Fundamentals
Comments Off on Creative Uses of Addition
Misusing Simulations
Simulations are a wonderful tool for verification, and for debugging problems. There is a fine line between using simulation for debugging, and misusing simulation as a design aid. When simulation is done for debug the intent is to find things … Continue reading
Posted in FPGA, Fundamentals
Comments Off on Misusing Simulations
The Value of Nothing()
A recent thedailywtf posting caught my attention because of the number of people who made fun of functions that literally do nothing. More specifically, functions that directly pass the input to the output. There were a few other trivial functions … Continue reading
Posted in Fundamentals
Comments Off on The Value of Nothing()
Xilinx’s ISIM and TCL
In Xilinx’s ISE 11, isim is another of the tools that was made by people who didn’t intend on using them. At least, not in the way they would be advertised to the end user. Really, the disconnect between the … Continue reading
Posted in Fundamentals
Tagged code provided, reed solomon, simulation
Comments Off on Xilinx’s ISIM and TCL
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
Hold Violations
A hold violation occurs when the data into a system changes too soon after a clock edge. Many standards and ICs specify significantly positive hold times. Failure to meet these hold times can result in unpredictable behavior.
Posted in Fundamentals
Comments Off on Hold Violations
Negative Setup Time
These registers have not enlisted the aid of a prominent psychic. Continue reading
Posted in Fundamentals
Comments Off on Negative Setup Time
The Carry-Select Method
One method that can be used to optimize a design for performance is based on the carry-select adder. The general idea is that an adder can either have a carry-in of 0, or a carry-in of 1. Two adders can … Continue reading
Why Asynchronous Signals are Dangerous
The careless use of asynchronous signals can lead to unpredictable operation at any clock frequency. Continue reading
Posted in Fundamentals
Comments Off on Why Asynchronous Signals are Dangerous