关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于IP核的PCI总线接口设计与实现

基于IP核的PCI总线接口设计与实现

——
作者:刘红,李勃,常青,吴鑫山 (北京航空航天大学 电子信息工程学院 北京 100083) 时间:2007-01-26 来源:《电子技术应用》 收藏

pci总线是高性能的32/64位同步总线,具有严格的规范保证数据传输的可靠性,微处理器与高集成度的外围设备提供高速安全的接口,是迄今为止最成功的总线规范之一。

由于pci总线协议非常复杂,目前实现pci总线接口主要是使用两种方式:(1)采用专用接口芯片,如amcc公司的s5933和plx公司的9054、9080。使用接口芯片开发人员可以不考虑pci接口的实现问题,但是在实际应用中通常只用到接口芯片的部分功能,造成了资源的浪费,同时接口芯片占用了板卡上的有限空间,给应用设计带来不便。(2)使用可编程逻辑器件实现pci总线控制器,使用这种方式开发难度大,消耗周期长,系统验证困难,且不具备通用性。 随着ic产业的迅速发展,传统的、基于标准单元的数字ic设计方法已经发展到基于ip(知识产权)复用的soc设计方法,根据实现的硬件描述级的不同,ip核分为软核、硬核和固核。其中,软核是采用可综合的hdl实现的rtl级设计,与具体实现工艺无关,相比于固核和硬核具有较大的灵活性,在fpga中定制pci接口软核实现pci接口控制具有明显的优势:可以在单片fpga中同时完成pci接口和用户逻辑的设计,缩减成本,提高集成度,减少资源浪费,实现32/64位的pci、pci-x及兼容compact pci的pci主设备/目标设备接口,消除pci接口芯片与本地通信的信号线的硬线连接,提高用户逻辑设计的弹性,降低因硬件设计不当造成的损失;统一设计工具和平台,缩短开发周期。

本文应用pci接口控制ip实现了pci多卡测控系统中pci总线到本地总线的转换,实际应用表明,采用此设计方案的pci卡运行稳定可靠。

1 应用背景

本文的应用背景为某一工业测控系统,该系统采用fpga实现测量数据的采集和控制信号的输出,通过定制pci接口ip实现一个32位目标设备的pci总线接口转换。pci核选用altera pci编译器所包括的pei_t32兆核函数,fpga选用altera公司的cyclone系列芯片eplc6q240c8,以配合32位/33mhz的pci接口的i/o标准和速度要求,在硬件设计上,为保证3.3v fpga对pci 2.2、5v总线的兼容性要求,在pci总线接口与fpga引脚间加入总线开关进行电平转换。由于系统应用在工业生产控制场合,因此fpga与外部数据的i/o接口间需要加入光电隔离器件以增量系统的抗干扰能力,系统结构如图1所示。

本文引用地址:https://www.eepw.com.cn/article/21251.htm

2 pci接口兆核函数

altera的pci编译器(pci compiler)提供了使用altera器件实现pci接口设计的完全解决方案,包括4个32/64位、主/从模式pci接口控制器兆核函数(即接口ip)及相关测试平台,通过选择合适的芯片速度,可以满足运行在33mhz或66mhz pci时钟下的时序要求,支持altera的stratix ii、stratix、stratix gx、cyclone、cyclone ii和max ii系列器件,支持pci配置空间读写、内存方式读写和i/o方式读写,支持预先读取模式,支持可参数化的配置寄存器,包括参数化的设备信息、6个可变长度的基址空间和一个扩展rom空间,具有奇偶校验检错,支持pci终止、重试和断开作业及中断操作,并提供灵活的本地端接口,pci_t32兆核函数的32位目标设备控制器,其结构和总线接口信号如图2所示。


在pci总线端,ip核提供32位数据线和目标设备控制信号、中断请求信号及错误报告信号,本地总线端提供32位数据线和地址线、控制信号、中断输入信号和状态表示信号接口。其中,本地端信号l_adi为地址/数据输入,l_adro为地址输出,l_dato为数据输出,l_beno为字节使能输出,l_cmdo为本地命令输出。控制信号lt_abortn、lt_discn和lt_rdyn为本地端输入,分别标志本地设备终止、断开和准确好、lt_framen、lt_ackn和lt_dxfrn为目标传输控制信号,相当于pci总线的frame#、devsel#和trdy#。lt_tsr为目标作业状态寄存器输出。lirqn为中断输入信号。

可以通过pci编译器ip工具台或编辑兆核函数头文件的方式修改pci配置空间信息,本系统gci兆核函数的配置信息如下:

3 本地总线读写状态机
在用户逻辑中,通过总线读写状态机实现内存方式单周期或迸发读写、i/o单周期或迸发读写以及在设备不能完成作业时发起(目标)或响应(主)终止、断开或重试等作业,保证pci作业正确结束,以带迸发模式的内存读写作业为例,作为目标设备的本地总线读写状态转移图如图3所示。

