Papilio
Les cartes FPGA Papilio sont des cartes FPGA d'entrée de gamme permettant la synthèse de soft processors basiques (Z80, AVR8, 6510 (Commodore 64), ZPU, ...). Les cartes filles appélées Wings (PS/2, VGA, audio, Manettes, SDCard, ...) peuvent être ajoutées par empillement.
http://papilio.cc/index.php?n=Papilio.Buy
Papilio 250K & 500K
La Papilio 250K est programmable en AVR8 328 (Arduino Uno) ou en ZUPiuno.
- http://papilio.cc/index.php?n=Papilio.ArduinoCore
- http://gadgetforge.gadgetfactory.net/gf/project/avr_core/frs/
La Papilio 500K permet de réaliser les bornes d'Arcade
Ses caracteristiques:
- Xilinx Spartan 3E XC3S500E FPGA with 500 thousand gates.
- 48 bidirectional I/O lines.
- Two channel USB connection for JTAG and serial communications implemented with FT2232D.
- 32MHz oscillator that can be used by Xilinx's DCM to generate any required clock speed.
Attention, peut-être pas d'ADC ???
Wings
Plusieurs Wings sont disponibles
Papilio Arcade MegaWing
La Papilio Arcade MegaWing est une carte fille (appelé Wing) vers les mythiques consoles d'arcade (Z80, ...) pour rejouer à quelques jeux mythiques PacMan, Frogger, Asteroid, Space Invaders, Galaxian, ... avec des joysticks vintage.
Butterfly Platform MicroSD Wing (BPW5002)
add GB of NAND Flash to the Papilio
- http://papilio.cc/index.php?n=Papilio.MicroSDWing
- http://store.gadgetfactory.net/index.php?main_page=product_info&cPath=4&products_id=11
Premiers essais
Quelques notions pour comprendre
Installation
- Branchez la carte sur un port USB. 2 ports série USB sont installés : un pour le JTAG (et le chargement du soft processor), l'autre pour les communications du soft processor synthètisé)
- Téléchargez et Installez le Papilio Loader
Chargement du QuickStart
Téléchargez la synthèse (.bit) du Quickstart
"C:\Program Files (x86)\Papilio Programmer\Papilio_Programmer.bat" "C:\Program Files (x86)\Papilio Programmer\Quickstart-Papilio_One_500K-v1.5.bit" Programming the FPGA - Default Using devlist.txt JTAG chainpos: 0 Device IDCODE = 0x41c22093 Desc: XC3S500E Uploading "C:\Program Files (x86)\Papilio Programmer\Quickstart-Papilio_One_500K-v1.5.bit". Done. Programming time 483.0 ms USB transactions: Write 142 read 2 retries 0
Comme indiqué dans le tutoriel, affichez la trace du port série avec Putty.
Chargement d'un jeu d'arcade
Téléchargez le bitstream (.bit) du jeu Ping Pong sur le hardware de la borne d'arcade PacMan
"C:\Program Files (x86)\Papilio Programmer\Papilio_Programmer.bat" C:\devtools\papilio\Papilio_PacMan-P1-500K-1.0-source\pacman_rel004_sp3e\ping_pong_game_on_pacman_hardware_P1_500k_1.0.bit Using devlist.txt JTAG chainpos: 0 Device IDCODE = 0x41c22093 Desc: XC3S500E Uploading "C:\devtools\papilio\Papilio_PacMan-P1-500K-1.0-source\pacman_rel004_sp3e\ping_pong_game_on_pacman_hardware_P1_500k_1.0.bit". Done. Programming time 477.0 ms USB transactions: Write 142 read 2 retries 0
Chargement de l'AVR8 Soft Processor (Arduino)
- Téléchargez et installez le Papilio Arduino IDE http://papilio.cc/index.php?n=Papilio.Download
- Lancez le avec un schetch d'exemple (Communication>ASCIITable)
- Sélectionnez le port (le premier des 2 ports de la carte) et la carte cible "Gadget Factory Papilio One XXX" que vous avez branché
- Compilez - chargez (bouton "Upload")
- Ouvrez immédiatement le Serial Monitor : la sortie série du schetch est affichée
Attention: dans la version testées, plusieurs schetches d'exemple ne compilaient pas par manque des librairies (analogRead par exemple).
Trace de la console
Binary sketch size: 2058 bytes (of a 16384 byte maximum) Converting Intel hex file to Verilog Mem format: Selecting Papilio One 500K Bit file. Merging Verilog Mem file with Xilinx bitstream: Writing Bit file to the Hardware JTAG chainpos: 0 Device IDCODE = 0x41c22093 Desc: XC3S500E Uploading "out.bit". Done. Programming time 479.0 ms USB transactions: Write 142 read 2 retries 0 Using devlist.txt
Chargement du ZUPiuno
Téléchargez le bitstream du ZUPiuno HDL Core (.bit) du ZUPiuno http://www.alvie.com/zpuino/download.html
Premièrement, chargez le bitstream du ZUPiuno sur la carte avec le Papilio Loader
"C:\Program Files (x86)\Papilio Programmer\Papilio_Programmer.bat" C:\devtools\papilio\zpuino-ZB2-PapilioOne-S3E500.bit Programming the FPGA - Default Using devlist.txt JTAG chainpos: 0 Device IDCODE = 0x41c22093 Desc: XC3S500E Uploading "C:\devtools\papilio\zpuino-ZB2-PapilioOne-S3E500.bit". Done. Programming time 475.0 ms USB transactions: Write 142 read 2 retries 0
Deuxiemement, Au moyen de l'IDE Arduino modifié fourni par http://www.alvie.com/zpuino/download.html, compilez et chargez des schetchs (ASCIITable par exemple) sur la carte via le premier port série USB.
Avancé
Chargement d'un programme Basic sur l'AVR8 Soft Processor
http://papilio.cc/index.php?n=Papilio.RunBASCOMBasicCode
Synthèse d'un Soft Processor AVR 8 Custom à partir des sources
Voir http://papilio.cc/index.php?n=Papilio.CustomAVR8SoftProcessor
Téléchargez les sources de la synthèse de l'AVR Core https://github.com/GadgetFactory/Arduino-Soft-Core/zipball/v1.6 et décompressez
Téléchargez et installer la suite ISE Design Suite http://www.xilinx.com/support/download/index.htm
TBC