基于Qsys的SDRAM控制器

1.Intel FPGA中SDRAM控制器IP示意图

  • 相比LED/数码管等简单外设,SDRAM芯片配置显得复杂许多,当然可以自行编写状态机实现初始化和读写控制,但是为了加快开发速度,可以借助Intel提供的基于Qsys系统的SDRAM控制器IP并进行简单的设置来实现对外设SDRAM的读写操作。
    在这里插入图片描述
  • PLL phase shift:使得输入SDRAM控制器和外部SDRAM芯片的时钟有一定的相位偏移(需要看具体SDRAM的手册),满足时序要求。
  • Avalon-MM Slave Port:通过在Qsys中配置NIOS CPU和SDRAM控制器连线完成对SDRAM的数据和命令写入。
    • address:地址线,在此处会把SDRAM的行列段地址映射成一种连续的地址形式;
    • data:数据线,宽度与SDRAM数据线位宽相同;
    • Control:读写信号;
    • waitrequest:请求等待,发送读请求或者写请求时,若该位为高则本次请求不会被处理;因为SDRAM的操作比较繁琐,包括刷新/预充电等,不同于片上的RAM/FIFO发送请求或者地址立刻出数据,也许片外SDRAM正在处于刷新状态,因此必须等待其处理完成自身的任务之后才可以处理FPGA发来的读写请求。
    • readdatavalid:当读取SDRAM芯片时,只有当本信号为高,读取的数据才是有效数据。
  • interface to SDRAM pins:同外部SDRAM的引脚接口。
  • 注意图中SDRAM的dp端口是双向IO

2.Qsys SDRAM配置

  • Memory Profile
    在这里插入图片描述
    根据所使用的SDRAM数据手册查询相关信息填入即可。通过检查左下角系统算出的SDRAM大小与实际器件大小是否相符来判断数据填入是否有误。
  • Timing
    在这里插入图片描述
    从上到下解释参数
  • 初始化时需要刷新几个周期,可以查看SDRAM芯片数据手册。一般是要求大于等于2周期。
  • 间隔多少us执行一次刷新的命令,比如某器件每32ms刷新一次,每次刷新一行,一共有11bit表示行数,因此总的刷新指令周期=32000/(2^11)=15.625us。值得注意的是,本页面下所有设置的时间都是以Qsys系统输入时钟周期为参考的,也就是说并不一定能够达到小数点后3位的精度,但是会提前执行刷新
  • 在上电后需要延时多久后执行初始化,查手册。
  • 刷新指令持续时间(Trfc),指令周期,查手册,可以比手册的时间长一些。
  • 预充电指令持续时间(Trp),预充电周期,查手册。
  • 行列延时(Trcd),查手册,可以比手册的时间长一些。
  • 访问时间(Tac),查手册,根据上面的CAS的latency来选择参数。
  • 写回周期(Twr),差手册,可以大于手册要求时间。

3.SDRAM配置复用

  • 通过将上述设置信息保存产生.qprs配置文件,在软件安装路径下寻找到sopc_builder_ip/SDRAM_controller文件夹下的.qprs,将刚刚产生的配置信息复制粘贴到系统文件中即可在下次调用SDRAM IP时选中本次保存的配置信息。避免重复去查手册。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arist9612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值