我有一個模塊,通過parameter
然後實例化與定義的參數相對應的另一個模塊。什麼是LINT /綜合安全語句在編譯時拋出一個錯誤?
然而,在這種情況下沒有爲參數的某種組合中定義的事件,我想的誤差在編譯時被拋出突出問題,像這樣:
generate
if (PARAM1 == 1 && PARAM2 == 2) begin
// instantiate module logic_A
end else if (PARAM1 == 2 && PARAM2 == 1) begin
// instantiate module logic_B
end else begin
// throw an error at compile time if we haven't
// defined a case for those parameters
end
endgenerate
然而,儘管存在插入錯誤,但這些代碼仍然需要可綜合(在Verilog中,不是SystemVerilog)並傳遞LINTing。
有沒有人知道我可以在這種情況下使用?先謝謝你。
在SystemVerilog中,你可以在'產生-if'的其他條款中做'$致命( 「信息」)。 –
剛剛檢查過,在vcs 2015中已經實現,但需要一個特殊的編譯開關「-assert svaext」。在這種情況下,vcs會生成很好的編譯時消息。否則它會檢測到語法錯誤。使用'初始'它編譯沒有問題,併產生運行時違規消息。 – Serge