Frequently Asked Questions
- About this FAQ
- Design Guidelines
- Downloading Files
Contributing to / Joining OpenCores
- How do I contribute?
- What is a project?
- How do I help out on an existing project?
- How do I start my own project?
- I don't want to maintain a project any more. What do I do?
- The original maintainers are not contactable, can I become a co-maintainer and continue to develop and maintain the project?
- I have written a core. Can I publish it on the OpenCores web site?
- I have an idea for a core, but need help to develop it.
Information for Developers
- How do I edit a page on the OpenCores web server?
- How do I upload files to the OpenCores server?
- How do I edit my personal page on the opencores web server?
- How do I change my password?
- How do I edit a project page on the OpenCores web server?
- How do I write specification for my core
- How do I get an email address of the form email@example.com?
- Terms and conditions
This FAQ is free software; you can redistribute it and/or modify it under the terms of the http://www.gnu.org/licenses/gpl.html (GNU General Public License) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This FAQ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Who is responsible for this FAQ?
Marcus Erlandsson. Send an mail to marcus.erlandsson@OpenCores.org to contact the author about this document. Below are some of the previous contributers: - "Copyright 2002-2003 John Dalton, licensed under the GNU GPL v2 or later" - "Copyright 1999-2007 Damjan Lampret, licensed under the GNU GPL v2 or later"
What is OpenCores.ORG?
OpenCores is a community that enable engineers to develop open source hardware, with a similar ethos to the free software movement. Currently the emphasis is on digital modules called 'cores' or 'IP Cores'. All activities is centered around the OpenCores web site http://opencores.org
There is no formal affiliation between the people contribute to OpenCores. They are a bunch of people who just happen to be walking in the same direction along a road. This is a dynamic group, people regularly join and leave. The group today contains of both private individuals as well commercial individuals.
What is the purpose of this FAQ?
This FAQ covers all aspects of OpenCores. Use it as the starting point for any FAQ you have. If an aspect of OpenCores maintains their own FAQ, this FAQ will make the appropriate referral.
My question is not covered in the FAQ, what do I do?
If your question id not covered in the FAQ, email us your question (firstname.lastname@example.org). You can also post your question on the forum, please use the "others"-forum for generic questions.
Why do people contribute to OpenCores?
A strong reason to release a core as open source is to get help with the verification. And since the verification is a major part within a development project today (~80-90%), this provides a win-win partnership between the original designer and the end-users.
The open source methodology is the only way we can drive the technology to the next level in a cost efficient way, since we share the huge verification effort with the whole open source community.
Who contributes to OpenCores?
All kinds of people: Students, HW Professionals, SW Professionals, Companies, Hobby engineers, Universities, etc. We need all kinds of people contributing with all kinds of different skills.
Where is OpenCores situated?
The main server is physically located in Sweden, Europe.
History of OpenCores
OpenCores was founded in October 1999, by Damjan Lampret, as an open source community for development and distribution of VHDL/Verilog IP cores (building blocks of Semiconductor chips). OpenCores soon became world wide known by ASIC and FPGA engineers.
Can you help me with my school/college/university project?
In general, no. If you start exploiting opencores to get a school project done, others will rapidly tire of your questions and ignore you. Having said this, many people contribute to opencores in order to teach and learn. You can learn a lot from opencores. This knowledge will make you a better designer and indirectly help with any student projects you may have to do. Valid ways to learn include contributing to an opencores project, or running your own opencores project. Any questions directly related to a school project should be directed towards your supervisor at school.
What language is spoken on the forums/mailing lists?
The official language for the opencores forums/mailing-lists and web site is English. A subset of pages are translated to Chinese.
Is advertising or SPAM allowed on the forum/mailing-lists?
No. OpenCores reserves the right to charge for advertising or SPAM sent to any mailing list.
What design language do you use?
There is no preferred language and each designer uses their language of choice. Keep in mind that a core written in a seldom used language will not be very useful. Most designers use VHDL, Verilog, SystemVerilog.
What is the preferred System-On-A-Chip (SoC) bus for OpenCores?
The preferred bus is WISHBONE. This is the only commonly used SoC bus which is truly free. Rudolf Usselmann has analysed the advantages of the common SoC busses. His report is available at the "Wishbone"-page. The Wishbone specification is today maintained jointly between Michael Unnebäck and Richard Herveille.
Does OpenCores have any coding and interface guidelines?
The OpenCores RTL coding guidelines are available here
What license is used for OpenCores?
To simplify life for users, developers are strongly encouraged to use an unmodified LGPL (Lesser GPL) license or the modified-BSD license. The modified-BSD license is the original BSD license with the 'advertising clause' removed.
A modified-BSD style license essentially states that no warranty is given, the core may be distributed in source or binary form and the authors copyright must be acknowledged.
The GNU Lesser General Public License (formerly the GNU Library General Public License) or LGPL is a free software license published by the Free Software Foundation (FSF). It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License. The GNU Lesser General Public License was written in 1991 (and updated in 1999, and again in 2007) by Richard Stallman, with legal advice from Eben Moglen.
Where can I see all projects/cores?
Select the “Projects”-link on the first page. Here is a list of all the available projects at OpenCores.
How do I get the source for a core?
There are two main ways to download the code for a project:
1. Via the website:
The latest version of the source-code for each project can be downloaded via the “Project-list” by selecting the “download”-button.
2. Via SVN client:
Using a SVN client enables full access to the source-code and all its history. Instructions how to download (checkout) and upload (checkin) are available here the “SVN HowTo”-link at the first page.
How can I contribute?
There are lots of ways to contribute, without running your own project. This includes helping with an existing project, both with development and with verification. Helping us improving the web site, or whatever you find interesting. Documentation and testing are especially appreciated. If this sounds interesting, please send an email to email@example.com or the project maintainers directly.
What is a project?
A project is basically a "unit of work". It can be every thing from a smaller function (an adder) all the way up to complex function (a processor). Each project has one of more maintainers. The maintainer/s are persons who has volunteered to oversee the development and to make sure that the project gets updated with feedback from the community. Typically each project corresponds to a single core.
Each project has its own web page, SVN-repository, statistic-information and bugtracker. To see the page for a project, click on the "Projects"-link under the "Browse"-menu on the left side of page. You will be presented with a list of projects. Click on the name of a project to see its pages.
How do I help out on an existing project?
Send a polite email to the maintainer of that project, asking how you can help. The maintainer will be listed on the web page for that project. If you will not get any response from the maintainer, send us an email and and we will help you (firstname.lastname@example.org).
How do I start my own project?
Start by getting an account on OpenCores (as described above). Before requesting a new project, check if there are any other projects similar to the one you want to start. If there is, consider joining that project before starting a new one. It better to have one really good project, then having ten similar projects. Working together will improve efficiency and quality.
To start a new project, select the "create project"-link under "My account"-page.
Please do not set up a project simply to point to files outside the OpenCores server. We have had so much problems in the past when these external links disappears after a while. If all files are located at in OpenCores SVN repositories then we can avoid this problem. All files must be located on the OpenCores server.
I don't want to maintain a project any more. What do I do?
If you decide to stop working on a project, please send mail to email@example.com. We will then announce the project as unmaintained and ask if anyone within the community want to "take over" the maintainership.
The original maintainers are not contactable, can I become a co-maintainer and continue to develop and maintain the project?
Yes, we will then try a final time to contact the original maintainers and if they don't answer within 1-2 weeks, then we can add you as a co-maintainer. To request this, send an email to firstname.lastname@example.org
I have written a core. Can I publish it on the OpenCores web site?
Yes absolutely, this is the main function of OpenCores. Start reading this section at the beginning. Read the "How do I start my own project" section in this FAQ.
I have an idea for a core, but need help to develop it.
Send mail to the "cores"-forum", describing the project and asking for help. Someone may be interested enough to participate in your project. It much better to be several maintainers in a project, both from a technical stand point and it more fun to have "partners" to discuss with during development. The source for any work developed will have to be released to the rest of OpenCores under a free or open license.
How do I edit a page on the OpenCores web server?
First, you need to be logged int to OpenCores. Then you go to the page you want to edit and if you have write access the "EDIT"-image/link will appear on the page or block. By clicking on that image, this section will be edited.
How do I upload files to the OpenCores server?
Files are always related to specific projects. To be able to edit a project you must be it's maintainer and be logged in to OpenCores. Instructions on how to upload and download file are available under "SVN How To"-page under "HowTo/FAQ"-page on the first page (left column).
How do I edit my personal page on the opencores web server?
Login on OpenCores, as described in previous section. Select the "My account"-link. Here you can update some of your personal information. If you want to information that are not "editable", send this request in an email to email@example.com
It is also here you control what subscriptions you want to subscribe or un-subscribe to (forum, mailing-lists, newsletter).
How do I change my password?
Login on OpenCores, as described in previous section. Select the "My account"-link.
How do I edit a project page on the OpenCores web server?
You must be logged in on OpenCores and you need to be maintainer of the project. Go to the project-page and you will find "Edit"-link for different sections.
How do I write specification for my core
We have specification template that you can use.
Template is available here (specification_template.dot) (MS Word Template - 450kB)
How do I get an email address of the form firstname.lastname@example.org?
Every account holder gets an email alias. You need to register at OpenCores to get an account. This is only a forward-service, meaning that all email@example.com emails will get forwarded to the email address that was used during the registration.
To create project
Before you publish your project, you must agree and accept the following T&C's:
- Project you put online is not stolen work and you have all the copy rights.
- Project is not intentional violating patents.
- Code does not contain any intentional bugs but might have limitations and list of limitations is available.
- Project available on third party web site can be published but only in its entirety and not just as URL link.
- Project is complete and not just a snapshot what is available on third party web site.
- Commercial advertising is not allowed without written approval from OpenCores.
- Project has valuable information.
- Project that doesn't contain enough "value" for the opencores community will be deleted (ex. Project that is commercial advertising of a third party product, OpenCores is not a a search/index site).
- OPENCORES.ORG reserves rights to refuse, modify or delete project if the previous terms are not fulfilled
To create a project you need to apply for a project, this is done under the "My account"-page. It's located on the top-right corner under "Shortcuts" (Create project).
To add news
- News available on third party web site can be published but only in its entirety
and not just as URL link
- News is complete and not just a snapshot what is available on third party web site
- News has valuable information
- News that doesn't contain enough "value" for the opencores community will not be published (ex. News that is commercial advertising of a third party product, OpenCores is not a a search/index site)
- OpenCores related News can't contain third party web site URLs
To add article
- Article available on third party web site can be published but only in its entirety and not just as URL link
- Article is complete and not just a snapshot what is available on third party web site
- Article has valuable information
- Article that doesn't contain enough "value" for the opencores community will not be published (ex. - Article that is commercial advertising of a third party product, OpenCores is not a a search/index site)