void i_edge ( int x1, int y1, int x2, int y2) { int dx = _abs(x2 - x1); int dy = _abs(y2 - y1); int sx = x2 >= x1 ? 1 : -1; int sy = y2 >= y1 ? 1 : -1; if ( dy <= dx ){ int d = ( dy << 1 ) - dx; int d1 = dy << 1; int d2 = ( dy - dx ) << 1; i_test(x1,y1); for (int x = x1 + sx, y = y1, i = 1; i <= dx; i++, x += sx){ if ( d > 0) { d += d2; y += sy; } else d += d1; i_test(x,y); } }else{ int d = ( dx << 1 ) - dy; int d1 = dx << 1; int d2 = ( dx - dy ) << 1; i_test(x1,y1); for (int x = x1, y = y1 + sy, i = 1; i <= dy; i++, y += sy ){ if ( d > 0) { d += d2; x += sx; } else d += d1; i_test(x,y); } } }
int sc_main(int argc, char *argv[]) { sc_set_time_resolution(1.0, SC_NS); sc_clock clk("clock", 20.84, SC_NS); sc_signal<bool> rst; sc_signal<bool> data_out_wr, oe_wr; sc_signal<sc_uint<8>> data_out, oe, data_in; sc_signal_rv<8> pins; gpio i_gpio("GPIO"); test_gpio i_test("TEST"); i_gpio.clk(clk); i_gpio.rst(rst); i_test.clk(clk); i_test.rst(rst); i_test.data_out(data_out); i_test.data_out_wr(data_out_wr); i_test.oe(oe); i_test.oe_wr(oe_wr); i_test.data_in(data_in); i_test.pin(pins); i_gpio.data_out(data_out); i_gpio.data_out_wr(data_out_wr); i_gpio.oe(oe); i_gpio.oe_wr(oe_wr); i_gpio.data_in(data_in); i_gpio.pin(pins); #ifdef VCD_OUTPUT_ENABLE sc_trace_file *vcd_log = sc_create_vcd_trace_file("TEST_GPIO"); sc_trace(vcd_log, clk, "Clk"); sc_trace(vcd_log, rst, "Reset_n"); sc_trace(vcd_log, pins, "Pins"); #endif srand((unsigned int)(time(NULL) & 0xffffffff)); sc_start(); #ifdef VCD_OUTPUT_ENABLE sc_close_vcd_trace_file(vcd_log); #endif return i_test.error_cnt; }
int sc_main(int argc, char *argv[]) { sc_set_time_resolution(1.0, SC_NS); sc_signal<bool> rx_dp, rx_dn, tx_dp, tx_dn; sc_signal<bool> uart_txd, uart_rxd; sc_signal<bool> tx_oe_nc; ft232r i_ft232r("FT232R"); test_ft232r i_test("TEST"); i_ft232r.tx_dp(tx_dp); i_ft232r.tx_dn(tx_dn); i_ft232r.tx_oe(tx_oe_nc); i_ft232r.rx_dp(rx_dp); i_ft232r.rx_dn(rx_dn); i_ft232r.rx_d(rx_dp); i_ft232r.uart_txd(uart_txd); i_ft232r.uart_rxd(uart_rxd); i_test.txdp(rx_dp); i_test.txdn(rx_dn); i_test.rxdp(tx_dp); i_test.rxdn(tx_dn); i_test.uart_txd(uart_rxd); i_test.uart_rxd(uart_txd); #ifdef VCD_OUTPUT_ENABLE sc_trace_file *vcd_log = sc_create_vcd_trace_file("TEST_FT232R"); sc_trace(vcd_log, uart_txd, "UART_TXD"); sc_trace(vcd_log, uart_rxd, "UART_RXD"); sc_trace(vcd_log, tx_dp, "USB_TXDP"); sc_trace(vcd_log, tx_dn, "USB_TXDN"); sc_trace(vcd_log, rx_dp, "USB_RXDP"); sc_trace(vcd_log, rx_dn, "USB_RXDN"); #endif srand((unsigned int)(time(NULL) & 0xffffffff)); sc_start(); #ifdef VCD_OUTPUT_ENABLE sc_close_vcd_trace_file(vcd_log); #endif return i_test.error_cnt; }
int sc_main(int argc, char *argv[]) { sc_set_time_resolution(1.0, SC_NS); sc_clock clk("clock", 20.84, SC_NS); sc_signal<bool> rst; sc_signal<bool> txd, rxd; sc_signal<bool> tx_data_wr; sc_signal<sc_uint<8>> tx_data; sc_signal<bool> tx_empty; sc_signal<bool> rx_data_rd; sc_signal<sc_uint<8>> rx_data; sc_signal<bool> rx_avail; uart i_uart("UART"); test_uart i_test("TEST"); i_uart.clk(clk); i_uart.rst(rst); i_uart.txd(txd); i_uart.rxd(rxd); i_uart.tx_data_wr(tx_data_wr); i_uart.tx_data(tx_data); i_uart.tx_empty(tx_empty); i_uart.rx_data_rd(rx_data_rd); i_uart.rx_data(rx_data); i_uart.rx_avail(rx_avail); i_test.clk(clk); i_test.rst(rst); i_test.txd(rxd); i_test.rxd(txd); i_test.tx_data_wr(tx_data_wr); i_test.tx_data(tx_data); i_test.tx_empty(tx_empty); i_test.rx_data_rd(rx_data_rd); i_test.rx_data(rx_data); i_test.rx_avail(rx_avail); #ifdef VCD_OUTPUT_ENABLE sc_trace_file *vcd_log = sc_create_vcd_trace_file("TEST_UART"); sc_trace(vcd_log, clk, "Clk"); sc_trace(vcd_log, rst, "Reset_n"); sc_trace(vcd_log, txd, "TXD"); sc_trace(vcd_log, rxd, "RXD"); sc_trace(vcd_log, tx_data_wr, "tx_data_wr"); sc_trace(vcd_log, tx_data, "tx_data"); sc_trace(vcd_log, tx_empty, "tx_empty"); sc_trace(vcd_log, rx_data_rd, "rx_data_rd"); sc_trace(vcd_log, rx_data, "rx_data"); sc_trace(vcd_log, rx_avail, "rx_avail"); #endif srand((unsigned int)(time(NULL) & 0xffffffff)); sc_start(); #ifdef VCD_OUTPUT_ENABLE sc_close_vcd_trace_file(vcd_log); #endif return i_test.error_cnt; }