1
[email protected](posedge clk)
begin
r00<=r01;
r01<=r02;
r02<=arr[x][y];
//code
end
這將在一個生成塊內合成嗎?另外,'arr'是二維的。我可以在always塊中使用數組'arr [x] [y]'嗎?它是可合成的嗎?
[email protected](posedge clk)
begin
r00<=r01;
r01<=r02;
r02<=arr[x][y];
//code
end
這將在一個生成塊內合成嗎?另外,'arr'是二維的。我可以在always塊中使用數組'arr [x] [y]'嗎?它是可合成的嗎?
爲了詳細說明上面的註釋,您的綜合工具應該推斷這是內存,但取決於您的聲明和使用情況,有幾種情況。
你會得到unsynthesizeable或錯誤代碼中的因念邊寫邊等存儲器接口錯誤,由於訪問模式
你的內存實際上將被推斷爲寄存器,它可以使您的設計由於尺寸而無法合成。
一切都會很好。
很多工具(如Quartus)都帶有內置功能,可以爲代碼添加內存(即Megafunction工具)。
這取決於綜合工具。許多合成器爲這種類型的陣列創建一個RAM結構。 – sharvil111
是的,爲什麼不。對於生成的塊或者總是阻塞不是什麼大問題。真正的問題是,如果arr是一個巨大的,那麼綜合工具將創建一個大型寄存器庫來對此進行建模,並導致運行時間過長,有時會耗盡所有內存空間並炸燬。 – jclin