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.