diff --git a/software/common/debug_tests/debug_tests.h b/software/common/debug_tests/debug_tests.h index cb90905ec3c73d07c05044703d2ccd0acd595ddb..e37ed83af501a15b8d5cbd618ca5051dde6a20c5 100644 --- a/software/common/debug_tests/debug_tests.h +++ b/software/common/debug_tests/debug_tests.h @@ -39,29 +39,19 @@ // // CM0_MCU GPIO0 -------------------------------------- Debug Tester // -// GPIO[15] 7 <----------------------------------------< Running -// GPIO[14] 6 <----------------------------------------< Error -// GPIO[13] 5 >----------------------------------------> Function Strobe -// GPIO[12] 4 >----------------------------------------> Function Select bit 4 -// GPIO[11] 3 >----------------------------------------> Function Select bit 3 -// GPIO[10] 2 >----------------------------------------> Function Select bit 2 -// GPIO[9] 1 >----------------------------------------> Function Select bit 1 -// GPIO[8] 0 >----------------------------------------> Function Select bit 0 -// -#define DEBUG_BIT_LOC 8 //GPIO[8] is the least bit of Function Select -#define DEBUG_CMD 0x3f<<8 //GPIO [13:8] -#define DEBUG_STROBE 0x00002000 //GPIO [13] -#define DEBUG_ERROR 0x00004000 //GPIO [14] -#define DEBUG_RUNNING 0x00008000 //GPIO [15] - -// GPIO1[7] 7 -// GPIO1[6] 6 -// GPIO1[5] 5 -// GPIO1[4] 4 -// GPIO1[3] 3 -// GPIO1[2] 2 -// GPIO1[1] 1 -// GPIO1[0] 0 +// GPIO[7] 7 <----------------------------------------< Running +// GPIO[6] 6 <----------------------------------------< Error +// GPIO[5] 5 >----------------------------------------> Function Strobe +// GPIO[4] 4 >----------------------------------------> Function Select bit 4 +// GPIO[3] 3 >----------------------------------------> Function Select bit 3 +// GPIO[2] 2 >----------------------------------------> Function Select bit 2 +// GPIO[1] 1 >----------------------------------------> Function Select bit 1 +// GPIO[0] 0 >----------------------------------------> Function Select bit 0 +#define DEBUG_BIT_LOC 0 //GPIO[0] is the ls bit of Function Select +#define DEBUG_CMD 0x3f //GPIO [5:0] +#define DEBUG_STROBE 0x20 //GPIO [5] +#define DEBUG_ERROR 0x40 //GPIO [6] +#define DEBUG_RUNNING 0x80 //GPIO [7] // CM0 MCU's view of the memory shared with the debugtester diff --git a/testcodes/generic/mcu_debugtester_interface.h b/testcodes/generic/mcu_debugtester_interface.h index 162672da8074da9cc2d6c364e1644a079de0c2d8..acb27bf69e421b479450855157f966c7ecee5239 100644 --- a/testcodes/generic/mcu_debugtester_interface.h +++ b/testcodes/generic/mcu_debugtester_interface.h @@ -69,30 +69,19 @@ extern uint32_t CheckDebugTester(void); // // CM0_MCU GPIO0 -------------------------------------- Debug Tester // -// GPIO[15] 7 <----------------------------------------< Running -// GPIO[14] 6 <----------------------------------------< Error -// GPIO[13] 5 >----------------------------------------> Function Strobe -// GPIO[12] 4 >----------------------------------------> Function Select bit 4 -// GPIO[11] 3 >----------------------------------------> Function Select bit 3 -// GPIO[10] 2 >----------------------------------------> Function Select bit 2 -// GPIO[9] 1 >----------------------------------------> Function Select bit 1 -// GPIO[8] 0 >----------------------------------------> Function Select bit 0 -// -#define DEBUG_BIT_LOC 8 //GPIO[8] is the least bit of Function Select -#define DEBUG_CMD 0x3f<<8 //GPIO [13:8] -#define DEBUG_STROBE 0x00002000 //GPIO [13] -#define DEBUG_ERROR 0x00004000 //GPIO [14] -#define DEBUG_RUNNING 0x00008000 //GPIO [15] - -// GPIO1[7] 7 -// GPIO1[6] 6 -// GPIO1[5] 5 -// GPIO1[4] 4 -// GPIO1[3] 3 -// GPIO1[2] 2 -// GPIO1[1] 1 -// GPIO1[0] 0 - +// GPIO[7] 7 <----------------------------------------< Running +// GPIO[6] 6 <----------------------------------------< Error +// GPIO[5] 5 >----------------------------------------> Function Strobe +// GPIO[4] 4 >----------------------------------------> Function Select bit 4 +// GPIO[3] 3 >----------------------------------------> Function Select bit 3 +// GPIO[2] 2 >----------------------------------------> Function Select bit 2 +// GPIO[1] 1 >----------------------------------------> Function Select bit 1 +// GPIO[0] 0 >----------------------------------------> Function Select bit 0 +#define DEBUG_BIT_LOC 0 //GPIO[0] is the ls bit of Function Select +#define DEBUG_CMD 0x3f //GPIO [5:0] +#define DEBUG_STROBE 0x20 //GPIO [5] +#define DEBUG_ERROR 0x40 //GPIO [6] +#define DEBUG_RUNNING 0x80 //GPIO [7] // CMSDK example MCU's view of the memory shared with the debugtester // (4 words above stack top) diff --git a/verif/tb/verilog/nanosoc_tb.v b/verif/tb/verilog/nanosoc_tb.v index 56decb4706e6abf7d1479932d6f748b38819f51a..025a943e8020211523ff5906f1c279def8593546 100644 --- a/verif/tb/verilog/nanosoc_tb.v +++ b/verif/tb/verilog/nanosoc_tb.v @@ -103,11 +103,29 @@ SROM_Ax32 .SEL(1'b0), .RDATA( ) ); - + +`ifdef SDF_SIM +initial + $sdf_annotate ( "../../../src/rtl/nanosoc_chip_pads_44pin.sdf" + , u_nanosoc_chip_pads + , + , "sdf_annotate.log" + , "MAXIMUM" + ); +`endif // SDF_SIM + +`ifdef VCD_SIM +initial begin + $dumpfile("waves.vcd"); + $dumpvars(6,u_nanosoc_chip_pads); + end +`endif // VCD_SIM + // -------------------------------------------------------------------------------- // Cortex-M0/Cortex-M0+ Microcontroller // -------------------------------------------------------------------------------- +`ifdef SDF_SIM nanosoc_chip_pads u_nanosoc_chip_pads ( `ifdef POWER_PINS @@ -120,12 +138,30 @@ SROM_Ax32 .CLK (CLK), // input .TEST (TEST), // input .NRST (NRST), // active low reset - .P0 (P0), - .P1 (P1), + .P0 (P0[7:0]), + .P1 (P1[7:0]), .SWDIO (SWDIOTMS), .SWDCK (SWCLKTCK) ); - +`else + nanosoc_chip_pads + u_nanosoc_chip_pads ( +`ifdef POWER_PINS + .VDDIO (VDDIO), + .VSSIO (VSSIO), + .VDD (VDD), + .VSS (VSS), + .VDDACC (VDDACC), +`endif + .CLK (CLK), // input + .TEST (TEST), // input + .NRST (NRST), // active low reset + .P0 (P0[15:0]), + .P1 (P1[15:0]), + .SWDIO (SWDIOTMS), + .SWDCK (SWCLKTCK) + ); +`endif // -------------------------------------------------------------------------------- // Source for clock and reset // -------------------------------------------------------------------------------- @@ -658,22 +694,21 @@ nanosoc_ft1248x1_track pulldown(debug_err); //Tristate logic for GPIO connection - bufif1 (debug_command[5], P0[29-16], debug_test_en); - bufif1 (debug_command[4], P0[28-16], debug_test_en); - bufif1 (debug_command[3], P0[27-16], debug_test_en); - bufif1 (debug_command[2], P0[26-16], debug_test_en); - bufif1 (debug_command[1], P0[25-16], debug_test_en); - bufif1 (debug_command[0], P0[24-16], debug_test_en); - - bufif1 (P0[31-16], debug_running, debug_test_en); - bufif1 (P0[30-16], debug_err, debug_test_en); + bufif1 (P0[7], debug_running, debug_test_en); + bufif1 (P0[6], debug_err, debug_test_en); + bufif1 (debug_command[5], P0[3], debug_test_en); + bufif1 (debug_command[4], P0[4], debug_test_en); + bufif1 (debug_command[3], P0[3], debug_test_en); + bufif1 (debug_command[2], P0[2], debug_test_en); + bufif1 (debug_command[1], P0[1], debug_test_en); + bufif1 (debug_command[0], P0[0], debug_test_en); cmsdk_debug_tester #(.ROM_MEMFILE((BE==1) ? "debugtester_be.hex" : "debugtester_le.hex")) u_cmsdk_debug_tester ( // Clock and Reset .CLK (CLK), - .PORESETn (NRST), + .PORESETn (NRST_ext), // Command Interface .DBGCMD (debug_command[5:0]), diff --git a/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v b/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v index 715573214ec0eb01dde16df0f59dbaa16357f2f5..76d41cbe0b32ee3ae8abe43bfd28e0a5e23caddd 100644 --- a/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v +++ b/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v @@ -114,12 +114,12 @@ localparam BUFSIZE = (64 * 1024); $write("** %m : input file length measured as: %d **\n", flen); if (flen > 0) flen=flen-1; // correct for extra char count(???) // now output the entire adp buffer to the stream - flen = flen + clen+25+1; + flen = flen + clen+25; fp = 0; valid <= 0; begin @(posedge aresetn); - while (fp < flen) begin + while (fp <= flen) begin @(posedge aclk); data8 <= adpbuf[fp]; fp = fp + 1;