here'e some ideas, not very scientific, just based on some experience:
Starting on a high abstract level, make a list of
- all sytem tasks including their real-time requirements
- all system data streams including their bandwidth
Based on that try to calculate the average and peak system performance.
I guess your goal is, to implement as much as possible functions in software
for cost reduction and a higher flexibility. Try to estimate the required
performance for a CPU. This should include a detailed analysis of the CPU
capabilities considering computing performance, benchmarking, interrupt
memory architecture, and so on. Best way is to define some application
specific benchmarks. At least you need some experience. Don't forget to have
performance reserves in your System.
There a some converters between VHDL and C available. Thye have not a goot
but could be interesting for some simple experiments. For a system with strong
requirements you should focus on high end RISC-processors. E.G.: a MIPS Vr4121,
which is used in some pocket organizers, emulates a Modem up to 14.400 bps
Some theoretical methods to characterize your system you can in:
Ward, Paul T. and Mellor, "J. Strukturierte Systemanalyse von Echtzeitsystemen"
(sorry, german title, this book originally comes from the US)
Hope this helps a little bit, Mike...
> I am in the initial stages of an embedded design phase and want to determine
> what parts of the system should go into hardware (either ASIC or FPGA) and
> what parts should be written in software in the microprocessor. I am
> considering the basic aspects such as critical timing algorithms and
> configurability aspects, however I would like to find a good reference
> outlining all the major aspects that I should consider.
> After doing some initial searches on the Internet, I found the buzz word
> 'co-design' or co-development, pointing to a few references but nothing with
> any real substance.
> Does anyone have any ideas.
> Patrick Foy
Michael Carstens-Behrens NEC Electronics (Europe) GmbH
Voice/Tel.: +49 211 6503-861, Fax -533 Technical Product Support
/* PGP key available on request */ D-40472 Duesseldorf