Reputation: 425
How can I generate a Vexriscv core in a way that the generated ram is a vendor specific block ram (e.g. Intel/Altera or Xilinx)?
I tried it by using the black boxing possibility (see https://spinalhdl.github.io/SpinalDoc-RTD/v1.3.1/SpinalHDL/Sequential%20logic/memory.html) like shown in the snippet below. However, this did not workout as expected, as I assumed that passing the device information to the SpinalConfig the core generation will replace the standard memory by the vendor specific one. However, the implementation did not change.
object MuraxCustom{
def main(args: Array[String]) {
val hex = "../software.hex"
val muraxConf = MuraxConfig.default(false).copy(coreFrequency = 25 MHz, onChipRamSize = 32 kB, onChipRamHexFile = hex)
val config = SpinalConfig(device=Device(vendor = "altera", family = "Cyclone V"))
config.addStandardMemBlackboxing(blackboxAllWhatsYouCan)
config.generateVhdl(Murax(muraxConf))
}
}
Any idea how I replace the ram realized as std_logic_vector
as vendor specific block ram?
Upvotes: 1
Views: 197
Reputation: 425
blackboxAllWhatsYouCan is currently independent of the device family your use. It will always generate using the same blockbox primitives. So no way to currently match automaticaly xilinx / altera specific memory IP
https://spinalhdl.github.io/SpinalDoc-RTD/v1.3.1/SpinalHDL/Sequential%20logic/memory.html
Upvotes: 1