zoukankan      html  css  js  c++  java
  • lattice_ddr3调试经验分享(三)DDR速率计算

    软件:lattice diamond 3.5 , DDR3 SDRAM Controller3.1     modelsim10.2c

    硬件:ecp3 -8     镁光或者是海力士的DDR3

    Lattice的DDR控制器是龟速,上面一篇已经提到了。所以没有xilinx的那么随心所欲了。

    墨迹的原因有:

    1,Lattice的DDR控制器在ddr的data位宽是16的情况下控制器的数据位宽只有64bit。写一次(8个地址)需要给两个64bit数据。

    2,Lattice的DDR控制器是有burst 长度的,一次最大是32.

    3,从你发出写命令到控制器吃数据之间需要等待。

    必须要计算一下带宽。

    需求里需要三路视频源(1080p)单独输入输出。经过计算,我这个是不符合要求的。

    第一步:轮询时长(1920*1080p @60hz) 2200(行点数,包含了消隐)* 6.73ns(148.5Mhz)=14.806us

                  需要在14.806us实现所有的操作。

    第二步:计算满负荷状态  ,两路1080p读写合起来需要时长  1920*1.25ns(latticeDDR3只能跑800M)*4(两路*读写=2*2=4)=9.6us

                                                三路1080p 读写合起来需要时长 1920*1.25*(3*2)=14.4us 

                   要知道这个计算方式没有算burst,refresh,percharge,latency 。

                  三路1080p的占用时长 14.4与轮询时长14.8us如此接近。肯定是不符合要求的。

    第三步:实际情况。 因为1080p的行点数是1920 不能被32整除,所以这个lattice的DDR控制器的突发长度我就改成了16,避免了还要控制mask的麻烦。

                 结果呢,结果从仿真上来看,一路1080p居然占了7.625us !!! 是一路1080p哦。

                 把控制器的突发长度改成32,那么一个1080p的数据是7个32 burst_cnt加一个16 burst_cnt 。这样当然是增加了FSM的复杂度。还是用了6.616us,强调,是一路1080p哦!

    结论:lattice的ddr控制器无法实现三路1080p视频独立输入输出。 项目选择上,对lattice的FPGA选择需要慎重啊

    欢迎加入: FPGA广东交流群:162664354

         FPGA开发者联盟: 485678884

  • 相关阅读:
    如何使用SAP Intelligent Robotic Process Automation自动操作Excel
    OpenSAML 使用引导 IV: 安全特性
    Spring Cloud Zuul 网关使用与 OAuth2.0 认证授权服务
    微服务架构集大成者—Spring Cloud (转载)
    Spring Cloud Eureka 服务注册列表显示 IP 配置问题
    使用 Notification API 开启浏览器桌面提醒
    SignalR 中使用 MessagePack 序列化提高 WebSocket 通信性能
    配置 Nginx 的目录浏览功能
    关于 Nginx 配置 WebSocket 400 问题
    Migrate from ASP.NET Core 2.0 to 2.1
  • 原文地址:https://www.cnblogs.com/sepeng/p/7085341.html
Copyright © 2011-2022 走看看