elodg

Digilent Staff
  • Content Count

    197
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by elodg

  1. elodg

    Pcam Visible Border Line

    You can try editing the AXI_BayerToRGB or replacing it with Xilinx's demosaic IP. You can try interpolation with duplicated margin, for example. You are on your own.
  2. elodg

    Pcam Visible Border Line

    https://reference.digilentinc.com/learn/programmable-logic/tutorials/zybo-z7-pcam-5c-demo/start#visible_border_line
  3. elodg

    cmod S7 zyboZ7 connection

    Sending it to a PC first then to the ZyboZ7 through two USB-UART connections.
  4. See Supported Devices in https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/ug973-vivado-release-notes-install-license.pdf. Pre-7 series devices, like CoolRunner-II are not supported in Vivado.
  5. elodg

    cmod S7 zyboZ7 connection

    Sure you can, but probably not worth the hassle. You need to implement and inter-board protocol on both ends and use the Pmod as a physical medium. Probably UART or SPI, to keep things simple. Then on the Zybo Z7 implement a SPI to AXI adapter to get tot the memory.
  6. DDR2/DDR3 designs work fine without driver impedance control, even in non-point-to-point topologies. Maybe Xilinx considered that receiver termination is enough to cover all use cases and the board designer should provide that. In our point-to-point topology, we could achieve compliance with a much simpler driver impedance adaptation. We do not generally provide gerbers. If you think your use case is legitimate, contact us at https://store.digilentinc.com/further-assistance/ and we might be able to provide them under NDA.
  7. What you are saying is a tad too big of a leap. All I can say is that 22-ohm series resistor added to the driving impedance met the design requirements.
  8. Each design is validated independently. Any tactic can be employed as long as the DDR3 specifications are met. Ideally the line is terminated at both ends, and drive impedance matches line impedance and input impedance. Some designs only employ parallel receiver termination, others only series drive impedance matching. The Cora Z7 is the latter, the Xilinx dev kit is probably the former.
  9. From ug585 pg. 310: For DDR3 DCI calibrates the termination impedance and not the driver impedance. Series termination resistors is a form of drive impedance adaptation.
  10. Quoting from https://reference.digilentinc.com/reference/programmable-logic/anvyl/reference-manual#flash_memory: What makes you think it is only for FPGA configuration? Instantiate the AXI Quad SPI IP and map it to the pins called out in the RM and schematic.
  11. One can get lost pretty easily as the learning curve is steep and the same goes for us too. We are hard at work getting 2020.1 support published for G-ZU and we are seeing our fair share of issues. We do not have a BSP published, but the https://github.com/Digilent/Genesys-ZU-OOB-os repo should be just as good of a starting point. For now it is only for 2019.1 but we successfully created Ubuntu rootfs for internal use with it. It is our sole supported version at the moment.
  12. The best way would be a pull request on github, provided that the changes you did for FreeRTOS do not break standalone compatibility.
  13. elodg

    HDMI directly into FPGA

    Carefully evaluate your system requirements (resolution, link rate) and do board-level simulation on the TMDS signals. FPGA user I/O pins have considerable capacitance and might close your signal eye too much. Buffers like the TMDS141 help with decoupling cable segment from the PCB, making longer PCB traces possible. Our development boards are not HDMI-certified, but buffers might make passing electrical certification easier.
  14. @hendog82, give us some info on your setup. What Petalinux version are you using and what kernel and apps recipes you configured for ptp?
  15. Haven't seen low-level code in a while. Check the register reference in https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf. Page 1773 deals with these registers. The difference seems to be that SR is a read-only register reflecting real-time hardware status, while ISR is read and write-to-clear. ISR is used by the interrupt handler to handle the interrupt event and clear the status bits at the end then wait for it to be set again. If not cleared and the byte is consumed/produced, an erroneous interrupt will trigger again with no data to read/write. Xilinx's drivers are a good reference on how to use their peripherals programatically.
  16. Hi Blake, Our MIPI offering published at https://github.com/Digilent/vivado-library/tree/master/ip is a limited functionality implementation for those without access to the specs or licensed IP. We are commited to providing open-source implementations that people can learn from. The Digilent D-PHY Receiver works with the D-PHY I/O separated into LVDS high-speed and LVCMOS low-power buses, as implemented on the Zybo Z7. However, if you are looking for full-featured MIPI IPs, have a look at Xilinx's offering: D-PHY has been free for some time and CSI-2 just became free in Vivado 2020.1. Xilinx's D-PHY supports direct D-PHY I/O interfacing (UltraScale+) and LVDS/LVCMOS-separated (pre-UltraScale+). There are important restrictions on the system. Take a look here: https://reference.digilentinc.com/reference/add-ons/fmc-pcam-adapter/reference-manual#fpga_io_architecture_compatibility
  17. Microblaze has: AXI4 (M_AXI_DP) data side interface, AXI4 (M_AXI_IP) instruction side interface, AXI4 (M_AXI_DC) protocol for D-Cache, AXI4 (M_AXI_IC) protocol for I-Cache. The address editor should show EMC under the Instruction section if the EMC IP has a path to M_AXI_IP or M_AXI_IC. However, it is best to keep things simple: connect external memory to IC and DC, while keeping all the rest on DP.
  18. Right click the linker script, choose “Generate linker script” and you will have an easier option to link all sections to a different memory.
  19. Step “11. Verify Linker Script File for Memory Region Mapping“ of the guide calls for linking the whole application to the cellular ram, which is easier than trying to make it fit in the BRAM.
  20. Macro constants with XPAR_ prefix are automatically generated by the BSP for the hardware platform and written to xparameters.h. Open the header file and look for the interrupt definition. It should reflect the block design names and connections.
  21. https://www.xilinx.com/support/documentation/ip_documentation/axi_ref_guide/latest/ug1037-vivado-axi-reference-guide.pdf page 42: The fact that block design let you wire up you HLS IP means that the missing optional signals were tied to their default values. There must be a different reason why is does not work.
  22. Adding to James' response: 1) Four "Pcam" ports of dual-lane CSI-2. The Pcam ports pinout is described here: https://reference.digilentinc.com/reference/add-ons/pcam-5c/reference-manual#pinout_table_diagram. The pinout is compatible with the RaspberryPi camera connector. 2) Data rate is dependent on the system board and the camera interconnect too. We tested it with the Pcam 5C, which maxes out at 672 Mbps per lane. The level translator is rated to 2.5Gbps. FPGA HP usually maxes out around 1.2Gbps. 3) Non-GT, User I/O lines are used. https://reference.digilentinc.com/reference/add-ons/fmc-pcam-adapter/reference-manual#pin-out 4) UltraScale support is limited: https://reference.digilentinc.com/reference/add-ons/fmc-pcam-adapter/reference-manual#fpga_io_architecture_compatibility. However, the upcoming FMC Pcam Adapter+ will have a pinout optimized for a select number of MPSoC system boards. 5) The upcoming FMC Pcam Adapter+ will have a reference design. 6) Any MIPI D-PHY based camera, including CSI-2 (constrained by data rate and lane count) is supported as long as you write the necessary drivers for them. D-PHY and CSI-2 slaves, and camera control need to be implemented on the FPGA. 7) If IMX586 indeed supports D-PHY 1.2, it should be compatible. However, dynamic de-skew for >1.5 Gbps operation has never been tested by us. 8 ) Pcam 5C maxes out at 5Mp.
  23. Sorry, we did not try encrypted bitstream loading from Linux. Maybe this can be of help: https://forums.xilinx.com/t5/Processor-System-Design-and-AXI/Encrypted-bitstreams-after-boot-via-xdevcfg/td-p/657894?
  24. You linked to the Vivado project the Petalinux project uses as a hardware platform. The Petalinux repo that has OV5640 support is https://github.com/Digilent/Petalinux-Zybo-Z7-20. Commits https://github.com/Digilent/Petalinux-Zybo-Z7-20/commit/9dea683ef76fa7e3cc22dc0d6038e2a4c9bf3cb7 and https://github.com/Digilent/Petalinux-Zybo-Z7-20/commit/9dea683ef76fa7e3cc22dc0d6038e2a4c9bf3cb7 introduce Pcam 5C support. Try following the build instructions in that repo and report back with your findings.