我們都知道 verilog 是一種硬體描述語言,所以目的就是要能綜合出實際的電路,但實際上在 verilog 中並不是所有語句都是可綜合的,因為有些語句是用來驗證(TestBench)的關鍵字,屬於那些驗證用的語句只能在驗證時被使用,例如 initial、time、wait... 等等,所以在設計數位電路時,一定要特別注意電路的可綜合性~~
所有綜合工具都支持的語法:
always, assign, begin, end, case, wire, tri, aupply0, supply1, reg, integer, default, for, function, and, nand, or, nor, xor, xnor, buf, not, bufif0, bufif1, notif0, notif1, if, inout, input, instantitation, module, negedge, posedge, operators, output, parameter。
有些綜合工具支持但有些不支持的語法:
casex, casez, wand, triand, wor, trior, real, disable, forever, arrays, memories, repeat, task, while。
所有綜合工具都不
支持的語法:
time, defparam, $finish, fork, join, initial, delays, UDP, wait。