2017-05-08 4 views
3

Je voudrais initialiser la mémoire bitmem en mettant tous les bits à 1 lors de la première initialisation. J'ai vu initsused pour ROM, et je me demande s'il existe des moyens similaires pour initialiser la valeur dans Mem?Initialiser les données dans Mem (Chisel)

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

Répondre

3

Le burin est avant tout destiné à la conception d'ASIC. En tant que tel, l'accent est mis sur synthétisable matériel de sorte que lorsque vous simulez votre code Ciseau, vous simulez la même chose que vous synthétisez. Puisque Mem est destiné à être mappé aux SRAM dans un ASIC et que les SRAM ne peuvent pas être initialisées, nous ne supportons pas cette construction dans Chisel lui-même. Si vous souhaitez créer des registres au lieu d'une SRAM, essayez Reg of Vec. Cependant, la possibilité d'initialiser Mems est clairement une fonctionnalité utile pour la simulation. Nous sommes en train de réorganiser le Chisel Testers et cette fonctionnalité est destinée à être une fonctionnalité de première classe. Nous discutons également de ce que Chisel API could help users initialize their memories in Verilog or SystemVerilog testbenches. En attendant, pour contourner ce problème, vous pouvez paramétrer votre conception en fonction de l'initialisation de la mémoire (ou des mémoires) (par exemple, si vous élaborez pour la simulation ou la synthèse), et émettre une Reg de Vec lorsque vous simulent et un Mem quand vous n'êtes pas.