1 导言
跟着FPGA技能的不断发展和EDA东西软件的完善,在FPGA芯片上完成的各种杂乱算法和构建SOPC体系成为研讨的热门。在许多科研和教育展开的试验中,都需求为大规模FPGA芯片供给高速的计算机接口以及各种功用部件模块。目前市场上有不少FPGA试验体系,但因为受方针芯片容量、接口、功用部件模块等方面的约束无法满意科研和教育需求。针对研讨项目以及对参加项目研讨学生训练的需求,咱们规划了一套通用的FPGA试验体系,该试验体系以大规模FPGA芯片为中心,带有通用的计算机接口以及丰厚的板上功用扩展部件,能较好地满意咱们项目研讨的需求,并可用于产品开发的原型验证、IC 前端规划验证,IP核验证以及EDA课程试验教育等,一起也可作为高速多通道逻辑剖析仪运用。
2 试验体系的规划思维
为使试验体系到达通用性的意图,体系上的FPGA芯片应可经过PCI、USB、串行、RJ45(网络)和计算机交流数据,并扩展FLASH、SRAM、SDRAM、JTAG、AS/PS口以及装备芯片等功用部件。为满意学生研讨和试验的需求,咱们把卡上的FPGA剩下IO引脚扩展到一块教育试验用板中,教育试验板带有A/D、D/A、LCD、数码管、发光二极管、时钟体系、键盘、VGA、PS/2、RAM/ROM、单片机等试验功用模块。
图1:FPGA试验体系的全体框图
3 体系的软硬件规划
本试验体系有多种计算机接口,都采用了老练的接口芯片,驱动程序由芯片厂家供给,直接调用其上的接口函数完成计算机和试验体系的数据传输。RS232接口规划顶用一块LTC1386CS芯片完成电平转化后TXD、RXD信号直接连接到FPGA的IO引脚,USB接口芯片用ISP1581BD,PCI桥接芯片用PLX9054,网络接口芯片用LAN91C111,因为这些接口及相关程序的规划办法有许多一起的当地,因而咱们首要介绍PC接口部分中的PCI-FPGA的规划。
3.1 PCI-FPGA硬件规划
PCI-FPGA部分的电源包含3.3V和1.5V两种电压,1.5V(VCORE)用于EP1S20F672的内核电源(VCCINT),除此之外其它电源都由3.3V(VIO)供给。3.3V电源直接从PCI插槽获取,1.5V电源则经过凌特公司的LT1764AEQ-1.5稳压芯片取得。PCI插槽部分的规划首要是如图2所示把对应信号和9054连接好,别的还需留意把PRSNT1#和PRSNT2中的至少一个接地,意图是让主机认出本PCI设备的存在。作业形式用C形式,装备芯片用的SPROM 93CS66,装备信息参照厂家引荐[1]。
3.2 PCI接口软固件及测验成果
9054的SDK(软件开发套件)供给9054的驱动程序和各种9054的接口拜访函数,在此基础上咱们开发了几个运用程序接口函数(调用失利回来0,不然回来非0):
int OpenSGLDMAChannel_0(HANDLE hDevice); //翻开传输通道
int CloseSGLDMAChannel_0(HANDLE hDevice); //封闭传输通道
int SglDma_Transfer( //用Dma方法传输数据
HANDLE hDevice, //设备号
U8 *sendDmaBuffer, //传输缓冲区首地址
U32 LocalAddress, //部分总线首地址
U32 DataLength, //数据块长度
unsigned int direction //0: PC to Card; 1: Card to Pc );
int Single_ReadWrite( //用单字节方法传输数据
HANDLE hDevice,
U8 *pdata,
int datalength,
DWORD localaddress,
unsigned int direcTIon //0: PC to Card; 1: Card to Pc );
9054部分总线中LHOLDA和READY是输入信号(如图3),其他都为输出。当9054向部分总线写时,LHOLD信号由低转高, LHOLDA应由低转高以呼应9054,9054输出ADS为低电平时表明LA上现已呈现有用地址,当READY为低电平时,LD上每个周期传输一个数据。当传输到最后一个数据时9054输出BLAST一个周期的低电平,接着LHOLD变为低电平,等LHOLDA也变低则一次DMA传输完毕。
咱们按以上所述规划并加工了PCI卡,运用FPGA片上的RAM作为输入和输出FIFO,部分总线时钟为50MHz,主机把内存中的数据经过DMA传输方法把数据写入FPGA上的FIFO中。FIFO的深度为1KByte时PCI的传输速度为360Mbps,当FIFO的深度为100Kbytes时,其传输速度到达916Mbps。
4 试验体系的运用
试验体系接口部分研制成功后,首要起以下效果。
4.1 逻辑剖析仪
以9054部分总线调试为例,本试验体系(EP1S20F672C7)可作逻辑剖析仪运用。首先用VHDL按9054部分总线时序规划好传输数据操控器并归纳,接着用QuartusII5.0树立SignalTap文件并设置监测信号及触发条件,编译下载到FPGA中,然后便可进行逻辑剖析。以ADS上升沿作为触发条件,BLAST上升沿作为完毕条件,对地址线LA[31:0]、数据线LD[31:0]、ADS、LW/R、LHOLD、LHOLDA、READY、BLAST等70路数据DMA传输时进行逻辑剖析,其成果如图3所示。
依据归纳成果,作为逻辑剖析仪,本体系支撑最高频率超越220MHz,可对从预留的128个IO口输入的数据进行逻辑剖析,存储深度超越1.6Mbits。除可经过QuartusII5.0供给的SignalTap功用对信号剖析处理外,也能够把从IO口接纳到的数据经过PCI或USB接口传输给主机,然后经过主机编程[3]完成对数据的剖析处理。
4.2 暗码协处理器
本试验体系作为暗码算法协处理器运用的逻辑框图如图4所示。以用3DES对一段长音讯加密为例,主机分别将操控、形式和密钥等数据送到协处理器的指定寄存器中,接着把明文送到FIFO中,然后待协处理器处理好数据后接纳成果。协处理器依据操控、形式等设定,把FIFO中的32位数据转化成分组块,然后发动暗码运算模块,处理完一个分组块后再把成果转化并写到FIFO中,并设置状况寄存器,一直到一切数据处理完毕。
因为遭到PCI接口传输速率的约束,作为协处理器本试验体系的最大处理速度低于460Mbps(数据进和出)。经过对3DES、AES、SHA1等算法的研讨与完成,本试验体系可作为超越400Mbps的协处理器,用于GF(2163)上ECC点乘则可超越3400次/S。
4.3 LEON核的验证
Leon CPU核[4]是揭露源代码的32位RISC嵌入式处理器,彻底完成了SPARC V8指令体系,能够依据用户的需求对其功用进行取舍。该处理器由可归纳的VHDL代码描绘,可在FPGA中完成,而且现已成功流片30次以上。其功能、功耗及配套东西虽比不上MIPS和ARM,但0.85MIPS/MHz的处理速度(Dhrystone2.1测验渠道),对嵌入式Linux, eCos, Thumbpod(java), SnapGear等多种嵌入式操作体系的支撑,免费获取VHDL源代码与其配套的穿插编译东西、主机调试东西以及嵌入式操作体系是其优势地点。
在咱们的试验中Leon2 CPU核运用9830个LE,体系时钟频率到达40MHz以上。
责任编辑:gt