package fpga; import com.maxeler.maxcompiler.v2.build.EngineParameters; //import com.maxeler.maxcompiler.v2.kernelcompiler.Kernel; import com.maxeler.maxcompiler.v2.managers.custom.DFELink; import com.maxeler.maxcompiler.v2.managers.custom.blocks.KernelBlock; import com.maxeler.maxcompiler.v2.managers.custom.stdlib.LMemCommandGroup; import com.maxeler.maxcompiler.v2.managers.custom.stdlib.LMemInterface; //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.CPUTypes; //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.EngineInterface; //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.EngineInterface.Direction; //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.InterfaceParam; import com.maxeler.platform.max5.manager.MAX5CManager; public class StreamFMAManager extends MAX5CManager { //private static final CPUTypes TYPE = CPUTypes.INT32; private static final String kernel_name = "StreamFMAKernel"; public StreamFMAManager(EngineParameters params) { super(params); KernelBlock kernel = addKernel(new StreamFMAKernel(makeKernelParameters(kernel_name))); LMemInterface iface = addLMemInterface(); kernel.getInput("inAT1") <== addStreamFromCPU("inAT1"); kernel.getInput("inBT1") <== addStreamFromCPU("inBT1"); //addStreamToCPU("oDataT1") <== kernel.getOutput("oDataT1"); DFELink inAT2 = iface.addStreamFromLMem("inAT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); kernel.getInput("inAT2") <== inAT2; DFELink inBT2 = iface.addStreamFromLMem("inBT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); kernel.getInput("inBT2") <== inBT2; DFELink inAT3 = iface.addStreamFromLMem("inAT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); kernel.getInput("inAT3") <== inAT3; DFELink inBT3 = iface.addStreamFromLMem("inBT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); kernel.getInput("inBT3") <== inBT3; DFELink oDataT1 = iface.addStreamToLMem("oDataT1", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); oDataT1 <== kernel.getOutput("oDataT1"); DFELink oDataT2 = iface.addStreamToLMem("oDataT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); oDataT2 <== kernel.getOutput("oDataT2"); //DFELink oDataT3 = iface.addStreamToLMem("oDataT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D); //oDataT3 <== kernel.getOutput("oDataT3"); addStreamToCPU("oDataT3") <== kernel.getOutput("oDataT3"); } public static void main(String[] args) { StreamFMAManager manager = new StreamFMAManager(new EngineParameters(args)); manager.build(); } }