【发布时间】:2017-05-08 21:30:13
【问题描述】:
我想在第一次初始化时通过将所有位设置为 1 来初始化内存 bitmem。看过initsused的ROM,不知道Mem中是否有类似的初始化值的方法?
val bitmem = Mem(Bits(width = conf.ways), (conf.cache_lines*conf.words_per_line)
【问题讨论】:
标签: scala memory fpga hdl chisel
我想在第一次初始化时通过将所有位设置为 1 来初始化内存 bitmem。看过initsused的ROM,不知道Mem中是否有类似的初始化值的方法?
val bitmem = Mem(Bits(width = conf.ways), (conf.cache_lines*conf.words_per_line)
【问题讨论】:
标签: scala memory fpga hdl chisel
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当你不在的时候模拟和一个内存。
【讨论】: