基于FPGA的PCI接口设计
发布时间:2008/6/3 0:00:00 访问次数:388
摘 要: 介绍一种使用pci宏核逻辑进行的更加简单高效的pci口设计方法。该方法将pci接口和pci用户逻辑集成在一片fpga里,可以对整个逻辑进行仿真调试,大大缩短了开发周期、提高了系统集成度和性能。重点叙述了altera公司提供的32位taget接口宏核pci_t32的原理和结构,分析了时序设计要点,给出了典型应用的逻辑设计框图和注意事项。 关键词:pci总线 接口 现场可编程逻辑阵列 仿真
|
1 pci总线及其接口概述
pci总线是高速同步总线,具有32bit总线宽度,工作频率是33mhz,最大传输率为132mbyte/s,远远大于isa总线5mbyte/s的速率。picmg(pci工业计算机制造商联盟)制定的更加坚固耐用的compact pci总线规范,支持64位总线宽度,66mhz作频率,最大传输率为528mbye/s。基于pc机的高速数据采集系统和各种虚拟仪器,几乎都选择了pci总线。在现代高速通讯、测试等领域的嵌入式应用中,compact pci总线大有超过vme和vxi总线的趋势。pci的高性能、高效率以及与现有标准的兼容性和充裕的发展潜力,是其它总线所不能及的,被计算机界公认为最具高瞻远瞩的局部总线标准。
pci总线接口相对其它总线接口来说是比较复杂的,它不但有着严格的同步时序要求,而且为了实现即插即用和自动配置,pci接口还必须有许多配置寄存器。根据用户设备的性质不同,pci设备分为master(主设备)和target(从设备),因此pci接口类型也就分为master和target两种接口。概括地说,pci接口主要包括pci标准配置寄存器(64字节)、pci 总线逻辑接口、用户设备逻辑接口、数据缓冲区等。
作为一般应用设计工程师,为缩短开发周期,没有必要自己去设计全部的复杂的接口逻辑,甚至可以不必完全理解pci规范的细节,就能进行pci用户设备的设计。目前,市场上有一些专用pci接口芯片,如amcc公司的s5920(target接口)、s5933(master接口)等。使用这些专用pci接口芯片,设计者只需要使用地址线、数据线以及少数几个读写控制信号,就能实现pci总线与pci用户设备之间的连接,类似isa总线接口那么简单方便。
随着fpga (现场可编程逻辑阵列请介绍一下flash的全面管理问题。) 技术的快速发展,万门以上乃至几十万门逻辑阵列的使用越来越普遍,fpga的单片价格也大幅度下降。与专用pci接口芯片相似,很多fpga制造商都提供了pci接口宏核逻辑(pci megacore)。设计者可以将pci用户逻辑与pci megacore集成在一片fpga里,并且可以在顶层通过仿真来验证pci接口以及用户逻辑设计的正确与否,这样可以大幅度提高调试速度,缩短开发周期,提高电路板的集成度和系统的性能。
altera公司提供了多种不同功能的pci megacore,例如:pci _a(带有dma的32位master/target接口),pci_mt64(支持64位的master/target接口),pci_mt32(32位的master/target接口),pci_t64(支持64位的target接口),pci_t32(32位的target接口)等。不同的pci megacore占用的资源是不同的,设计者可以根据pci用户设备的需求来选择。
本文将介绍altera公司提供的最简单的32位pci target接口宏核逻辑pci_t32。重点介绍利用pci_t32进行pci接口设计的方法及应用注意事项,并给出具体设计实例。其它pci megacore的设计方法与此相类似。本文不介绍有关pci规范的细节内容。
|
2 pci_t32 megacore的内部结构及外围信号
pci_t32是altera公司提供的最简单的32位pci target接口宏核逻辑,支持33mhz和66mhz的pci时钟。 pci_t32内部结构包含如下几个模块: pci总线配置寄存器,是符合pci规范2.2版规定的所有配置寄存器。配置寄存器用于识别设备、控制pci总线功能、提供pci总线状态等。 奇偶校验模块,用于对数据、地址、命令等进行奇偶校验。 pci侧target控制模块(pci target control block),用于控制pci_t32(作为target)与pci总线的各种操作。 用户设备侧target控制模块(local target control block),用于控制pci_t32(作为target)与用户逻辑的各种操作。
用户设备侧地址/数据/命令/字节使能模块,接收和输出用户侧的所有地址/数据/命令/字节使能等信号。 pci_t32内部功能模块及周边信号如图1所示。 |
|
左侧pci信号是符合pci规范的标准信号,在这里不多加解释。下面重点介绍右侧用户逻辑接口local信号: l_aci 31 0 ,local侧地址、数据输入信号。 l_cbeni 3 0 ,local侧命令、字节使能输入信号,位定义及时序符合pci规范。 l_dato 31 0 ,local侧数据输出信号。 l_adro 31 0 ,local侧地址输出信号。 l_beno 30 ,local侧字节使能输出信号,位定义及时序符合pci规范。 l_cmdo30,local
摘 要: 介绍一种使用pci宏核逻辑进行的更加简单高效的pci口设计方法。该方法将pci接口和pci用户逻辑集成在一片fpga里,可以对整个逻辑进行仿真调试,大大缩短了开发周期、提高了系统集成度和性能。重点叙述了altera公司提供的32位taget接口宏核pci_t32的原理和结构,分析了时序设计要点,给出了典型应用的逻辑设计框图和注意事项。 关键词:pci总线 接口 现场可编程逻辑阵列 仿真
|
1 pci总线及其接口概述
pci总线是高速同步总线,具有32bit总线宽度,工作频率是33mhz,最大传输率为132mbyte/s,远远大于isa总线5mbyte/s的速率。picmg(pci工业计算机制造商联盟)制定的更加坚固耐用的compact pci总线规范,支持64位总线宽度,66mhz作频率,最大传输率为528mbye/s。基于pc机的高速数据采集系统和各种虚拟仪器,几乎都选择了pci总线。在现代高速通讯、测试等领域的嵌入式应用中,compact pci总线大有超过vme和vxi总线的趋势。pci的高性能、高效率以及与现有标准的兼容性和充裕的发展潜力,是其它总线所不能及的,被计算机界公认为最具高瞻远瞩的局部总线标准。
pci总线接口相对其它总线接口来说是比较复杂的,它不但有着严格的同步时序要求,而且为了实现即插即用和自动配置,pci接口还必须有许多配置寄存器。根据用户设备的性质不同,pci设备分为master(主设备)和target(从设备),因此pci接口类型也就分为master和target两种接口。概括地说,pci接口主要包括pci标准配置寄存器(64字节)、pci 总线逻辑接口、用户设备逻辑接口、数据缓冲区等。
作为一般应用设计工程师,为缩短开发周期,没有必要自己去设计全部的复杂的接口逻辑,甚至可以不必完全理解pci规范的细节,就能进行pci用户设备的设计。目前,市场上有一些专用pci接口芯片,如amcc公司的s5920(target接口)、s5933(master接口)等。使用这些专用pci接口芯片,设计者只需要使用地址线、数据线以及少数几个读写控制信号,就能实现pci总线与pci用户设备之间的连接,类似isa总线接口那么简单方便。
随着fpga (现场可编程逻辑阵列请介绍一下flash的全面管理问题。) 技术的快速发展,万门以上乃至几十万门逻辑阵列的使用越来越普遍,fpga的单片价格也大幅度下降。与专用pci接口芯片相似,很多fpga制造商都提供了pci接口宏核逻辑(pci megacore)。设计者可以将pci用户逻辑与pci megacore集成在一片fpga里,并且可以在顶层通过仿真来验证pci接口以及用户逻辑设计的正确与否,这样可以大幅度提高调试速度,缩短开发周期,提高电路板的集成度和系统的性能。
altera公司提供了多种不同功能的pci megacore,例如:pci _a(带有dma的32位master/target接口),pci_mt64(支持64位的master/target接口),pci_mt32(32位的master/target接口),pci_t64(支持64位的target接口),pci_t32(32位的target接口)等。不同的pci megacore占用的资源是不同的,设计者可以根据pci用户设备的需求来选择。
本文将介绍altera公司提供的最简单的32位pci target接口宏核逻辑pci_t32。重点介绍利用pci_t32进行pci接口设计的方法及应用注意事项,并给出具体设计实例。其它pci megacore的设计方法与此相类似。本文不介绍有关pci规范的细节内容。
|
2 pci_t32 megacore的内部结构及外围信号
pci_t32是altera公司提供的最简单的32位pci target接口宏核逻辑,支持33mhz和66mhz的pci时钟。 pci_t32内部结构包含如下几个模块: pci总线配置寄存器,是符合pci规范2.2版规定的所有配置寄存器。配置寄存器用于识别设备、控制pci总线功能、提供pci总线状态等。 奇偶校验模块,用于对数据、地址、命令等进行奇偶校验。 pci侧target控制模块(pci target control block),用于控制pci_t32(作为target)与pci总线的各种操作。 用户设备侧target控制模块(local target control block),用于控制pci_t32(作为target)与用户逻辑的各种操作。
用户设备侧地址/数据/命令/字节使能模块,接收和输出用户侧的所有地址/数据/命令/字节使能等信号。 pci_t32内部功能模块及周边信号如图1所示。 |
|
左侧pci信号是符合pci规范的标准信号,在这里不多加解释。下面重点介绍右侧用户逻辑接口local信号: l_aci 31 0 ,local侧地址、数据输入信号。 l_cbeni 3 0 ,local侧命令、字节使能输入信号,位定义及时序符合pci规范。 l_dato 31 0 ,local侧数据输出信号。 l_adro 31 0 ,local侧地址输出信号。 l_beno 30 ,local侧字节使能输出信号,位定义及时序符合pci规范。 l_cmdo30,local
热门点击
推荐技术资料
| |