[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: fritzing



Ben Jackson wrote:
> Well, that's basically my point.  Working on a large IC requires a huge
> team of people.  I live right by Intel, so I see how many people they have
> swallowed up to do chip design.  My complaint is that the complexities of
> designing chips or FPGAs is very poorly abstracted as compared to software
> at large.  The only reason it's possible to execute those designs at all
> is that on an absolute scale they're fairly simple.  That's no slight on
> the people doing the work -- it's just a reflection of how ineffective
> the tools are.

This is an interesting perspective. Essentially I hear you saying two 
things:

1) A task that requires a lot of smart people to complete must suffer 
from a lack of adequate tools.

2) A task that can be completed with inadequate tools can't be very complex.

 From my standpoint there's a bit of a disconnect between these two 
positions.

Coming from a background as a wireless systems engineer as well as a 
chip designer, I'm here to tell you that there's nothing simple about 
the chips I've worked on: the Wifi chipsets I was doing 6 years ago were 
complex enough that no one person understood _everything_ that was 
happening in them. Move up the food chain to something like a modern 
multi-core processor and it's amazing that they work at all.

The only way these things are at all possible is with a wide variation 
in levels of abstraction. They guy designing the transistors doesn't 
know about the circuits they go into, while the architect working on the 
memory management can't be bothered with the ESD structures of the I/O 
pads. I have very little knowledge about how modern large-scale software 
development projects work, but I assume that they're also staffed by 
large teams, each with their own specialties - UI designers, core 
coders, build managers, library maintainers, QA & test. I don't see much 
difference between this and what happens in chip design.

> I would like to be able to express the essence of what I need to do, such
> as an arithmetic operation, without having to understand how it should be
> pipelined, how wide the intermediate results need to be, how it should map
> to the facilities of the FPGA (or hard macros or etc), etc.  I would like
> to be able to take that design and target FPGAs from different families
> or vendors without having to reevaluate the design tradeoffs.  Even if I
> *did* have to make the choices manually (eg where to register intermediate
> values), I'd like to control those aspects independently from the core
> logic, rather than having to mix it in.

Some of these are reasonable goals and a lot of engineers out there 
would agree with you, myself included.

As far as the top-level design of pipelined arithmetic systems, I have 
actually used some tools that approached this level of flexibility - 
Synopsys Module Compiler was doing a lot of this 10 years ago on small 
systems. The big problem is scaling it up to what's normal today. Xilinx 
has taken some stabs in this direction with System Generator and 
AccelDSP, but these also have their shortcomings. Very few tools (any?) 
out there today allow you design complex arithmetic without specifying 
internal details, although many provide libraries of functions that you 
don't have to dig into to use effectively.

Retargeting FPGAs from different families within one vendor is almost 
there - I'm able to port designs across Xilinx Spartan3, Virtex2, 4 and 
5 families without too much pain. Going across vendors is a bit more of 
an issue because there aren't _any_ 3rd-party tools that handle the back 
end PAR processes - the vendors treat that as proprietary and require 
you to use their own tools. The only interface that works is the 
top-level HDL, and while it's possible to make retargetable code you 
give up a lot of performance due to the dissimilar IP structures. 
Nothing wrong with that - it's competition in action.

I'm sure we'll get there. It won't be easy though.

Eric




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user