I’ve just received my first ever FPGA device, an Arty Z7-20. The place I ordered it from in St Petersburg (Russia) said it would be 8 weeks delivery, but it came in less than a week. So I haven’t completed all the study I’d planned to do first
If I understood everything correctly, the FPGA part is the same as and compatible with the Artix 7 in the original Arty, it’s just that this board has 50k LUTs instead of 20k, and also dual core 650 MHz Cortex A9 that you can use or ignore as you wish.
So I’m hoping that (along with a lot of other ideas) it will not be too difficult to load a soft HiFive1 into it, the same as with the original Arty, and also play with modifications to it.
Since the FPGA on the Z7 has more resources than the one on the original Arty, you may have to do some tweaking on things like the device number. I would not expect the RTL or pre-configured bit file to run straight off the shelf.
Thanks Donnie, I hoped you’d speak up. I’m hoping you can point me to a good tutorial for someone who’s never seen either Vivaldo or an FPGA before. Documentation on each part seems to assume you already know everything about the other parts. I couldn’t even figure out how to get the promised free license for Vivaldo, as the applicable part of the web page is grayed out and I haven’t done any of the things they suggested might cause that. I did manage (I think) to get a 60 day license working.
I too would be very surprised if a bitstream for an original Arty would work on the Z7, but I don’t understand why the RTL for internal functions would not be able to be synthesised.
Sure, the names of the external I/O pins are a little different, but that shouldn’t be hard to adjust. The buttons are different pin numbers but still called btn[0…3], the slide swtiches are sw[0…1] (only two, not four), and for some reason the LEDs above btn[0…3] are led[0…3] (which makes more sense) not led[2…5]. The colour LEDs are led{4,5}{r,g,b} instead of led{0,1}{r,g,b}
I think I can handle that kind of level of adjustment.
What I can’t figure out right now is how to create a project (or load a demo one) and build and load it at all.
I will offer what assistance I can, but please be aware that I myself am a beginner in the area of FPGA’s (and probably always will be) also going through a learning curve. I trust that Megan will correct me whenever I say something blatently wrong.
If you end up not being able to get the free license from your vendor, you can always purchase one from Digilent for $10 plus shipping. You can also install Vivado with a free ISE WebPACK license which remains permanent. It has some restrictions, and I am not sure if those restrictions will cause problems when trying to build the SiFive bit file or not. So, it would be better if you work with your vendor to get the promised free license. For the Z7, you should install SDSoC instead of Vivado.
After installing SDSoC, you should have access to the Xilinx Documentation Navigator, which has a plethora of documentation including tutorials for all levels of expertise, including how to create a project.
Since the Arty is not a Xilinx product, you will need to install additional resources to support it. You can download those resource files at Digilent here. That is also a good starting point to get familiar with the Arty Z7.
Vivado/SDSoC can reference the resources either on board level or chip level. That is what I was referrring to regarding tweaking the RTL. The Arty will have a different Xilinx chip identifier than the Arty Z7. That, as a minimum will have to be tweaked. With the additional resource file mentioned above installed, Vivado/SDSoC should recognize your Z7 and thereby identify all of the pin assignments. If not, you can alternatively use the Xilinx device identifier.
I cannot offer much help on building your own SiFive chisel configuration, since I am very low in the learning curve regarding chisel. The best I can do is to refer you to the SiFive Github page and Megan´s thoughfull eyes.
@brucehoult I think that you should be able to use our flows just fine for your Arty, with a few minor modifications. That being with the caveat that we haven’t tried on that board.
If you can’t figure out the included licesnse, the always-free license for WebPack should be sufficient.
Then to get our projects running on your board, it’s probably a simple matter of making sure the constraints are correct for the board that you have. The Arty projects usually come with a full constraints file where you can comment or uncomment as necessary. You can see the example in our Freedom repo here: https://github.com/sifive/freedom/blob/master/fpga/e300artydevkit/constrs/arty-master.xdc
You could also use the following repo to build other tools for arty z7 https://github.com/PeterOgden/PYNQ_image since PYNQ-Z1 and Arty Z7 are similar boards having the same xdc file too