Verilog編碼規範
- 任何變量不能賦初始值X,對任何寄存器所賦的初始值必須是確定的
- 代碼語句中不能加時間延遲,如:#4 out = cin
- 不允許使用門控時鐘和門控復位
- 不允許使用鎖存器(電平觸發的存儲單元)。比如if缺少else分支,case缺少default分支,導致代碼在綜合過程中出現了latch
- 可綜合的設計代碼中使用Parameter來定義參數,`Define只用於編寫不可綜合的仿真測試模塊
- 可綜合代碼中不可使用initial、wait、fork join、while等
- 可綜合代碼中不可出現邏輯反饋環路,否則會生成不可預知的邏輯電路
- 只允許使用case和if else語句作條件分支語句
- 時序邏輯使用非阻塞賦值<=,組合邏輯使用阻塞賦值=
未完待續。。。