>
首页 » 技术文章 » PCI总线至UTOPIA接口控制的CPLD设计实现

PCI总线至UTOPIA接口控制的CPLD设计实现

作者:■解放军理工大学通信工程学院 刘日方 聂景楠  时间:2004-11-02 10:53  来源:本站原创

摘 要:本文采用Altera的CPLD实现了PCI总线至UTOPIA接口的逻辑转换控制,为低成本实现ATM终端奠定了基础。
关键词:CPLD ; PCI总线 ; UTOPIA2总线
引言
EDA技术凭借其高速、方便等特点而被广泛应用于通信领域。本文采用Altera的CPLD实现了PCI总线至UTOPIA接口的逻辑转换控制,该设计再配上ATM线路成帧部件即可成为基于个人电脑的ATM终端设备,从而改善因成本较高、市场需求不足等原因而制约ATM网络终端设备发展的局面。虽然目前有许多专用芯片都可完成PCI接口的控制功能,但从节省成本,提高效率,更紧密地与支持UTOPIA2接口的线路芯片相配合考虑,我们将采用可编程逻辑器件设计这一转换控制逻辑。

图1 PCI读操作时序

图2 PCI写操作时序

图3 系统总体框图

图4 PCI读时序仿真

设计需求
PCI接口要求
PCI总线上的基本传输机制是突发分组传输,一个突发分组由一个地址周期和一个(或多个)数据周期组成。PCI支持存储空间和I/O空间的突发传输,它所有的数据传输基本上都是由三条信号线控制的:FRAME#、IRDY#和TRDY#。
PCI总线的读时序如图1所示。当FRAME#信号有效时,读传输开始,在AD[31.. 0]总线上保持有效的地址信号,同时C/BE#[3..0]上包含有效的总线命令。然后主设备停止驱动AD[31..0]总线,置IRDY#为低,表明主设备准备好接收数据。第一个数据节拍产生于第三个时钟周期。第二个时钟周期是总线转换周期,目的是为了避免主设备和从设备因竞争总线发生冲突。当主设备使FRAME#信号无效,表示当前是最后一个数据节拍。在数据节拍里,C/BE#[3..0]总线上为字节允许信号。
DEVSEL#信号和TRDY#信号是由从设备提供的,但必须保证TRDY#信号在DEVSEL#信号之后出现。数据的真正传输是在IRDY#和TRDY#信号同时有效的时钟上升沿进行的,这两个信号中的一个无效表示插入等待周期,此时不进行数据传输。例如在时钟7处,尽管是最后一个数据周期,但由于IRDY#无效,FRAME#不能变为无效,只有在时钟8处IRDY#有效后,FRAME#信号才能撤消。
PCI总线上的写操作与读操作相类似,如图2。FRAME#信号有效表示地址周期的开始。主设备在时钟5处因撤消了IRDY#而插入等待周期,但此时字节使能信号不得延迟发送。从设备在时钟5、时钟6和时钟7插入三个等待周期。AD[31..0]总线在地址周期后没有像读操作那样插入转换周期,这是因为地址和数据都是由主设备发出的。

图5 PCI 写时序仿真

图6 ADC1仿真(一)

图7 ADC2时序仿真


PCI总线支持突发式的数据传输模式,所以在数据周期有字节使能信号与之对应。信号C\BE#[3..0]在数据期表示字节使能。32bit的数据宽度分为4个字节,C\BE#[3..0]信号上低电平的位表示对应字节在这个数据期传送的是有效数据。协议建议,有效字节出现在自然位。
UTOPIA2协议接口要求
UTOPIA2协议定义了一种PHY层和ATM层之间的接口模式。在其level2的补充中允许系统工作频率为33MHz。这样就简化了PCI总线上面ATM层的设计。
UTOPIA2接口分为发送接口和接收接口。在发送接口处,数据流从ATM层流向PHY层;接收接口处,数据流从PHY层流向ATM层,两个接口都由ATM层控制。发送接口的数据由TXDATA[8..0]传送,TXSOC有效表示正在发送信元的头字节,只有TXENB*有效时PHY层才接收数据。
TXFULL*/TXCLAV由PHY层驱动。以字节为单位传输时,TXFULL*有效表示PHY在4个写周期之后将不再接收数据;以信元为单位传输时,TXCLAV无效表示在当前信元发送完成之后PHY将不再接收新的信元。接收接口主要由RXDATA[8..0]、RXENB*和RXEMPTY*/RXCLAV组成,它们之间的逻辑关系和发送接口类似。

设计实现
逻辑设计
适配卡的数据传输部分的功能是提供PCI接口的数据传输控制,同时实现UTOPIA2接口的数据传输控制,如图3所示。
设计实现主要包括三个主要部分:内部数据缓存部分、PCI接口数据控制部分和UTOPIA2接口数据控制部分。发送数据在PCI控制部分的控制下送入数据缓存区,又在UTOPIA2控制模块的控制下送入ATM成帧器,通过线路输出;接收数据由ATM成帧器送入数据缓存区,在PCI逻辑控制下读入主处理机。
两个FIFO组成系统的第一部分,由它们负责对数据的缓存。其中下行FIFO缓存从PC到ATM网络的数据,反向数据由上行FIFO缓存。器件选用IDT公司的IDT72T1895。芯片容量128K,数据宽度9bit,最高工作频率可达225MHz,符合系统要求。这里利用的是其基本的先入先出功能,两端口采取异步工作模式。
PCI接口逻辑模块是系统的第二部分。它负责与PCI总线上的控制信号交互,同时分别控制下行FIFO的数据写入和上行FIFO 的数据读出。
因为PCI总线定义的数据宽度是32bit,UTOPIA2总线的数据宽度是8bit,所以需要宽度匹配,使PCI送来的32bit宽度数据以8bit宽度串入缓存,反向流动的数据完成相反的变换。这一过程由该模块中的并/串变换单元完成。并/串变换单元逻辑上由8个74194移位寄存器组成。把32bit宽的PCI数据分为4个字节,每个字节对应位占用一个194,4个字节复用8个194。194的时钟频率是总线频率的4倍,即132MHz,这样才能保证数据不会丢失。
UTOPIA2接口逻辑模块是系统的第三部分。它由ADC1和ADC2两个子单元组成。ADC1实现UTOPIA2接口的发送数据逻辑,同时控制数据从下行FIFO读出。ADC2实现UTOPIA2接口的接收数据逻辑,并控制数据写入上行FIFO。
时序验证
数据传输控制的设计环境是Altera公司的MAXPLUSⅡ,器件选用MAX7000E系列的EPM7128ELC84-7。
首先对时序仿真中用到的系统内部信号进行说明:
wen:FIFO写数据端口使能,低电平允许数据写入FIFO。
ren:FIFO读数据端口使能,低电平允许数据读出FIFO。
pae:低电平表示FIFO空。
paf:低电平表示FIFO满。
EREN: 所选用的FIFO芯片的输出信号提示。它与数据是完全同步的。
SHUJU:一组辅助信号,模拟数据的输出,255是无效值。
count:ADC1内部变量,表示信元已传送的字节数。
(1)PCI接口数据传输部分仿真
图4是读操作时序仿真图。16ns处是地址期,80ns是第一个数据期。144ns处PDC发现irdy*无效,立即使ren置高(使上行FIFO停止输出)。176ns是最后一个数据期。
PCI总线的写时序仿真见图5。与读时序类似,240ns处是地址期,304ns时是第一个数据期。由于在336ns时下行FIFO满(paf=0),所以最后一个数据期在400ns时刻出现。
从时序图可以看到,PCI接口进行数据传输时,两个FIFO是互斥的,不会出现干扰。
(2)UTOPIA2接口时序
图6是对数据发送部分的仿真。
时钟45ns处,ADC1发现TXCLAV有效,此时FIFO可读出,所以置ren为“0”。时钟75ns处FIFO发现这个变化,开始传数,ADC1也在这个时候使TXENB*有效。在时钟285ns处,FIFO通过flag告诉ADC1不能再输出数据,ADC1立即使ren为“1”,但是数据“7”已经上线路,所以TXENB*会一直保持有效,直到下一个时钟上升沿(315ns)。
图7显示了在UTOPIA2接口,ADC2控制信元接收开始和结束的时序关系。
需要说明的是:从时序图可以看到,在UTOPIA2接口设计实现时,所有接收数据的时序器件都应该在系统时钟的下降沿采集数据,比如发送操作中的PHY层设备、接收操作中的上行FIFO。如果它们的时钟是系统时钟取反

相关推荐

多元化整合:PCB抄板搭上尧顺科技顺风车

PCB  CPLD  2013-03-12

Altium与Altera发布全新在线元件资源和软件支持

Altium  FPGA  CPLD  2012-02-15

嵌入式系统的实时数据接口扩展

嵌入式系统  CPLD  2011-09-02

基于CPLD的USB总线的隔离接口实现

CPLD  USB总线  2011-08-17

基于MAX6675多路温度采集系统设计与实现

温度采集  MAX6675  CPLD  2011-07-07

基于CPLD和嵌入式系统的高速数据采集系统

数据采集  CPLD  嵌入式系统  2011-02-17
在线研讨会
焦点