EDAserver.html (C) May 23, 2001 by Whygee
The Free Hardware movement, the tools
and the necessity to foster our efforts.
I think that it's time to make a little summary
about the project of setting one or several servers up,
dedicated to EDA accounts for Free Hardware projects.
I will mainly focus on EDA SW because HW emulation
is one step beyond, we have to get the first step done first.
Intro: What is EDA ?
A) Project organisation
B) Goal of the new organisation
H) Press Release
I) The End
Intro: What is EDA ?
This means "Electronic Design Automation", computer (SW or HW) tools
for helping designing chips or boards. some of them cost millions
of dollars and the cheapest don't go far. That's why we need a server
to host sponsored/given proprietary SW, because we can't develop the
F-CPU without good tools. Think about it : Linux exists because/thanks
to GCC. F-CPU has no "enabling tool" despite the fact that most
other technological factors are leveraged. So, while waiting for
a real "GNU" EDA tool (VHDL compiler, simulator and synthesiser),
we have to use existing tools. Otherwise, F-CPU will remain
a dreamer's project.
A) Project organisation :
It clearly appears that this project is out of
the scope of the core F-CPU project, which (i remember
to the newbies) is to design a CPU core, that's all.
I feel that it is a good thing to separate the different
sides of the F-CPU project, at least when the necessary
means and knowleges differ from what is needed to the core goal.
For example, the chipset and motherboard projects are necessary but
the goal of F-CPU is not to design a motherboard. OTOH
the different sides are closely bound together, mainly
through ml communication.
Since the server(s) requires real HW with material presence
etc, plus certainly monetary and legal conditions,
it is natural to split the organisation at that point.
New project name, domain name + ml + CVS + etc. are necessary,
as well as a core team, admins, a central server, and legal existence.
I don't think that it should remain F-CPU specific and other
projects would benefit from that. As a rule of thumb, several
projects listed in the OpenCollector database can apply and
participate. It is, on one hand, a matter of usefulness :
if what we do is useful, i don't see why we shouldn't prevent
other projects from benefitting from our efforts, as long
as they are not "passive users" (they have to help). On the other
hand, i am not sure that we would attain a necessary critical mass,
with only F-CPU team members. We certainly need others' help to make
the project successful. I can think of the LEON and OpenCores
projects, with which we could team up in a project-neutral
B) Goal of the new organisation
It must be defined when all the team members are present.
It requires a clear, short and precise description of what
the organisation is, and is not.
The F-CPU project certainly suffers from the same problems
as other projects, so here's a first proposition :
The goal of this project and organisation is to provide Free
Hardware developers with free online design tools, without
contraining them to buy anything or learn complex books.
The purpose of this project is to promote Free Hardware projects
and lower the entry effort for contributors. We want to
allow people to contribute without discrimination (either
monetary or expertise). The only constraint is that the
server users comply with usage restrictions and rules,
related to security and licencing (all the developped files
must be protected by the GPL).
The discussion is open, this draft will certainly evolve.
As written above, the goal of this project is to remove
technological discrimination. A lot of F-CPU lurkers can't
access the necessary SW and HW to develop, play with or
enhance the designs. Most existing GNU tools are not yet
ready or satisfying (hard to learn, setup and maintain),
and the F-CPU project can't rely on "manually unlocked"
EDA software (rumors of so-called "piracy" would doom
the project and would play against the goal of becoming
an industry standard)
The servers managers allocate ressources to the users if :
- their design complies with some basic rules, such as the
distribution under GPL
- they accept to respect the necessary security rules (ie password,
access rights and UNIX restrictions, reverse engineering of
the provided tools...)
Concerning the F-CPU, the amount of allocated ressources will
depend on the users themselves. All projects and users would have
access to the same ressources. A batch queue and quota will balance
the server load.
Individual contributors in form of money or HW are welcome,
but the EDA industry is sized for a larger scale.
Usually, NO EDA company will sell HW or SW to individuals,
even if they represent a group. The negociations will be tough.
Cadence had made a licence proposal on an individual basis,
which is a first step. Upcoming articles in the press could
help catch others' attention, we could get other proposals.
However we should be cautious : cooperation is fine as long
as we don't become marketing toys. Cadence's proposal is one
of the many examples of a company wanting to enhance its
corporate image and it is only mar/com babbling as long as we
don't get the SW and licences up and running !
"Advertising" on the servers is not good. Mention of the
sponsors is alright but we are engineers, not a marketing
medium. Right ?
Cadence's individual licencing is quite ok but this doesn't
solve all the problems. We will try to cooperate with each
other so that we can run a server.
this project needs a root team and probably a surveillance commity,
besides the legal stuff. This means that it is a fully serious project
and responsible people are necessary. One will not be able to leave
the project on a whim.
I can't take the responsibility of this project : the F-CPU and
other things are already monopolizing all my time. I could however help
on punctual cases, such as setting up a HW emulator (i have a rough
experience in this era, thanks to my job at META).
There are several and non-exclusive ways to achieve the project's goal.
These routes will probably be explored parallelly, it is a good way to
have at least something working if everything else fails.
All propositions are welcome. Lightweight solutions are most likely
to succeed but will yield small results. EDA SW today is extremely
expensive and the "lightweight" servers (no legal backing) will probably
only have educational, freeware, GPL or public domain software, which
won't be enough.
"heavier" servers will be much more difficult to setup but will be able to
host proprietary software and hardware. their benefit and usefulness
are higher, as well as the risks. Today's industry is very prone to
suing ("Suing is human", cf EEtimes) and this eventuality is likely to
ruin our efforts. If excessive prudence is necessary for this project,
it is because a legal failure could doom the emergence of the Free Hardware
as a valid alternative in the industry.
G) Existing possibilities
1) We can start to setup individual servers. There have been some
proposals on the list. These "lightweight" solutions can be enhanced
if CADENCE holds its promise to provide us with some of its SW.
We'll have to be again in contact and get the licences for good.
2) setup a legal, non-profit organisation. The idea of the SUN server
has been studied, it will cost a lot and it is not realistic if few
people participate. I have started to negociate with my ex-employer
(Mentor) but it will be impossible without a minimal serious organisation.
I'll try to find a way to get a second-hand HW emulator.
This machine could be located at the EPITA (french engineeer school)
or with the help of GOAS or CCC (in Germany), where we can setup an
independent legal non-profit entity.
3) i have heard about a project that is being studied at Jussieu
(University of Paris). They want to setup a server with Alliance SW
(GPL). This is a cooperation between the microelectronics department
(where it is written) and another one where it will be hosted.
i'll do my best to keep you informaed and to participate
in this project.
H) Press Release
Here is a preliminary and incomplete text that will be sent
to the press, specialized websites and to the EDA companies.
I will publish it on this site and request for enhancements.
This text will require the F-CPU team's adhesion before it is sent.
I hope that with the help of universities, companies and individuals,
we can have a first idea of what to do. We will have a first deadline
in a few weeks.
The F-CPU Project : Call for participation
*given the lack of good GNU EDA software (the field is only emerging),
*given that most EDA tools are proprietary, extremely expensive for
individuals and never sold to them anyway,
*given the increasing size of today's and tomorrow's designs,
*given the increasing number of free hardware designers and projects,
*given the existing technology,
A large number of free hardware developers require sophisticated means
in order to pursue their work, and they can't access them.
These developers have very limited ressources that do not allow them
to design large and complex devices. The ambitiousness of the F-CPU
project is only one example of this limitation.
Usually, Free Hardware designers use ressources at home, work or school.
They can't bring proprietary EDA tools at home and the available
home tools are freeware or incomplete, GPL'd tools. The efforts are scattered
and the compatibility is not garantied. Free Hardware projects
can't develop their full potential in these conditions.
This current situation is difficult but it still works at a certain level. However
it fails to achieve larger scale results when the gate count scales up
or when the workload exceeds an individual's ressources. The necessary
quality constraints can not be reached in a scattered environment.
The solution is to create one (or several) server dedicated to large
EDA tasks. It will provide :
- large ressources to the individual user, independently from his
means or hardware setup (at home or not).
- a common ground to compile and verify designs, check the sources
against incompatibilities with one or several EDA SW.
- Sponsors will only require to manage one central licence
instead of many individual licences, and software updates
will be performed automatically for all users, as well as
Because such a server requires a lot of efforts, this can not
be an individual endeavour. The F-CPU contributors alone can
probably not achieve this goal. Therefore we ask the other Free
and Open Hardware project members to take part of the workload
and the results.
This server is not likely to be used 24/7 by only the F-CPU team,
the participation of other projects is therefore not a problem.
This common server will certainly increase the communication between the
projects and yield to some common works in the Free Hardware field.
With this central ressource that is independent from any particular
projects, it can lead to more consistency in the FHW community
and improve the overall design quality.
We are still far from a Free Hardware Foundation but a common EDA server
is a crucial step, leading to the emergence of the Free Hardware movement
as a viable and serious alternative to the commercial and obfuscated designs.
Please contact us, help us and spread the word.
Annex : (hypothetical) Plan for setting up an EDA server
* Phase 1 : physical setup
- desired spec. : Solaris, PCI/SBUS, min 1G RAM, min 10G SCSI
- root team : several volunteers
- location : wherever we can put it in _safety_
- network setup : ssh, firewall, display X that can be exported
(in limited number)
- user accounts : subscription for an account will be strictly
controlled, only FHW projects with at least a specification or early
VHDL code that is released under GPL will obtain an account. Due to
the presence of proprietary ressources, security measures are strictly
enforced. We don't want to scare the EDA industry and have problems
with hackers. We leave the hacking to the Linux servers.
* phase 2 : installation of some compilers
- Cadence has proposed to give some free licences to some
tools. They still have to keep their promise but it seems that
they are not ready to issue a licence for an EDA server.
- Compiler job queue setup : quota for machine time, iteration
number, memory space, in order to have fair and equal use of the
machine by everyone.
- Compilers : VHDL and Verilog, RTL simulation and silicon synthesis.
* phase 3 : automation of the tasks
- make scripts for running compatibility, QA and non-regression tests
* phase 4 : emulation
- hook up an emulation/verification device to the server.
This could be a FPGA board or a dedicated emulator, with the necessary SW.
I) The End
If you have other means or ideas, please drop a message on the F-CPU list.