One of our customers will be asking us to implement a bunch of math functions on an FPGA-boards. There are a lot of "decisions" that affect control processing/algorithm selection, so they specifically requested an FPGA with "PowerPC." (This immediately tells me Xilinx's marketing has done an A+ job of getting managers and other non-technical people to subconsciously associate 'FPGA CPU' with Xilinx's Virtex2Pro product. :))
As an engineer, for me, the problem isn't the choice of CPU; Any embedded CPU (OpenRISC, Microblaze, Nios, etc.) would serve the purpose; as its only going to read/write internal status/contorl registers every few 10,000 cycles. The problem is 'how to run the software app' on the CPU.
Now for my awkward question. I've never done this kind of 'embedded' development before, so I have no clue as to the normal development flow.
In digging around a few enthusiast websites, I think I the normal flow requires a) 'embedded O/S' (running on the embedded CPU target) b) development tools (C-compiler to target the CPU) c) your own custom files (for defining I/O ports, application hardware, etc.)
It sounds all very complicated to me. Can I "skip" the embedded O/S? I'm just read/writing some registers, not trying to access a TCP/IP network or USB-filesystem.
I'm an ASIC engineer (mostly RTL Verilog coder) by training, so I know my way around hardware development.
So, what do you guys recommend to the novice embedded engineer? Is the Xilinx EDK a good choice? What about the 'OpenRISC' CPU on opencores.org?