View Full Version : Xilinx ISE 9.2 Synth problems..
overclocked
19th March 2008, 07:08 AM
Hi all,
A first post here! I'm a happy hobby-FPGA-hacker that would like to try and port some of your games/platforms to my own FPGA-cards.
I use two cards:
- Digilent Spartan-3 Starter Kit (original 200K circuit)
- Digilent Microblaze Starter Kit (Spartan 3E-1600E circuit)
I've added my own extension card (Arcade Extender) to get some more connectivity. I've made this card fit both of the above which adds:
- 4096 color VGA Graphics
- So called "Space Invaders" stereo sound using RC-net
- SD-Card/MMC-socket (SPI-controlled)
- 9-pin Atari ST/C64 Joystick port with possibility of up to 3 fire buttons
- MIDI IN (well I'm interested in music and wanted to hack some synths)
- PS/2 connector (for extra PS/2 to support both key+mouse)
I've Checked-out the current PACE tree yesterday and tried using the RC-10 ISE-project that seemed like a good start for me. It does not Synth correctly within ISE 9.2.. probably it's me being the biggest problem.. :-) How is the syntax for choosing which graphics-core to include inot the build? Is it supposed to be done via code or via some ISE menu? Please show how its done correctly so I can follow the PACE-coding standard..
Best Regards to you guys for putting this site up! Alot of work both to write some of the cores and to put all of this great work together!
tcdev
20th March 2008, 01:13 AM
Hi Overclocked,
Welcome to PACEDEV.NET!
When I did the last round of changes to the video, I neglected to update the Xilinx projects. As you can tell, the projects on this site are predominantly Altera-based atm. I only have a single Xilinx board - the Celoxica RC-10 - which doesn't have any external SRAM which severely limits the usefulness.
I have just updated the RC-10 invaders project - it now builds and works correctly on my RC-10 under Xilinx ISE 8.2i (I don't have 9.2i).
FYI the problem was that I added a new constant which is used to select which video controller is used. All 'configuration' options are specified in the project_pkg.vhd in the target synthesis directory.
It should be pretty straight-forward for you to write a new target_top.vhd for your board and specify the pin-outs - the rest should slot in pretty much unchanged from there. Choose a name for your target hardware and create a new synthesis directory to contain the ISE project files and your new project_pkg.vhd - you specify the DCM parameters here.
Good luck and let us know how you go!
tcdev
20th March 2008, 01:21 AM
Something you may be able to help out with...
On the Altera platform I've created a wrapper to instantiate various generic ROMs and RAMs. The size and width of these memories are specified in VHDL generics when they're instantiated. Nice and easy... :)
On Xilinx, however, I haven't worked out how to do this, or indeed if it's possible at all?!?
Hence the reason in a few projects, I've had to wrap all the memories in a vendor-specific file. The altera_mem.vhd file simply instantiates the wrappers I've been using as mentioned above. The xilinx_mem.vhd instantiates fixed-size memories as required per platform/project. Not ideal... :(
Anyway, if you do find a way to instantiate memories on Xilinx which can be parameterised, I'd be very interested to know!
overclocked
20th March 2008, 08:09 AM
Yes I love to help out if possible. I'll start by using the Space Invaders (under /midway8080/) as an example. I try to build and execute the game on both of my cards, then I'll try to convert the RAM/ROM blocks to a syntax using a generic syntax. I'll get back to you.. I at least got the Synth working with ISE 9.2 SP3 so that is a great start! Thanks for the help.
Dirk
20th March 2008, 03:08 PM
Arnim Laeugers Colecovision contains a parameterised generic ram which works on Xilinx.
overclocked
20th March 2008, 06:55 PM
Thanks Dirk I'll look into that!
To begin with I've managed to get SpaceInvaders running on both my Xilinx-card so that was cool! Sound, PS/2 control and Joystick control work! The joystick keeps going to the right even though I don't touch it but it is probably some simple setting missing on the input...
To get these 2 targets running (Spartan-3 200K and Spartan-3E 1600E) together with my ArcadeExtender included the following steps:
1) Remove signals not used from the original RC-10 target project.
2) Reroute the signals to the correct pins
3) Change the DCM to suit the 50Mhz clock of both my target-boards.
I'll try to rework the RAM/ROM next and still get it to work..
tcdev
21st March 2008, 10:35 AM
To begin with I've managed to get SpaceInvaders running on both my Xilinx-card so that was cool! Sound, PS/2 control and Joystick control work! The joystick keeps going to the right even though I don't touch it but it is probably some simple setting missing on the input...
To get these 2 targets running (Spartan-3 200K and Spartan-3E 1600E) together with my ArcadeExtender included the following steps:
1) Remove signals not used from the original RC-10 target project.
2) Reroute the signals to the correct pins
3) Change the DCM to suit the 50Mhz clock of both my target-boards.
Good to hear you got it running!
How did you hook up the joystick? I recall we had a problem with the Gamecube controller at one stage which produced the same effect you describe - moving to the right - but I thought we'd fixed that? Maybe it got lost somewhere along the way...?!?
I assume you just changed the constants in project_pkg.vhd to generate the correct frequency from the DCM - yes? Or did you add a completely different DCM source file to the project?
vBulletin® v3.6.8, Copyright ©2000-2010, Jelsoft Enterprises Ltd.