This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
coram_files [2012/11/29 16:40] gweisz |
coram_files [2012/11/30 13:58] (current) gweisz Page name changed from coram_file_walkthrough to coram_files |
||
---|---|---|---|
Line 19: | Line 19: | ||
[[http://www.ece.cmu.edu/~coram/coram-examples/Coprims.v|Primitive declarations]] | [[http://www.ece.cmu.edu/~coram/coram-examples/Coprims.v|Primitive declarations]] | ||
- | [[Detailed CoRAM Hardware Instantiation]] | + | |
+ | [[detailed_coram_hardware_instantiation]] | ||
==== Control Thread Source Code ==== | ==== Control Thread Source Code ==== | ||
Line 25: | Line 26: | ||
- cpi_register_thread - Must be called at the beginning of every CoRAM control thread to ensure that the framework processes it correctly | - cpi_register_thread - Must be called at the beginning of every CoRAM control thread to ensure that the framework processes it correctly | ||
- cpi_get_ram - get a handle to a CoRAM | - cpi_get_ram - get a handle to a CoRAM | ||
- | - channel- get a handle to a Channel FIFO or Channel Register | + | - cpi_get_channel get a handle to a Channel FIFO or Channel Register |
- | - | + | - cpi_write_ram - Blocking write from DRAM to a CoRAM |
+ | - cpi_read_ram - Blocking read from CoRAM to DRAM | ||
+ | - cpi_nb_write_ram - Nonlocking write from DRAM to a CoRAM (returns a tag) | ||
+ | - cpi_read_ram - Non-blocking read from CoRAM to DRAM (returns a tag) | ||
+ | - cpi_wait - wait for a Non-blocking access (using a tag) | ||
+ | - cpi_write_channel - write to a Channel FIFO or Channel Register. | ||
+ | - cpi_read_cannel - read from a Channel FIFO or Channel Register - blocks if a FIFO is empty | ||
+ | - cpi_printf - [SIMULATION ONLY] print formatted text | ||
+ | |||
+ | |||
+ | [[http://www.ece.cmu.edu/~coram/coram-examples/cpi.h|Actual header file]] | ||
+ | |||
+ | [[detailed_coram_control_thread]] | ||
+ | ==== System Specification File ==== | ||
+ | The system specification file can be used for advanced tuning, to provide more control over how the system is built. In general, it does not have to be modified, as a default file for each supported platform is often sufficient. Important parameters are: | ||
+ | - platform - Determines general built type. Use "ml605" for hardware (either the Xilinx ML605 or Terasic/Altera DE4), "ml605sim" for simulation with icarus, or "vsim" for simulation with isim. Simulation targets model dram accesses as having a fixed delay (specified in cycles) | ||
+ | - num_mc - Determines the number of memory controllers (and caches) to use. This should be 1 for the ML605, can be 1 or 2 for the DE4, and can be any number for simulation | ||
+ | - topology - Network topology to use. Can be "xbar" for a crossbar, or "ring" for a unidirectional ring | ||
+ | - ports_per_mc - Network ports connected to the memory controller. Must be 4 to reach maximum bandwidth, but may be reduced to create smaller designs. | ||
+ | - dram_delay_cycles - Fixed DRAM delay for simulations | ||