update Marina Makefile lines
[fleet.git] / ships / Debug.ship
index 842059c..c3ea67d 100644 (file)
@@ -7,34 +7,49 @@ data  in:   in
 
 == 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_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;
+  assign  out_d_ = in_d;
+  assign  out_r_ = in_r;
 
-  input  data_debug_data_r;
-  output data_debug_data_a;
-  input  [`DATAWIDTH:0] data_debug_data;
+  always @(posedge clk) begin
+    if (!rst) begin
+      `reset
+    end else begin
+      `flush
+      in_a  <= out_a;
+    end
+  end
 
-  output  data_debug_out_r;
-  input   data_debug_out_a;
-  output  [`DATAWIDTH:0] data_debug_out;
+== Test ================================================================
+#expect 25
 
-  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;
+#ship debug : Debug
 
-endmodule
+debug.in:
+  set word= 25;
+  deliver;
 
 == Contributors =========================================================
 Adam Megacz <megacz@cs.berkeley.edu>