Return to HDL info page. | The Ten Commandments of good VHDL Design | (last edit: 10. December 2024) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PrefaceThe Ten Commandments of good VHDL Design is ... The main feature of The Ten Commandments of good VHDL Design is that it embodies much practical wisdom gathered over many VHDL projects. It warns you of the most common language errors, gives clues where to look when your code will not compile, alerts you to synthesis issues, and gives advice on improving your coding style. Using these CommandmentsThe Ten Commandments of good VHDL Design
1. All state machine outputs shall always be registered 2. Thou shalt use registers, never latches 3. Thy state machine inputs, including resets, shall be synchronous 4. Beware fast paths lest they bite thine ankles 5. Minimize skew of thine clocks 6. Cross clock domains with the greatest of caution. Synchronize thy signals! 7. Have no dead states in thy state machines 8. Have no logic with unbroken asynchronous feedback lest the fleas of myriad Test Engineers infest thee 9. All decode logic must be crafted carefully - eschew asynchronicity 10. Trust not thy simulator - it may beguile thee when thy design is junk If You do not take into account the internal structure of the FPGA you are using, you might end up writing your VHDL in a way that uses the resources in the FPGA in a bad way, e.g. creating slower circuitry or using more resources than nesessary. It might even lead to erronous functions. |