Co-Design in Embedded System

Co-Design in Embedded System

Post by Patrick Fo » Thu, 05 Aug 1999 04:00:00



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.

Thanks.

Patrick Foy

 
 
 

Co-Design in Embedded System

Post by Virgil Stamp » Thu, 05 Aug 1999 04:00:00


Patrick,
Lets say you want to use the Motorola ColdFire processor. It is critical
that you take advantage of the design features of this processor. For
example, if you can execute your code out of DRAM you can take advantage of
burst mode and be many times faster than execution out of FLASH or static
RAM. After you have your basic design requirements, how much memory, type of
memory, io, type of io, access, chip selects etc. you can reduce your "glue
logic" by implementing it in one or more FPGA or CPLD. You should think and
plan your debug facilities. The ColdFire has a Background Debug Mode or BDM.
I like that. I am not familiar with co-design or co-development. Sounds like
design by committe. That is what you call a Camel.
Virgil Stamps


Quote:> 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.

> Thanks.

> Patrick Foy


 
 
 

Co-Design in Embedded System

Post by Stephen Maudsley, esge » Fri, 06 Aug 1999 04:00:00



Quote:> 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.

In most applications you've got to do enough architectural design to
identify the key algorithms and then benchmark them. What we're currently
working on is relatively easy to make the decisions because we can't get the
5-10GHz microprocessors we'd need for von-Neuman implementations.

--
-- Stephen Maudsley   esgem limited
-- http://www.esgem.com  -- hiring digital TV developers
-- Voice: +44 (1453) 521626 Fax: +44 (1453) 521957

 
 
 

Co-Design in Embedded System

Post by Michael Carstens-Behren » Fri, 06 Aug 1999 04:00:00


Hi Patric,

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
computing
performance for a CPU. This should include a detailed analysis of the CPU
capabilities considering computing performance, benchmarking, interrupt
behaviour,
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
enough
performance reserves in your System.
There a some converters between VHDL and C available. Thye have not a goot
quality,
but could be interesting for some simple experiments. For a system with strong
real-time
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
completely
in software.

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.

> Thanks.

> 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
 
 
 

Co-Design in Embedded System

Post by Ulf Samuelsso » Fri, 06 Aug 1999 04:00:00


I know a few guys at the Royal Institute of Technology in Stockholm
that is is working on this isse.

Their toolset takes a C algorithm, compiles the C , runs and profiles
and extract those parts that are ripe for hardware acceleration.
Creates the VHDL for an accelerator and converts the original
C source to replacing the algorithms implemented in H/W parts
with a driver for the new H/W. Pretty neat ...

I have not heard of any commercial implementation
of H/W-S/W codesign with automatic partitioning.

--
This is a personal view which may or may not be shared
by my employer         Atmel Sweden
Ulf Samuelsson         ulf 'a't atmel 'd'o't com


Quote:>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.

>Thanks.

>Patrick Foy

 
 
 

Co-Design in Embedded System

Post by Steve Rencont » Fri, 06 Aug 1999 04:00:00


The idea of co-design is that you don't do the traditional "design the
hardware, then worry about the software" thing, but do at least some
of both in parallel, so that each can benefit from knowlege of the
other. That's about it AIUI!

As to /how/ you do it... The best way is for the system architect to
be both a hardware and software guru, but otherwise I think it has to
be an iterative process. That is, the hw and sw people each work out
an architecture, then they get together and try and refine their ideas
until they fit.

It can be a stressful process - "You mean I've got to do /what/
because some dork can't be bothered to make their piece work
properly?" - but the end result should be a better product delivered
sooner.

Of course, if traditional sequential development takes X time for hw
and Y for sw, with co-design, both X and Y will increase. You have to
be able to stand back and see that (X' // Y') < (X + Y).

On Wed, 4 Aug 1999 20:28:31 -0400, in


>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.

>Thanks.

>Patrick Foy

--
Steve Rencontre, Design Consultant
http://www.rsn-tech.demon.co.uk/  --  remember to despam return address
 
 
 

Co-Design in Embedded System

Post by Stephen Maudsley, esge » Sun, 08 Aug 1999 04:00:00



Quote:> The idea of co-design is that you don't do the traditional "design the
> hardware, then worry about the software" thing, but do at least some
> of both in parallel, so that each can benefit from knowlege of the
> other. That's about it AIUI!

> As to /how/ you do it... The best way is for the system architect to
> be both a hardware and software guru, but otherwise I think it has to
> be an iterative process. That is, the hw and sw people each work out
> an architecture, then they get together and try and refine their ideas
> until they fit.

> It can be a stressful process - "You mean I've got to do /what/
> because some dork can't be bothered to make their piece work
> properly?" - but the end result should be a better product delivered
> sooner.

> Of course, if traditional sequential development takes X time for hw
> and Y for sw, with co-design, both X and Y will increase. You have to
> be able to stand back and see that (X' // Y') < (X + Y).

And a related issue - if you don't design the h/w and s/w concurrently for a
large proportion of the specification phase at least how easily can you
demonstrate that your design meets the requirements specification? The
response should be a variant of "*ed if I know".

--
-- Stephen Maudsley   esgem limited
-- http://www.veryComputer.com/  -- hiring digital TV developers
-- Voice: +44 (1453) 521626 Fax: +44 (1453) 521957

 
 
 

1. ANNOUNCE: Workshop on Embedded Systems & Hardware/Software co-design

The UK's Educational ECAD User Group is running a workshop as
usual in September.  This 24th EEUG Workshop will be hosted at
Sheffield University, UK on the 6th and 7th of September 2000.
The topic for the workshop is "Embedded Systems and
Hardware/Software co-design" and it will discuss
recent and future developments in this area.

Full information, including a registration form, is available at
<http://www.eeug.org.uk/sep00/>.

--

Department of Electronics & Computer Science
The University of Southampton, UK

Posted on behalf of the EEUG committee

2. Wolf Child -- Any Cheats???

3. New Book: Readings in Hardware/Software Co-design

4. rock and roll

5. hardware software co-design

6. Nero and user access

7. co-design issues

8. Changing User Shared Folders disk

9. CO; Boulder; Sr. Software Engineer; Embedded, Object Oriented firmware, structured assembly code; Intel Design

10. Seattle Co. Seeking Qualified Engineers-Embedded Systems; Tools; QA

11. Major Semiconductor Co needs Sr. Embedded Systems Applications Engineer

12. Embedded Systems Development, Top UK Co., to 25k, Cambridge,UK - ECM