element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZedBoard Hardware Design How to handle signal processing with high speed ADC on Zedboard: PL or PS
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 3 replies
  • Subscribers 340 subscribers
  • Views 291 views
  • Users 0 members are here
Related

How to handle signal processing with high speed ADC on Zedboard: PL or PS

Former Member
Former Member over 11 years ago

Hi,

I intend to use a 5MHz ADC connected through FMC of the Zedboard. I want to perform the following tasks with the data but I am confused about implementing it in PS or PL:

Calculate the minimum, maximum, range, standard deviation and z-score of the every n samples (selectable by user through PC) from the ADC.
Apply simple UCL, LCL algorithm on result of each calucation above and send result through ethernet to PC.
As I'm from software background, I'm just a newbie in FPGA and becuase its hard to deal with fixed/floating point number formats in PL, therefore I wan to implement this in PS.

Could you please advise me, is it possible to transfer data from 5MHz ADC straight to PS through AXI and then calculate these tasks. Is PS fast enough to to do that?

Also if I do implement in PL then how do I deal with calculations in fixed-point format? Can Vivado HLS automatically handle the calculations if I program these in C?

Thank you so much.

Regards,

Shan

  • Sign in to reply
  • Cancel
  • drozwood90
    0 drozwood90 over 11 years ago

    Hi,

    It is possible.  You can use the AXI4-Memory Mapped interface. That will allow you to get the maximum data throughput into the PS.

    I would think that the PS is fast enough, as we have example projects that shows 1080P video using a combination of PS and PL.  By itself, the PS should be able to do VGA at 30FPS.  This is of course using the NEON extensions.  Although I still think 5MHz is perfectly fine.

    I would consider dumping the samples into the PS in bursts.  That will allow you to not waste as much time swapping back and forth between processing and running other tasks.  I would think that a burst should be the size of one processing unit (if you are performing an FFT or something).

    I'm not sure what you are looking for regarding the fixed point math.  Do you mean how to convert from floating point to fixed point?

    If you have access to HSL (it is a paid option), you can check out this application note from Xilinx:
    http://www.xilinx.com/support/documentation/application_notes/xapp599-floating-point-vivado-hls.pdf

    If you can run in the PL, it will be more power efficient and give you more spare "PS" time to do other things.  However it is faster to just drop in the AXI4 interface to get the data into the PS and run your C directly.  That is one of the great things about Zynq!

    I will say though, at the speeds you are talking, especially if you already have the code, I would probably just drop in the Interface and run my code on the PS.  Less work and I would think it will run fine.

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to drozwood90

    Dan thank you for your detailed and helpful reply. I just have one more question. How do you get data data from ADC in bursts? In burst means I wait till I get n number of samples before I start some operation on PS? to have more efficiency?
    Also when you say dumping the samples in PS, you mean saving the samples in DDR?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • drozwood90
    0 drozwood90 over 10 years ago in reply to Former Member

    The AXI interface uses a MASTER to SLAVE design.  That means I would make the PL the master in this case.  Then, you can keep track of samples.  When you get enough for a burst, push that INTO the PS from the PL.

    Yes, you are correct in the meaning of a BURST.  This way, you are not wasting time swapping your PS registers in and out as you process the data.  At 5MHz it likely will not matter, however good design practice!

    When I say dumping into the PS, I mean either hold the samples in a Dual Port RAM that is in the PL.  Then the PS can read that over an AXI interface.  OR you can have the PL PUSH that into the DDR space.  From the PS's perspective, it is all a memory map.  So really, what is the easiest for your skill set is probably the actual structure. 

    I'd recommend thinking about your future needs for this product/design and trying to choose the design that makes sense for that.

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube