发 帖  
原厂入驻New

[经验] 采用CPCI总线多DSP系统实现高速主机接口设计

2019-5-17 07:00:13  170 总线 DSP 接口
分享
1
2.3 DSP/SDRAM接口的实现
     
主机访问DSP时,必须遵守DSP的流水线协议,其中重要的是读写时的流水深度:读操作时流水深度始终为四个周期,写操作时流水深度始终为一个周期。主机执行来自或去往DSP的突发操作时,支持超过四字的连续突发操作。当主机发出突发首地址,只要BRST#信号有效,DSP就在内部对地址累加。首次传送的起始地址和最后一次传送的结束地址必须四字对齐。这里只支持DSP端4字突发。
     
SDRAM的访问协议很常见,限于篇幅,不再赘述。
    
每次主机开始访问DSP/SDRAM时,PCI局部端使用LHOLD和ADS#来启动一次传输,LWR=0表明是读过程。局部端状态机向DSP/SDRAM端状态机发出start命令。开始时Cache为空,而且DSP/SDRAM提供数据要超过一段时间,所以在读操作的开始阶段要无效ready_n使局部端等待。DSP/SDRAM端状态机接收到局部端状态机的start信号后,开始从DSP/SDRAM读出数据,填入Cache中。
     
当预定义的数目被满足后,局部端状态机使ready_n有效以允许当前的读操作。DSP/SDRAM端将会根据用户设定是否突发读写DSP/SDRAM的方式,一直连续地读DSP/SDRAM数据,写入Cache中。除非接收到stop命令才回到IDLE状态,或是在Cache快要填满进入等待状态,放弃DSP共享总线,这样可以使4片DSP之间的数据传输尽可能少地被干扰。每次主机读DSP/SDRAM时,都会直接从这个Cache中读出数据。如果Cache中的数据少于预定义的数目,则ready_n将被无效,以使当前的数据传送等待。一旦LHOLD信号无效(当前这段PCI传送结束)或是局部端地址不连续了(局部端有一个地址寄存器,它标志Cache中下一个数据的地址,如果它和当前局部端地址不同表示预取的Cache已经无效),局部端状态机就向DSP/SDRAM端状态机发出stop命令。DSP/SDRAM端状态机清空Cache,准备下一次访问。读SDRAM的同时开启一个定时器,一定的时间间隔内要在读命令中插入刷新命令,防止数据丢失。
     
主机写DSP/SDRAM的操作过程因为有Cache的存在显得很简单[4]。因为局部端和DSP/SDRAM端之间有Cache完全隔离,所以局部端状态机只要判断Cache中还有足够的空余位置就开始往Cache中分别写入地址和数据(两者是一一对应的)。局部端状态机在写的过程中,根据PCI9656的blast#信号来判断单次还是突发以及突发是否结束;如果Cache中空余位置少于4个则进入等待状态。DSP/SDRAM端状态机一旦看到Cache不为空,便从Cache中读出地址和数据,整合了一段数据后开始申请DSP共享总线,按照协议规定的时序要求将数据写到DSP/SDRAM中。对DSP的写操作就像写SRAM一样简单方便;写SDRAM稍微复杂一些,除了要像读一样插入刷新命令外,每次写SDRAM到了页末时必须及时发出预充电命令,防止地址错误地回转到页首;另外每次写完SDRAM后同样发出预充电命令,关闭本页,防止在同一个Bank内打开两页。

2.4 DSP/SDRAM接口性能
     
33MHz、32位的PCI总线理论极限速度是132MB/s,实际速度要有一些折扣。由于FPGA访问DSP和SDRAM理论带宽分别有300MB/s和600MB/s,因此DSP/SDRAM接口的瓶颈在PCI端。在研华MIC3358主板上,主机无其他任务,重复访问DSP内部一段64KB数据的测试环境下,接口的DMA读速度有90MB/s,DMA写有38MB/s。与此同时,Bittware的同类型板卡tiger-6U-cPCI的DMA读速度是86MB/s,DMA写速度最高可以达到40MB/s。两者的DSP接口访问速度基本相同,但是在Bittware的设计里,主机要访问SDRAM,必须要借助DSP的SDRAM控制器,占用DSP的一个FLYBY通道,会影响DSP的正常运转。本系统提供了一个主机直接访问SDRAM的接口。
     
本文首先提出了一个通用DSP系统的设计方案,主要给出了FPGA在系统中的位置和作用。然后简要介绍了FPGA的各个功能模块,着重针对DSP和SDRAM接口进行了讨论,针对数据宽度和时钟速率不匹配的特点,提出双状态机+Cache的设计结构,给出相应的FPGA设计框图和设计思路。比较国际上知名的其他板卡,本系统的DSP接口的访问速度已经达到了较高水平;一个高访问速率的主机接口的建立,可以使得系统运行中的主机控制DSP过程尽可能少地影响DSP系统的运行。而一个高访问速率的SDRAM接口的建立,也为主机和处理板间大容量数据交换提供了可能,这一点在进行数据存储和雷达信号处理中尤其有用。该设计已经被应用于某大型信号处理系统,取得了良好的效果。

参考文献

[1] 刘书明,罗勇江.ADSP TS20XS系列DSP原理与应用设计.北京:电子工业出版社,2007.
[2] GOLSON S.State machine design techniques for Verilog and VHDL.Synopsys Journal of High-Level Design,1994,(9):1-48.
[3] Altera.SDR SDRAM Controller White Paper V1.1.2002,5.
[4] 杨宗凯.数字专用集成电路的设计与验证.北京:电子工业出版社,2004.

http://www.cechinamag.com/2008-07/20087210840552.htm

相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表