URL
https://opencores.org/ocsvn/dblclockfft/dblclockfft/trunk
[/] [dblclockfft/] [trunk/] [bench/] [cpp/] [butterfly_tb.cpp] - Diff between revs 8 and 13
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 8 |
Rev 13 |
Line 48... |
Line 48... |
class BFLY_TB {
|
class BFLY_TB {
|
public:
|
public:
|
Vbutterfly *m_bfly;
|
Vbutterfly *m_bfly;
|
unsigned long m_left[64], m_right[64];
|
unsigned long m_left[64], m_right[64];
|
bool m_aux[64];
|
bool m_aux[64];
|
int m_addr, m_lastaux;
|
int m_addr, m_lastaux, m_offset;
|
bool m_syncd;
|
bool m_syncd;
|
|
|
BFLY_TB(void) {
|
BFLY_TB(void) {
|
m_bfly = new Vbutterfly;
|
m_bfly = new Vbutterfly;
|
m_addr = 0;
|
m_addr = 0;
|
Line 64... |
Line 64... |
m_bfly->i_clk = 0;
|
m_bfly->i_clk = 0;
|
m_bfly->eval();
|
m_bfly->eval();
|
m_bfly->i_clk = 1;
|
m_bfly->i_clk = 1;
|
m_bfly->eval();
|
m_bfly->eval();
|
|
|
|
if ((!m_syncd)&&(m_bfly->o_aux))
|
|
m_offset = m_addr;
|
m_syncd = (m_syncd) || (m_bfly->o_aux);
|
m_syncd = (m_syncd) || (m_bfly->o_aux);
|
}
|
}
|
|
|
void reset(void) {
|
void reset(void) {
|
m_bfly->i_ce = 0;
|
m_bfly->i_ce = 0;
|
Line 141... |
Line 143... |
m_bfly->v__DOT__mpy_r & (~(-1l<<40)),
|
m_bfly->v__DOT__mpy_r & (~(-1l<<40)),
|
m_bfly->v__DOT__mpy_i & (~(-1l<<40)));
|
m_bfly->v__DOT__mpy_i & (~(-1l<<40)));
|
printf("\n");
|
printf("\n");
|
*/
|
*/
|
|
|
if ((m_syncd)&&(m_left[(m_addr-23)&(64-1)] != m_bfly->o_left)) {
|
if ((m_syncd)&&(m_left[(m_addr-m_offset)&(64-1)] != m_bfly->o_left)) {
|
fprintf(stderr, "WRONG O_LEFT!\n");
|
fprintf(stderr, "WRONG O_LEFT!\n");
|
exit(-1);
|
exit(-1);
|
}
|
}
|
|
|
if ((m_syncd)&&(m_right[(m_addr-23)&(64-1)] != m_bfly->o_right)) {
|
if ((m_syncd)&&(m_right[(m_addr-m_offset)&(64-1)] != m_bfly->o_right)) {
|
fprintf(stderr, "WRONG O_RIGHT!\n");
|
fprintf(stderr, "WRONG O_RIGHT!\n");
|
exit(-1);
|
exit(-1);
|
}
|
}
|
|
|
if ((m_syncd)&&(m_aux[(m_addr-23)&(64-1)] != m_bfly->o_aux)) {
|
if ((m_syncd)&&(m_aux[(m_addr-m_offset)&(64-1)] != m_bfly->o_aux)) {
|
fprintf(stderr, "FAILED AUX CHANNEL TEST (i.e. the SYNC)\n");
|
fprintf(stderr, "FAILED AUX CHANNEL TEST (i.e. the SYNC)\n");
|
exit(-1);
|
exit(-1);
|
}
|
}
|
|
|
if ((m_addr > 22)&&(!m_syncd)) {
|
if ((m_addr > 22)&&(!m_syncd)) {
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.