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 2216 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
  • 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
  • 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
  • Former Member
    0 Former Member over 9 years ago

    Hello Marina,

     

    This interface should be pretty straightforward. Just implement an AXI BRAM controller connected to one port of a Dual Port BRAM. Connect your PL (Programmable Logic) design to the other port of the Dual Port BRAM. Reading from the Dual Port BRAM via the AXI BRAM controller should not alter the contents of the BRAM.

     

    I would suggest looking at the addressing and the data width of your AXI interface to the BRAM. And make sure that your PL design is not causing the issue. Take a second look at your software to make sure you are only performing reads.

     

    -Gary

    • 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 Former Member

    Thank you for the replay. I recently discovered that I had a bad management of the write enable array of the bram. So I am actually able to read what the axi is writing on the bram, using my block of vhdl.
    Unfortunately another problem occurred. Now my axi seems not to be able to read what has been written by the vhdl block, but is totaly capable to read what he wrote before.
    Should I look to my enable signals and stuff in the vhdl or might this be related to memory caching and so on? (somebody pointed that out online but I am pretty confused)
    I am using the mmap function to access the memory space.
    Thanks for your help and any advice anybody would be able to provide

    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