From 2b736370b06cd95ae346213c3688264f851c61ed Mon Sep 17 00:00:00 2001 From: megacz Date: Mon, 6 Apr 2009 11:34:36 -0700 Subject: [PATCH] add currently-commented-out code to put a wig-wag in the instruction fifo --- src/edu/berkeley/fleet/fpga/FpgaDock.java | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/edu/berkeley/fleet/fpga/FpgaDock.java b/src/edu/berkeley/fleet/fpga/FpgaDock.java index d8bbef1..b06bc68 100644 --- a/src/edu/berkeley/fleet/fpga/FpgaDock.java +++ b/src/edu/berkeley/fleet/fpga/FpgaDock.java @@ -18,8 +18,13 @@ import java.util.*; public class FpgaDock extends FleetTwoDock implements FabricElement { - private static final int INSTRUCTION_FIFO_SIZE = 12; - private static final int EPILOGUE_FIFO_SIZE = 0; + //private static final int INSTRUCTION_FIFO_SIZE = 12; + + // Marina has 12 latches in the ring, 9 of which are wagged (plus + // M1, OD, RQ), so max capacity is 11 instructions + static final int INSTRUCTION_FIFO_SIZE = 11; + static final int INSTRUCTION_WAGGED_STAGES = 8; + //private static final int DATA_FIFO_SIZE = 4; static final int DATA_FIFO_SIZE = 8; @@ -159,7 +164,10 @@ public class FpgaDock extends FleetTwoDock implements FabricElement { int dfifo_width = inbox ? fpga.getWordWidth()+1 : 1; // FIXME: assumes fpga.DISPATCH_PATH is at top of word!!! - Module ififo_m = new FifoModule(INSTRUCTION_FIFO_SIZE, fpga.getWordWidth()-fpga.DISPATCH_PATH.valmaskwidth); + Module ififo_m_1 = new FifoModule(INSTRUCTION_FIFO_SIZE, fpga.getWordWidth()-fpga.DISPATCH_PATH.valmaskwidth); + //Module ififo_m_1 = new FifoModule(INSTRUCTION_FIFO_SIZE-INSTRUCTION_WAGGED_STAGES, fpga.getWordWidth()-fpga.DISPATCH_PATH.valmaskwidth); + //Module ififo_m_2 = new FifoModule(INSTRUCTION_WAGGED_STAGES, fpga.getWordWidth()-fpga.DISPATCH_PATH.valmaskwidth, true); + Module dfifo_m = new FifoModule(DATA_FIFO_SIZE, dfifo_width); Module.SourcePort instruction = createInputPort("instruction", fpga.WIDTH_PACKET); @@ -195,9 +203,12 @@ public class FpgaDock extends FleetTwoDock implements FabricElement { Module.SinkPort data_out = inbox ? ship_in : fabric_out; Module.SourcePort data_in = inbox ? dfifo_out : ship_out; - Module.InstantiatedModule ififo = new Module.InstantiatedModule(this, ififo_m); - Module.SinkPort ififo_in = ififo.getInputPort("in"); - Module.SourcePort ififo_out = ififo.getOutputPort("out"); + Module.InstantiatedModule ififo_1 = new Module.InstantiatedModule(this, ififo_m_1); + //Module.InstantiatedModule ififo_2 = new Module.InstantiatedModule(this, ififo_m_2); + //ififo_1.getOutputPort("out").connect(ififo_2.getInputPort("in")); + Module.SinkPort ififo_in = ififo_1.getInputPort("in"); + //Module.SourcePort ififo_out = ififo_2.getOutputPort("out"); + Module.SourcePort ififo_out = ififo_1.getOutputPort("out"); Module.InstantiatedModule torpedo_branch = new Module.InstantiatedModule(this, new TorpedoBranchModule()); instruction.connect(torpedo_branch.getInputPort("in")); -- 1.7.10.4