URL
https://opencores.org/ocsvn/tv80/tv80/trunk
[/] [tv80/] [trunk/] [sc_env/] [app_localcfg/] [it_cfg_driver.cpp] - Diff between revs 104 and 108
Only display areas with differences |
Details |
Blame |
View Log
Rev 104 |
Rev 108 |
#include "it_cfg_driver.h"
|
#include "it_cfg_driver.h"
|
|
|
void it_cfg_driver::add_queue (uint32_t d)
|
void it_cfg_driver::add_queue (uint32_t d)
|
{
|
{
|
send_queue.push (d);
|
send_queue.push (d);
|
}
|
}
|
|
|
void it_cfg_driver::event()
|
void it_cfg_driver::event()
|
{
|
{
|
if (reset_n == 0) {
|
if (reset_n == 0) {
|
cfgi_irdy = 0;
|
cfgi_irdy = 0;
|
cfgi_addr = 0;
|
cfgi_addr = 0;
|
cfgi_write = 0;
|
cfgi_write = 0;
|
cfgi_wr_data = 0;
|
cfgi_wr_data = 0;
|
} else {
|
} else {
|
if (cfgi_irdy == 0) {
|
if (cfgi_irdy == 0) {
|
// check the send queue
|
// check the send queue
|
if (!send_queue.empty()) {
|
if (!send_queue.empty()) {
|
cfgi_irdy = 1;
|
cfgi_irdy = 1;
|
cfgi_addr = addr++;
|
cfgi_addr = addr++;
|
cfgi_wr_data = send_queue.front();
|
cfgi_wr_data = send_queue.front();
|
send_queue.pop();
|
send_queue.pop();
|
cfgi_write = 1;
|
cfgi_write = 1;
|
}
|
}
|
} else {
|
} else {
|
if (cfgi_trdy == 1) {
|
if (cfgi_trdy == 1) {
|
// check the send queue and send data
|
// check the send queue and send data
|
if (!send_queue.empty()) {
|
if (!send_queue.empty()) {
|
cfgi_irdy = 1;
|
cfgi_irdy = 1;
|
cfgi_addr = addr++;
|
cfgi_addr = addr++;
|
cfgi_wr_data = send_queue.front();
|
cfgi_wr_data = send_queue.front();
|
send_queue.pop();
|
send_queue.pop();
|
cfgi_write = 1;
|
cfgi_write = 1;
|
} else {
|
} else {
|
cfgi_irdy = 0;
|
cfgi_irdy = 0;
|
}
|
}
|
}
|
}
|
}
|
}
|
|
|
|
while (!send_queue.empty() && (send_queue.front() == 0)) {
|
|
send_queue.pop();
|
|
addr++;
|
|
}
|
}
|
}
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.