问题
In designing a circuit in verilog using top-down method, I can start from the behavior of a circuit followed by defining the details in every module to construct a structural circuit that is synthesizable. But how can I know if my code is synthesizable? Are there any guidelines to follow to support synthesis in verilog?
回答1:
There is a 'standard', IEEE 1364.1 but as Martin pointed out each tool supports whatever it wants. I recommend the Xilinx XST User Guide if you need a free resource.
Also, structural verilog typically means you are creating description close to a netlist and the constructs you would use in this case are a small subset of those that are synthesizable.
回答2:
Read the documentation that comes with whatever synthesis tool you are going to be using. This will show you what you can do - sometimes there are very specific ways you have to write code to get the intended results.
Ultimately though, there's nothing to beat experience - run your synthesiser over your code (or small parts of it) at regular intervals and see what the tool produces.
来源:https://stackoverflow.com/questions/7565095/how-can-i-know-if-my-code-is-synthesizable-verilog