微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > FPGA与DSP协同处理系统设计之: FPGA与DSP的通信接口设计

FPGA与DSP协同处理系统设计之: FPGA与DSP的通信接口设计

时间:06-05 来源:互联网 点击:

模块。

这些模块都是完全同步、真正的双端存储器。用户可独立地从每个端口读出或向每个端口写入(但同一地址不能同时进行读和写)。另外,每个端口都有一个独立的时钟,并且对每个端口的数据宽度都可以独立进行配置。如图11.6所示为双端RAM模块的框图。

由FPGA逻辑和一批BlockRAM组成的FIFO取决于所构建的FIFO要求的宽度和深度。FIFO可使用XilinxCOREGenerator™工具构建,或者可以用HDL手动组合。

使用COREGenerator工具构建FIFO具有一定优势,即设计可以达到并实现很高的性能指标。按照设计规范用HDL构建的设计则可赋予设计人员完全的设计自由。

3.FPGA与DSP的EMIF连接

FPGA的灵活性使我们可以将其用做具备可选择总线宽度(8位~64位)的各类存储器而创建不同的设计。通过接口设计,可将FPGA用做同步或异步标准存储器,或同步或异步FIFO。通过接口设计,可将FPGA以同步或异步的方式连接到EMIF。

在同步模式中,ECLKOUTx时钟用于驱动FPGA接口逻辑。此时钟甚至可以驱动整个FPGA。FPGA的逻辑功能、专用乘法器、PPC405或MicroBlaze™处理器等使其具备了强大的处理功能。这样,FPGA就可以用做协处理器或高速数据处理和传输器件。

FPGA的存储器容量小于TMSC64x类型DSP的寻址空间。FPGA存储器必须使用FPGABlockRAM来实现。上述TMSC64x到FPGA的接口为FIFO结构,可以使用BlackRAM资源来实现。

FIFO接口可使用标准的TMSC64xEMIFFIFO接口机制。如表11.3所示为EMIF信号的总结。

表11.3 EMIF与FPGA的接口信号

信号名称

方向

CE

DSP输出

AOE

DSP输出

AWE

DSP输出

ARE

DSP输出

INTx

DSP输入

INTy

DSP输入

INTz

DSP输入

ED[63:0]

DSP双向

FIFO要求连续地读时钟和连续地写时钟。这些时钟由ARE和AWE信号生成,使用FPGA的本地时钟控制功能进行布线。

DSP具有3.3V的接口逻辑,所以用于连接到EMIF的I/O组(bank)必须指定为3.3VVCCIO。如果无法指定,就必须使用电平移位器件。这一器件可为两个器件间的信号通路引入额外的时间。

4.FIFO接口的设计实例

本设计使用了标准的EMIFFIFO设置。如图11.7所示为用于Xilinx公司的Virtex-IIPro和Spartan-3器件的设计示例。

图11.7基于FIFO的EMIF接口实例

数据组芯片使能信号(Cex)与异步输出使能(AOE)一起,用于为设计的写或读FIFO部分生成使能信号。此信号还用于为数据多路复用器和标志选择逻辑生成使能信号。

FIFO的读写时钟通过本地时钟布线直接布线到FIFO时钟输入。

FIFO中使用的RAMB16组件由于沿着与EMIF相连接的I/O块进行排列,显著改善了时序。当BlockRAM组件的列的大小与使用的I/O的数量相同时,即可构建快速的矩形接口。

本设计使用常规的FIFO标志输出。要对标志逻辑施加额外控制,无论是针对DSP端还是FPGA端,可使用写计数器和读计数器输出。

信号AINIT(图11.7中未显示)强制所有标志为高有效状态。AINIT发出后,在第一个WR_CLK上,FULL和ALMOST_FULL标志变为无效,呈低状态。对于在首个RD_CLK边沿上的EMPTY和ALMOST_EMPTY标记,也会发生同样情况。

ALMOST_EMPTY和ALMOST_FULL标志表明只剩下了一个FIFO位置。使用WR_COUNT和RD_COUNT输出,可以构建用户定义的FIFO标志。这两个计数器的值都不反映FIFO内容(地址)的准确位置。FIFO的两个端口(时钟域)都存在时钟延迟,长度为一个时钟周期。

输出WR_COUNT和RD_COUNT为被延迟的内部FIFO高位地址计数器。为输出选择两个比特,即可将FIFO的位置确定到总尺寸的四分之一(如下面计数器解码示例中所示)。

计数器越宽,位置就能越精细。下面是计数器解码示例。

·COUNT[1:0]=0b00表明FIFO小于1/4满或1/4空。

·COUNT[1:0]=0b01表明FIFO在1/4和1/2满之间或1/4和1/2空之间。

·COUNT[1:0]=0b10表明FIFO在1/2和3/4满之间或1/2和3/4空之间。

·COUNT[1:0]=0b11表明FIFO大于3/4满或3/4空。

DSP对不同标志的反应取决于FPGA中读写FIFO的状态。

11.3.2基于TMS320系列DSP的主机接口(HPI)设计

1.HPI接口简介

HPI接口是一种数据宽度为16位的并行端口(C64xx系列DSP中,HPI口的数据宽度达到32位)。通过HPI口,主机可以直接对CPU的存储器空间进行操作。

在C621x、C671x系列DSP中,没有留出专门的EDMA通道来执行HPI口的访问操作,而是直接将HPI口连接到内部的地址产生硬件上,因而提高了对内部存储空间的访问速度。

HPI口内部加入了两个8级深度的读写缓冲,可以执行地址自增的读写操作,提高读写操作的吞吐量。HPI口为内部CPU提供了标准32位的数据接口,同时为外部主机也提供了一个经济的16位接口,所以对外部主机而言,每

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top