The Papilio Arcade Kit is a DIY kit thatprovides everything needed to recreateclassic Arcade games such as Pac-Man.Open Source HDL projects provide thehardware definition for study,implementation, and extending.The Papilio Arcade Wing provides, 12bitVGA, Delta-Sigma Audio, and DB9 Joystickports.
ZPUino is an implementation of the 32-bit Open Source ZPU processor. It is a small implementation that is meant to be used with the Arduino IDE. It is capable of speeds up to 100Mhz and can run on the Papilio Platform.
I am trying to use ZPUino on my own custom board. I've picked ZPUino_Papilio_DUO blackbox, created a top level module accordingly and finally modified the .UCF file. As my board has a 24 MHz crystal oscillator, I instantiated a DCM block and converted 24MHz to 32MHz and fed the clk_32 signal (output of DCM) to ZPUino_Papilio_DUO_blackbox.
After a successful synthesize, In the Translate step I got the following error:
logical net 'XLXI_82/clk_32' has multiple driver(s):
pin CLKFX on block XLXI_82/inst_clk_24to32/dcm_clkgen_inst with type
pin PAD on block XLXI_82/clk_32 with type PAD
I also disabled the BUFG on DCM to see if this is the source of error, but still no chance!
any help is appreciated.
last November I received my Papillio Pro. One of the projects I immediatly tried out was Will Sowerbutts SOCZ80. I really liked it, especially I started my computing experience with real CP/M computers in the beginning of the 80s. This included writing an own BIOS, etc. My old CP/M computer exists, but is not usable anymore because over the years all floppy disks get lost.
So working with SOCZ80 was a exactly what I searched for. In the meantime I did a lot of extension to it:
- Integration of a text mode video controller from open cores http://opencores.org/project,interface_vga80x40
- PS/2 keyboard
- Adapted to use the Arcade Megawing for PS/2, VGA, GPIO LEDs, reset button
- Extended CP/M 2.2 BIOS and MPM XIOS to support PS/2 and VGA.
- ROM Monitor and boot loaders that can be used with VGA/PS/2 - so my extended version can be used as real stand-alone Computer when connected to power suplly, monitor and keyboard
- The simulated terminal supports ADM3A/TVI950 escape sequences instead of VT100. They are easier/smaller to implement and many CP/M programs have difficulty to generate VT100 seqeunces. The disadvantage is that the local console is incompatible with the serial console, because I'm not aware of any Windows Terminal Emulator supporting ADM3A
- The keyboard supports Wordstar compaitble Control characters for cursor keys.
- For MP/M Console 0 is the Serial UART and Console 1 PS/2 / VGA.
Other hardware / Software extensions:
- Added support to Interrupt Mode 2 to the hardware and adapted MP/M XIOS to it (this allows the use of normal CP/M debuggers under MP/M without crashing the systems because the XIOS is no longer using RST7 for interrupts)
- Fixed a bug in BIOS/XIOS with not taking into account that a CP/M DMA buffer can cross a 4K boundary. This occaisonally lead to data corruption e.g. when copying a file with CP/M PIP.COM
I also wrote a xmodem receive program in Turbo Pascal which makes transfering files a bit more easier.
I collected a lot of old Software like Wordstar, Mutiplan, CBASIC, MBASIC, Turbo Pascal, Microsoft Fortran etc. and configured it to run with the Video Terminal.
I created some example programs in Turbo Pascal, MBASIC, CBASIC and even Fortran (it was the first Fortran program in my life -really fun :-) ).
I also collected things like Eliza and Startrek. I also adpated the MBASIC Startrek to compiled CBASIC.
I sill plan to do more. E.g a improved video controller supporting higher resolutions, virtual console support for MP/M.
My focus is currently on the MP/M implementation, because MP/M was beyond my reach in the 80s and I'm really fascinated by the elegance and power of this little multi-user/multi-tasking system. I support CP/M as bootloader and "maintenance mode" for MP/M, but currently have no plan to support CP/M 3.0
I'm currently in preparation to publish my extended SOCZ80 also with some disk images. Biggest limitation of the current implementation maybe that I only adapted it to German Keyboard Layout. This can be easily changed.
My pre-anouncment here is mostly intended to find out if there is anybody out there interested in my work and also I'm searching for someone acting as tester to check if my distribution files (FPGA bitstream and disk images) are ok.
Looking foward to any reply.
Over one year has past since my previous post. Things like this happen in home projects, I guess.
I was able back then to sort out the mistery of the YM3012 by measuring the actual device. The verilog implementations that were published back then were indeed slightly mistaken. I published an entry on my blog about it (mostly in Spanish).
I have started to dump the output of the real chip in order to reproduce it as accurately as possible in the Verilog implementation I am working on. I read the digital data directly, before going through the DAC. The attached image is a sample sound of my first note out (read this blog entry for details).
I have also found the exact algorithm used to generate noise in the YM2151, again in a different blog entry.
I hope nothing will disturb me this time and I will complete the new verilog implementation of the YM2151/YM3012. I will release it to opencores when done, with English documentation and comments.
Gadget Factory Open Source Hack|Ware. We are hardware suppliers and inventors with a community focused approach. We provide affordable FPGA- and Arduino-style circuit boards for hacking projects, product development, engineering and electronics prototype development, university students projects, and more. Based out of Denver, Colorado..