made pause enabling a pin so we can set it
authormatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Fri, 3 Apr 2009 22:34:15 +0000 (22:34 +0000)
committermatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Fri, 3 Apr 2009 22:34:15 +0000 (22:34 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10759 221aa14e-8319-0410-a670-987f0aec2ac5

usrp2/fpga/simple_gemac/simple_gemac.v
usrp2/fpga/simple_gemac/simple_gemac_tb.v

index 84a997666e52aa8b870d6859436019a59d64014c..adcc2d2fbef97d5ac38b638398ba9d2cf5fa1c67 100644 (file)
@@ -6,7 +6,7 @@ module simple_gemac
    input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, input [7:0] GMII_RXD,
 
    // Flow Control Interface
-   input pause_req, input [15:0] pause_time,
+   input pause_req, input [15:0] pause_time, input pause_en,
 
    // RX Client Interface
    output rx_clk, output [7:0] rx_data, output rx_valid, output rx_error, output rx_ack,
@@ -16,7 +16,6 @@ module simple_gemac
    );
 
    localparam SGE_IFG               = 8'd12;  // 12 should be the absolute minimum
-   localparam SGE_RESPECT_FLOW_CTRL  = 1'b1;  // stop sending if other side requests
 
    wire rst_rxclk, rst_txclk;   
    oneshot_2clk tx_rst_1shot (.clk_in(tx_clk),.in(reset),.clk_out(tx_clk),.out(rst_txclk));  // FIXME clocks
@@ -51,7 +50,7 @@ module simple_gemac
 
    flow_ctrl_tx flow_ctrl_tx
      (.rst(rst_txclk), .tx_clk(tx_clk),
-      .tx_pause_en(SGE_RESPECT_FLOW_CTRL),
+      .tx_pause_en(pause_en),
       .pause_quanta(pause_quanta_rcvd), // 16 bit value
       .pause_quanta_val(pause_rcvd),
       .pause_apply(pause_apply),
index 8d5416f947854de830122345e983a95b974c668c..cd2db01b574e50e14cbf662a24abd84a66769b85 100644 (file)
@@ -36,7 +36,7 @@ module simple_gemac_tb;
       .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD),
       .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV),  
       .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD),
-      .pause_req(pause_req), .pause_time(pause_time),
+      .pause_req(pause_req), .pause_time(pause_time), .pause_en(1),
       .rx_clk(rx_clk), .rx_data(rx_data),
       .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack),
       .tx_clk(tx_clk), .tx_data(tx_data), 
@@ -178,7 +178,7 @@ module simple_gemac_tb;
      end
    
    // Tests: Send and recv flow control, send and receive good packets, RX CRC err, RX_ER, RX overrun, TX underrun
-   // Still need to test: ?
+   // Still need to test: CRC errors on Pause Frames
    
    always @(posedge clk)
      if(rx_ll_src_rdy2 & rx_ll_dst_rdy2)