本站小编为你精心准备了FPGA接口设计研究参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1EMIF16接口异步通信模式
根据控制信号的特性,EMIF16在异步通信时有三种模式可选,分别是写触发模式(WEmode)、片选触发模式(CEmode)与外部等待模式(Extend-edWaitmode)。其中,写触发模式默认通过驱动的3通道,其对应的地址空间为0x7C000000-0x7FFFFFFF,且不能伴随其他模式一同使用。片选触发模式具备较强灵活性,能够适用于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.8VLVCMOS,根据系统需求,需转换成3.3VLVTTL以及最终的TTL电平模式,而作为中转站的fpga则需兼具1.8VLVCMOS电平方式与3.3VLVTTL电平方式,最终转换成系统需求的TTL电平。系统框图如图4所示。设计中还需考虑系统的速度匹配:8核DSP外部输入的CORE_CLK时钟频率为100MHz,经设置DSP内部锁相环,将TMS320C6678的核心工作频率倍频至1GHz,EMIF16的工作频率为主频的1/6,即166.67MHz。本设计选用EMIF16的“外部等待”模式与外部通信,图2~3中的setup、strobe、hold以及ExtendedDuetoEM_WAIT均可通过Async1-4ConfigRegisters寄存器进行设置来配合与FPGA的通信,同时根据图2的“14”与图3的“28”可知,图4中FPGA输出的等待信号建立周期在(4E+3)ns即27ns内,即可满足产品设计要求。本设计选用了ACTEL公司的25万门FPGAA3P250进行接口的设计与实现。A3P250是AC-TEL公司的Proasic3flash系列FPGA,由于片内自带的flash功能,能够上电即行,为设计带来很大方便。而A3P250的最高运行频率为350MHz,在系统性能方面,能够满足使用要求;同时A3P250具备1.8V、2.5V、3.3V等LVCMOS、LVTTL电平方式,通过设置4个BANK电源,可以实现不同电平方式。能够满足与TMS320C6678的LVCOMS_1.8V的通信连接。具体系统连接方式见图4。
3TMS320C6678的EMIF16模块与FPGA的接口设计
3.1硬件设计本设计选用了EMIF16的CS2区与外部进行通信,CS2所对应的外部地址空间为0x780000000x7BFFFFFF,根据系统需求,该设计所需的外部空间为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.8VLVCMOS电平特性,对A3P250的4个BANK分两组进行供电,BANK0与BANK3为一组,BANK1与BANK2为一组,供电的具体分组原理如图5所示。
3.2软件设计软件设计主要是EMIF16的初始化配置软件设计。EMIF16模块的配置寄存器地址空间为0x20C00000-20C000FF共256字节,包含26组寄存器。其中,与本设计相关的寄存器包括版本号与状态寄存器(RCSR)、异步等待周期配置寄存器(AWCCR)以及1~4通道异步配置寄存器(A1-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通道异步配置通道异步配置寄存器为32位,主要完成对通信模式,信号的建立、保持时间以及是否插入等待信号等功能的配置。本设计中选择CE2通道,偏移地址为14H。寄存器具体分配如图7所示。图7中,第31位SS用于设置通信模式(片选模式/非片选模式),本设计选择默认的失能片选模式的方式;第30位EW用于使能外部等待引脚,设置为0x1配置成使能外部引脚状态;第4~29位用于配置异步读、写信号的建立、持续以及保持时间,针对系统要求的1μs外部操作周期,上述周期选择默认态即可满足使用要求;第0~1位用于设置数据总线的工作模式,根据系统需求,设置为0x1,配置数据总线为16位状态。
3.3逻辑设计本设计中,FPGA的内部逻辑采用VHDL硬件编程语言进行设计,采用LiberoIDE工具进行综合与仿真。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接口的开发使用提供了有力的借鉴。
作者:孔石 王春雷 单位:中国空空导弹研究院