This is an old revision of the document!
Three files are required to build a system with CoRAM:
In addition to these files, there may also be a memory image file containing input data.
This file contains HDL descriptions of the hardware components that implement computation. It is generally written in Verilog, but can also be written in Bluespec System Verilog (if the Bluespec compiler is available) and compiled to Verilog.
It looks like any other Verilog file, with the addition of CoRAM specific components that it instantiates. The three CoRAM specific components are CoRAM modules, Channel FIFO modules, and Channel Registers.
The compute components may link to other modules defined in external tools. These modules can be any modules supported by the toolset used for simulation and synthesis, and may even be created by high level synthesis tools such as ROCCC, Xilinx Vivado High Level Synthesis, or Altera C2H, and linking the block memory connections from the cores created by these tools to CoRAM modules.