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

Subversion Repositories xge_mac

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 14 to Rev 15
    Reverse comparison

Rev 14 → Rev 15

/xge_mac/trunk/tbench/systemc/sc_pkt_if.cpp
80,14 → 80,14
 
for (int i = 0; i < pkt->length; i += 8) {
 
pkt_tx_data = pkt->data[i+7] << 56 |
pkt->data[i+6] << 48 |
pkt->data[i+5] << 40 |
pkt->data[i+4] << 32 |
pkt->data[i+3] << 24 |
pkt->data[i+2] << 16 |
pkt->data[i+1] << 8 |
pkt->data[i];
pkt_tx_data = pkt->data[i] << 56 |
pkt->data[i+1] << 48 |
pkt->data[i+2] << 40 |
pkt->data[i+3] << 32 |
pkt->data[i+4] << 24 |
pkt->data[i+5] << 16 |
pkt->data[i+6] << 8 |
pkt->data[i+7];
 
if (i == 0) {
pkt_tx_sop = 1;
181,7 → 181,7
 
for (int lane = 0; lane < 8; lane++) {
 
pkt->data[pkt->length++] = (data >> (8 * lane)) & 0xff;
pkt->data[pkt->length++] = (data >> (8 * (7-lane))) & 0xff;
 
if (pkt->length >= 10000) {
cout << "ERROR: Packet too long" << endl;
194,7 → 194,7
}
 
// Stop on EOP
 
if (pkt_rx_eop) {
break;
}
216,7 → 216,7
}
else {
pkt_rx_ren = 0;
wait();
wait();
}
}
};
/xge_mac/trunk/tbench/systemc/sc_pkt_if.h
54,7 → 54,7
 
sc_in<bool> reset_156m25_n;
 
sc_out<sc_bv<64> > pkt_tx_data;
sc_out<long unsigned int > pkt_tx_data;
sc_out<bool> pkt_tx_eop;
sc_out<unsigned int> pkt_tx_mod;
sc_out<bool> pkt_tx_sop;
63,7 → 63,7
sc_in<bool> pkt_tx_full;
 
sc_in<bool> pkt_rx_avail;
sc_in<sc_bv<64> > pkt_rx_data;
sc_in<long unsigned int > pkt_rx_data;
sc_in<bool> pkt_rx_eop;
sc_in<unsigned int> pkt_rx_mod;
sc_in<bool> pkt_rx_err;
/xge_mac/trunk/tbench/systemc/sc_main.cpp
49,7 → 49,8
#include <sys/stat.h>
 
#include "systemc.h" // SystemC global header
#include "SpTraceVcd.h"
//#include "SpTraceVcd.h"
#include "verilated_vcd_sc.h" // Tracing
 
#include "crc.h"
 
71,12 → 72,12
 
cout << ("Defining Clocks\n");
 
sc_clock clk_156m25 ("clk_156m25", 10, 0.5, 3, true);
sc_clock clk_156m25 ("clk_156m25", 10, 0.5, 3, true);
sc_clock clk_wb ("clk_wb", 29, 0.5, 3, true);
sc_clock clk_xgmii ("clk_xgmii", 10, 0.5, 3, true);
 
sc_signal<bool> pkt_rx_ren;
sc_signal<sc_bv<64> > pkt_tx_data;
sc_signal<long unsigned int > pkt_tx_data;
sc_signal<bool> pkt_tx_eop;
sc_signal<unsigned int> pkt_tx_mod;
sc_signal<bool> pkt_tx_sop;
90,10 → 91,10
sc_signal<bool> wb_stb_i;
sc_signal<bool> wb_we_i;
sc_signal<unsigned int> xgmii_rxc;
sc_signal<sc_bv<64> > xgmii_rxd;
sc_signal<long unsigned int > xgmii_rxd;
 
sc_signal<bool> pkt_rx_avail;
sc_signal<sc_bv<64> > pkt_rx_data;
sc_signal<long unsigned int > pkt_rx_data;
sc_signal<bool> pkt_rx_eop;
sc_signal<unsigned int> pkt_rx_mod;
sc_signal<bool> pkt_rx_sop;
104,7 → 105,7
sc_signal<unsigned int> wb_dat_o;
sc_signal<bool> wb_int_o;
sc_signal<unsigned int> xgmii_txc;
sc_signal<sc_bv<64> > xgmii_txd;
sc_signal<long unsigned int > xgmii_txd;
 
//==========
// Part under test
221,7 → 222,7
 
#if WAVES
cout << "Enabling waves...\n";
SpTraceFile* tfp = new SpTraceFile;
VerilatedVcdSc* tfp = new VerilatedVcdSc;
top->trace (tfp, 99);
tfp->open ("vl_dump.vcd");
#endif
230,7 → 231,7
// Start of Test
 
cout <<("Test beginning...\n");
 
reset_156m25_n = 0;
wb_rst_i = 1;
reset_xgmii_n = 0;
256,8 → 257,6
#endif
 
