![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
|||||
| 基于IP模块的PCI接口设计及FPGA实现 | |||||
作者:与非网 文章来源:与非网 点击数: 更新时间:2008-3-24 ![]() |
|||||
|
目前国内系统厂家的PCI总线接口一般采用国外的PCI专用芯片,如TUNDRA公司的Qspan、PLX公司9050、INTEL公司的21554等,但是这些专用芯片价格昂贵、功能繁杂、不能灵活配置、不利于系统的升级优化,难于应用。为此,各大FPGA厂商纷纷推出基于各自可编程逻辑器件结构与工艺的PCI IP模块(软核、固核或硬核)。 Xilinx,Altera,Actel及QuickLogic等公司的PCI核在国内都有广泛应用,它们各有特色,总体而言,Xilinx的PCI Core是含有布局布线信息的HDL门级网表格式,便于VHDL方法设计及第三方EDA软件环境下的仿真验证;Altera的PCI Core为AHDL格式,通过ACF文件提供布局布线时的约束,其用户侧的信号数量较少,功能简单,便于实现;Actel及QuickLogic公司的反熔丝结构,使其可编程芯片在速度与性能上有一定的优势,但PCI核的功能则相对较弱。 根据VoIP、CDMA等先进的通讯系统对PCI总线接口的实际需求,我们通过评估比较,决定采用Altera公司的64位66MHz PCI Core,在VERIBEST及MAXPLUSII NT设计平台上,针对目标器件FLEX10K 100E,利用VHDL硬件描述语言,设计了PCI总线到摩托罗拉CPU的FPGA桥接芯片。该芯片介于PCI总线与摩托罗拉CPU之间,提供两种总线间的地址转换,命令译码,数据缓冲与传输,即插即用的配置,为系统的高速数据传输提供无缝的接口。 1. 设计输入 设计输入包括VHDL代码设计及功能仿真。在进行设计之前,先对系统划分功能模块,最顶层例化两个模块:Altera的PCI Core和用户侧逻辑。用户侧逻辑根据功能再进一步细化。VHDL的结构化特点非常便于层次化设计,每个工程师负责完成功能相对独立的各子模块设计仿真,最后进行整体的功能仿真。进行整体功能仿真前,先要提取PCI Core的功能仿真模型,在MAXPLUSⅡ环境下,按照系统要求配置PCI Core的相关参数,然后对其进行编译及布局布线,此时不必产生ACF文件。为能输出用于VERIBEST环境下仿真的VHDL网表,编译时需要选择INTERFACE菜单下VHDL NETLIST WRITER。考虑到综合后可能要作带门级延时的仿真,编译时最好产生SDF标准延时文件,在INTERFACE菜单下VHDL OUTPUT FILE[.VHO](WRITE DELAY CONSTRUCTS TO一栏中)。完成以上关键设置后,通过编译即可得到PCI Core带延时的VHDL网表文件。通过相同的操作可得到用户侧逻辑模块中例化的其他Altera的MegaCore子模块。 用户侧逻辑模块与PCI Core互连时,需要注意一些关键问题。PCI Core支持PCI主/从工作模式,其用户侧主/从模式信号是分开的,在PCI Core处于一种工作模式时,另一种模式的信号必需处于确定的无效态,不能处于悬浮态或高阻态。用户侧逻辑模块内部应避免使用三态信号,为便于控制与调试,应采用状态机设计。对于PCI 时钟与CPU时钟间的交互使用,应采用握手信号实现。 功能仿真在VERIBEST99 FPGA DESIGNVIEW环境下进行。仿真时首先要对PCI Core进行配置访问,配置PCI Core内部配置寄存器的相应位。 2. 设计实现 设计实现包括逻辑综合及布局布线。功能仿真完成后,下一步为用户逻辑的综合。VERIBEST 支持两种 FPGA 综合器;FPGA EXPRESS 和 SYNPLIFY。FPGA EXPRESS操作简单,界面清晰,综合效率好,但其SCHEMATIC VIEW功能较差,所生成的原理图晦涩难懂,不利于深入的时序分析。SYNPLIFY提供了RTL VIEW和TECHNOLOGY VIEW两种原理图,有利于关键路径的寻找和分析,它还提供了许多功能强大的属性参数,但同时也增加了软件使用的复杂性。 VHDL语言中例化的FPGA IP模块(PCI核,双端口RAM等)应该不参与逻辑综合,可以在VHDL源码中加入FPGA EXPRESS的综合开关-RPAGMA SYNTHESIS_OFF或SYPLIFY的综合开关-SYNTHESIS TRANSLATE_OFF实现,也可以将FPGA IP模块的VHDL网表文件从综合文件列表中删除。 逻辑综合时应该分模块进行,找出各子模块内部的关键路径,通过修改设计,优化数据通路,最后进行顶层的综合。顶层综合时最好保留设计层次。对于各模块间的关联信号,由于它们一般经过多级查找表,造成延时较大,应利用流水线技术在这些关键路径上加入适当数量的触发器,减小 时延。软件上的一些设置也有利于提高综合后电路的频率,如状态机采用ONE HOT编码,减小FANOUT数量,屏蔽操作数共享功能等。通过上述方法,我们的设计综合后电路的频率从38MHz提升到63MHz。 综合完成后可生成用于MAXPLUSⅡ环境下布局布线的EDIF文件,如要作门级仿真,也可同时生成带延时的VHDL网表文件。在MAX-PLUSⅡ中调入EDIF文件后,设置ASSIGN菜单下相关参数并指明PCI Core的库路径。编译EDIF文件时要设置EDIF NETLIST READER为SYNOPSYS或SYNPLIFY。第一次布局布线,最好不要加入ACF文件。完成后,按要求生成PCI Core的ACF文件并放在工作目录下,加入自己的约束条件,然后进行第二次布局布线,此时应设置产生用于VERIBEST进行功能验证的VHDL网表文件。布局布线后,进行时间参数分析。我们的设计结果PCI时钟为30MHz,CPU时钟为57MHz。 3. 设计验证 设计验证包括静态时序分析,功能验证及板级验证。静态时序分析用于分析建立/保持时间,时钟到输出时间等时间参数是否满足PCI规范。33MHz、32位的PCI规范要求建立时间小于7ns,保持时间为0ns,时钟到输出时间小于11ns,分析时必需考虑触发器的影响,对关键路径加以细致入微的计算。MAXPLUSⅡ提供了比较好的静态时序分析功能,设计工程师负责设置并分配时间参数,软件计算后给出分析结果,如果不满足要求,可在重新布局布线时加上相关约束条件。时序分析结束后,还需进行功能验证,在VERIBEST环境下对布局布线后生成的VHDL网表仿真,此时应选择OPEN POST_LAYOUT SIMULATOR进入仿真器。VERIBEST会自动生成VHDL格式的端口映射文件,并自动关联SDF文件,用户无需额外设置。此时的功能仿真,调试相对较难,信号间关联关系可通过VHDL网表文件查询。 基于PCI Core的FPGA设计的板级验证可考虑采用Altera公司提供的PCI通用开发板,该板支持Altera所有的PCI MegaCore模块,用户可通过板上的SDRAM,PMC插槽,RS232端口实现用户逻辑与PCI Core的接口,也可以利用板上PROTOTYPE区实现用户逻辑的功能。PCI开发板演示软件可以显示数据传输速率,也可用于调试,配置PCI Core。 基于IP模块的PCI设计为用户在FPGA目标器件上实现PCI接口提供了一种有效的途径,设计工程师可以将主要精力集中于非PCI部分,通过将FPGA厂商提供的IP模块与原理图、状态机及HDL语言等设计方法有机的结合,采用层次化结构,在功能强大的EDA软件环境下,于较短的时间内完成复杂电子系统的设计。 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 大容量串行e-Flash的FPGA配置… 基于 FPGA 的 MIL-STD-1553 … 利用FPGA平台解决接口的总线… 用FPGA实现WCDMA下行扰码 基于FPGA设计航空电子系统 用FPGA实现数字电视条件接收… 32位单精度浮点乘法器的FPGA… 以太网到多路E1适配电路设计… 在嵌入FPGA的IP核8051上实现… 精简的FPGA编程方法 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|