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
Avnet Boards General Linux + FPGA on the zedboard
  • 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 12 replies
  • Subscribers 355 subscribers
  • Views 1872 views
  • Users 0 members are here
Related

Linux + FPGA on the zedboard

Former Member
Former Member over 13 years ago

The Zedboard seems very interesting, it has an ARM processor on which a user can run a linux system, it is tightly coupled to an FPGA, and it includes several peripherals and an FMC connector. 

I plan to run linux on the zedboard, and I want to stick the zedboard on a network and access the zedboard remotely using an ethernet connection, will that just work?

OK next, I want to create an FPGA application, I will want to use an external clock, is there an input for that?  I also want to use an external trigger input, do I use the XADC for that?  What is the XADC?

How about moving data back and forth between linux and the FPGA, what will be involved to make that work?

Thanks.



  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Hi piller,

    I'm so glad you are excited about Zynq and the Zedboard as well are!

    Let me try and take your questions on one at a time:

    1.  The ARM portion of the Zynq device is based off of traditional ARM IP, and thus will run Linux natively and support all of the traditional drivers and libraries compiled for ARM that any other A9 ARM processors support.  The Ethernet controller on the the Zynq chip has drivers that are already supported within the Linux kernel, and thus if you would like to interface to an Ethernet connection it is simply just using the Ethernet interface that is available within the /dev directory within Linux (just like any other platform).  So you question of "Will it just work" my answer is: yes, we have full 10BaseT/100BASET/1000BaseT Ethernet support which any Layer-7 application can take full advantage of.

    2a.  There are lots of global clock inputs available to bring an external clock into the Zynq device.  The Zedboard also has this ability brought out to the FMC connector and an oscillator.  You can see this in the Schematic that is posted here: http://zedboard.org/content/documentation

    2b.  Is your external trigger an analog voltage level, or a digital transition?  We can support both.  You can bring in an analog voltage level into our XADC Analog Mixed Signal (AMS) system and set a threshold to trigger a signal internally within FPGA fabric.  If you want to use a digital transition as a signal, that can be done as well using a clock to sample an input pin.

    2c.  The XADC subsystem is Xilinx's offering for bringing in analog signals into the FPGA fabric of the device.  The XADC system provides two ADC's that run at 1MSPS with a bit resolution of 12bits.  There are two mux's available to bring in up to 32 single ended signals or 16 differential signals into the two ADC's.

    3.  The ARM subsystem within the Zynq device uses a standard called AXI to interface with internal peripherals.  The standard of AXI4 is used within the Xilin FPGA fabric to interface with the ARM subsystem.  This allows for a peripheral to be mapped to memory, and a driver to be written within Linux to have that memory area accessible through a /dev device.

    Hope that helps!

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

    Great, thanks for the excellent and quick reply!

    Any chance that we can get some simple linux reference designs that use AXI4 to go between the ARM/Linux and the FPGA I/O?   For example the user presses buttons on the Zedboard and data appears on the linux side or the user writes to a file on the linux side and controls LED's on the Zedboard?


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

    These example projects are in the works, and should be posted shortly.  Stay tuned!  I'll post back here as soon as they are posted as well.

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

    Are any of these projects available yet? I am also interested in creating a driver to talk to the FPGA logic from Linux.

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

    Hi, I was wondering if I could get some info on internet connection using ethernet socket.

    I am planning to connect or send a HTTP package or some sort of data to my FPGA (or ARM processor) on zedboard via internet. I would like to know if linux kernel unpacks this received package for me. In other words, how having a zedboard can help me to send data from internet to my board, and eventually updating some of the register?

    I hope I was clear enough.

    I truly appreciate your help in advance, any type of instructions or steps that can help me in overcoming this issue is tremendously appreciated.



    Sincerely,
    Daniel

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

    There are three questions in your post. The answer is "yes" to all.

    Yes, the zedboard can run web server software. The demo system runs Linux and, I believe, also includes the Apache web daemon. In general, almost every existing Linux app can be built to run on the zedboard. A web server is special only in that the standard package already includes it.

    You can write your own software to interact with the FPGA system.

    And last, your web page can call your software to control your hardware.

    Good luck, and have fun.

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

    Thanks for your help.

    I am new to embedded world and networking. I have been working on a project where I want to turn on a LED or any pin on PMOD using web browser.

    This is where I am. I have SDK up and running and I use peripheral example of the SDK to interact with GPIO (switches->LED). I was able to tweak the code to write switch values on LEDs.

    I understand that I need to have a webserver on the board and also need to get to know how the socket or ethernet cable is programmed. Plus, I am not sure how to create a GUI(web page) on my webserver, like xilinx has in its lwIP manual

    http://www.xilinx.com/support/documentation/application_notes/xapp1026.pdf

    I have also looked at the project by Avnet where they have web-based control for a servo motor. I think that it is too complicated to tweak since their tutorial is to help customers to assemble. 

    Is anybody familiar with creating a "simple" webserver?

    Should I use SDK example which is just a echo server?(will that help me!)

    OR

    Is it better to move to linux?


    I appreciate your help.

    Thanks,
    Daniel Moham

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

    Hi Daniel. Do it in Linux; I'll explain shortly. Or if you've already gone ahead with XilKernel, don't worry about it. It's more important now to move on and not get hung up here. There is much more to explore.

    I see the Zynq as somewhat special. Finding the right boundary between software and hardware systems is a continual challenge. With both sides integrated onto one device, it's the perfect vehicle for exploration. But to get there, you'll first have to become proficient with both. That's why it's so important to not get stuck here, not get sidetracked into building a webserver, or learning to write a "proper" driver.

    Why Linux at this point? Simply, you'll want a full featured operating system at some future point, keeping in mind the software/hardware thing. (It appears that Linux will have to do. ;-) In any other context, the awful hacks of bit banging from user space would be intolerable. The point of the early exercise, though, is to illustrate how hardware can tie into the processors. There will be time enough later to build a real driver, when there's a real system to integrate.

    Next steps, if you really want, is to focus a bit on the hardware side, learn how to build something in the FPGA. That's a large part of what sets the Zed apart from the likes of the Raspberry Pi and Arduino. I would recommend "FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version", if not for its price. Even so, the progression and coverage are ideal for teaching and learning circuit design on an FPGA. The sections on interfacing PS2 mice and keyboards are obviously outdated, but integrating with AXI4 is suitable enough substitution.

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

    Mike, I appreciate your help. I came to the same conclusion that Linux is the best for this type of projects. I got really stuck in interfacing Ethernet and creating a webserver as I, an Electrical Engineer, didn't have the knowledge for creating a webserver.

    Thanks again.

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

    Dear All,
    I have developed custom IP for Zedboard and I am able to use it in Bare metal. Now I want to write device driver for it. I have compiled open source linux kernel for zynq successfully and loaded on SD card.
    But I am not getting how to start with device driver.
    I have following doubts
    1.If I should write driver in Host machine then what should be the directory for it.
    2. Does driver should be compiled along with source code of kernel (not kernel image)? if yes ,then how?
    3. How does driver is loaded on SD card? I mean separately or inside the kernel image?
    4. Finally how to test the driver on sd card?
    In short can anyone help me in how to cross-compile simple char module for zynq.
    Thanks in advance.

    Ganesh

    • 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