zoukankan      html  css  js  c++  java
  • 【IP分析】BRAM的实用功能

    • 最早的时候发现读取bram的addr必须+4而不是+1。

    主要就在是否勾选“Byte Write Enable”,即是否按字节来操作。

    在BRAM Controller模式下,默认勾选,PortA和PortB都是32bit位宽的,按照字节就是4个byte,所以会有we[3:0]共4个we信号。

    在Stand Alone模式下,默认是不勾选的;如果选择了“Generate address interface with 32 bits”,这个enable就再次被默认勾选。

    Byte-Writes

    按照bytes操作数据,比如32bit位宽,是4个byte,对应4个we信号。比如使能we[3:0]=4'b0010,那么只有第二byte会被写入数据,其他位不变。

    Optional Output Registers 

    这种output reg的作用就是改善输出路线上的delay和latency。

    primitive output register:原语之后的reg就是用ram做的,所以默认就有配置。

    core output register:需要单独勾选。

    如果都没选,在原语上也会有个latch,在原语reg之前。

     Optional Pipeline Stages
    如上图,当用户bram是由多个bram拼凑的,在输出口就会有MUX负责处理共用。但这样的组合结构对数据不好,所以也在会前面加几级pipeline来优化结构。

    只有当core output register被勾选的时候,才能选择这个属性。

    但是这些reg属性都会增加input与output之间的节拍。erg1即primitive,reg2和3是pipeline,dout是core output reg。

    如果primitive和core以及pipeline的reg都没有的话,din和dout之间只相差一个节拍。

     

     Optional Set/Reset Pins
    rst信号控制最后一个output reg,结合上面的reg设置。

     

     Memory Output Flow Control
    把en、rst、regce结合起来,可以控制不同的输出方式。

    The LATCH signal is the data at the output of the primitive

    REG1 is the data at the output of the primitive output register

     

  • 相关阅读:
    Log4J日志整合及配置详解
    SmartGit/Hg 4.0.1 发布
    Test Kitchen 0.7.0支持在OpenStack上对Opscode Chef进行集成测试
    RubyGNOME2 1.2.0 发布,支持 GTK+ 3
    PowerDNS Recursor 3.5 RC1 发布
    用于展现图表的50种JavaScript库
    Lambda表达式现状分析
    Node.js 0.8.18 / 0.9.7 发布
    CRUX 3.0 发布,轻量级 Linux 发行版
    Google 更新浏览器内的手写识别技术
  • 原文地址:https://www.cnblogs.com/kevinchase/p/6900212.html
Copyright © 2011-2022 走看看