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

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [rtl/] [verilog/] [utility/] [sd_bpdrop.v] - Diff between revs 26 and 28

Show entire file | Details | Blame | View Log

Rev 26 Rev 28
Line 29... Line 29...
  #(parameter cnt_sz = 3)
  #(parameter cnt_sz = 3)
  (
  (
   input               clk,
   input               clk,
   input               reset,
   input               reset,
 
 
 
   input               g_enable,
   input [cnt_sz-1:0]  g_max_count,
   input [cnt_sz-1:0]  g_max_count,
 
   output reg          g_drop,     // token frame was sunk
 
 
   input               c_srdy,
   input               c_srdy,
   input               c_fr_start, // start of frame signal
   input               c_fr_start, // start of frame signal
   input               c_fr_end,   // end of frame signal
   input               c_fr_end,   // end of frame signal
   output reg          nc_drdy,
   output reg          nc_drdy,
Line 51... Line 53...
    begin
    begin
      nc_drdy = 0;
      nc_drdy = 0;
      np_srdy = 0;
      np_srdy = 0;
      nxt_state = state;
      nxt_state = state;
      nxt_count = count;
      nxt_count = count;
 
      g_drop = 0;
 
 
      case (state)
      case (state)
        s_idle :
        s_idle :
          begin
          begin
 
            if (!g_enable)
            if (c_srdy & c_fr_start)
              begin
 
                nc_drdy = p_drdy;
 
                np_srdy = c_srdy;
 
              end
 
            else if (c_srdy & c_fr_start)
              begin
              begin
 
                np_srdy = 1;
                if (p_drdy)
                if (p_drdy)
                  begin
                  begin
                    nc_drdy = 1;
                    nc_drdy = 1;
                    np_srdy = 1;
 
                    nxt_state = s_xfer;
                    nxt_state = s_xfer;
                  end
                  end
                else
                else
                  begin
                  begin
                    nxt_count = count + 1;
                    nxt_count = count + 1;
                    if (count >= g_max_count)
                    if (count >= g_max_count)
                      begin
                      begin
                        nc_drdy = 1;
                        nc_drdy = 1;
                        nxt_state = s_sink;
                        nxt_state = s_sink;
 
                        g_drop = 1;
                      end
                      end
                  end
                  end
              end
              end
            else
            else
              begin
              begin
Line 87... Line 95...
          end // case: s_idle
          end // case: s_idle
 
 
        s_xfer :
        s_xfer :
          begin
          begin
            nxt_count = 0;
            nxt_count = 0;
            if (c_srdy & p_drdy)
            np_srdy = c_srdy;
              begin
            nc_drdy = p_drdy;
                nc_drdy = 1;
            if (c_srdy & p_drdy & c_fr_end)
                np_srdy = 1;
 
                if (c_fr_end)
 
                  nxt_state = s_idle;
                  nxt_state = s_idle;
              end
 
          end // case: s_xfer
          end // case: s_xfer
 
 
        s_sink :
        s_sink :
          begin
          begin
            nc_drdy = 1;
            nc_drdy = 1;

powered by: WebSVN 2.1.0

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