//////////////////////////////////////////////////////////// // CORAM1 - single-ported CoRAM //////////////////////////////////////////////////////////// module CORAM1 (CLK, RST_N, en, rnw, addr, din, dout); parameter THREAD = "undefined"; parameter THREAD_ID = -1; parameter OBJECT_ID = -1; parameter WIDTH = 36; parameter DEPTH = 512; parameter INDEXWIDTH = 9; // VERY IMPORTANT: SUB_IDs must be placed AFTER the required parameters parameter SUB_ID = -1; parameter SUBSUB_ID = -1; parameter SUBSUBSUB_ID = -1; parameter SUBSUBSUBSUB_ID = -1; parameter SUBSUBSUBSUBSUB_ID = -1; input CLK; input RST_N, en, rnw; input [INDEXWIDTH-1:0] addr; input [WIDTH-1:0] din; output [WIDTH-1:0] dout; endmodule //////////////////////////////////////////////////////////// // ChannelFIFO //////////////////////////////////////////////////////////// module ChannelFIFO (CLK, RST_N, din, din_rdy, din_en, dout, dout_rdy, dout_en); parameter THREAD = "undefined"; parameter THREAD_ID = -1; parameter OBJECT_ID = -1; parameter WIDTH = 64; parameter DEPTH = 16; parameter LOGDEPTH = 4; // VERY IMPORTANT: SUB_IDs must be placed AFTER the required parameters parameter SUB_ID = -1; parameter SUBSUB_ID = -1; parameter SUBSUBSUB_ID = -1; parameter SUBSUBSUBSUB_ID = -1; parameter SUBSUBSUBSUBSUB_ID = -1; input CLK; input RST_N; /////////////// TO CONTROL THREAD //////////////// input dout_en; input [WIDTH-1:0] dout; // write by user output dout_rdy; /////////////// FROM CONTROL THREAD //////////////// input din_en; output [WIDTH-1:0] din; // from thread to user output din_rdy; endmodule //////////////////////////////////////////////////////////// // ChannelReg // User logic decoupled from CoRAM back-end clock domain //////////////////////////////////////////////////////////// module ChannelReg (CLK, RST_N, din, din_en, dout); parameter THREAD = "undefined"; parameter THREAD_ID = -1; parameter OBJECT_ID = -1; parameter WIDTH = 64; // VERY IMPORTANT: SUB_IDs must be placed AFTER the required parameters parameter SUB_ID = -1; parameter SUBSUB_ID = -1; parameter SUBSUBSUB_ID = -1; parameter SUBSUBSUBSUB_ID = -1; parameter SUBSUBSUBSUBSUB_ID = -1; input CLK; input RST_N; input [WIDTH-1:0] din; // write interface for client input din_en; // '' output [WIDTH-1:0] dout; endmodule