08-21-2017 10:18 PM
I want to connect zynq7 with microblazes(10) and use spi(10)
you can see photo diagram.
thank you very much for your help
08-21-2017 11:24 PM
08-21-2017 11:51 PM
What you need is maybe the AXI quad SPI IP. You can connect several instances to the zynq using an AXI interconnect or AXI Smarconnect.
08-22-2017 12:16 AM
@z0x0c0v0b0b Complementing @florentw you can use the SPI IP. The only problem with so many microblazes is that you are going to run out of BRAM very quickly. When I do these things I just disable caches and LMB and be careful in the link script to assign memory regions (.data, .text etc) that are not overlapping - this is some manual, tedious but necessary housekeeping.
08-23-2017 06:17 AM - edited 08-23-2017 07:09 AM
Why 10? Anyway, you would need to use the DDR to store your application as you will not have enough bram on your target device to satisfy your needs here.
Problem is, when the Microblaze comes out of reset, it fetches the instructions from the value that is set in the boot vector in the Microblaze config. So, if you have nothing here then you will hang your processor.
So, you need to set the boot_vector accordingly for each Microblaze. You also need to enable discrete ports in each microblaze. This will allow you to set the reset_mode. Set this to 01 (use a constant IP from the IP catalog to do this). Then connect the wakeup port to the calib_done pin on the mig IP. So, basically, what you are doing is holding the microblazes in reset untill the memory is available (which is after calibration). I created a similar wiki article for this, see here:
You will then need to update the linker for each of your applications manjually in the ld file. Just update the memory to the relevant offset.