• Content count

  • Joined

  • Last visited

  • Days Won


davec last won the day on February 9 2016

davec had the most liked content!

About davec

  • Rank

Recent Profile Visitors

388 profile views
  1. How to program Arty flash

    At first I was thinking maybe the FPGA didn't finish loading or the power up reset isn't coming up clean, but you said the done light comes on. If it is an intermittent problem, Is it possible that your SPI CLK is too fast for the flash part that you are using? You can set that in the HDL code. Maybe your application reset vector is not at the correct location or not getting loaded from cold reboot? Does the PROG button work every time, or only after you flashed the part? In my design, the FPGA bit file loads, along with bootloader into FPGA RAM. The bootloader then runs and copies my application into DRAM and then jumps to my start of application in DRAM. With a scope, you can see if there is any activity between the flash and DRAM after DONE comes up.
  2. Board Geometry for ARTY

    The dimensions you have in question are on the same 0.100" grid as the connectors above (0.291" from the edge of the board. The next header to the left just skips a pin. If I remember correctly, the two outside rows are spaced to line up with an Arduino shield.
  3. How to program Arty flash

    Thanks Tom and J- It's all running now.I am using the srec_bootloader from SDK. I looked everywhere and did not see a reference to C_USE_STARTUP. I guess it was a carry over from a previous design. How (and where) would I set a PARAM_VALUE if I wanted to?
  4. How to program Arty flash

    I figured out why the sck signal is not getting implemented- For some reason, "PARAM_VALUE.C_USE_STARTUP" is not set to zero, so when the file "board.xit" does not see this variable =0, it does not implement the sck pin (L16). I cheated and took out this test in "board.xit" (because I don't know where that PARAM_VALUE gets set). I added constraints for the pin: set_property PACKAGE_PIN L16 [get_ports qspi_flash_0_sck_io] set_property IOSTANDARD LVCMOS33 [get_ports qspi_flash_0_sck_io] and I now get a clock to the QSPI flash when the bootloader runs. One last step to solve- where to put my user program in flash that the bootloader will copy into DDR. The tools don't tell me how large the FPGA config file is (with compression on). I looked at the file size of the .bin file and rounded up to the next 1K, but I wish there was a programmatic way to do this from Vivado. Hurray- On power-up I can now config the FPGA, run the bootloader in block ram, which then copies my large user program from flash to DDR and executes.
  5. How to program Arty flash

    Thanks, mskreen. I managed to load the FPGA along with a bootloader program (srec_bootloader) from flash! The user code that I ultimately want to run does not fit into block ram, hence it must be moved from flash to DDRAM by the bootloader that is running in blockram. Now my problem is that as I mentioned above, I am not seeing the SCK run once the bootloader executes. My block design has an axi_quad_spi, but the sck_o and sck_t signals don't come out to the outside world, only io[3:0] and ss signals. I tried adding the signals in the hdl wrapper, but they get blown away when I resynthesize because they don't appear on my block design. Any ideas- from anyone who has implemented flash on the Arty? TNX
  6. How to program Arty flash

    Thank you J, Part of the question may be when the bootloader runs and it loads my .mcs into the Quad SPI Flash should it be clocking the flash via FPGA pin L16? I don't see that this pin is configured. I understand that normally when the FPGA loads, it uses CCLK, etc, but I am talking about when I am programming the bootloader and my code into the flash. When I run the bootloader code, I get the opening prompt "SREC SPI Bootloader", but when tracing the code, it fails when initializing and/or accessing the SPI flash. Also, I am confused as to what to use for FLASH_IMAGE_BASE_ADDR. Is that the offset into flash where my user code starts (after the FPGA bits and bootloader code) or where the bootloader sits? Surely someone has been successful in booting an FPGA design with bootloader and user code from flash on the Arty? TNX
  7. How to program Arty flash

    I'm still spinning my wheels on this one. I need to put the bootloader program, my FPGA design, and my application program into the flash on Arty so that the bootloader will load my code on power up. I am trying to do this from the SDK but haven't got it to work yet. Any ideas?
  8. How to program Arty flash

    Thanks mskreen, but it looks like that only puts the FPGA bit file from Vivado into the flash. I also need my code from SDK to load on bootup. I have been reading xilinx AR #63605 and AR#64238, but still don't have it right.
  9. How to program Arty flash

    So I created a microblaze design on Arty in Vivado 2015.3 with lwIP axiether and some GPIO to control my external hardware. I wrote my C code in SDK. From SDK, I can download the FPGA config and then run my C code on Arty by doing Run -> Run As -> 1. Launch On Hardware. Everything works great! Now I want to put this all in flash so it will come up on power-up reset. I read Xilinx #63605, how to create an MCS boot image, but I am confused. Do I need to include an axi_quad_spi in my block design, or does the SDK flash programmer take care of this? (I don't need SPI in my design otherwise). I'm not sure what files to combine into the mcs. Is there a tutorial on this subject? Thanks- Arty is a great product!
  10. Board Geometry for ARTY

    Are there dimensions available somewhere for the Arty board? I want to design a shield for Arty and need to know the exact locations of the headers. I see that it looks similar to Arduino headers, but a drawing or even Altium PCB file would really help! Thanks.