BlockRAM设计全套课件.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

BlockRAM設計7.3BlockRAM設計Xilinx公司為Spartan-II以後的FPGA系列晶片,提供了專用的片上雙讀/寫端口同步RAM塊。不同型號的FPGA含有的BlockRAM數量不同。專用RAM的性能比其他形式的RAM的性能優越。由於是專用的RAM,寫入讀出通路沒有其他邏輯電路,而且嵌入在FPGA內部,與外掛的RAM相比,讀寫到片內邏輯的延時是相當小的,再加上專用RAM的雙讀/寫同步方式,很容易達到設計的要求。由於BlockRAM之間有專用的佈線資源,當RAM容量很大時,也不會影響速度。另外,使用BlockRAM與使用外部RAM相比,可以簡化印製板(PCB)的設計與製作,提高系統的穩定性。在一般情況下,系統需要存儲一定的數據時,最好使用BlockRAM。無論是在資源的合理利用方面,還是速度、穩定性方面,BlockRAM都是最好的選擇。也可以使用分佈式RAM(Distributed-Ram)。但是分佈式RAM要使用寶貴的觸發器,所以建議使用BlockRAM。下麵以Xilinx公司的Spartan-IIBlockRAM為例進行介紹,BlockRAM的結構如圖7.3.1所示,分為A,B兩部分,每部分包括輸入信號we,en,rsta,clk,add[#:0],di[#:0]和輸出信號do[#:0]。其中常用的是:we--讀寫信號,clk--同步時鐘,add[#:0]--地址,do--輸出。7.3.1BlockRAM的結構圖7.3.1BlockRAM的結構BlockRAM是真正的雙端口RAM,兩個端口可以獨立工作,在沒有寫入衝突的前提下,兩個端口是互不干擾的,即可以作讀-讀、讀-寫、寫-寫等操作。而且,兩個端口的寬度(字長位數)可以有多種定義,可以是同寬度的,也可以是不同寬度的。這樣的結構給設計帶來了方便7.3.2描述BlockRAM的VHDL程式以下是描述BlockRAM的VHDL程式:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitybramisport(clk:instd_logic;--定義引腳 we:instd_logic; a:instd_logic_vector(5downto0); ba:instd_logic_vector(5downto0); di:instd_logic_vector(7downto0); do:outstd_logic_vector(7downto0));endbram;architecturesynofbramistyperam_typeisarray(63downto0)ofstd_logic_vector(7downto0);--定義大小signalRAM:ram_type;signalread_a:std_logic_vector(5downto0);signalread_b:std_logic_vector(5downto0);beginprocess(clk)--功能描述beginif(clkeventandclk=1)thenif(we=0)thenRAM(conv_integer(a))=di;endif;read_a=a;read_b=ba;endif;endprocess;do=RAM(conv_integer(read_a));endsyn;7.3.3BlockRAM的寬度和深度組合Spartan-II的BlockRAM有多種寬度(Width)和深度(Depth)的組合供選擇,寬度是其數據匯流排(DataBus)的位數,深度是其地址匯流排(ADDRBus)的位數。如表7.3.1所示;同時,端口A和端口B的寬度選擇可以不一樣,見表7.3.2的庫原語(Primitive)。表7.3.1深度與寬度比例表7.3.2實用庫原語從表7.3.2可以看到,一共有5種不同寬度和深度的BlockRAM,在實際的運用中,也可以使用其他的定義。在使用BlockRAM時,還要注意數據寫入時序,比如:在同

文档评论(0)

爱遛弯的张先生 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档