0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

变不可能为可能:如何实现DSP和SDRAM数据读取

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-10-25 09:46 次阅读

DSP 应用系统中,需要大量外扩存储器的情况经常遇到。例如,在数码相机和摄像机中,为了将现场拍摄的诸多图片或图像暂存下来,需要将 DSP 处理后的数据转移到外存中以备后用。从目前的存储器市场看,SDRAM 由于其性能价格比的优势,而被 DSP 开发者所青睐。DSP 与 SDRAM 直接接口是不可能的。

FPGA(现场可编程门阵列)由于其具有使用灵活、执行速度快、开发工具丰富的特点而越来越多地出现在现场电路设计中。本文用 FPGA 作为接口芯片,提供控制信号和定时信号,来实现 DSP 到 SDRAM 的数据存取。

1 、SDRAM 介绍

本文采用的 SDRAM 为 TMS626812A,图 1 为其功能框图。它内部分为两条,每条 1M 字节,数据宽度为 8 位,故存储总容量为 2M 字节。

所有输入和输出操作都是在时钟 CLK 上升沿的作用下进行的,刷新时钟交替刷新内部的两条 RAM。TMS626812A 主要有六条控制命令,它们是:条激尖 / 行地址入口、列地址入口 / 写操作、列地址入口 / 读操作、条无效、自动刷新、自动刷新。SDRAM 与 TMS320C54x 接口中用到的命令主要有:MRS、DEAC、ACTV、WRT-P、READ-P 和 REFR。这里,设计目的就是产生控制信号来满足这些命令的时序要求。关于 TMS626812A 的具体说明可以查看其数据手册。

2 、SDRAM 与 TMS320C54x 之间的通用接口

图 2 是 DSP 与 SDRAM 的通用接口框图,图中 DSP I/F 代表 TMS320C54x 端接口单元,SDRAM CNTL 代表 SDRAM 端接口控制单元。SDRAM 被设置成一次性读写 128 个字节,而 DSP 一次只读写一个字节,因而建立了两个缓冲区 B0、B1 来缓存和中转数据。B0、B1 大小都为 128 字节,而且映射到 DSP 中的同一地址空间。

尽管 B0、B1 对应于同一地址空间,但对两个缓冲区不能在同一时刻进行合法访问。实际上,当 B0 被 DSP 访问时,B1 就被 SDRAM 访问,反之也成立。若 DSP 向 B1 写数据,SDRAM 就从 B0 读数据;而当 SDRAM 的数据写到 B0 中时,DSP 就从 B1 读数据。两者同时从同一缓冲区读或写都将激发错误。上边所述的数据转移方式有两种好处:一是加速了 TMS320C54x 的访问速度,二是解决了二者之间的时钟不同步问题。

3 、FPGA 中的硬件设计

TMS320C54x 为外部存储器的扩展提供了下列信号:CLK、CS、AO~A15、D0~D15、RW、MATRB、ISTRB、IS,而 SDRAM 接收下列信号:CLK、CKE、CS、CQM、W、RAS、CAS、A0~A11。由于两端控制信号不同,需要在 DSP 与 SDRAM 之间加上控制逻辑,以便将从 DSP 过来的信号解释成 SDRAM 能够接收的信号,图 3 是用 FPGA 设计的顶层硬件接口图。

图中主要由三个模块:DSP-IQ、DMA-BUF 和 SD-CMD。其中 DSP-IO 是 DSP 端的接口,用来解码 TMS320C54x 发送的 SDRAM 地址和命令。DMA-BUF 代表缓冲区 BO、B1。SD_CMD 模块用来产生 SDRAM 访问所需的各种信号。

DSP_IO 模块又包括 IO_DMA、DSP_BUF 和 DSP_READ。IO_DMA 产生 SDRAM 的命令信号,即图 3 中的 DSP_RDY、DSP_SD_RW、DSP_SD_BANK_SW、DSP_SD_ADDR[20..0]、DSP_SD_ADDR_RESET、DSP_SD_START。DSP_BUF 产生访问 B0、B1 的地址、数据和控制信号,图 3 中指 DSP_SD_BUFCLKI、DSP_SD_BUFCLKO、DSP_SD_BUFWE、DSP_SD_BUFADDR[6..0]、DSP_SD_BUFIN[7..0]。DSP-READ 子模块用来控制 DSP 的读写方向。

