1

我想知道ChiselRegMemChisel 在用法上的区别,以及如何决定在常见场景中选择哪一个。我认为Mem在存储大量数据时这是最好的主意,因为它将数据存储到 SRAM 而不是使用 FPGA 片内的触发器,对吗?

如果我想实现一个大的寄存器文件(通常大小的 10 倍),最好使用Memthen 而不是Reg?

4

1 回答 1

2

有几个不同之处。关于使用 SRAM 与触发器的一点是表面差异。事实上,大多数 FPGA 供应商都支持将内存实现为块内存或触发器的想法。从功能上讲,它们是相同的。

由于大多数 FPGA 供应商实现其技术的方式,如果您使用单个 Block RAM 的一小部分,您基本上会使用所有单个 Block RAM。假设您的设备中有 10 个十块 RAM。你实现了 10 个微小的内存,每个内存只有一个字节宽,可以说……你将使用所有 10 个块 RAM!这不好。如果您拥有的内存表很小,请将它们实现为触发器并为大的东西保存块 RAM。对于您自己的问题,您建议 mem 更适合大数据,这就是为什么这是真的。

下一个问题,是时机。事实证明,FPGA 存储器的时序有时会比触发器慢。换句话说,如果你有一个在内存中实现的缓冲区,并且发现你无法让设计以 300Mhz 运行,你可以将缓冲区更改为使用触发器,你可能会挤出你需要获得的额外速度你到300Mhz。

也有路由差异。根据您的设计,您可能会发现芯片的一个象限中的所有内存都已被利用,因此现在该设计正试图进入另一个象限以获取更多的块 RAM,从而导致您的逻辑分散。这也可能表现为时机不佳。如果您允许某些内存作为触发器实例化,那么您可能会看到您的设计在一个象限中迅速恢复原状,因为它不需要为额外的资源进行拉伸。

这些是我在选择 RAM 而不是 Flops 作为内存时考虑的一些事情。

于 2017-03-08T04:46:38.280 回答