idle为设备空闲状态。

add_latch为地址锁定状态。lt_framen有效表示ip核接到一次pci读写作业并启动本地端做出响应,此时目标设备锁存地址l_adro及命令l_cmdo,并对命令做出解释。l_cmdo的值为6,则进入memory_read状态;为7,则进入ip_ready状态;其他值,则使能lt_discn并进入retry状态。

mem_read为内存读作业状态,lt_ackn有效驱动目标设备将数据放到总线上,如为迸发方式,则lt_rdyn和lt_dxfrn持续有效,驱使目标设备连续将地址相连的数据输出,如目标设备在迸发作业中需延缓迸发作业,则可使lt_rdyn无效来进入等待周期,此时状态机回到add_latch状态,直到目标设备再次准备好,并同时使lt_rdyn有效并输出数据。

retry为设备重试状态,在作业开始,目标设备尚未准备好发送或接收数据,则发起一次重试作业,即在lt_framen有效后使lt_discn有效并等待主设备结束作业。

discn为设备断开状态,在迸发读写左右中,目标设备检测到地址超出有效范围,则发起目标断开作业,在迸发写作业中断,在最后一次有效写数据前一时钟使lt_discn有效,在迸发读作业中,将最后一个数据放在总线上的同时使lt_discn有效。

ip_ready为内存写操作ip核准备传输数据状态。

mem_write为内存写作业状态,在同时使能lt_rdyn后等待lt_ackn和lt_dxfrn有效时读取总线上的数据l_dato,迸发写或加入等待周期的时序与读作业类似。

stat_chech为状态检测;lt_ackn和lt_dxfrn同时无效标志着内存单次/迸发读作业完成,然后检测作业状态寄存器lt_tsr并返回idle状态。

每一次作业开始,都启动计数器,防止操作超时。

使用signaltap ii嵌入式逻辑分析仪实际捕获的pci内存读写作业的pci和本地总线信号时序图如图4所示,采样时钟为pci总线时钟。

4 pci电气特性要求设计
由于目前绝大多数主板采用5v的pci规范,而altera的cyclone系列fpga的i/o口电压只支持3.3v,因此需要在fpga和pci连接器间加入电平转换电路。
实现电平转换的原理是在总线间加入nmos总线开关,实现方式如图5所示。

其中总线开关选用idt公司的qs3861,首先,考虑电平转换的实现方法,当总线选通信号be#使能,总线a的输入电压上升,总线b的电压随之上升,当总线a的电压超过vcc-vt(vt的典型值为1v)时,总线b的电压将被箝位到vcc-vt,而不会继续上升,因此选择vcc位4.3v,则能保证总线b的信号满足3.3v标准。当3.3v总线b驱动总线a时,由于5v pci规范中定义的逻辑高电压是2v-5.5v,因此也能够保证fpga端驱动pci的高电压要求。 其次,验证是否满足pci时序要求,pci2.2协议规定一个时钟周期分为4部分:

t(30ns)=tval+tprop+tsu+tskew

其中:tval为时钟到输出信号有效延迟,tsu为输入建立时间,tpro为最大总线传输时间,tskew为时钟抖动时间。pci 2.2协议规定的保持时间为0。
tprop是由于pci总线采用反射波技术引入的,典型值为10ns,tprop与tskew的和不超过12ns。pci 2.2规范规定33mhz信号的建立时间为7ns,66mhz信号的建立时间为3ns,由qs3861引入的数据传输延迟为0.25ns。但由于所有pci信号都经过总线开关进行电平转换,到达fpga的信号整体只有0.25ns的延迟,因此fpga的建立时间仍然设置为7ns,fpga经过运算输出的信号时序由时钟到信号有效延迟tval所限定。pci 2.2规范规定33mhz时tval最大为11ns,最小为2ns,由于电平转换芯片在双向数据通路的延迟累加,fpga必须包括时钟到信号最大延迟在10.5ns以内。

最后,考虑布局布线因素,在加入总线开关后,要保证从pci连接器到总线开关及总线开关到fpga的所有32位信号线(除中断输入信号、系统信号和jtag信号)的走线长度和不大于1.5英寸、时钟线长度和为2.5±0.1英寸。

fpga中定制ip核实现pci总线到本地总线的转换,能够有效节约pci设备的成本,提高硬件资源利用率,缩短开发时间,目标设备读写状态机对本地总线进行监测,完成设备的内存、i/o读写并提供迸发作业支持,在发生异常状况时,及时发起重试,断开或终止作业,保证pci总线传输正确结束,防止不安全的数据操作出现,为了满足pci电气规范,在硬件设计时需要注意3.3v设备挂接5v总线的电平转换及其带来的时序和布线问题。

网线测试仪相关文章:网线测试仪原理


关键词:

评论


相关推荐

技术专区

关闭