zoukankan      html  css  js  c++  java
  • [原]qsys互联空间与IP核内部的地址关系

    1、在IP核内部,地址线指的是以字为单位的。

        如一个ram,数据线宽度为32bit,地址线宽度为14bit,该ram的容量为2^14=16384个字,每个字4字节,即64KB。在qsys互联空间内,该ram的地址空间是0~FFFF,因此qsys是以字节为单位互联的。

    2、制作一个avalon-mm master标准的IP核向该ram写数据。avalon有如下要求:

        数据线宽度:必须和ram相同,为32bit;

        地址线宽度:至少为16bit,因为挂到互联空间中,是以字节为单位的。你看到的ram核的地址线为14bit(写ram的模块内部的地址也为14bit),是原始IP,还需要经过互联文件的转换,总之挂到互联总线的      地址一定是16bit;

        下面这张图是qsys内的write_ctrl核向ram写数据的一个过程,从ram内部抓到的地址来看,互联总线已经将write_ctrl的地址(字节地址)转换为了字地址,即0~3对应0,4~7对应1。

        我的意图是向ram写入0~1023这1024个数字,但实际只向ram的地址0写入了3,地址1写入了7,地址2写入了B等等。其他数据被覆盖了。

     解决办法:在自制的IP核里,做地址转换,将字地址转为字节地址,即左移2位输出。PrSv_WrAddr_s为14bit,和要写入的ram的ip核内部地址相同。

        amm_address_o     <= PrSv_WrAddr_s(13 downto 0) & "00"; -- 转换为字节地址

    3、还可以将onchip-ram的数据端口导出到qsys外部,在顶层对其写入,此时写入数据的模块的特点如下:

        地址线宽度为14bit,数据线宽度32bit,写入时可以按字操作,因为此时没有经过avalon总线的互联。

  • 相关阅读:
    通过源码安装PostgresSQL
    mysql 8.0.16 单主 mgr搭建
    美团点评SQL优化工具SQLAdvisor开源快捷部署
    通过springboot 去创建和提交一个表单(七)
    在springboot中验证表单信息(六)
    调度任务(五)
    接收上传的multi-file的文件(四)
    消费Restful的web服务(三)
    关于RabbitMQ服务器整合(二)
    在springboot中用redis实现消息队列
  • 原文地址:https://www.cnblogs.com/tubujia/p/12937202.html
Copyright © 2011-2022 走看看