propagate break signal as reset
authoradam <adam@megacz.com>
Sun, 27 Jan 2008 13:10:13 +0000 (14:10 +0100)
committeradam <adam@megacz.com>
Sun, 27 Jan 2008 13:10:13 +0000 (14:10 +0100)
src/edu/berkeley/fleet/fpga/main.v

index 86e0133..cd05049 100644 (file)
@@ -17,8 +17,9 @@ module main
 
   wire clk;
   assign clk = sys_clk_pin;
+  wire break;
   wire rst;
-  assign rst = sys_rst_pin;
+  assign rst = sys_rst_pin || break;
 
   wire       data_to_host_full;
   wire       data_to_host_write_enable;
@@ -32,36 +33,10 @@ module main
   reg re;
   reg [7:0] data_to_host_r;
 
-/*
-  assign data_to_host              = data_to_host_r;
-  assign data_to_host_write_enable = we;
-  assign data_to_fleet_read_enable = re;
-
-  reg [7:0] count;
-  initial count = 0;
-  initial we = 0;
-  initial re = 0;
-  initial data_to_host_r = 107;
-  always @(posedge clk) begin
-    if (re && !data_to_fleet_empty) begin
-      data_to_host_r <= data_to_fleet;
-      we <= 1;
-    end else begin
-      we <= 0;
-    end
-    if (data_to_host_full || data_to_fleet_empty) begin
-      re <= 0;
-    end else begin
-      re <= 1;
-    end
-  end
-*/
-
   wire ser_rst;
   reg ser_rst_r;
   initial ser_rst_r = 0;
   assign ser_rst = rst & ser_rst_r;
-   wire break;
 
   wire sio_ce;
   wire sio_ce_x4;
@@ -93,6 +68,7 @@ module main
    wire root_out_r;
    wire [7:0] root_in_d;
 
+
    root my_root(clk, rst, 
                 root_in_r,  root_in_a,  root_in_d,
                 root_out_r, root_out_a, data_to_host);
@@ -119,45 +95,24 @@ module main
      end
    end
 
-   // awful hack to flush the superfluous null byte that seems to appear on bootup
-   reg [15:0] boot_counter;
-
    // host -> fpga
    always @(posedge clk)
    begin
      ser_rst_r <= 1;
-/*
-     if (boot_counter != 500) begin
-       data_to_fleet_read_enable_reg = 1;
-       if (sio_ce) begin
-         boot_counter <= boot_counter + 1;
-       end
+     data_to_fleet_read_enable_reg = 0;
+     if (!data_to_fleet_empty && !root_in_r_reg && !root_in_a) begin
+        root_in_r_reg = 1;
+        root_in_d_reg = data_to_fleet;
+        data_to_fleet_read_enable_reg = 1;
      end else begin
-*/
-       data_to_fleet_read_enable_reg = 0;
-/*
-       if (break) begin
-          root_in_d_reg = 98;
-          root_in_r_reg = 1;
-       end else
-*/
-       if (!data_to_fleet_empty && !root_in_r_reg && !root_in_a) begin
-          root_in_r_reg = 1;
-          root_in_d_reg = data_to_fleet;
-          data_to_fleet_read_enable_reg = 1;
-       end else begin
-          if (root_in_a) begin
-            root_in_r_reg = 0;
-          end
-       end
-/*
+        if (root_in_a) begin
+          root_in_r_reg = 0;
+        end
      end
-*/
    end
 
    initial
    begin
-     boot_counter = 0;
      root_in_r_reg = 0;
      root_in_d_reg = 0;
      root_out_a_reg = 0;