-
Notifications
You must be signed in to change notification settings - Fork 721
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
Support more FPGA boards #154
Comments
Not immediately. But I am happy to accept contributions. |
Is there any brother/sister board that you may suggest? Is there anything that we should really pay attention at? |
There was actually an effort to see if we could use smaller boards like ARTY. Technically (afaik) it would fit, but there is not much more room left in the system after that, and for a development platform it is not ideal, this is why we moved to a larger board. Since we are mainly a research group, we do not have the bandwidth to support multiple boards. As Florian said, we are hoping that the community will provide (and maintain) additional FPGA targets. |
Yes, we have looked at the arty board but it would indeed nearly use up all the space on there. However, we recently discovered another board that might be a good fit for Ariane: the Avalanche board from Microsemi (https://www.microsemi.com/existing-parts/parts/139680).
Our current flow is based on Vivado so you would have to add a new flow with the Microsemi tools and their IPs which might be quite a bit of work. If you stay with Xilinx based boards the porting effort should be minimal. |
I was considering two boards indeed for the port:
If you think that the port to the VC707 is doable, I may consider a try with some help from you guys (just in case). What do you think? |
VC707 should be easily possible. We actually had a system running on it in the past. Xilinx, as Moritz said, will allow you to re-use most of our flow. You will need to generate a different mig project file and adapt the constraints file. Definitely willing to help you with issues coming up! |
Just wondering, why are you not using Genesys 2? Arty is cheaper I see that, but VC707 is quite an expensive board. |
Xilinx development boards (like VC707) are really common in academia and usually we get them as a donation through University Programs (in US at least). I am pretty sure the vc707-porting will be beneficial to many people. |
@zarubaf or @GiuseppeDiGuglielmo Is there any new update with adding Ariane support for the VC707? |
@GiuseppeDiGuglielmo yes I am also quite interested in this |
@zarubaf hey Florian. we got the thing to work on VC707. not sure how I should go about sharing the changes we made -- what's the best way? |
@jmason827 Did you only use Vivado tools? If so I would be very interested in knowing how you did! |
@Iripi97 yes, only Vivado tools. note that you'll need a license for Virtex 7 chips. right now I've just finished modifying all the code I could find in the repository to work for the VC707. as it stands, you should be able to below is a list of files that were added/modified. the zip contains the new files themselves. replace the old files with the new and you should be able to NOTE: the |
Hey @jmason827 that sounds awesome. So submitting a PR would be a first step, then we can review the code together and I can also give the flow a go on my side. What did you change? One of my concerns is that the flow we provide for the Genesys II is still working otherwise I am more than happy to accept your contributions. Let me know how that works for you and sorry for the long silence, the thread kind of got overlooked. In case integration should be a problem lets start a new issue. |
@zarubaf copy that. the PR is in. really the only substantial changes we made were the addition of we're just happy to potentially contribute -- we're really enjoying using Ariane over here! |
I was able to make this work on VC707 with the bit file I got from http://www.princeton.edu/~cloud/openpiton/ and the bbl.bin that I generated using https://github.com/pulp-platform/ariane-sdk repository. I am enjoying using ariane as well so far. I tried to boot debian, but I couldn't. Is it possible to boot debian on vc707? |
@jmason827 @zarubaf With the new changes to the repository the only addition I had to make on my end for it to work was to add another constraint for 'trst_n' which I set as one of the push buttons similarly to how 'trst' was defined as the center button. It does seem to get caught up when booting the Linux image build with the SDK repository. |
@zarubaf The booting gets stuck on the same line for the pre-built image. Should I move this discussion to the SDK issues section? And is there any way around this holdup? |
Whoops, this is totally my fault. Meant to change
I should note we did not hook up ethernet correctly. We've not figured out how, and we haven't needed it for our purposes yet. In any case, I'm able to boot Linux using the build from the SDK repo: I should probably also note, though, that running Linux seems to get screwy in two cases: 1. Tetris glitches out after a short time playing and 2. the |
I'd be happy to accept this fixup as a PR.
|
@jmason827 Do you think you could post your bbl.bin file? I would like to check to see if it was maybe an issue on my end with generating the boot image which is causing it to hang up at the "lowrisc-digilent-ethernet: Lowrisc ethernet platform (30000000-30007FFF) mapped to …" line. |
@jmason827 Do you think you could do me one more favor please? Would it be possible for you to zip together your .bit , .mcs , and .prm files you used when you received the (full) output you posted earlier? We are trying to verify if it is a software or hardware issue on our end. Any response would be greatly appreciated! |
I fixed the boot process on the VC707 by removing the ethernet node from the device tree ( Regarding ethernet on the VC707. The PHY is connected to the FPGA using the SGMII interface. To use the ethernet core from Ariane, a SGMII to RGMII converter would be needed. I am not sure how much effort it would take to develop. |
There is another option you could try. MAC (Media Access Controller) (AXI to GMII) GMII to RGMII Bridge Xilinx has a GMII to SGMII bridge IP Core (Xilinx also offers a GMII to RGMII Bridge IP Core, currently only for the Zync family I tried to exchange the GMII to RGMII Bridge with the GMII to SGMII Bridge but was unsuccesfull so far. |
@lukasauer I have tried modifying my 'ariane.dts' file to get the boot run to complete but it is still getting stuck on the "lowrisc-digilent-ethernet: Lowrisc ethernet platform …". Are you sure changing this is what fixed the boot for your VC707. |
Make sure to also regenerate the bootrom after editing the device tree. You should see changes to |
@RaphaelKlink Good point, that should work. Please let us know if you get it working, that would be really helpful! :) |
@lukasauer I'm slightly confused, whenever I execute 'make all' inside the 'fpga' directory it just begins the process of generating the bit-stream and MCS file with Vivado, it does not remake the bootrom. Is this changing of bootrom happening implicitly or should I be going to another directory to ensure this is happening? |
You are right, I didn't remember the directory correctly. |
I could not find ethernet node from the device tree (fpga/src/bootrom/ariane.dts), what should I do to make it right? < compatible = "ariane-bare-dev";
|
@yge123 that's not the correct way to remove ethernet node. you should find the node to be from line 111 to line 118 in fpga/src/bootrom/ariane.dts:
add "//" at start of each line to comment them out, like how mmc-slot is commented out right above it. |
|
@yge123 You are probably looking at "bootrom/ariane.dts" instead of "fpga/src/bootrom/ariane.dts". I made the same mistake a few days ago. I think the first one is the bootrom for simulation and the second one is for FPGAs. |
can you share your local dts file? it seems that the latest repo doesn't have eth: node but has the same boot issue. |
@xushengj thank you very much for catching my mistake. |
@zarubaf I made a pull request for adding support for Nexys Video board. It has an Artix-7 FPGA and everyone can use Vivado WebPACK edition to run Ariane on it. However I did not get everything working properly; Ethernet is not working yet and there is some issue in UART. Any help is appreciated.. |
Hello, what was the highest clock rate achieved for the ariane core on a FPGA? |
|
Hi, Thanks! |
I have got the vcu 108 working. I hope I am finished with the correct makefile for vcu108 this week |
Thanks so much for the information! I still have a few questions:
|
https://github.com/RaphaelKlink/ariane Here is my current version. It should be working. But it is only working for the vcu 108. I am currently not able to choose between the ddr3 and ddr4 controller. @zarubaf do you have an idea how to solve this problem |
Thanks for sharing! |
Hey, olivetreezhao!I am also trying to port the ariane to zcu106. And i have succeeded in generating the bitstream. However, i meet trouble in generating the ariane.mcs file. Thus it can't boot from the QSPI flash. Any help is appreciated. You can contact me by email: [email protected], if it doesn't bother you. Thanks ! |
@leemango1998 Secondly: Could you describe the problem in more detail(vivado logs, etc), so we can help you better |
@RaphaelKlink Very glad to receive your reply. I am a beginner in FPGA, so some of my problems may be weird. Sorry about that. Actually i want to know that although the bitstream is downloaded into the zcu106, nothing happened. I don't know whether the various parts of the SoC(such as DDR4, UART) work properly on zcu106. So how to ensure that all work properly on FPGA. Furthermore, if i want to run a C program in ariane SoC on FPGA and print the results via UART, what should i do? |
No Problem, for your first question. I can not really help you, unfortunately. Without the FPGA Board debugging is nearly impossible. For your second question. If you want to use the UART as an Output you need to be able to boot Linux. As the UART driver is only available if you execute the application you want in an OS environment. |
Just a short sidenote about debugging on the FPGA: integrated logix analyzers (ILA) help a fair bit. They can be instantiated in the core and can be used to get a reading on internal signals with a trigger. Comparable to an oscilloscope. This repo already contains an example ILA instantiation in the commit stage (commented out) and a corresponding Xilinx IP tcl + Makefile. Wit an ILA in the commit stage, you should be able to observe the addresses of committed instructions. If, e.g., your DDR does not work, then I expect this instruction trace to stall pretty quickly. |
Hello, @jmason827 , thank you for sharing your VC707 implementation. I saw the FT2232 (JTAG) pins in the constraints are connected to the FMC pins. I guess you have made FT2232 working on VC707 through FMC. I need to do the same for my project. Could you please share how you do that? Thanks! cva6/fpga/constraints/vc707.xdc Lines 4 to 9 in d24287e
|
Hi @olivetreezhao, did you succeed in porting the Ariane from the Genesys to the Zynq platform? If anybody has some effort in porting the Ariane from the Genesys to the Zynq (or ZU+), please help me. I would appreciate it. Thanks! |
@farnam16 No, I did not continue with the porting work eventually. |
@olivetreezhao Thanks for your prompt reply. mm, why? is it impossible you mean? or there are other reasons you stopped working on it? |
Originally I thought it would be a straightforward porting, then I had a tech issue (could not remember what it was though), and the porting work does not have priority, I have to give up to work on something else. Wish you good luck on porting it! |
Ah! thanks again. I am afraid if it requires a lot of effort. There are several questions to be answered for porting the Ariane from the Genesys to the ZU+ board.
|
Do you plan to support other FPGA boards in addition to the current Genesys 2?
The text was updated successfully, but these errors were encountered: