在Mem(Chisel)中初始化数据

时间:2017-05-08 21:30:13

标签: scala memory fpga hdl chisel

我想通过在第一次初始化时将所有位设置为1来初始化内存bitmem。我看过inits Working demo的ROM,我想知道是否有类似的方法来初始化Mem中的值?

val bitmem = Mem(Bits(width = conf.ways), (conf.cache_lines*conf.words_per_line)

1 个答案:

答案 0 :(得分:3)

Chisel首先用于设计ASIC。因此,重点是可合成的硬件,这样当您模拟Chisel代码时,您正在模拟您正在合成的相同内容。由于Mem旨在映射到ASIC中的SRAM并且SRAM无法初始化,因此我们不支持Chisel本身的这种构造。如果您希望创建寄存器而不是SRAM,请尝试Reg of Vec

然而,初始化Mems的能力显然是模拟的有用特征。我们正在修改Chisel Testers,此功能旨在成为一流的功能。我们还在讨论Chisel API could help users initialize their memories in Verilog or SystemVerilog testbenches

与此同时,作为一种解决方法,您可以根据内存(或内存)是否应该通过初始化(即,如果您正在详细说明模拟或合成)来参数化您的设计,并在您使用时发出Vec的Reg当你不是时,模拟和记忆。