commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7405 - usrp2/trunk/fpga/eth


From: matt
Subject: [Commit-gnuradio] r7405 - usrp2/trunk/fpga/eth
Date: Fri, 11 Jan 2008 19:16:57 -0700 (MST)

Author: matt
Date: 2008-01-11 19:16:56 -0700 (Fri, 11 Jan 2008)
New Revision: 7405

Modified:
   usrp2/trunk/fpga/eth/tx_prot_engine.v
Log:
generates proper sequence numbers and adds in a channel


Modified: usrp2/trunk/fpga/eth/tx_prot_engine.v
===================================================================
--- usrp2/trunk/fpga/eth/tx_prot_engine.v       2008-01-11 22:04:50 UTC (rev 
7404)
+++ usrp2/trunk/fpga/eth/tx_prot_engine.v       2008-01-12 02:16:56 UTC (rev 
7405)
@@ -25,16 +25,22 @@
 
    // Protocol Stuff
    input [15:0] rx_fifo_status,
-   input [7:0] rx_seqnum,
-   input [7:0] tx_channel,
-   input [7:0] tx_flags
+   input [7:0] rx_seqnum
+   //input [7:0] tx_channel,
+   //input [7:0] tx_flags
    );
 
    wire [3:0]  hdr_adr;
    wire [31:0]         hdr_dat;
+   wire [7:0]  tx_channel;
+   
    header_ram #(.REGNUM(32),.WIDTH(32)) tx_header_ram
      (.clk(clk),.set_stb(set_stb),.set_addr(set_addr),.set_data(set_data),
       .addr(hdr_adr),.q(hdr_dat));
+
+   setting_reg #(.my_addr(32)) sr_channel
+     (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr),.in(set_data),
+      .out(tx_channel),.changed());
    
    // Might as well use a shortfifo here since they are basically free
    wire  empty, full, sfifo_write, sfifo_read;
@@ -62,13 +68,18 @@
    localparam  PROT_HDR4 = 4;
    localparam  PROT_PKT  = 5;
    localparam  PROT_TRAIL = 6;
+
+   always @(posedge clk)
+     if(rst) 
+       tx_seqnum <= 0;
+     else if(set_stb & (set_addr == 36))
+       tx_seqnum <= set_data[7:0];
+     else if(tx_mac_wa_d1 & (prot_state == PROT_TRAIL))
+       tx_seqnum <= tx_seqnum + 1;
    
    always @(posedge clk)
      if(rst)
-       begin
-         tx_seqnum <= 0;
-         prot_state <= PROT_IDLE;
-       end
+       prot_state <= PROT_IDLE;
      else
        if(tx_mac_wa_d1)
         case(prot_state)
@@ -87,10 +98,7 @@
             if(sfifo_out[32] & ~empty)
               prot_state <= PROT_TRAIL;
           PROT_TRAIL :
-            begin
-               prot_state <= PROT_IDLE;
-               tx_seqnum <= tx_seqnum + 1;
-            end
+            prot_state <= PROT_IDLE;   // seqnum increments here
           default :
             prot_state <= PROT_IDLE;
         endcase // case(prot_state)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]