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 can I access block ram on both PS and PL when I use 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 6 replies
  • Subscribers 339 subscribers
  • Views 2217 views
  • Users 0 members are here
Related

How can I access block ram on both PS and PL when I use ZedBoard?

Former Member
Former Member over 10 years ago

Hello everybody~

Now I have a question. I need archive this:
1. send data from PS to bram in PL by AXI.
2. read bram in PL.

For first task, I think I can use axi-bram-controller to transfer data. But for second task, I don't know how to access the bram in PL. Do I need design my own bram controller and use it to access the same bram, or just modify the axi-bram-controller to add my own code?

Thanks~~ :D

  • Sign in to reply
  • Cancel
Parents
  • drozwood90
    0 drozwood90 over 10 years ago

    Hi there,

    I suggest that you use a DUAL PORT BRAM. This way, you can have the PS read from it, while you write to it. I would start with the AXI BRAM Controller. Then you can use one of the BRAM ports to allow the PL to read the memory, while the PS can fill the memory using AXI.

    In this case, you will need to create your own BRAM interface as you would using any other instantiated BRAM.  There are timing diagrams and logic flow diagrams in the datasheet to assist you in this design.

    --Dan

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

    Hi there,

    I suggest that you use a DUAL PORT BRAM. This way, you can have the PS read from it, while you write to it. I would start with the AXI BRAM Controller. Then you can use one of the BRAM ports to allow the PL to read the memory, while the PS can fill the memory using AXI.

    In this case, you will need to create your own BRAM interface as you would using any other instantiated BRAM.  There are timing diagrams and logic flow diagrams in the datasheet to assist you in this design.

    --Dan

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

    I think what you said is a great solution~ Even though I still need to learn how to write a bram controller :D

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

    Hi,
    did you guys solved the problem yet?
    I am implementing this kind of solution but something doesn't work.
    I try to write from an application on my operative system in the bram, then I try to read the data from fpga. The reading process is destructive, I can see the data turned into zero while my code is running.
    How is that possible?
    The opposite procedure: writing with fpga and readig from operative system totally works.
    Please let me know if you have any advice

    Thanks
    Marina

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

    Hi,
    did you guys solved the problem yet?
    I am implementing this kind of solution but something doesn't work.
    I try to write from an application on my operative system in the bram, then I try to read the data from fpga. The reading process is destructive, I can see the data turned into zero while my code is running.
    How is that possible?
    The opposite procedure: writing with fpga and readig from operative system totally works.
    Please let me know if you have any advice

    Thanks
    Marina

    • 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