I have a Zybo7000 Development Board from Digilent, which contains a ZYNQ XC7Z010-1CLG400C from XILINX. I'm now trying to access the XADC of the FPGA via the DRP using the XILINX XADC wizzard to convert an external analog voltage. However, I run into problems since I'm not able to successfully instanciate the XADC together with the xdc file. Did anybody ever use the XADC from these FPGAs?
To access the XADC I need to manually insert a differential input buffer IBUFDS_DIFF_OUT, since my synthesis tool Vivado is not able to do this automatically. The I/O standard I set for these pins is "DIFF_HSTL_II_18" since apparently an analog input standard is not available and any differential input standard should work.
From the implementation I get the following critical warnings:
[Route 35-54] Net: IBUFDS_DIFF_OUT_inst/ob is not completely routed.
[Route 35-54] Net: IBUFDS_DIFF_OUT_inst/o is not completely routed.
[Route 35-54] Net: IBUFDS_DIFF_OUT_inst/ob is not completely routed.
[Route 35-54] Net: IBUFDS_DIFF_OUT_inst/o is not completely routed.
[Route 35-7] Design has 2 unroutable pins, potentially caused by placement issues.
[Route 35-1] Design is not completely routed. There are 2 nets that are not completely routed.
The bitstream generation quits with the following errors:
[Drc 23-20] Rule violation (RTSTAT-1) Unrouted net - 2 net(s) are unrouted. The problem net(s) are IBUFDS_DIFF_OUT_inst/o, IBUFDS_DIFF_OUT_inst/ob.
[Vivado 12-1345] Error(s) found during DRC. Bitgen not run.
I'm pretty sure that I didn't have to add an input buffer of any kind when I used the XADC on a Kintex 7 design (same Vivado tool flow). I do remember there were some specific things that I needed to do to get it to correctly connect the XADC, but I can't recall what it was and I no longer have access to the files form that design (different employer). Unless someone else comes up with the answer, I'll look into this later today.
Hello, i would be interested in a solution to this problem as well. The schematics for the ZYBO Zynq 7000 Development Board suggest that the VP and VN analog inputs are not connected, so i am trying to use one of the auxiliary input pairs for the ADC.
According to the UG480 XADC User Guide on page 26 under "Auxiliary Analog Inputs" when insantiating the XADC "...The auxiliary analog inputs are automatically enabled when the XADC is instantiated in a design, and these inputs are connected on the top level of the design. The auxiliary analog inputs do not require any user-specified constraints or pin locations. They do not require an I/O standard setting to be added to the UCF or in the PlanAhead pinout tool. All configuration is automatic when the analog inputs are connected to the top level of the design..."
After not specifying any of the above in the xdc file vivado uses for the constraints, i get the following error message during implementation:
[Place 30-99] Placer failed with error: 'IO Clock Placer failed'
Please review all ERROR, CRITICAL WARNING, and WARNING messages during placement to understand the cause for failure.
Code:
[Common 17-69] Command failed: Placer could not place all instances
I can't seem to duplicate your problems. Here is a testcase I ran that doesn't have any issues with the xadc ios and even has to include an IOSTANDARD on the vaux inputs to allow some of the other pins to reside in the same bank.
FYI there isn't any logic in the design besides the XADC instance.
UG480 is a bit misleading. Your quote of p26 is correct, but see page 15 where it says Vivado requirements are different from ISE, and a pin location and IOSTANDARD must be set for Vivado.