Papilio: Difference between revisions

From air
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:papilio500Arcade1.jpg|thumb|300px|right|Papilio 500K + Papilio Arcade MegaWing]]
[[Image:papilio500Arcade1.jpg|thumb|300px|right|Carte FPGA Papilio 500K + Papilio Arcade MegaWing]]
[[Image:papilio500Arcade2.jpg|thumb|300px|right|Papilio 500K + Papilio Arcade MegaWing + Vintage joysticks ]]
[[Image:papilio500Arcade2.jpg|thumb|300px|right|Carte FPGA Papilio 500K + Papilio Arcade MegaWing + Vintage joysticks (6 switches)]]


Les cartes [[FPGA]] Papilio sont des cartes FPGA d'entrée de gamme. Les cartes filles appélées Wings peuvent être ajoutées.
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
http://papilio.cc/index.php?n=Papilio.Buy
Line 18: Line 19:
* 48 bidirectional I/O lines.
* 48 bidirectional I/O lines.
* Two channel USB connection for JTAG and serial communications implemented with FT2232D.
* 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.
* 32MHz oscillator that can be used by Xilinx's DCM to generate any required clock speed.
[http://papilio.cc/index.php?n=Papilio.Hardware more details]


Attention, peut-être pas d'ADC ???


== Wings ==

Plusieurs [http://papilio.cc/index.php?n=Papilio.Wings Wings] sont disponibles
== Papilio Arcade MegaWing ==
=== 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''.
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''.
* http://papilio.cc/index.php?n=Papilio.ArcadeMegaWing
* http://papilio.cc/index.php?n=Papilio.ArcadeMegaWing
* http://fpgaarcade.com/games.htm
* http://fpgaarcade.com/games.htm


=== 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==
==Premiers essais==

===Quelques notions pour comprendre===
* [[VHDL]] (.vhd) : TBD
* [[Verilog]] : TBD
* Projet Xilink : TBD
* BitStream (.bit) : TBD

===Installation===
===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é)
* du Papilio Programmer (Loader)
* Téléchargez et Installez le [http://papilio.cc/index.php?n=Papilio.Download Papilio Loader]


===Chargement du QuickStart===
Téléchargez la synthèse (.bit) du [http://papilio.cc/index.php?n=Papilio.P1QuickstartSketch Quickstart]
<pre>
"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
</pre>

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


<pre>
<pre>
C:\Program Files (x86)\Papilio Programmer\bin>"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
"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
</pre>
</pre>


===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).
===Chargement du [[ZUPiuno]]==

Trace de la console
<pre>
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
</pre>

===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
<pre>
<pre>
C:\Program Files (x86)\Papilio Programmer\bin>"C:\Program Files (x86)\Papilio Programmer\Papilio_Programmer.bat" C:\devtools\papilio\zpuino-ZB2-PapilioOne-S3E500.bit
"C:\Program Files (x86)\Papilio Programmer\Papilio_Programmer.bat" C:\devtools\papilio\zpuino-ZB2-PapilioOne-S3E500.bit
Programming the FPGA - Default
Programming the FPGA - Default
Using devlist.txt
Using devlist.txt
Line 50: Line 120:
USB transactions: Write 142 read 2 retries 0
USB transactions: Write 142 read 2 retries 0
</pre>
</pre>

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

Latest revision as of 10:00, 8 January 2012

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