Papilio

From air
Jump to navigation Jump to search
Carte FPGA Papilio 500K + Papilio Arcade MegaWing
Carte FPGA Papilio 500K + Papilio Arcade MegaWing + Vintage joysticks (6 switches)

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.

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.

more details

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

Premiers essais

Quelques notions pour comprendre

  • VHDL (.vhd) : TBD
  • Verilog : TBD
  • Projet Xilink : TBD
  • BitStream (.bit) : TBD

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