From 0fa61adca12a5a096cdd5e0ca2066fe2cd359848 Mon Sep 17 00:00:00 2001 From: Stefan Voss Date: Tue, 29 Oct 2024 18:54:20 +0100 Subject: [PATCH] cleanup --- README.md | 4 +++- TANG_MEGA_138K.md | 4 ++++ a2600nano_tm138k_pro.gprj | 2 +- impl/a2600nano_tn20k_process_config.json | 2 ++ src/a2600_top_tm138k_pro.cst | 4 ++-- src/a2600_top_tm138k_pro.sdc | 2 ++ src/a2600_top_tn20k.sdc | 2 ++ 7 files changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 00e020c..f175170 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,13 @@ The A2600Nano is a port of the [MiSTer](https://github.com/MiSTer-devel/Atari260 | Board | FPGA | support |Note| | --- | - | - |-| | [Tang Nano 20k](https://wiki.sipeed.com/nano20k) | [GW2AR](https://www.gowinsemi.com/en/product/detail/38/) | X |- | +| [Tang Primer 20K Dock ext Board](https://wiki.sipeed.com/hardware/en/tang/tang-primer-20k/primer-20k.html)| [GW2A](https://www.gowinsemi.com/en/product/detail/46/)| planned |- | | [Tang Primer 25K](https://wiki.sipeed.com/hardware/en/tang/tang-primer-25k/primer-25k.html) | [GW5A-25](https://www.gowinsemi.com/en/product/detail/60/) | X |no Dualshock 2, no Retro DB9 Joystick | | [Tang Mega 60k NEO](https://wiki.sipeed.com/hardware/en/tang/tang-mega-60k/mega-60k.html)|[GW5AT-60](https://www.gowinsemi.com/en/product/detail/60/)| planned |- | | [Tang Mega 138k Pro](https://wiki.sipeed.com/hardware/en/tang/tang-mega-138k/mega-138k-pro.html)|[GW5AST-138](https://www.gowinsemi.com/en/product/detail/60/) | X |- | -This project relies on a [M0S Dock µC](https://wiki.sipeed.com/hardware/en/maixzero/m0s/m0s.html) being connected to the Tang Nano 20K. Alternately you can use a [Raspberry Pi Pico](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html) or [esp32-s2](https://www.espressif.com/en/products/socs/esp32-s2)/[s3](https://www.espressif.com/en/products/socs/esp32-s3) and use the [FPGA companion firmware](http://github.com/harbaum/FPGA-Companion). +This project relies on a [M0S Dock µC](https://wiki.sipeed.com/hardware/en/maixzero/m0s/m0s.html) being connected to the Tang Nano 20K. +Alternately you can use a [Raspberry Pi Pico](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html) or [esp32-s2](https://www.espressif.com/en/products/socs/esp32-s2)/[s3](https://www.espressif.com/en/products/socs/esp32-s3) and use the [FPGA companion firmware](http://github.com/harbaum/FPGA-Companion). Original A2600 core by [Retromaster](https://retromaster.wordpress.com/a2601/) All HID, SDcard and µC firmware by [Till Harbaum](http://www.harbaum.org/till/mist)
diff --git a/TANG_MEGA_138K.md b/TANG_MEGA_138K.md index 9944465..8fb47ad 100644 --- a/TANG_MEGA_138K.md +++ b/TANG_MEGA_138K.md @@ -22,6 +22,10 @@ implementations like the MiSTeryNano. The M0S required to control the A2600Nano is to be mounted in the middle PMOD with the help of the [M0S PMOD adapter](board/m0s_pmod). +Plug the optional Dualshock DS2x2 Interface into the left PMOD slot. +[PMOD DS2x2](https://wiki.sipeed.com/hardware/en/tang/tang-PMOD/FPGA_PMOD.html#PMOD_DS2x2)
+There is presently only one of the two DS sockets taken into use. + The whole setup will look like this: ![MiSTeryNano on TM138K](./.assets/m0s_pmod_tm138k.jpg) diff --git a/a2600nano_tm138k_pro.gprj b/a2600nano_tm138k_pro.gprj index 7afa8b1..12acc3c 100644 --- a/a2600nano_tm138k_pro.gprj +++ b/a2600nano_tm138k_pro.gprj @@ -41,7 +41,7 @@ - + diff --git a/impl/a2600nano_tn20k_process_config.json b/impl/a2600nano_tn20k_process_config.json index e665774..74669a2 100644 --- a/impl/a2600nano_tn20k_process_config.json +++ b/impl/a2600nano_tn20k_process_config.json @@ -32,6 +32,8 @@ "HOTBOOT" : false, "I2C" : false, "I2C_SLAVE_ADDR" : "00", + "INCREMENTAL_PLACE_AND_ROUTING" : "0", + "INCREMENTAL_PLACE_ONLY" : "0", "IncludePath" : [ ], diff --git a/src/a2600_top_tm138k_pro.cst b/src/a2600_top_tm138k_pro.cst index b3f1fe3..d1e0378 100644 --- a/src/a2600_top_tm138k_pro.cst +++ b/src/a2600_top_tm138k_pro.cst @@ -62,9 +62,9 @@ IO_PORT "joystick_clk" PULL_MODE=UP IO_TYPE=LVCMOS33; IO_LOC "joystick_mosi" B20; IO_PORT "joystick_mosi" PULL_MODE=UP IO_TYPE=LVCMOS33; IO_LOC "joystick_miso" B19; -IO_PORT "joystick_miso" PULL_MODE=UP IO_TYPE=LVCMOS33; // "midi_out" +IO_PORT "joystick_miso" PULL_MODE=UP IO_TYPE=LVCMOS33; IO_LOC "joystick_cs" C21; -IO_PORT "joystick_cs" PULL_MODE=UP IO_TYPE=LVCMOS33; // "midi_in" +IO_PORT "joystick_cs" PULL_MODE=UP IO_TYPE=LVCMOS33; IO_LOC "clk_50mhz" P16; // 50Mhz IO_PORT "clk_50mhz" IO_TYPE=LVCMOS33 PULL_MODE=NONE DRIVE=OFF BANK_VCCIO=3.3; diff --git a/src/a2600_top_tm138k_pro.sdc b/src/a2600_top_tm138k_pro.sdc index 7fb3f42..dc2424f 100644 --- a/src/a2600_top_tm138k_pro.sdc +++ b/src/a2600_top_tm138k_pro.sdc @@ -3,6 +3,8 @@ create_clock -name ds2_clk -period 8000 -waveform {0 5} [get_nets {gamepad/clk_s create_clock -name joymiso -period 8000 -waveform {0 20} [get_ports {joystick_miso}] create_clock -name clk -period 34.722 -waveform {0 5} [get_nets {clk}] create_clock -name clk_14 -period 70 -waveform {0 5} [get_nets {clk_14}] +create_clock -name clk_cpu -period 279.408 -waveform {0 5} [get_nets {clk_cpu}] +create_clock -name m0s[3] -period 40 -waveform {0 5} [get_ports {m0s[3]}] -add create_clock -name clk_pixel_x5 -period 6.944 -waveform {0 1.25} [get_nets {clk_pixel_x5}] -add create_clock -name clk_audio -period 20833.332 -waveform {0 5} [get_nets {video_inst/clk_audio}] -add report_timing -hold -from_clock [get_clocks {clk*}] -to_clock [get_clocks {clk*}] -max_paths 25 -max_common_paths 1 diff --git a/src/a2600_top_tn20k.sdc b/src/a2600_top_tn20k.sdc index 8164064..e6c8470 100644 --- a/src/a2600_top_tn20k.sdc +++ b/src/a2600_top_tn20k.sdc @@ -3,6 +3,8 @@ create_clock -name ds2_clk -period 8000 -waveform {0 5} [get_nets {gamepad/clk_s create_clock -name joymiso -period 8000 -waveform {0 20} [get_ports {joystick_miso}] create_clock -name clk -period 34.722 -waveform {0 5} [get_nets {clk}] create_clock -name clk_14 -period 70 -waveform {0 5} [get_nets {clk_14}] +create_clock -name clk_cpu -period 279.408 -waveform {0 5} [get_nets {clk_cpu}] +create_clock -name m0s[3] -period 40 -waveform {0 5} [get_ports {m0s[3]}] -add create_clock -name clk_pixel_x5 -period 6.944 -waveform {0 1.25} [get_nets {clk_pixel_x5}] -add create_clock -name clk_audio -period 20833.332 -waveform {0 5} [get_nets {video_inst/clk_audio}] -add report_timing -hold -from_clock [get_clocks {clk*}] -to_clock [get_clocks {clk*}] -max_paths 25 -max_common_paths 1