• 0
buckd

Arty, XADC, analog pins, and Vivado block diagram

Question

Hi,

I am attempting to read a single-ended analog signal on one of ports A0 through A5 using the XADC in the Arty, but I am unable to connect the proper pins in a Vivado block diagram.  Either the bitstream fails, or the C code never reads anything. 

I have a microblaze design that uses the AXI4 interface to the ADC, but still drives the temperature in the MIG and I followed one person's set-up of the XADC mentioned here, in order to still drive the temperature for the MIG7.  I used this guide to do it:

http://adiuvoengineering.com/?p=711

I have read everything I could on the matter in the Arty reference manual, but it doesn't mention how to tie these pins in Vivado in the block diagram:

https://reference.digilentinc.com/reference/programmable-logic/arty/reference-manual

Some things I have tried:

  • I have enabled the Channel Sequencer in the XADC wizard and checked likely channels (like Vaux0, etc.).  Doing a 'make external' on these new ports always fails implementation with issues related to improper IOSTANDARD on the bank of ports
  • Manually hooking up the input pins by creating ports, hooking them to the XADC ports (like Vaux0), and using XDC constraints fail to implement with similar errors
  • If I don't do 'make external' on any ports but the Vp_Vn one, then the bitstream generates, but the C code does not read any auxiliary channels.  I have properly enabled all of them in the code and I loop through every channel to see what it registers.  Temperature shows up just fine

Is there a way to properly read the analog pins A0-A5 through the Vivado block diagram?

Thanks!

Edited by buckd

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Hi buckd,

I have asked some of our applications engineers about this; they'll get back to you here on the Forum.

In the meantime, I know Digilent has an XADC demo for the Arty available on it's resource center, but the available documentation doesn't explain how to adjust the block diagram.

Thanks,
JColvin

Share this post


Link to post
Share on other sites
  • 0

Hi and thanks for responding.

I did look at the XADC demo and I've been attempting to use the same port names and constraints that it uses in its top module.  I still get errors, although I just noticed that the order of the Vaux* ports isn't what I expected for the pins.  Tomorrow I will attempt to use the weird order that the top module uses - e.g. Vaux0 goes to A5 (but then the comments say 'Auxiliary Channel 12'?)  Is there a reason to the Vaux* to pin mapping presented in that demo file?

Thank you!

Share this post


Link to post
Share on other sites
  • 0

As a follow-up, I manually routed the ck_an_n/p signals (named in the constraints file in the XADC demo) to the Vaux* ports in my block diagram, using the same out-of-order pin mappings.  I got a new error this time, in synthesis:

[Shape Builder 18-119] Failed to create SYSMON shape for instance design_1_i/xadc_wiz_0/U0/AXI_XADC_CORE_I/XADC_INST. Failed to add instance ck_an_n_IBUF[0]_inst to a new Sysmon shape. The instance already belongs to a shape and its new location conflicts with the one in the existing shape.

 

Share this post


Link to post
Share on other sites
  • 0

Hi buckd,

What version of vivado are you using? There was a known issue with vivado 2014.4 that was slated to be fixed with 2015.1 as seen here.

thank you, 

Jon

Edited by jpeyron

Share this post


Link to post
Share on other sites
  • 0

Hi jpeyron,

I am using Vivado 2016.2.  So far everything has worked well with the Arty set-up except this one thing.

I did just have some success:  I created ports 'a0n' and 'a0p' and hooked them into the guts of Vaux4 in the XADC wizard block.  I removed all other 'make external connections' except for Vp_Vn.  I then uncommented the appropriate constraints from the Arty_master.xdc (renaming ck_an_n[0] to a0n; ck_an_p[0] to a0p).

I have not tested other pins, but I'm getting good values from the ADC using AUX channel 4 with single-ended voltages hooked into A0 and using the Arty's GND.

I'm not sure if this is the proper way to do it, but so far it's working.

Edited by buckd
clarification

Share this post


Link to post
Share on other sites
  • 0

Hi @buckd

We were wondering if you could share with us your design for this project. We are trying to do the same thing with the Zedboard and think it would be helpful to see how it runs on the Arty.

Thanks,

Sam

Share this post


Link to post
Share on other sites
  • 0

Hi,
I'm sorry I cannot give the full design, but here are some more notes:

  • I enabled the vauxp4/vauxn4 under 'channel sequencer' in the XADC wizard block, then created two input ports and manually routed them to it.  I'm sorry I don't remember how I figured out it was Vaux4 that goes to the single-ended A0 input; it may have been trial and error.
  • I enabled the pins according to the .xdc file here (e.g. ck_an_n[0] and ck_an_p[0]):  https://github.com/Digilent/Arty-XADC/blob/master/src/constraints/Arty_Master.xdc#L112 and renamed them to my port names I created above.

I hope this helps.

Share this post


Link to post
Share on other sites
  • 0
On 8/17/2016 at 4:27 AM, JColvin said:

Hi buckd,

I have asked some of our applications engineers about this; they'll get back to you here on the Forum.

In the meantime, I know Digilent has an XADC demo for the Arty available on it's resource center, but the available documentation doesn't explain how to adjust the block diagram.

Thanks,
JColvin

hiii..

I have also the same problem for configuring XADC on ARTY board  I am using XADC wizard ..... but I am beginner to IP configuration .... please can you provide me some assistance . how to get ADC output ... using either by MICROBLAZE or XADC wizard

mail id ---- shubhamgwl04@gmail.com 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now