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

Subversion Repositories wbuart32

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /wbuart32/trunk/bench/cpp
    from Rev 2 to Rev 3
    Reverse comparison

Rev 2 → Rev 3

/uartsim.cpp
152,7 → 152,7
if (m_rx_state == RXIDLE) {
if (!i_tx) {
m_rx_state = RXDATA;
m_rx_baudcounter =m_baud_counts+m_baud_counts/2;
m_rx_baudcounter =m_baud_counts+m_baud_counts/2-1;
m_rx_baudcounter -= m_rx_changectr;
m_rx_busy = 0;
m_rx_data = 0;
182,7 → 182,7
// stop bit
// (possible secondary stop bit)
m_rx_data = ((i_tx&1)<<31) | (m_rx_data>>1);
} m_rx_baudcounter = m_baud_counts;
} m_rx_baudcounter = m_baud_counts-1;
} else
m_rx_baudcounter--;
 
218,16 → 218,16
m_tx_busy = (1<<(m_nbits+m_nparity+m_nstop+1))-1;
m_tx_state = TXDATA;
o_rx = 0;
m_tx_baudcounter = m_baud_counts;
m_tx_baudcounter = m_baud_counts-1;
}
}
} else if (m_tx_baudcounter == 0) {
} else if (m_tx_baudcounter <= 0) {
m_tx_data >>= 1;
m_tx_busy >>= 1;
if (!m_tx_busy)
m_tx_state = TXIDLE;
else
m_tx_baudcounter = m_baud_counts;
m_tx_baudcounter = m_baud_counts-1;
o_rx = m_tx_data&1;
} else {
m_tx_baudcounter--;
248,7 → 248,7
if (m_rx_state == RXIDLE) {
if (!i_tx) {
m_rx_state = RXDATA;
m_rx_baudcounter =m_baud_counts+m_baud_counts/2;
m_rx_baudcounter =m_baud_counts+m_baud_counts/2-1;
m_rx_baudcounter -= m_rx_changectr;
m_rx_busy = 0;
m_rx_data = 0;
279,7 → 279,7
// stop bit
// (possible secondary stop bit)
m_rx_data = ((i_tx&1)<<31) | (m_rx_data>>1);
} m_rx_baudcounter = m_baud_counts;
} m_rx_baudcounter = m_baud_counts-1;
} else
m_rx_baudcounter--;
 
316,7 → 316,7
m_tx_busy = (1<<(m_nbits+m_nparity+m_nstop+1))-1;
m_tx_state = TXDATA;
o_rx = 0;
m_tx_baudcounter = m_baud_counts;
m_tx_baudcounter = m_baud_counts-1;
} else if (nr < 0) {
fprintf(stderr, "ERR while attempting to read in--closing input port\n");
perror("UARTSIM::read() ");
330,7 → 330,7
if (!m_tx_busy)
m_tx_state = TXIDLE;
else
m_tx_baudcounter = m_baud_counts;
m_tx_baudcounter = m_baud_counts-1;
o_rx = m_tx_data&1;
} else {
m_tx_baudcounter--;
/linetest.cpp
74,7 → 74,7
run_interactively = true;
break;
case 's':
setup= strtoul(argv[argn++], NULL, 0); j+= 4000;
setup= strtoul(argv[++argn], NULL, 0); j+= 4000;
break;
default:
printf("Undefined option, -%c\n", argv[argn][j]);
193,20 → 193,36
 
tb.i_uart = (*uart)(tb.o_uart);
 
/*
fprintf(stderr, "%02x:%02x (%02x/%d) %d,%d->%02x [%d/%d/%08x]\n",
tb.v__DOT__head,
tb.v__DOT__tail,
tb.v__DOT__lineend,
tb.v__DOT__run_tx,
tb.v__DOT__tx_stb,
tb.v__DOT__transmitter__DOT__r_busy,
tb.v__DOT__tx_data & 0x0ff,
tb.v__DOT__transmitter__DOT__state,
tb.v__DOT__transmitter__DOT__zero_baud_counter,
tb.v__DOT__transmitter__DOT__baud_counter);
*/
if (false) {
static long counts = 0;
static int lasti = 1, lasto = 1;
bool writeout = false;
 
counts++;
if (lasti != tb.i_uart) {
writeout = true;
lasti = tb.i_uart;
} if (lasto != tb.o_uart) {
writeout = true;
lasto = tb.o_uart;
}
 
if (writeout) {
fprintf(stderr, "%08lx : [%d -> %d] %02x:%02x (%02x/%d) %d,%d->%02x [%2d/%d/%08x]\n",
counts, tb.i_uart, tb.o_uart,
tb.v__DOT__head,
tb.v__DOT__tail,
tb.v__DOT__lineend,
tb.v__DOT__run_tx,
tb.v__DOT__tx_stb,
tb.v__DOT__transmitter__DOT__r_busy,
tb.v__DOT__tx_data & 0x0ff,
tb.v__DOT__transmitter__DOT__state,
tb.v__DOT__transmitter__DOT__zero_baud_counter,
tb.v__DOT__transmitter__DOT__baud_counter);
}
}
 
if (iterations_before_check-- <= 0) {
iterations_before_check = 2048;
done = ((time(NULL)-start)>60);

powered by: WebSVN 2.1.0

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