Forum Discussion
Altera_Forum
Honored Contributor
9 years agoA good design is one that works that meets the specifications. Specifications and requirements will vary by project, so its impossible to define good paramters.
When writing code - you should ensure that it is easy to read and well documented/commented. Comments should be more about "why" rather than "how", as the latter will be explained with the code (obviously helpful notes should be placed to guide others through the code). Your example about FSM is pretty superfluous. Design the FSM in your code to be easily readible. Let the synthesiser take care of the encoding. Make sure you follow good design practice (fully synchronous design, good clock domain crossing techniques etc) and your designs will need less debug on hardware. And also - make sure you get into the habit of simulating your code. Well simulated and tested code will require less debugging on the bench, which is far more painful and slower than in a simulation testbench.