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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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 Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Android
  • 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 8 replies
  • Subscribers 311 subscribers
  • Views 610 views
  • Users 0 members are here
Related

Android

Former Member
Former Member over 13 years ago

Is there a way to implement the following design?

1) Run C code generated from Matlab in a real-time bare metal configuration on Arm core 0.

2) Run Android on Arm core 1 which will peek and poke data from the programmable logic and Arm core 0 and send it out to the PC via ethernet, or display it via a touchscreen.

3) Run custom or Matlab HDL Coder generated VHDL on the programmable logic.

The programmable logic and Arm core 0 are running real time application code and Android serves as a non real time interface between the host PC or visualization equipment.

I would like to get started on a design that implements this technology and am wondering if there is anybody out there willing to struggle through this with me.  Thanks for your time.

  ,Doctor K



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

    1. The Matlab real-time compiler can be pretty finicky when it comes to writing usable C/C++ code.  If you follow their recommended programming guide for embedded code, then yes it will run without a problem.

    2. I would recommend booting into Android on Core 0 and running the real-time code on Core 1.  This will make booting much much simpler.  Either way, both configurations are valid.

    3. Matlab HDL Coder produces HDL (VHDL or Verilog) code that is human readable.  You would then synthesize the code with ISE or PlanAhead and put it into the Programmable Logic portion of Zynq.

    Is there a specific reason why you want to use Android rather than a real-time port of Linux?

    -TD

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

    Good day,

    (first note that I've only been to XFest so take any info in this answer with a grain of salt as my understanding on EPP might be off).

    Would you care describing a bit more what kind of loads you are planning to implement in this design?

    I'm asking as it seems you want to have on one side (hard?) RT constraints with the bare metal programming side + HDL and on the other side the Android system.

    Having an OS (Android or anything alike) will probably kill your memory bandwidth as my understanding is that the DDR controller will be shared between both cores and the logic fabric (I suppose Android cannot work using only the internal cache and will have to access DDR regularly).

    So if your RT load is only a pipeline and does not require too much bandwidth from the DDR what you describe should be possible.

    I was also wondering why android? Xilinx will provide some linux images (and I hope also the ubuntu image that they were displaying in their demos at ESC). Linux is probably familiar for more people than Android. This might be a factor to have more interest in this project.

    Cheers
    DB

    • 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

    The DDR controller on the processing system is separate from the Programmable Logic.  Multiple DDR chips could be added to the design and used in fabric in regard to the RT code portion to save bandwidth from the Android core.

    I would highly recommend reading this document:
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ug873_zynq_ctt.pdf

    ... as well as the 7-series documentation on memory controllers.

    Android, if just streaming data via USB or Ethernet, should not be using DDR very often due to DMA.

    I concur that Linux probably the better option here for overhead reasons.

    • 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

    Tim,
    thanks for your answer, I was thinking in my message about the ZED board not the general case, so please correct me if I'm wrong.

    Looking at your document (p14) there is a single DDR controller shared between all the blocks. So even if there are multiple controller ports (AXI?) with their own logic/queues, the global DDR BW is shared by all.

    After looking at the ZED schematic, the DDR is cut in 2 16bits packages with a shared address bus (p17) so I'm not sure to see how you can dedicate a package with its BW to the logic and the other one to the OS for example.

    http://zedboard.devcloud.acquia-sites.com/misc/files/ZedBoard_RevC.0_Schematic_120523_preliminary.pdf

    Also even if the transfers are mainly DMA, the fact the the OS might be handling video, Ethernet and potentially other activities will shrink the remaining BW for the rest...

    However I'm still convinced this platform has a great potential (I've ordered one).

    Cheers
    DB

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

    My apologies - I was talking for Zynq in general, not Zed.  Yes, the Zedboard only has two DDR chips, and they are connected to the DDR hard-block controller in the Processing System (PS).  If you wanted to run an OS on one core, and bare metal on the other (on the Zedboard) you would be sharing bandwidth, correct.

    I am very excited about the board as well, can't wait to get my hands on it and start putting together demo's!! :D

    You can also place weight to the DDR arbitration inside of the device.  The cache arbiter has four ports, and a control signal that is 4 bits wide.  Setting a bit to high set's it's priority to high, this guaranteeing max bandwidth.

    -TD

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

    All, thank you for replying to the thread.  The reason why I am interested in Android is simply because I am an Android developer and am very familiar with writing java and the entire tool flow.  I also would like to have a 7 inch touch screen that is connected to this device, and coding up a nice vector based GUI is very straight forward with Android.  In the end I agree the Linux is another viable alternative especially for those more familiar with it. 

    I am presently in communication with the Mathworks with regard to this concept (real time vhdl in PL, real time bare metal core 1, android/linux on core 0).  It would be great if their tool flow would automate some of the difficult low level details. 

    I will read the great links that you guys posted as soon as I can and I hope to hit the ground running as soon as I get my ZED Board.  Will you guys be working on similar projects? Maybe we can put together some sort of lessons learned page so that we all don't have to struggle through the same pitfalls.

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

    Doctor K,

    Glad you found the information posted helpful!

    I know that Avnet, Xilinx, and other third parties are going to be putting together Lab's and how-to's for Zed - these should help you come up to speed quickly.

    Do keep us posted of your progress!

    -TD

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

    I am facing problem in my Matlab software when i open it i see an error like uncompleted files can you please tell me what file my matlab want. http://www.ordercollegepapers.com/mba-assignment-help

    • 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 © 2025 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