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
    C) Users
    D) Sponsors
    E) Contributors
    F) Routes
    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
    organisation.

    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.

    C) Users

    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.

    D) Sponsors

    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.

    E) Contributors

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

    F) Routes

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

    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.

    WHYGEE