EDN China > 设计实例 > EDA工具与服务 > IP核 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 可适应多种时序情况的DMA控制器设计

电子设计工程 北京思比科微电子技术股份有限公司 赵晓海?? 2011年03月25日 ?? 收藏0

?读状态流程图

  2.2.2 multiple block read

  在该图像协处理器中每次multiple block read要从卡读出10个block数据并将其全部写入DMA存储器当中。当处于初始状态(状态0)的DMA状态机发现dma_req为1且 dma_write信号为1时,即明确SD卡控制器将开始DMA写操作,其将依次进入状态1、状态2、状态3、状态4。在状态1中,DMA状态机会向SD 卡控制器发出dma_ack信号,由于存储器读存在延时,SD卡控制器将在此后的第二个时钟上升沿(即DMA状态机在状态3时)送出dma_wdata。 DMA控制器将dma_wdata暂存一个时钟周期后,会在状态4和状态5中把此32位数据依次写入DMA存储器,dma_memory_addr也将在这两个状态分别加1。在状态7中,DMA控制器也将做2个判断,首先会判断dma_cnt和dma_num是否相等,若相等说明本次 multipleblock read的全部5 120字节数据已经写入DMA存储器中,DMA状态机将回到状态0等待下一次DMA操作指令;若不相等,则判断dma_req是否为1,如果为1则意味着继续做本次DMA写操作,DMA状态机也将回到状态1,开始下一个32位数据的写入;如果dma_req为0则说明SD卡控制器读卡的速度较慢,暂时还没有新的32位数据要写入,DMA状态机也将在状态7处于等待状态,直至dma_req再次为1,状态机才回到状态1,开始写入下一个32位的数据。最后当 DMA控制器在状态7时发现dma_cnt和dma_num相等,意味这本次DMA操作已经完成,SD卡控制器也将向基带芯片发出中断信号,基带芯片响应该中断后将从DMA存储器中读取此5 120字节数据。其写状态流程图如图3所示。

写状态流程图

  3 仿真结果

  该DMA控制器的核心即为文章第2部分中所述的DMA状态机,现将multiple block read和multiple block write的几个关键时序情况的仿真波形显示如下,dma_now_st则为DMA状态机的状态变量。

仿真波形

  图4(a)所示为一次DMA读刚刚开始时,DMA状态机翻转情况。在dma_req为1后,状态机dma_now_st则依次进入各个状态。在 dma_now_st为状态4时,读出了DMA存储器的地址0中的数据16'h4739,在dma_now-st为状态5时,读出了DMA存储器的地址1 中的数据16'hlf0b,之后在dma_now_st为状态6时,此32位数据在dma_rdata端口被送出;

  图4(b)所示的是在一次DMA读中,SD卡控制器写卡速度较慢,其暂停DMA读操作的情况。在DMA控制器送出地址12'h394和12'h395中的数据后,SD卡控制器发现DMA读的速度较快,有可能覆盖还未写入卡的数据,所以把dma_req拉低,暂停DMA读;

  图4(c)所示的是一次DMA读的结尾,此时DMA存储器已经读完了地址0~12'h9ff中的所有5 120个字节的数据,dma_now_st在状态7中监测到dma_cnt已经等于dma_num,所以状态机回到初始状态0。

DMA状态机

  图5(a)所示为在一次DMA写刚刚开始时,DMA状态机dma_now_st的工作情况。从图上可清楚看到当dma_now_st处于状态4和状态5时,DMA控制器将dma_wdata端口数据写入DMA存储器的地址0和地址1中。


上一页12345下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

时序? DMA控制器? 基带芯片? 图像处理?

上一篇: (多图) 基于Max+ PlusⅡ 的PCM30/32路...
下一篇: (多图) Multisim11.0.1为教师提供的新...
相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
今日头条
精彩图集
有问题请反馈