04-26-2008 11:23 AM
ML403 - Virtex4 - PPC405
I have a working PPC405 design to which I want to add the APU FPU. I have used the wizard to configure basically the same design, but with the FPU included. This now runs non floating point instructions but generated program exceptions when an FPU instruction is executed.
Looking at the PPC405 block reference guide I am informed that I have to set bits 6 (APU present) and 18 (FCM floating point unit present) in the MSR register, but the PPC405 reference guide from Xilinx states that all these bits are unsupported and must be set to 0. This seems contradictory.
Any advice on how to add the APU FPU unit to a PPC405 design without FPU instruction generating exceptions would be gratefully received! Are there library calls I'm supposed to use the configure the hardware? I cannot find any.
06-20-2008 04:07 AM
Actually I have the same problem. I use the "mtmsr" instruction to enable MSR's bit 6 and 18, but an exception is generated in simulation. I would like to ask if anyone can tell which is the normal procedure to correctly enable the FPU. In the documentation is also mentioned that there can be different exception modes by configuring MSR's bits 20 (FE0) and 23 (FE1). Do I have to set these bits also to a different mode than "0,0" (ignore excetions) ?
Any feedback will be most welcome! :-)
06-20-2008 04:22 AM
I went back and forth with Xilinx support for a while on this one.... It was resolved when it was recommended to me to install the *entire* EDK rather than just the components I "required". I bought a bigger hard disk, followed the recommendation, and hey presto my project started working :o)
06-20-2008 04:30 AM
Thank you very much for fast reply!
So to make sure I understood correctly, you suggest to unistall EDK 9.1, and re-install it with all the components, such as "Virtex4", "Spartan3", "Virtex5", "Coolrunner" etc..., right?
06-20-2008 04:52 AM
That is correct except that I was using V10.1 of the EDK.
There is a demo project available from the Xilinx WEB site that includes the FPU, with my original installation I could build the project (hardware and software) but it would not run, getting stuck when an FPU instruction was encountered. If you have a similar problem with the 'known good' demo project then it could be that you too need to install the components you are 'not using'.
06-20-2008 05:05 AM
This is exactly the problem I have. In the simulation, the moment the APUFCMDECODED signal is asserted (1 pulse) due to the FPU instruction, I receive from Modelsim messages that PPC received 'X' in its pins. Of course, also when I download the design to the board, it stucks..
Regarding the demo, I already found one implementing an FIR filter. I used it as a guideline to setup my system.mhs file and run a tiny program with 4 FPU instructions, making sure of course that MSR bits 6 (APU present), 12 (enable APU exception) and 18 (FCM FPU present) are enabled.
I will go through the boring process of uninstall-reinstall and hopefully everything will be ok... :-)
Thank you very much again for your help!
08-06-2009 12:27 PM
Did you ever get this working? I also downloaded the fpu_v2_10_demo zip file, and built it using EDK 10, and I have the same result, it just hangs. I think I already have the entire EDK installed. I have a real frustration with XIlinx and how little support you get with new releases of IDE/EDK and old demo programs. There just isnt enough hard drive space for every board with every EDK version combinations. I bought the ML403 because I thought that was a good board that would be supported for a while. I'm frustrated that the only thing I can get to run reliably are the bit files that alread came with the demos.
ANyone lived through this and have a happier tale?