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

Subversion Repositories tv80

[/] [tv80/] [trunk/] [rtl/] [app_localcfg/] [lcfg_memctl.v] - Diff between revs 101 and 103

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 101 Rev 103
Line 80... Line 80...
  reg           a_rip, nxt_a_rip;  // read in progress by A
  reg           a_rip, nxt_a_rip;  // read in progress by A
  reg           a_wip, nxt_a_wip;  // write (read-cache-fill) in progress by A
  reg           a_wip, nxt_a_wip;  // write (read-cache-fill) in progress by A
  reg           b_rip, nxt_b_rip;  // read in progress by B
  reg           b_rip, nxt_b_rip;  // read in progress by B
  wire          t_ram_nwrt, t_ram_nce;
  wire          t_ram_nwrt, t_ram_nce;
  wire [35:0]   t_ram_din;
  wire [35:0]   t_ram_din;
  wire          c_rip = lcfg_data_rd_ack;
  wire          c_rip = cfgi_trdy;
  wire          a_cache_hit, b_cache_hit;
  wire          a_cache_hit, b_cache_hit;
  wire [12:0]   t_ram_addr;
  wire [12:0]   t_ram_addr;
 
 
  /*AUTOWIRE*/
  /*AUTOWIRE*/
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
Line 109... Line 109...
   .rd_data                              (dout),
   .rd_data                              (dout),
   // Inputs
   // Inputs
   .wr_en                             (!t_ram_nce & !t_ram_nwrt),
   .wr_en                             (!t_ram_nce & !t_ram_nwrt),
   .rd_en                             (!t_ram_nce & t_ram_nwrt),
   .rd_en                             (!t_ram_nce & t_ram_nwrt),
   .clk                               (clk),
   .clk                               (clk),
   .wr_data                               (t_ram_din[]),
   .d_in                                (t_ram_din[]),
   .addr                                (t_ram_addr[]),
   .addr                                (t_ram_addr[]),
   );
   );
   */
   */
 
 
  behave1p_mem #(.width(32),
  behave1p_mem #(.width(32),
Line 124... Line 124...
     .d_out                             (d_out[31:0]),
     .d_out                             (d_out[31:0]),
     // Inputs
     // Inputs
     .wr_en                             (!t_ram_nce & !t_ram_nwrt), // Templated
     .wr_en                             (!t_ram_nce & !t_ram_nwrt), // Templated
     .rd_en                             (!t_ram_nce & t_ram_nwrt), // Templated
     .rd_en                             (!t_ram_nce & t_ram_nwrt), // Templated
     .clk                               (clk),                   // Templated
     .clk                               (clk),                   // Templated
     .d_in                              (d_in[31:0]),
     .d_in                              (t_ram_din[31:0]),       // Templated
     .addr                              (t_ram_addr[12:0]));      // Templated
     .addr                              (t_ram_addr[12:0]));      // Templated
 
 
  always @*
  always @*
    begin
    begin
      nxt_ca_addr = ca_addr;
      nxt_ca_addr = ca_addr;
Line 146... Line 146...
      nxt_cvld    = cvld;
      nxt_cvld    = cvld;
      nxt_wcvld   = wcvld;
      nxt_wcvld   = wcvld;
      nxt_wc_data = wc_data;
      nxt_wc_data = wc_data;
      nxt_wc_addr = wc_addr;
      nxt_wc_addr = wc_addr;
      nxt_cfgi_trdy = 0;
      nxt_cfgi_trdy = 0;
      //nxt_lcfg_data_rd_ack = 0;
 
      //nxt_lcfg_data_wr_ack = 0;
 
 
 
      if (a_cache_hit)
      if (a_cache_hit)
        begin
        begin
          case (a_addr[1:0])
          case (a_addr[1:0])
            0 : a_rdata = ca_data[7:0];
            0 : a_rdata = ca_data[7:0];
Line 344... Line 342...
                  if (cfgi_write & !cfgi_trdy)
                  if (cfgi_write & !cfgi_trdy)
                    begin
                    begin
                      nxt_cfgi_trdy = 1;
                      nxt_cfgi_trdy = 1;
                      ram_nce = 0;
                      ram_nce = 0;
                      ram_nwrt = 0;
                      ram_nwrt = 0;
                      ram_addr = lcfg_cfg_addr;
                      ram_addr = cfgi_addr;
                      ram_din = lcfg_data_wr_data;
                      ram_din = cfgi_wr_data;
                      // invalidate caches as precaution
                      // invalidate caches as precaution
                      nxt_cvld = 0;
                      nxt_cvld = 0;
                      nxt_wcvld = 0;
                      nxt_wcvld = 0;
                    end
                    end
                  else if (!cfgi_write & !cfgi_trdy)
                  else if (!cfgi_write & !cfgi_trdy)
                    begin
                    begin
                      ram_nce = 0;
                      ram_nce = 0;
                      ram_addr = lcfg_cfg_addr;
                      ram_addr = cfgi_addr;
                      nxt_cfgi_trdy = 1;
                      nxt_cfgi_trdy = 1;
                    end
                    end
                end
                end
            end
            end
        end // if (lcfg_init)      
        end // if (lcfg_init)      

powered by: WebSVN 2.1.0

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