基于EMIF16模块的TMS320C6678与FPGA接口设计与实现
作者:孔石 王春雷
来源:《航空兵器》2015年第01期
摘要:TMS320C6678是TT公司的一款高性能的基于KeyStone架构的超长指令字(VLIW)芯片,片内有8个内核,外设丰富的高速接口。为充分应用TMS320C6678的运算能力,扩展其引脚资源,丰富其与外部接口之间的通信方法,针对其EMIF16高速模块的特点,通过对FPGA的硬件编程设计,使EMIF16通过FPGA实现与外部设备的通信,为多核DSP接口的开发使用提供借鉴。
关键词:TMS320C6678;接口设计;FPGA;EMIF16 中图分类号:TN911.7;TJ765 文献标识码:A
文章编号:1673-5048(2015)01-0035-04 0 引言
目前,DSP技术已广泛用于信号处理、通信和雷达等领域,TMS320C6678 DSP是TI公司的一款基于KeyStone架构高性能的超长指令字(VLIW)架构芯片,片内有8个内核,每个核频率为1.25GHz,单核每秒高达40GB MAC定点运算和20GBFLOP浮点运算能力,工作速度可达10GHz,适合于雷达信号处理以及对定浮点运算能力及实时性有较高要求的超高性能计算应用。
TMS320C6678的片内外设有GPIO、PCIe、EMIF16、I2C、UART、SRIO总线等接口。这些接口通过片内的高速互联总线来进行片内外的数据交换。其中EMIF16(External Memory Interface)接口是一种高速并行接口,其设计初衷是实现DSP与不同类型的外部扩展存储器(如SDRAM,FLASH等)之间的高速连接。为了更充分地应用TMS320C6678的运算能力,扩展其引脚资源,常用EMIF16接口连接FPGA,本文通过FPGA与多种外部设备相连,使FPGA成为了一个中转站,各种数字芯片的数据都可通过FPGA传输至TMS320C6678。 1 TMS320C6678的EMIF16模块特征
EMIF16模块能够与ASRM、NOAR FLASH、NAND FLASH进行无缝链接。设计时,可以通过EMIF16中的4个片选信号来完成四个地址区域共计256MB的片外空间访问,其支持8bit和16bit两种数据宽度,并可以通过编程来调整接口访问的时序;此外,设计中还可以通
龙源期刊网 http://www.qikan.com.cn
过EMIF16接口实现程序的引导加载。但TMS320C6678的EMIF16接口不支持与DDR1 SDRAM,SDR SDRAM以及Mobile SDR的无缝链接。 1.1EMIF16信号特性
EMIF16的信号有地址总线、数据总线与控制总线三大类总线,相应的引脚功能如图1所示。
图1中各个信号功能描述如下:
EMIFD[15:0]:EMIF16的16位数据总线,用于对外部数据的读写; EMIFA[23:0]:EMIF16的24位地址总线,用于对片外地址的访问:
/EMIFCE0:EMIF16片外0区的片选信号,低电平有效,对应的地址空间为0x70000000-0x73FFFFFF;
/EMIFCE1:EMIF16片外1区的片选信号,低电平有效,对应的地址空间为0x74000000-0x77FFFFFF;
/EMIFCE2:EMIF16片外2区的片选信号,低电平有效,对应的地址空间为0x78000000-0x7BFFFFFF;
/EMIFCE3:EMIF16片外3区的片选信号,低电平有效,对应的地址空间为0x7C000000-0x7FFFFFFF;
/EMIFBE[1:0]:EMIF16的字节使能信号,是对16位数据总线的高低8位信号操作时的使能信号:
/EMIFWE:EMIF16的写使能信号,写操作时低有效; /EMIFOE:EMIF16的输出使能信号,读操作时低有效:
EMIFWAIT[1:0]:EMIF16等待信号,在读写操作时插入异步等待周期; EMIFRnW:EMIF16读写使能信号,在对片外的读写操作时均为低有效。 1.2EMIF16接口异步通信模式
根据控制信号的特性,EMIF16在异步通信时有三种模式可选,分别是写触发模式(WE mode)、片选触发模式(CE mode)与外部等待模式(Extend-ed Wait mode)。其中,写触发模式默认通过驱动的3通道,其对应的地址空间为0x7C000000-0x7FFFFFFF,且不能伴随其他
龙源期刊网 http://www.qikan.com.cn
模式一同使用。片选触发模式具备较强灵活性,能够适用于4个存取片区。外部等待模式允许外部设备灵活插入异步硬件等待时间,本设计中采用了外部等待模式,具体读写时序如图2~3所示。
图2中,EM_*即对应1.1中提及的EMIF*信号,“14”代表等待信号EM_WAIT的建立时间,即EM_WAIT必须在/EM_OE跳高前(4E+3)ns内有效,才能正常插入外部等待;“11”代表外部等待的延迟时间,即EM_WAIT无效后/EM_OE的有效延迟时间,最大不超过(4E+3)ns;“2”代表EM_WAIT有效与无效时间最短时间为2E;其中E代表EMIF16的一个时钟周期。
图3中,EM_*同样对应1.1中提及的EMIF*信号,“28”代表等待信号EM_WAIT的建立时间,即EM_WAIT必须在/EM_WE跳高前(4E+3)ns内有效,才能正常插入外部等待;“25”代表外部等待的延迟时间,即EM_WAIT无效后/EM_WE的有效延迟时间,最大不超过(4E+3)ns;“2”代表EM_WAIT有效与无效时间最短时间为2E;其中E代表EMIF16的一个时钟周期。 2 系统设计框架
EMIF16接口的电平方式均为1.8V LVCMOS,根据系统需求,需转换成3.3V LVTTL以及最终的TTL电平模式,而作为中转站的FPGA则需兼具1.8V LVCMOS电平方式与3.3V LVTTL电平方式,最终转换成系统需求的TTL电平。系统框图如图4所示。 设计中还需考虑系统的速度匹配:8核DSP外部输入的CORE_CLK时钟频率为100MHz,经设置DSP内部锁相环,将TMS320C6678的核心工作频率倍频至1GHz,EMIF16的工作频率为主频的1/6,即166.67MHz。本设计选用EMIF16的“外部等待”模式与外部通信,图2~3中的setup、strobe、hold以及Extended Due to EM_WAIT均可通过Async 1-4 Config Registers寄存器进行设置来配合与FPGA的通信,同时根据图2的“14”与图3的“28”可知,图4中FPGA输出的等待信号建立周期在(4E+3)ns即27ns内,即可满足产品设计要求。
本设计选用了ACTEL公司的25万门FPGA A3P250进行接口的设计与实现。A3P250是AC-TEL公司的Proasic 3 flash系列FPGA,由于片内自带的flash功能,能够上电即行,为设计带来很大方便。而A3P250的最高运行频率为350MHz,在系统性能方面,能够满足使用要求;同时A3P250具备1.8V、2.5V、3.3V等LVCMOS、LVTTL电平方式,通过设置4个BANK电源,可以实现不同电平方式。能够满足与TMS320C6678的LVCOMS_1.8V的通信连接。具体系统连接方式见图4。
3 TMS320C6678的EMIF16模块与FPGA的接口设计 3.1硬件设计
龙源期刊网 http://www.qikan.com.cn
本设计选用了EMIF16的CS2区与外部进行通信,CS2所对应的外部地址空间为0x78000000-0x7BFFFFFF,根据系统需求,该设计所需的外部空间为0x78000000-0x7800FFFF,故在设计时需采用控制总线与地址总线联合译码。由图4可以看出,DSP通过软件驱动EMIF16接口的地址总线、数据总线以及控制总线送给FPGA,FPGA通过地址总线与控制总线译码生成后端的EAL(选择信号)、WDH(写信号)、RDH(读信号)以及16位地址总线Addr[15:0]、16位数据总线Data[15:0],同时生成WAIT[1]信号送给DSP完成读写时序的延长等待。FPGA选用50MHz晶振作为系统时钟。
设计中,A3P250需要三种电源,分别为3.3V、1.8V和1.5V,其中3.3V与1.8V为FPGA的I/O供电,1.5V为FPGA的内核供电;采用TI公司的电源管理芯片TPS70348与TPS767D318来完成对FPGA的供电设计;根据EMIF16的1.8V LVCMOS电平特性,对A3P250的4个BANK分两组进行供电,BANK0与BANK3为一组,BANK1与BANK2为一组,供电的具体分组原理如图5所示。 3.2软件设计
软件设计主要是EMIF16的初始化配置软件设计。EMIF16模块的配置寄存器地址空间为0x20C00000-20C000FF共256字节,包含26组寄存器。其中,与本设计相关的寄存器包括版本号与状态寄存器(RCSR)、异步等待周期配置寄存器(AWCCR)以及1~4通道异步配置寄存器(Al-4CR)。
版本号与状态寄存器(RCSR):偏移地址为00H,32位寄存器,其主要作用是反应EMIF16的修订编号与当前工作状态,如指示模块运行在大端/小端模式等。 3.2.1异步等待配置
异步等待周期配置寄存器(AWCCR):偏移地址为04H,32位寄存器,用于配置CE的使用通道、WAIT信号的使用通道以及外部最大等待周期数,具体如图6所示。 设计时主要关注三方面的配置:
选用CE2通道以及WAIT[1]等待,即将图6中CS4_WAIT(20~21位)置为0x1;同时选择WAIT的低电平等待方式,即将图6中WP1(29位)位置为0x0;此外,还要注意最大外部等待周期设置位MAX_EXT_WAIT(0~7位),其上电复位值为0x80,根据相关说明可知,默认情况下外部最长可以插入的等待时长为(MAX_EXT_WAIT+1)×16E=(0x80+1)×16E=12.38μs,本设计中选择默认值满足产品使用要求。
通过上述配置,使外部FPGA通过CE2与地址总线的联合译码,并配合相关时序生成WAIT[1]信号,完成对CE2通道插入外部异步等待1μs的目的。 3.2.2通道异步配置
龙源期刊网 http://www.qikan.com.cn
通道异步配置寄存器为32位,主要完成对通信模式,信号的建立、保持时间以及是否插入等待信号等功能的配置。本设计中选择CE2通道,偏移地址为14H。寄存器具体分配如图7所示。
图7中,第31位SS用于设置通信模式(片选模式/非片选模式),本设计选择默认的失能片选模式的方式;第30位EW用于使能外部等待引脚,设置为0x1配置成使能外部引脚状态;第4~29位用于配置异步读、写信号的建立、持续以及保持时间,针对系统要求的1μs外部操作周期,上述周期选择默认态即可满足使用要求;第0~1位用于设置数据总线的工作模式,根据系统需求,设置为0x1l,配置数据总线为16位状态。 3.3逻辑设计
本设计中,FPGA的内部逻辑采用VHDL硬件编程语言进行设计,采用Libero IDE工具进行综合与仿真。FPGA设计主要分为3个模块:译码模块、控制模块以及总线生成模块。 译码模块的主要任务是根据地址总线以及EMIF16的控制总线,生成后端设备所需的EAL、WDH、RDH信号;控制模块主要根据EMIF16的控制信号以及地址总线,生成WAIT[1]信号送给DSP完成读写时序的插入等待;总线生成模块主要完成后端所需的地址总线与数据总线的生成。需要注意的是在进行FPGA设计时,EMIF16的地址总线的最高位EMIFA[23]要作为DSP地址总线的最低位处理。本设计中选用1μs的外部等待时序。逻辑仿真波形如图8所示。 4 结论
本文对基于TMS320C6678的EMIF16接口进行研究,并通过软件设计与硬件设计相结合的方式,实现了EMIF16模块与FPGA之间的通信。该设计丰富了多核DSP与外部接口之间的通信方法,为多核DSP接口的开发使用提供了有力的借鉴。
龙源期刊网 http://www.qikan.com.cn
龙源期刊网 http://www.qikan.com.cn
龙源期刊网 http://www.qikan.com.cn
因篇幅问题不能全部显示,请点此查看更多更全内容