DMA_BUF 分为 B0、B1 两个缓冲区,用来进行数据传送,每个缓冲区的输入输出信号包括:CLKI、CLKO、WE、ADDR[6-0]、DATA_IN[7-0]、DATA_OUT[7-0]。BANK_SW 是一个开关信号,用于 DSP 和 SDRAM 对 B0、B1 的切换访问。

SD_CMD 模块包括刷新、读、写功能。当 DSP 芯片发出 SDRAM 读命令时,128 字节的数据从 SDRAM 中读出来并被存储到 B0 或 B1 中,当 DSP 发出写命令之时,128 字节的数据传到 B0 或 B1 之中并被最终写到 SDRAM 中。

4 、软件设计

TMS626812A SDRAM 有两兆字节的存储容量。所以 DSP 用两个 I/O 地址向 FPGA 传送访问 SDRAM 的高低地址。此文中,该两个 I/O 地址对应用图 4 中的 03h(DMA_ADDH)和 04h(DMA_ADDL)。另外,还有一个 I/O 地址(图 4 中的 05h)用来向 FPGA 传送命令产生 SDRAM 访问的信号。

DSP 向 SDRAM 写数据时的操作步骤如下:

(1)数据先被写到 B0 或 B1。

(2)SDRAM 的访问地址经由 DSP 的 I/O 地址 DMA_ADDH 和 DMA_ADDL 发送到 FPGA 中。

(3)DSP 向 FPGA 发出一个命令(I/O 地址为 DMA_CTL)产生控制信号,使 SDRAM 从 B0 或 B1 中读取数值。

DSP 从 SDRAM 读数据的操作步骤如下:

(1)DSP 传送访问 SDRAM 的地址。

(2)DSP 经由 FPGA 传送一个命令,使得数据从 SDRAM 中读到 FPGA 中。

(3)DSP 从 B0 或 B1 中读得数据。

图 4 为 DSP 中与数据传送相关的各类存储器的分配情况。

具体设计时,应参考相关资料进行补充。不同的 DSP 与不同类型的 SDRAM 接口时,会有细微的区别,电路设计完毕后要进行认真而多方面的测试。

责任编辑:xj

原文标题:将FPGA作为接口芯片,如何实现DSP和SDRAM数据读取?

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    553

    文章

    8027

    浏览量

    349276
  • FPGA
    +关注

    关注

    1629

    文章

    21753

    浏览量

    604167
  • 芯片
    +关注

    关注

    456

    文章

    50919

    浏览量

    424568
  • SDRAM
    +关注

    关注

    7

    文章

    428

    浏览量

    55262

