TANG-NANO: Unterschied zwischen den Versionen

Aus test.nkc-wiki.de
Zur Navigation springen Zur Suche springen
 
(29 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
</gallery>
</gallery>


Beim Tang-Nano handelt es sich um ein preisgünstiges, jedoch leistungsfähiges FPGA-Board mit welchem aktuell einige verschiedene Karten emuliert werden können.
Beim Tang-Nano-20k handelt es sich um ein preisgünstiges, jedoch leistungsfähiges FPGA-Board mit welchem aktuell einige verschiedene Karten emuliert werden können.
Das interessante daran ist dass es einen (relativ großen) FPGA (~20k LUT) mit einem SD-RAM mit 64MBit (8 MByte) kombiniert. Dadurch ist man in der Lage komplette Systeme (CPU, Peripherals + Speicher) darin unter zu bringen.


Für nähere Informationen zum Tang-Nano board siehe: https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html
Für nähere Informationen zum Tang-Nano-20k Board siehe: https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html


'''Schaltplan:''' [https://github.com/avg67/nkc/blob/main/KiCad/GDP_FPGA_III/gdp.pdf Schaltplan]
'''Schaltplan:''' [https://github.com/avg67/nkc/blob/main/KiCad/GDP_FPGA_III/gdp.pdf Schaltplan]
Zeile 17: Zeile 18:
* [https://github.com/avg67/nkc/tree/main/tang_nano_20k/VHDL_GDP GDP-FPGA Source auf Github]
* [https://github.com/avg67/nkc/tree/main/tang_nano_20k/VHDL_GDP GDP-FPGA Source auf Github]
* [https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/syn/GDP64HS_FPGA/GDP64HS_FPGA.gprj GDP64-FPGA (Bus-Slave) Gowin Workspace]
* [https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/syn/GDP64HS_FPGA/GDP64HS_FPGA.gprj GDP64-FPGA (Bus-Slave) Gowin Workspace]
* [https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k16_Z80/VHDL/GDP936X/syn/68K_SOC/68K_SOC.gprj 68k-SOC (Bus-Master) Gowin Workspace]
* [https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k16_Z80/VHDL/GDP936X/syn_z80/Z80_SOC/Z80_SOC.gprj Z80-SOC (Bus-Master) Gowin Workspace]


===Emulierte Karten (Stand 08.2025):===
===Emulierte Karten (Stand 08.2025):===
* GDP64HS-FPGA inkl. Farberweiterung mit 256 Farben
* GDP64HS-FPGA inkl. Farberweiterung mit 256 Farben mit HDMI-Ausgang
* PS/2 Key
* PS/2 Key
* PS/2 Mouse
* PS/2 Mouse
Zeile 26: Zeile 29:
* Ser
* Ser
* Timer (interruptfähig)
* Timer (interruptfähig)
* Komplettes Z80 System on chip (SOC) mit 8MHz Z80 CPU, 1MB RAM, Peripherals lt. Liste oben, ext. I/O-Bus
  ROMS:
  - Flomon 4.2 oder GP2019
  - Zeat
  - Basic
  - Gosi
  - Grundprogramm
* Komplettes 68k System on chip (SOC) mit 10MHz 68000 CPU (16-bit), 2MB RAM, Peripherals lt. Liste oben, ext. I/O-Bus
  ROM: GP7.10R5
Das Tang-Nano-20k kann als Bus-Slave betrieben werden (mit einer externen CPU) als z.B. GDP64HS oder auch als komplettes "System on Chip" (Bus-Master) mit Z80 oder 68000 CPU und internen RAM.


Das Tang-Nano kann dabei als Bus-Slave betrieben werden (mit einer externen CPU) oder auch als komplettes "System on Chip" mit Z80 oder 68000 CPU und internen RAM.
Dabei können über compile-time Switches die im FPGA-File enthaltenen Peripherals ein/ausgeschaltet werden (true = enthalten).
Diese Switches befinden sich in der jeweiligen Toplevel-Unit. Wenn der Gowin Workspace im GOWIN FPGA Designer geöffnet ist dann kann die Toplevel-Unit einfach durch Doppelclick auf das oberste file in der Hierarchy-Ansicht geöffnet werden.
<gallery>
Datei:Hierarchy.png|Z80-SOC Hierarchie und Toplevel
</gallery>


Dabei können über Switches die im FPGA-File enthaltenen Peripherals ein/ausgeschaltet werden (true= enthalten).
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k16_Z80/VHDL/vhdl/rtl/nkc_gowin_top.vhd#L123 Switches für 68k SOC]
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/vhdl/rtl/gdp_gowin_top.vhd#L128 Switches für Peripherals]


Die Farberweiterung der GDP64HS-FPGA kann ebenfalls mittels Switch (im globalen Package) abgeschaltet werden. Dann verhält sie sich zu 100% wie eine GDP64HS [https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/vhdl/rtl/gdp_global-p.vhd#L22 Switch zum abschalten der Farberweiterung]
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k16_Z80/VHDL/vhdl/rtl/nkc_z80_top.vhd#L123 Switches für Z80 SOC]
 
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/vhdl/rtl/gdp_gowin_top.vhd#L128 Switches für GDP-FPGA (Bus-Slave)]
 
Die Farberweiterung der GDP64HS-FPGA kann ebenfalls mittels Switch (im globalen Package) abgeschaltet werden. Dann verhält sie sich zu 100% wie eine GDP64HS
 
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/VHDL_GDP/GDP936X/vhdl/rtl/gdp_global-p.vhd#L22 Switch zum abschalten der Farberweiterung bei der GDP-FPGA]
 
[https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k16_Z80/VHDL/GDP936X/vhdl/rtl/gdp_global-p.vhd#L22 Switch zum abschalten der Farberweiterung bei Z80 UND 68k SOC]


===Benötigte Software:===
===Benötigte Software:===
* '''Gowin Education''' (ab Version V1.9.10.03, Download Link siehe Gowin Wiki oben)
* '''Gowin Education''' (ab Version V1.9.10.03, [https://cdn.gowinsemi.com.cn/Gowin_V1.9.11.03_Education_x64_win.zip Gowin V1.9.11.03 Education (Windows x64)])
   Damit kann der VHDL-Source synthetisiert (compiliert) werden und ein FPGA file zur programmierung des Tang-Nano erzeugt werden.
   Damit kann der VHDL-Source synthetisiert (übersetzt) werden und ein FPGA file zur Programmierung des Tang-Nano erzeugt werden.


Folgende Settings in der Gowin Software müssen vorher noch umgestellt werden (Project - Configuration):
Folgende Settings in der Gowin Software müssen vorher noch umgestellt werden (Project - Configuration):
Zeile 42: Zeile 66:
Datei:Gowin Dual Purpose Pins Settings.png|Gowin Dual Purpose Pins Settings
Datei:Gowin Dual Purpose Pins Settings.png|Gowin Dual Purpose Pins Settings
Datei:Gowin Synthesis Settings.png|Gowin Synthesis Settings
Datei:Gowin Synthesis Settings.png|Gowin Synthesis Settings
Datei:Place.png|mini|Place algorithm options - nur für Z80 SOC notwendig
Datei:Route.png|mini|Route algorithm options - nur für Z80 SOC notwendig
[[Datei:Dual Purpose.png|mini]]
</gallery>
</gallery>
oder alternativ, wenn nur ein fertiges FPGA-File programmiert werden soll:
oder alternativ, wenn nur ein fertiges FPGA-File programmiert werden soll:
* '''GOWIN Programmer''' (ab Version V1.9.10.03, Download Link siehe Gowin Wiki oben)
* '''GOWIN Programmer''' (ab Version V1.9.10.03, [https://www.gowinsemi.com/upload/database_doc/3189/document/681236c9a776c.zip GOWIN Programmer V1.9.11.02 (Windows)])
 
===Übersetzen des Sourcecodes:===
Ein FPGA-file zur Programmierung des Tang-Nano-20k Boards kann mittels click auf "Run All" Button erzeugt werden.
<gallery>
Datei:Run all.png|FPGA File (Bitstream) erzeugen
</gallery>


===Programmierung:===
===Programmierung:===
Zum programmieren des Tang-Nano-20k muss der Programmer gestartet werden. Wenn dieser aus der Gowin FPGA Designer Software gestartet wird ist das richtige FPGA-File schon vorausgewählt. Um ein FPGA-File permanent auf dem Tang-Nano-20k zu speichern (im Flash) muss als Operation "exFlash Erase,Programm thru GAO-Bridge" ausgewählt werden - siehe Bilder unten.
<gallery>
<gallery>
Datei:Device configuration.png|Device configuration
Datei:Device configuration.png|Device configuration
Datei:Programmierung.png|Programmierung
Datei:Programmierung1.png|Programmierung
</gallery>
</gallery>

Aktuelle Version vom 17. August 2025, 20:07 Uhr

Beschreibung

Beim Tang-Nano-20k handelt es sich um ein preisgünstiges, jedoch leistungsfähiges FPGA-Board mit welchem aktuell einige verschiedene Karten emuliert werden können. Das interessante daran ist dass es einen (relativ großen) FPGA (~20k LUT) mit einem SD-RAM mit 64MBit (8 MByte) kombiniert. Dadurch ist man in der Lage komplette Systeme (CPU, Peripherals + Speicher) darin unter zu bringen.

Für nähere Informationen zum Tang-Nano-20k Board siehe: https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html

Schaltplan: Schaltplan

FPGA-Files:

Sourcecode:

Emulierte Karten (Stand 08.2025):

  • GDP64HS-FPGA inkl. Farberweiterung mit 256 Farben mit HDMI-Ausgang
  • PS/2 Key
  • PS/2 Mouse
  • Sound
  • SD-Card (SPI, SDIO)
  • Ser
  • Timer (interruptfähig)
  • Komplettes Z80 System on chip (SOC) mit 8MHz Z80 CPU, 1MB RAM, Peripherals lt. Liste oben, ext. I/O-Bus
 ROMS:
 - Flomon 4.2 oder GP2019
 - Zeat
 - Basic
 - Gosi
 - Grundprogramm
  • Komplettes 68k System on chip (SOC) mit 10MHz 68000 CPU (16-bit), 2MB RAM, Peripherals lt. Liste oben, ext. I/O-Bus
 ROM: GP7.10R5

Das Tang-Nano-20k kann als Bus-Slave betrieben werden (mit einer externen CPU) als z.B. GDP64HS oder auch als komplettes "System on Chip" (Bus-Master) mit Z80 oder 68000 CPU und internen RAM.

Dabei können über compile-time Switches die im FPGA-File enthaltenen Peripherals ein/ausgeschaltet werden (true = enthalten). Diese Switches befinden sich in der jeweiligen Toplevel-Unit. Wenn der Gowin Workspace im GOWIN FPGA Designer geöffnet ist dann kann die Toplevel-Unit einfach durch Doppelclick auf das oberste file in der Hierarchy-Ansicht geöffnet werden.

Switches für 68k SOC

Switches für Z80 SOC

Switches für GDP-FPGA (Bus-Slave)

Die Farberweiterung der GDP64HS-FPGA kann ebenfalls mittels Switch (im globalen Package) abgeschaltet werden. Dann verhält sie sich zu 100% wie eine GDP64HS

Switch zum abschalten der Farberweiterung bei der GDP-FPGA

Switch zum abschalten der Farberweiterung bei Z80 UND 68k SOC

Benötigte Software:

 Damit kann der VHDL-Source synthetisiert (übersetzt) werden und ein FPGA file zur Programmierung des Tang-Nano erzeugt werden.

Folgende Settings in der Gowin Software müssen vorher noch umgestellt werden (Project - Configuration):

oder alternativ, wenn nur ein fertiges FPGA-File programmiert werden soll:

Übersetzen des Sourcecodes:

Ein FPGA-file zur Programmierung des Tang-Nano-20k Boards kann mittels click auf "Run All" Button erzeugt werden.

Programmierung:

Zum programmieren des Tang-Nano-20k muss der Programmer gestartet werden. Wenn dieser aus der Gowin FPGA Designer Software gestartet wird ist das richtige FPGA-File schon vorausgewählt. Um ein FPGA-File permanent auf dem Tang-Nano-20k zu speichern (im Flash) muss als Operation "exFlash Erase,Programm thru GAO-Bridge" ausgewählt werden - siehe Bilder unten.