找回密码
 注册
关于网站域名变更的通知
查看: 295|回复: 2
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-4 13:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

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

图1  PCI读操作时序

图2 PCI写操作时序

图3   系统总体框图

图4  PCI读时序仿真

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

图5  PCI 写时序仿真

图6  ADC1仿真(一)

图7  ADC2时序仿真


! U2 G" e" M, t# v- J0 NPCI总线支持突发式的数据传输模式,所以在数据周期有字节使能信号与之对应。信号C\BE#[3..0]在数据期表示字节使能。32bit的数据宽度分为4个字节,C\BE#[3..0]信号上低电平的位表示对应字节在这个数据期传送的是有效数据。协议建议,有效字节出现在自然位。3 I* h' M  g) Y( W4 y6 x
UTOPIA2协议接口要求
( Z6 o# R2 `% C2 i0 UUTOPIA2协议定义了一种PHY层和ATM层之间的接口模式。在其level2的补充中允许系统工作频率为33MHz。这样就简化了PCI总线上面ATM层的设计。: j# t3 s% I, h9 w* n6 A. ?
UTOPIA2接口分为发送接口和接收接口。在发送接口处,数据流从ATM层流向PHY层;接收接口处,数据流从PHY层流向ATM层,两个接口都由ATM层控制。发送接口的数据由TXDATA[8..0]传送,TXSOC有效表示正在发送信元的头字节,只有TXENB*有效时PHY层才接收数据。
, @1 C& a! A! r4 qTXFULL*/TXCLAV由PHY层驱动。以字节为单位传输时,TXFULL*有效表示PHY在4个写周期之后将不再接收数据;以信元为单位传输时,TXCLAV无效表示在当前信元发送完成之后PHY将不再接收新的信元。接收接口主要由RXDATA[8..0]、RXENB*和RXEMPTY*/RXCLAV组成,它们之间的逻辑关系和发送接口类似。

设计实现
( q+ c0 y6 B3 V- M. h! [逻辑设计
5 I. p9 E0 h5 }, [' A, g% e. @. F适配卡的数据传输部分的功能是提供PCI接口的数据传输控制,同时实现UTOPIA2接口的数据传输控制,如图3所示。7 C  ~0 ~2 N  J4 F4 @& b- Y; O8 i9 {
设计实现主要包括三个主要部分:内部数据缓存部分、PCI接口数据控制部分和UTOPIA2接口数据控制部分。发送数据在PCI控制部分的控制下送入数据缓存区,又在UTOPIA2控制模块的控制下送入ATM成帧器,通过线路输出;接收数据由ATM成帧器送入数据缓存区,在PCI逻辑控制下读入主处理机。' U/ K9 U2 F/ g# t8 a
两个FIFO组成系统的第一部分,由它们负责对数据的缓存。其中下行FIFO缓存从PC到ATM网络的数据,反向数据由上行FIFO缓存。器件选用IDT公司的IDT72T1895。芯片容量128K,数据宽度9bit,最高工作频率可达225MHz,符合系统要求。这里利用的是其基本的先入先出功能,两端口采取异步工作模式。
# G. Z$ F0 e2 f0 k5 w4 t. gPCI接口逻辑模块是系统的第二部分。它负责与PCI总线上的控制信号交互,同时分别控制下行FIFO的数据写入和上行FIFO 的数据读出。
( q1 C; ^: I2 w因为PCI总线定义的数据宽度是32bit,UTOPIA2总线的数据宽度是8bit,所以需要宽度匹配,使PCI送来的32bit宽度数据以8bit宽度串入缓存,反向流动的数据完成相反的变换。这一过程由该模块中的并/串变换单元完成。并/串变换单元逻辑上由8个74194移位寄存器组成。把32bit宽的PCI数据分为4个字节,每个字节对应位占用一个194,4个字节复用8个194。194的时钟频率是总线频率的4倍,即132MHz,这样才能保证数据不会丢失。& f7 B) ~, v  s$ W# d$ y
UTOPIA2接口逻辑模块是系统的第三部分。它由ADC1和ADC2两个子单元组成。ADC1实现UTOPIA2接口的发送数据逻辑,同时控制数据从下行FIFO读出。ADC2实现UTOPIA2接口的接收数据逻辑,并控制数据写入上行FIFO。* C9 a/ C% N( A* k1 V
时序验证8 a1 M* p' [. ]$ |
数据传输控制的设计环境是Altera公司的MAXPLUSⅡ,器件选用MAX7000E系列的EPM7128ELC84-7。1 U' |9 C9 o: E6 W- }
首先对时序仿真中用到的系统内部信号进行说明:
1 b, H3 E( g( |: ~wen:FIFO写数据端口使能,低电平允许数据写入FIFO。
- r$ T8 k- F% ?! c! Y. ]ren:FIFO读数据端口使能,低电平允许数据读出FIFO。' x) g1 t3 W: f! k
pae:低电平表示FIFO空。
& ?* I$ U2 z- D' n  wpaf:低电平表示FIFO满。: D5 i, y2 c' ~/ Y- m" {
EREN: 所选用的FIFO芯片的输出信号提示。它与数据是完全同步的。4 G: k( q0 f0 |# r2 |7 [
SHUJU:一组辅助信号,模拟数据的输出,255是无效值。- m) e* l0 _* G$ Y& b6 X4 L4 j8 g
count:ADC1内部变量,表示信元已传送的字节数。
7 m' Y, _- ?% `% l4 O5 G(1)PCI接口数据传输部分仿真
% |9 _+ p4 K6 L" t( H4 ?图4是读操作时序仿真图。16ns处是地址期,80ns是第一个数据期。144ns处PDC发现irdy*无效,立即使ren置高(使上行FIFO停止输出)。176ns是最后一个数据期。
9 C7 A; L+ e8 t* x1 Z, b- LPCI总线的写时序仿真见图5。与读时序类似,240ns处是地址期,304ns时是第一个数据期。由于在336ns时下行FIFO满(paf=0),所以最后一个数据期在400ns时刻出现。; Q- ^2 e- L  |# O5 F9 R
从时序图可以看到,PCI接口进行数据传输时,两个FIFO是互斥的,不会出现干扰。
+ g' g) ], ~( g  n(2)UTOPIA2接口时序3 Q. v6 H  F9 p6 s$ B+ k1 |3 G
图6是对数据发送部分的仿真。
4 E0 F: A5 P3 O* |+ \时钟45ns处,ADC1发现TXCLAV有效,此时FIFO可读出,所以置ren为“0”。时钟75ns处FIFO发现这个变化,开始传数,ADC1也在这个时候使TXENB*有效。在时钟285ns处,FIFO通过flag告诉ADC1不能再输出数据,ADC1立即使ren为“1”,但是数据“7”已经上线路,所以TXENB*会一直保持有效,直到下一个时钟上升沿(315ns)。& v, `6 }% f& Z+ y
图7显示了在UTOPIA2接口,ADC2控制信元接收开始和结束的时序关系。2 h5 }  J2 p8 o" o) R
需要说明的是:从时序图可以看到,在UTOPIA2接口设计实现时,所有接收数据的时序器件都应该在系统时钟的下降沿采集数据,比如发送操作中的PHY层设备、接收操作中的上行FIFO。如果它们的时钟是系统时钟取反,则可以统一定义在上升沿采集数据。

结语
. p0 M  {; M- O8 y8 e$ u5 w本文介绍了一个把EDA技术运用到通信领域的一个实例,这个设计利用CPLD实现了PCI控制以及PCI接口至UTOPIA2接口的转换,为高效、低成本地使PC成为ATM网络终端设备奠定了基础。从时序图看,完全符合设计需求。这种利用EDA技术实现ATM网络终端设计简单、成本不高、灵活性强,并且可以很方便地移植到其它可编程器件上,具有较强的实用价值和经济价值。

0 l+ g3 T- ~" F* J

该用户从未签到

2#
发表于 2021-1-4 13:52 | 只看该作者
PCI总线支持突发式的数据传输模式,所以在数据周期有字节使能信号与之对应

该用户从未签到

3#
发表于 2021-1-4 14:35 | 只看该作者
谢谢分享,学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-11 09:09 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表