ship: Debug
== Ports ===========================================================
-data in: data
+data in: in
== Constants ========================================================
== TeX ==============================================================
+This ship is used for debugging. It has only one port, {\tt in}.
+Programmers should send debug report values to this port. How such
+values are reported back to the programmer doing the debugging is left
+unspecified.
+
+\subsection*{To Do}
+
+Provide an {\tt inOp} port and use opcode ports \cite{am25} to
+effectively allow multiple independent ``debug streams''
+
+Provide a way to programmatically read back the output of the debug
+ship.
+
== Fleeterpreter ====================================================
public void service() {
- if (box_data.dataReadyForShip())
- ((Interpreter)getFleet()).debug(box_data.removeDataForShip());
+ if (box_in.dataReadyForShip())
+ ((Interpreter)getFleet()).debug(box_in.removeDataForShip());
}
-== ArchSim ==============================================================
+== FleetSim ==============================================================
== FPGA ==============================================================
+`include "macros.v"
+
+module debug (clk, data_debug_data_r, data_debug_data_a, data_debug_data,
+ data_debug_out_r, data_debug_out_a, data_debug_out );
+ input clk;
+
+ input data_debug_data_r;
+ output data_debug_data_a;
+ input [`DATAWIDTH:0] data_debug_data;
+
+ output data_debug_out_r;
+ input data_debug_out_a;
+ output [`DATAWIDTH:0] data_debug_out;
+
+ assign data_debug_out_r = data_debug_data_r;
+ assign data_debug_data_a = data_debug_out_a;
+ assign data_debug_out = data_debug_data;
+
+endmodule
+
+== Test ================================================================
+#expect 25
+
+#ship debug : Debug
+
+debug.in:
+ literal 25;
+ deliver;
== Contributors =========================================================
Adam Megacz <megacz@cs.berkeley.edu>