-
Notifications
You must be signed in to change notification settings - Fork 67
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
Tang nano 20k support #208
Comments
Tangnano20k is supported up to the point where it runs this RISC thing called ATTOSOC, look at the Makefile for examples: apicula/examples/himbaechel/Makefile.himbaechel Lines 9 to 13 in a4f04e0
If you want to put things in order with R and NR, then PR is always welcome. |
Thanks for the tip, I was looking in the examples folder only, not the himbaechel one. I will have a look to see if I can work out something for the R/NR. |
We should really add it to the readme, we tell people to install from git anyway so I don't think we need to wait for a release |
@Juninho99 is stuck on this BRAM-related error. Any tips or advice on how to proceed from here? |
nextpnr says that there are no descriptions for DPX9 primitives in the chip database. And I’ll say right away that legacy gowin has no memory support. |
Thank you, that's good input, unfortunately not directly forthcoming from documentation. |
BTW, the design that's giving us this trouble is a game in which CPU writes into memory, while HDMI hardware is reading from it. So, it's dual-port BRAM... |
I must say that I am very glad that a project using BRAM has appeared - I myself am not very knowledgeable about this and it will be interesting and instructive to get your thing working. Especially if you don’t use primitives directly, but trust yosys to make the memory for you - this is generally a dark forest for me. Unfortunately, at the moment, three days before the New Year, I can only answer the simplest questions and definitely do not have the opportunity to dive into the code. I had plans to deal with memory issues around January 7th, so don’t blame me for simple answers. |
.... thank you, your answers are super-quick in coming, and also very informative! As the idea for this project came from @edmundhumenberger, kudos go to him :-) @Juninho99 is a designer based in Sarajevo, Bosnia-Herzegovina, currently deeply at sleep, and anxious to answer your question first thing tomorrow morning /* while we believe he was able to use DP RAM on TangNano9K with Gowin tools, he is definitely in the best position to provide additional detail about it */ Yes, this BRAM is indeed inferred. Here is the first case:
and, here is the second:
The PLL is obviously instantiated. Juninho99 has it all working fine with Gowin proprietary flow. He is in the process of porting this design to open-source tools. We are all very enthusiastic about the value-add you see in enabling this project for nextpnr-himbaechel, and are here to do what it takes to make it happen. |
Everything is possible, maybe Gowin made a mistake in the documentation: I have an edition dated May 25, 2023. If it really happened in Tangnano9k to use the DP primitive, then I will make changes in 1.5 weeks (or you yourself earlier). |
Gowin seems to be playing some yield optimization (bug engineering) games with their low-cost GW1NR family. Here is what we know thus far:
We are reaching out to Gowin for additional detail... |
You will still need to edit memory inferring - I made primitives that exist at the moment, and inferring was written in those days when primitives were called differently (roughly speaking, there was no letter B in the names). |
These are the types of errors that I am going to look for and correct after January 7, 2024 :) |
... even the latest proprietary tool (Gowin_V1.9.9_x64_win) allows instantiation of DP BRAM for TangNano9K. Granted, the Read-before-Write mode is not available any more, and we are now left only with Write-Through and Normal. For the Read side, their latest tool seems to still allow Bypass and Pipeline. Most importantly, the proper part to use for TangNano9K is GW1NR-9C -- If we build for the GW1NR-9 target, the chip on the board returns IDCODE mismatch. This is all with the latest proprietary tools from Gowin... |
Hi, Is there anything else I can do with bsram_map.v or any other file? |
Great. Thank you. I will definitely try something because the mountains around Sarajevo are now without snow (temperatures about 10C above zero) |
Well, I have a feeling that this will not be a sprint, but a marathon, because I haven’t dealt with such high-level code that is used for inferring - I’m more into primitives. |
Hello Yrabbit. I hope you enjoy your holidays. I would like to say that I tried something but without much success. After changing some things in 'bsram_map.v' and the synthesis worked, I ran into another problem, related to "cell type 'DP'". I will stop here with the file changes and await your intervention. As you said, it will be a marathon for sure. |
Thank you. |
We have filed an issue with Yosys team ( @cliffordwolf ). |
Hi,
Is anyone working on support for the GW2AR-LV18QN88C8/I7 which is used on the Tang Nano 20k ?
I suspect that these two issues may be related:
#206 (NR is the same as N, but with SDRAM)
#181 (Same part family, no SDRAM and different package)
Just checking here before I start trying to have a look at it myself.
The text was updated successfully, but these errors were encountered: