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

Subversion Repositories tv80

[/] [tv80/] [trunk/] [sc_env/] [app_localcfg/] [it_cfg_driver.cpp] - Rev 108

Compare with Previous | Blame | View Log

#include "it_cfg_driver.h"
 
void it_cfg_driver::add_queue (uint32_t d)
{
  send_queue.push (d);
}
 
void it_cfg_driver::event()
{
  if (reset_n == 0) {
    cfgi_irdy = 0;
    cfgi_addr = 0;
    cfgi_write = 0;
    cfgi_wr_data = 0;
  } else {
    if (cfgi_irdy == 0) {
      // check the send queue
      if (!send_queue.empty()) {
        cfgi_irdy = 1;
        cfgi_addr = addr++;
        cfgi_wr_data = send_queue.front();
        send_queue.pop();
        cfgi_write = 1;
      }
    } else {
      if (cfgi_trdy == 1) {
        // check the send queue and send data
        if (!send_queue.empty()) {
          cfgi_irdy = 1;
          cfgi_addr = addr++;
          cfgi_wr_data = send_queue.front();
          send_queue.pop();
          cfgi_write = 1;
        } else {
          cfgi_irdy = 0;
        }
      }
    }
 
    while (!send_queue.empty() && (send_queue.front() == 0)) {
      send_queue.pop();
      addr++;
    }
  }
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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