always@(posedge clk)
begin
r00<=r01;
r01<=r02;
r02<=arr[x][y];
//code
end
这可以在生成块中合成吗?另外'arr'是二维的。
答案 0 :(得分:0)
要详细说明上面的注释,您的综合工具应该推断这是内存,但根据您的声明和用法,有几种情况。
由于访问模式导致的read-during-write和其他内存接口错误,您的代码会出现不可合成或错误
您的记忆实际上将被推断为寄存器,这可能会使您的设计因大小而无法合成。
一切都会很好。
许多工具(例如Quartus)都带有内置功能,可以为代码添加内存(即Megafunction工具)。