我想初始化内存 bitmem
通过在第一次初始化时将所有位设置为 1。我见过inits
used对于ROM,我想知道是否有类似的方法来初始化Mem
中的值?
val bitmem = Mem(Bits(width = conf.ways), (conf.cache_lines*conf.words_per_line)
最佳答案
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 和一个当你不在时,请记住。
关于scala - 在 Mem (Chisel) 中初始化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43857577/