OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [rtl/] [verilog/] [components/] [smii/] [smii_txrx.v] - Diff between revs 18 and 42

Show entire file | Details | Blame | View Log

Rev 18 Rev 42
Line 64... Line 64...
`endif
`endif
`ifdef SMII_LINK
`ifdef SMII_LINK
    output reg   link,
    output reg   link,
`endif
`endif
   // internal
   // internal
    input [1:10] state,
    input [10:1] state, // Change bit size declaration order, was [1:10], not verilator compatible: %Error: Unsupported: MSB < LSB of bit range: 1<10
   // clock and reset
   // clock and reset
    input        clk,
    input        clk,
    input        rst
    input        rst
   );
   );
 
 
   reg [0:7]              tx_data_reg;
   reg [7:0]              tx_data_reg;
   reg                   tx_data_reg_valid;
   reg                   tx_data_reg_valid;
   reg                   a0;
   reg                   a0;
   reg                   state_data;
   reg                   state_data;
 
 
   reg [3:0]      rx_tmp;
   reg [3:0]      rx_tmp;
Line 150... Line 150...
            if (!mtxen & !a0)
            if (!mtxen & !a0)
              tx_data_reg_valid <= 1'b0;
              tx_data_reg_valid <= 1'b0;
            else if (a0)
            else if (a0)
              tx_data_reg_valid <= 1'b1;
              tx_data_reg_valid <= 1'b1;
            if (mtxen & !a0)
            if (mtxen & !a0)
              tx_data_reg[0:3] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
              //tx_data_reg[0:3] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
 
              tx_data_reg[3:0] <= {mtxd[3],mtxd[2],mtxd[1],mtxd[0]}; // Changed for verilator -- jb
            else if (mtxen & a0)
            else if (mtxen & a0)
              tx_data_reg[4:7] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
              //tx_data_reg[4:7] <= {mtxd[0],mtxd[1],mtxd[2],mtxd[3]};
 
              tx_data_reg[7:4] <= {mtxd[3],mtxd[2],mtxd[1],mtxd[0]}; // Changed for verilator -- jb
         end // if ((state[4] | state[9]) & (tx_cnt == 4'd0))
         end // if ((state[4] | state[9]) & (tx_cnt == 4'd0))
 
 
 
 
   // state flag
   // state flag
   always @ (posedge clk or posedge rst)
   always @ (posedge clk or posedge rst)
Line 166... Line 168...
       if (state[1] & (tx_cnt == 4'd0))
       if (state[1] & (tx_cnt == 4'd0))
         state_data <= tx_data_reg_valid;
         state_data <= tx_data_reg_valid;
 
 
   assign tx = state[1] ? mtxerr :
   assign tx = state[1] ? mtxerr :
               state[2] ? ((tx_data_reg_valid & (tx_cnt == 4'd0)) | state_data) :
               state[2] ? ((tx_data_reg_valid & (tx_cnt == 4'd0)) | state_data) :
               state_data ? |(state[2:10] & tx_data_reg) :
               state_data ? |(state[10:2] & tx_data_reg) :  // changed bit select order to 10:2 -- jb
               |(state[2:10] & {mtxerr,speed,duplex,link,jabber,3'b111});
               |(state[10:2] & {mtxerr,speed,duplex,link,jabber,3'b111}); // changed bit select order to 10:2 -- jb
 
 
   /////////////////////////////////////////////////
   /////////////////////////////////////////////////
   // Receive
   // Receive
 
 
   always @ (posedge clk or posedge rst)
   always @ (posedge clk or posedge rst)

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.