-
Notifications
You must be signed in to change notification settings - Fork 34
Core performance and size improvement #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Some code clean up
Some renaming : Subber => Adder
|
using FPGA specific BRAM is good for completed project is fine, but it's not good for generic core supposed to be used in wide variety of FPGAs. |
|
Inferring true dual ported BRAM with byte enables is nearly impossible with Quartus II. |
|
it's possible, especially in SV: it's not exactly with byte enable, but pretty much similar and easy to modify. |
|
Been there, done that. With clock enable / byte enable, it does not work : End-trace Quartus II 64-Bit Version 9.1 Build 222 10/21/2009 SJ Full Version |
|
Thank you so much for improving this core once more. I have used it in several arcade games already and I really appreciate its quality. About this update: I agree with @sorgelig. Abandoning generic code for vendor-specific instances seriously limits the reusability of this. Your commit messages suggest that you also fixed 1 or 2 bugs -apart from performance improvements. I would like to be able to keep those bug fixes without the vendor-specific RAM. Could you have the vendor-specific code under an ifdef macro statement? |
|
@jotego the pull request hasn't been approved yet. I'd wait. The commit messages may not be referring to bugs in the original code. Some changes, such as increasing the address bus width might not be in the spirit of fx68k? I don't think a 32-bit address capable variant of the 68000 was ever available. |
|
Hi everybody, @jotego @a1exh As far as I can see the bugs are not in the original code. @fredrequin I need to review the changes before accepting the pull request. Please bear with me for the delay. But I agree with @sorgelig that vendor specific code should be avoided. If you want, put all the vendor specific stuff in a separate file and ifdef the reference in the main code. The default must be to use generic code, though. |
|
@fredrequin would be good to see the performance and size before and after to judge the difference |
|
Hello all, |
|
I have pushed a new change with generic ROM/RAM and Altera ROM/RAM. |
|
@fredrequin On exactly which FPGA model and with which Quartus version you got those size and performance results? |
|
I have used Quartus II 64-bit Full v9.1 and the target is a Stratix EP1S40F780C5 (Nios Dev. Board, Stratix Professional Edition). |
|
What is the verdict about this? Could we rescue the Verilator fixes at least? |
|
I have tried compiling with Fredrequin's softcore, and the games hang up. I haven't looked into why they hang up. I assume there is some bug in the modifications done. |
No more LINT warnings under Verilator.
New core size is less than 3200 LEs.
Fmax on a Stratix 1S40 is 130 - 135 MHz