原文标题:将FPGA作为接口芯片,如何实现DSP和SDRAM数据读取?

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HDC1080损坏的可能原因有哪些?

    值为99%,出现温度正常,湿度不正常的现象。 问题一:该芯片是否需要进行某种温度或者湿度条件的老化? 问题二:芯片对何种环境极为敏感?(比如静电等)且使用环境阈值为多少? 问题三:芯片损坏的可能原因有哪些? (PS:数据为自己通电(3.3v)下经行的高温实验)
    发表于 12-02 07:59

    LabView怎么保存已经读取数据方便下次接着用

    我做实验的时候使用LabView进行数据的迭代,但是试验器材容易损坏,因此有时候不得不把程序停止,但是重启程序的时候怎么把已经生成的数据再导入进去用呢。生成的数据在显示面板上,怎么放进输入面板呢,
    发表于 10-31 16:21

    无论多少G以后,都不可能没有200G

    在信息威廉希尔官方网站 日新月异的今天,数据中心的网络带宽需求如同脱缰的野马,不断奔腾向前。从10G到100G,再到如今热议的400G乃至800G,威廉希尔官方网站 的每一次飞跃都标志着数据传输速度的新里程碑。然而,在这场速度竞赛中,有一个声音坚定而清晰:“无论多少G以后,都
    的头像 发表于 10-28 18:10 277次阅读
    无论多少G以后,都<b class='flag-5'>不可能</b>没有200G

    PCM1864采样音频数据的谐波及底噪可能会是由什么引入的呢?

    把ADC教接地,也有-60dB左右底噪。 请问 1.有办法测试codec I2S输出数据噪声,谐波数据吗?(方便判断是PCM1864引入还是DSP C5517引入) 2.谐波及底噪可能
    发表于 10-15 06:17

    AI赋能TRIZ:跨界融合,共赴“不可能”挑战之旅

    。这不仅仅是威廉希尔官方网站 的简单叠加,而是智慧与创造力的深度碰撞,它们携手并进,共同挑战那些曾被视为“不可能”的难题,引领我们步入一个创新无界的新纪元。具体如深圳天行健企业管理咨询公司下文所述: AI遇见TRIZ:创新的火花四溅 TRIZ,自上世纪中叶诞生以来,便以其系统化、科学化的方
    的头像 发表于 09-11 11:02 597次阅读

    电器电阻增大可能原因和影响

    老化 导体材料 :随着时间的推移,导体材料可能会因为氧化、腐蚀或机械磨损而导致电阻增加。 绝缘材料 :绝缘材料的老化可能导致电阻降低,但也可能因为材料变硬或脆而导致电阻增加。 2.
    的头像 发表于 08-27 09:37 2662次阅读

    是否有可能读取ESP当前连接到的站点的RSSI?

    我想知道是否有可能读取 ESP 当前连接到的站点的 RSSI?我知道我可以对所有站点进行扫描,但我想知道是否可以不进行扫描?
    发表于 07-12 07:46

    AD7691读取的后4位总是0,请问可能是什么原因造成的?

    读取的18位AD7691,后4位总是0,请问可能是什么原因造成的。
    发表于 07-02 07:28

    bytes at port 输出的值一直为0,串口助手可以读取数据,求问可能是什么问题?

    连接bytes at port时 输出的值恒定为零,不用这个属性节点又会报错超时,用串口助手可以读取数据,求问可能是什么问题?
    发表于 05-22 19:17

    《合宙的第一个10年》故事连载07:不可能的行动变成可能,也有方法

    上文《成功有秘诀吗?还真有》分享了侯总的故事,又有多少人曾一样踩过无数坑,付过N多学费,在跌跌撞撞的创业之路,摸索着各种通向成功的方法。如何把不可能的行动变成可能?其实,也有方法。1一拖再拖的销售
    的头像 发表于 03-23 08:04 339次阅读
    《合宙的第一个10年》故事连载07:<b class='flag-5'>不可能</b>的行动变成<b class='flag-5'>可能</b>,也有方法

    MES系统能为企业实现什么

    实现对生产现场的管理,了解车间现场的最新情况,但是不可能一直去现场,这也是浪费时间和不必要的。然而MES系统则能帮助企业实现对现场生产的透明化管理。生产管理者可实时查看准备情况、工序状态、在制品信息、质检信息和生
    发表于 02-27 16:05 0次下载

    是否有可能访问我正在编写的代码中的构建变量?

    我只是想知道是否有可能访问我正在编写的代码中的构建变量。 到目前为止我还没找到出路。 起初,这些变量仅用于自动创建我想要的格式的图像文件。 现在,我想通过发送给赛普拉斯的控制权转移来访问它们。 如果这不可能,你知道其他方法可以做到这一点并满足我的两个需求吗?
    发表于 02-26 06:36

    ez-click--contecy3280-MBR3-demo无法连接,I2C都不可能通讯怎么解决?

    ez-click--contecy3280-MBR3-demo无法连接,I2C都不可能通讯,这个需要重新安装吗?
    发表于 02-04 09:27

    SQL为什么不可能跑得快

    我们讨论过代码编写的难和繁的原理问题,现在关注性能问题,运行速度当然是非常重要的事情。
    的头像 发表于 01-24 09:41 355次阅读

    labview visa读取数据越来越慢

    实际上,LabVIEW通过VISA(Virtual Instrument Software Architecture)来与仪器通信。但是,有时候在使用VISA读取数据时,可能会遇到读取
    的头像 发表于 01-08 10:00 3221次阅读