StreamFMAManager.maxj 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package fpga;
  2. import com.maxeler.maxcompiler.v2.build.EngineParameters;
  3. //import com.maxeler.maxcompiler.v2.kernelcompiler.Kernel;
  4. import com.maxeler.maxcompiler.v2.managers.custom.DFELink;
  5. import com.maxeler.maxcompiler.v2.managers.custom.blocks.KernelBlock;
  6. import com.maxeler.maxcompiler.v2.managers.custom.stdlib.LMemCommandGroup;
  7. import com.maxeler.maxcompiler.v2.managers.custom.stdlib.LMemInterface;
  8. //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.CPUTypes;
  9. //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.EngineInterface;
  10. //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.EngineInterface.Direction;
  11. //import com.maxeler.maxcompiler.v2.managers.engine_interfaces.InterfaceParam;
  12. import com.maxeler.platform.max5.manager.MAX5CManager;
  13. public class StreamFMAManager extends MAX5CManager
  14. {
  15. //private static final CPUTypes TYPE = CPUTypes.INT32;
  16. private static final String kernel_name = "StreamFMAKernel";
  17. public StreamFMAManager(EngineParameters params)
  18. {
  19. super(params);
  20. KernelBlock kernel = addKernel(new StreamFMAKernel(makeKernelParameters(kernel_name)));
  21. LMemInterface iface = addLMemInterface();
  22. kernel.getInput("inAT1") <== addStreamFromCPU("inAT1");
  23. kernel.getInput("inBT1") <== addStreamFromCPU("inBT1");
  24. //addStreamToCPU("oDataT1") <== kernel.getOutput("oDataT1");
  25. DFELink inAT2 = iface.addStreamFromLMem("inAT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  26. kernel.getInput("inAT2") <== inAT2;
  27. DFELink inBT2 = iface.addStreamFromLMem("inBT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  28. kernel.getInput("inBT2") <== inBT2;
  29. DFELink inAT3 = iface.addStreamFromLMem("inAT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  30. kernel.getInput("inAT3") <== inAT3;
  31. DFELink inBT3 = iface.addStreamFromLMem("inBT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  32. kernel.getInput("inBT3") <== inBT3;
  33. DFELink oDataT1 = iface.addStreamToLMem("oDataT1", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  34. oDataT1 <== kernel.getOutput("oDataT1");
  35. DFELink oDataT2 = iface.addStreamToLMem("oDataT2", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  36. oDataT2 <== kernel.getOutput("oDataT2");
  37. //DFELink oDataT3 = iface.addStreamToLMem("oDataT3", LMemCommandGroup.MemoryAccessPattern.LINEAR_1D);
  38. //oDataT3 <== kernel.getOutput("oDataT3");
  39. addStreamToCPU("oDataT3") <== kernel.getOutput("oDataT3");
  40. }
  41. public static void main(String[] args)
  42. {
  43. StreamFMAManager manager = new StreamFMAManager(new EngineParameters(args));
  44. manager.build();
  45. }
  46. }