[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[oc] To All Newcomers




Here are a few of my own personal thoughts to the frequent
inquiries from newcomer:

1) There are many desired cores/projects that do not have developers.
Click on the left hand side in the main opencores web page on various
projects to see if somebody is working on the project or not. Choose
an area you are most interested in and contribute in that area. Sending
email to opencores asking what to work on, will most of the time yield no
responses. All areas need work. It's up to you to make a difference and
actually produce a core. There is not "top level" management that assigns
work to individuals. Everybody must be self motivated and choose the field
he/she wants to work on. The listing in the main opencores web page is only
a small list of cores that have been proposed. It is provided only as a
motivational tools if you really can't think of anything to design. If you
have an idea for a core that is not listed, build it ! Let others know that
you are working on it, and it will be included in the left hand list on the
main opencores web page !

2) Opencores is not a meant to be an aid to students to get their school
projects done. Haven said that, it never hurts to ask, but I think you
will have more luck trying on of the general newsgroups (fpga, vhdl,
verilog etc.)

3) Everyone is welcomed to contribute cores (any cores). If you are a
newcomer and have never developed a real life product before, you should
state that as a warning to potential users of the core. Most of the time,
the most difficult part is to have a proper functional model. Any
experienced designer who wants to use the core, should be able to clean up
the code and make it work for her/his purpose. Don't forget to place
comments in your code so that the next user knows what you where thinking
of when you where writing the code.

4) Include references with your core. For example, if it complies to a
standard (or if it doesn't) state the standard and if available, provide
a on-line link to the standard/reference material.

5) Always include a comprehensive test bench. That will enable the next
user to see which parts have been tested and which parts you might have
overlooked.

6) Try to write synthesizable code. If you have access to synthesis tools,
try to synthesize your code to some well known device (such as an Xilinx
or Altera FPGA), and provide some general synthesis results.

7) If at all possible, try not to violate patents or copyrights. If you are
unsure, place a big warning with your core, stating which patents/copyrights
it might violate. (See my MiniRisc core for an example ;*) Most of the time,
there is no harm done by placing a core that might violate patents /
copyrights on the opencores web page. However, implementing such a core,
might cause big trouble !

8) If you decide to write a core, remember that the rewards can be great !
I know of at least one person who was hired by a major silicon valley
company because of his work on opencores.


This are NOT official opencores guideline, just my personal thoughts.

Happy Coding !!!

rudi