



Contributing Cores
by rafisham on Nov 2, 2015 |
rafisham
Posts: 3 Joined: Jul 27, 2015 Last seen: Nov 15, 2021 |
||
Hi,
If I wish to contribute my code (mainly SPI cores), how can it be done? Also, what is the process for verifying different aspects (such as, design done, FPGA proven etc.)? are there any strict guidelines I should follow? Thank you for this site, it has helped me a lot, Refael. |
RE: Contributing Cores
by dgisselq on Nov 4, 2015 |
dgisselq
Posts: 247 Joined: Feb 20, 2015 Last seen: Mar 27, 2025 |
||
Welcome to open cores! Please, feel free to step in and contribute!
I think you will find answers to all of your questions in the how/to/faq page linked off to the left. Certainly the site/FAQ subpage answers questions such as how to start a project, the project subpage describes how to build your project's opencores page, and the svn subpage discusses how to add or modify sources and component files associated with your cores. You'll even find an example template spefication for your core as a link off of the FAQ page, as well as a link for the coding guidelines suggested by the open cores team. Hope this helps, feel free to post if you have further questions, Dan |
RE: Contributing Cores
by dgisselq on Nov 4, 2015 |
dgisselq
Posts: 247 Joined: Feb 20, 2015 Last seen: Mar 27, 2025 |
||
Looks like I missed a question:
Also, what is the process for verifying different aspects (such as, design done, FPGA proven etc.)? are there any strict guidelines I should follow?
I have not found any written standards for when a project meets the various stages of being "done" either. To my knowledge, there is no independent verification of whether or not the developer's claims regarding the project status are valid or not. I have been using the following therefore, and I'll leave it up to others to pipe in and comment if they have better ideas:
If anyone else reading this has other ideas, please pipe in. I hope this helps, and I look forward to seeing your contributions, Dan |
RE: Contributing Cores
by rafisham on Nov 5, 2015 |
rafisham
Posts: 3 Joined: Jul 27, 2015 Last seen: Nov 15, 2021 |
||
Hi Dan,
Thank you for your in-depth reply. I designed my SPI core as a project at my workplace, but not sure if it will ever get implemented, so I've decided to share it here (that way I hope, someone will be able to benefit from it). Regarding your suggestion on how to divide different development stages - many thanks, it was exactly what I was looking for. On a side note, I read through OpenCores's guide, and saw that synchronous design is highly recommended - is it a MUST demand? My design style is not strictly synchronized with the clock signal, as I rely heavily on data signals as a mean to reduce power consumption. Refael. |
RE: Contributing Cores
by hellwig on Nov 6, 2015 |
hellwig
Posts: 32 Joined: Dec 30, 2007 Last seen: Nov 3, 2024 |
||
Hi Refael,
if your design isn't strictly synchronous, I have a question: how do you avoid metastability? Or do you ignore this problem? What are then the expected failure rates? Hellwig |
RE: Contributing Cores
by rafisham on Nov 10, 2015 |
rafisham
Posts: 3 Joined: Jul 27, 2015 Last seen: Nov 15, 2021 |
||
Hi Hellwig,
Thank you for your reply. During my development of this core, I used data signal as a stimuli for initiating communication between FPGA and the applicable unit. Everything else is either synchronized with the global clock, or the SPI clock. Basically, I implemented the concept of asynchronous design - a timed operation with request and acknowledge. Do you have a more in-depth understanding of how asynchronous design works? If so, I'll be more than happy if you can share your insights with me. Refael. |
RE: Contributing Cores
by hellwig on Nov 15, 2015 |
hellwig
Posts: 32 Joined: Dec 30, 2007 Last seen: Nov 3, 2024 |
||
Refael,
constructing a truly asynchronous circuit is extremely difficult. Every good book on digital design has at least a chapter describing the process, but warns the reader, that this subject should normally be avoided. How then should external signals be handled? Quite easy: you synchronize them with one (or better two) flip-flops *before* you do anything else with the signal. This does of course not eliminate the problem of metastability, but reduces its probability so much that it can be ignored. Perhaps I did not understand your initial statement well. You said: "My design style is not strictly synchronized with the clock signal...". At the board-level there are certainly signals which are not synchronous with respect to the FPGA's clock. But your design within the FPGA should indeed be strictly synchronous, or at least, you should meticulously pay attention to all signals crossing clock regions. Hellwig |
RE: Contributing Cores
by dgisselq on Dec 9, 2015 |
dgisselq
Posts: 247 Joined: Feb 20, 2015 Last seen: Mar 27, 2025 |
||
In hindsight, I think I'd like to modify my definition of a project that is an alpha release to the following:
Thoughts? Dan |



