我有一个MachXO3芯片。系列数据表可在此处找到:http://www.latticesemi.com/~/media/LatticeSemi/Documents/DataSheets/MachXO23/DS1047-MachXO3-Family-Data-Sheet.pdf?document_id=50121
数据表显示EBR由第2-10页的9-kbit组成。但是第1-2页的表1-1列出了根本不能被9分割的数字......
另外,我有以下代码:
reg [7:0] lineB0[1:0][127:0];
reg [7:0] lineB1[1:0][127:0];
报告说需要4个EBR。这听起来完全没有优化。这是为什么?如何制作我的2 *(2 * 128)字节= 512字节= 4096位= 4kbit的表,它应该保存在1个EBR中?
自动推理算法似乎并不总是超级有效。如果资源使用有问题,我通常会建议使用IPexpress创建RAM或ROM。该工具报告了1个EBR用于512 * 8双管道柱塞(RAM_DP)的资源使用情况。根据RAM的组织/应用,128 *(8 + 8)布局可能是一个很好的选择,假设您想要读取lineB0和lineB1的相同索引。
友情提醒:过早优化是所有(或至少很多)邪恶的根源。因此,如果使用的内存量EBR现在实际上没有限制,那么将时间投入其他主题可能更有价值。