cout << "*-* All Finished *-*\n";
 
return(0);
}
 
 
/xge_mac/trunk/tbench/systemc/sc_testbench.h
72,12 → 72,12
sc_out<bool> wb_we_i;
 
sc_out<unsigned int> xgmii_rxc;
sc_out<sc_bv<64> > xgmii_rxd;
sc_out<long unsigned int > xgmii_rxd;
 
sc_in<unsigned int> xgmii_txc;
sc_in<sc_bv<64> > xgmii_txd;
sc_in<long unsigned int > xgmii_txd;
 
sc_out<sc_bv<64> > pkt_tx_data;
sc_out<long unsigned int > pkt_tx_data;
sc_out<bool> pkt_tx_eop;
sc_out<unsigned int> pkt_tx_mod;
sc_out<bool> pkt_tx_sop;
86,7 → 86,7
sc_in<bool> pkt_tx_full;
 
sc_in<bool> pkt_rx_avail;
sc_in<sc_bv<64> > pkt_rx_data;
sc_in<long unsigned int > pkt_rx_data;
sc_in<bool> pkt_rx_eop;
sc_in<unsigned int> pkt_rx_mod;
sc_in<bool> pkt_rx_err;
105,7 → 105,7
 
pkt_generator pif_gen0;
pkt_generator xgm_gen0;
 
scoreboard sb;
 
//---
/xge_mac/trunk/tbench/systemc/sc_xgmii_if.cpp
94,7 → 94,7
 
//---
// Inject errors
 
if (pkt->err_flags & PKT_FLAG_ERR_CRC) {
pkt->crc++;
}
227,7 → 227,7
ifg = 0;
 
}
else if (preamblecnt >7 && bytecnt == pkt->err_info &&
else if (preamblecnt >7 && bytecnt == pkt->err_info &&
(pkt->err_flags & PKT_FLAG_ERR_CODING)) {
 
//---
451,7 → 451,7
 
if (((rxd & 0xffffffff) == 0x0100009c && (rxc & 0xf) == 0x1) &&
(((rxd >> 32) & 0xffffffff) == 0x0100009c && ((rxc > 4) & 0xf) == 0x1)) {
 
//--
// Local fault detection
 
500,5 → 500,3
wait();
}
};
 
 
/xge_mac/trunk/tbench/systemc/sc_xgmii_if.h
55,10 → 55,10
sc_in<bool> reset_xgmii_n;
 
sc_out<unsigned int> xgmii_rxc;
sc_out<sc_bv<64> > xgmii_rxd;
sc_out<long unsigned int > xgmii_rxd;
 
sc_in<unsigned int> xgmii_txc;
sc_in<sc_bv<64> > xgmii_txd;
sc_in<long unsigned int > xgmii_txd;
 
private:
 
99,7 → 99,7
void receive();
void monitor();
 
SC_CTOR(xgmii_if) :
SC_CTOR(xgmii_if) :
tx_fifo (2),
rx_fifo (2) {
 
/xge_mac/trunk/sim/systemc/compile.sh
1,12 → 1,10
 
clear
 
verilator --trace-dups -f verilator.cmd
verilator --trace -f verilator.cmd
 
cd obj_dir
 
#$SYSTEMPERL/sp_preproc --preproc *.sp
 
make -f Vxge_mac.mk Vxge_mac__ALL.a
 
make -f ../sc.mk crc.o
31,10 → 29,10
 
make -f ../sc.mk verilated.o
 
make -f ../sc.mk SpTraceVcd.o
make -f ../sc.mk verilated_vcd_c.o
 
make -f ../sc.mk SpTraceVcdC.o
make -f ../sc.mk verilated_vcd_sc.o
 
g++ -L$SYSTEMC/lib-linux sc_main.o sc_testcases.o sc_testbench.o sc_pkt_if.o sc_xgmii_if.o sc_cpu_if.o sc_pkt_generator.o sc_scoreboard.o sc_packet.o crc.o Vxge_mac__ALLcls.o Vxge_mac__ALLsup.o verilated.o SpTraceVcdC.o SpTraceVcd.o -o Vxge_mac -lsystemc
g++ -L$SYSTEMC/lib-linux64 sc_main.o sc_testcases.o sc_testbench.o sc_pkt_if.o sc_xgmii_if.o sc_cpu_if.o sc_pkt_generator.o sc_scoreboard.o sc_packet.o crc.o Vxge_mac__ALLcls.o Vxge_mac__ALLsup.o verilated.o verilated_vcd_c.o verilated_vcd_sc.o -o Vxge_mac -lsystemc
 
cd ..
/xge_mac/trunk/sim/systemc/verilator.cmd
7,5 → 7,6
+incdir+../../rtl/megafunctions_altera
 
+define+SIM_NO_PCS
+define+BIGENDIAN
 
 

powered by: WebSVN 2.1.0

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