先說(shuō)答案:不行。
通常,reg [7:0]mem [1:0]這種寫法是作為內(nèi)部二維寄存器使用的,比如定義一個(gè)1KB的存儲(chǔ)器,可以用reg [7:0] [0:1023],或者reg [7:0][1023:0]。那二維數(shù)組作為輸入輸出端口可以綜合不?
做個(gè)小實(shí)驗(yàn),簡(jiǎn)單造個(gè)小代碼:
用input [7:0] mem [1:0]這種二維數(shù)組作為input端口,
Verdi檢查
首先用Verdi編譯看看報(bào)錯(cuò)不:
上圖很明顯,Verdi默認(rèn)就直接支持這種SV類型語(yǔ)法。
檢查
就能嚴(yán)格報(bào)出來(lái)輸入輸出端口是一種技術(shù),除非 ,否則不支持這種sv語(yǔ)法特性,
DC工具
那么 是否支持這種語(yǔ)法綜合呢?
綜合一下輸入輸出端口是一種技術(shù),查看LOG:
也很明顯,直接報(bào)Error,綜合進(jìn)程終止,DC是不支持的。
man查詢一下報(bào)的錯(cuò):VER-253:
感興趣的朋友可以用C家的試試。
結(jié)論
結(jié)論:語(yǔ)法不支持二維數(shù)組作為輸入輸出端口。
可能有同學(xué)吐槽語(yǔ)法太僵硬了,不如sv便捷強(qiáng)大,況且很多國(guó)外團(tuán)隊(duì)已經(jīng)用sv進(jìn)行開(kāi)發(fā)了,但是DC工具更希望RTL開(kāi)發(fā)者明確指定每一根輸入輸出信號(hào)線的具體連接關(guān)系,雖然工作量繁雜一點(diǎn),但可以避免工具與人的理解不一致而造成的芯片錯(cuò)誤,也迫使開(kāi)發(fā)者想清楚每根線怎么連接。
感謝閱讀,別走!點(diǎn)贊、關(guān)注、轉(zhuǎn)發(fā)后再走吧