基于VerilogHDL描述的10M/100Mbps以太网卡
模块的测试
基于VerilogHDL描述的10M,100Mbps以
太网卡设计模块的测试方案
电子工程计算机应用Vo1.29No.12003
基于VerilogHDL描述的lOM/lOOMbps
以太网卡设计模块的测试方案
TestingSchemeabout10M/100MbpsEthernetCardDesignModule
BasedonVerilogHDLDescription
华中科技大学图像信息处理与智能控制重点实验室(武汉430074)赵江华吴建军
华q-科技大学电子科学与技术系(武汉43007-4)邹雪城邹连英
武汉群茂科技公司(武汉430073)何莹
【摘要】利用Verilog语言的特点,搭建测试平台,能够灵活地验证设计模块.本文提出了一种
有效进行功能验证的方法,从而保证芯片在功能上的有效性和正确性.
关键词:Verilog语言,测试台.行为级,以太网
[Abstract]Thetestingschemeispresentedtoneatlyverifythefunctionofdesignmoduleby
constructingtestbenchandusingVerilogHDL.Toensurethefunctionandvalidity,aneffective
methodforverificationonfunctionalitYisdescribed.
Keywords:Veriloglanguage.testbench.behaviorlevel.Ethernetprotocol
1引言
Verilog语言为数字系统设计人员提供了一种在
广泛抽象层次上描述数字系统的方式,同时,为计算机
辅助设计工具在工程设计中的应用提供了方法.该语
言支持早期的行为结构设计概念,以及其后层次化结
构设计的实现.在设计过程中.进行逻辑结构部分设计
时可以将行为结构和层次化结构混合起来.为确认正
确性可以将描述进行模拟,也提供一些用于自动设计
的综合工具.Verilog语言为设计者进行大型复杂数字
系统设计提供了途径.
在写出Verilog
描述时,通常采用测
试台的方法来组织
描述.这种思想来源
于工程师的工作台,
把要设计的系统连
图l测试台结构图
接到一个测试生成器上,测试生成器在被控制的时间
间隔内提供输入并监视输出.在这个模块内部还有两
个模块,一个
示要设计的系统,另一个表示测试生成
器和监视器,如图l所示.
2测试系统总体结构
本系统主要是对803(10M/100Mbps以太网
RTL代码)芯片设计进行测试,以完成对该芯片前端
的仿真及验证工作.
803芯片为三合一的芯片,它将物理层(PHY),数
据链路层的下层(媒介访问控制层MAC),直接存储
收稿日期:2OO2—11—13
?6?
器访问(DMA)(包括周边器件互连总线接口(PCI
Interface))三者结合在一块芯片上.其中,PHY层将
数据转化为一位一位比特流的格式发送到局域网上,
而MAC主要是作为数据链路层的主要模块(即底层
模块),其功能在于实现CSMA/cD(802.3)协议,
DMA接口部分主要用于实现网卡芯片与主机端进行
数据通讯的功能.它的结构如图2所示.
对测试结构,采用两
种系统仿真环境,其系统
总体结构如下所述:
(1)用外围的介质独
接口模块!.
尊图2三合一芯片结构试-心44~斤II_所
M
具
I
803备的以太.
网瑰能(如图3所示).
DalalnTXEN
AdrOTXD
PCI
MemportBridge803MlI
【nitialPacket
DataOutRXEN
RXD
S9tup
time
Hold
time
Packet
length
图3测试系统结构一
(2)用另一个网卡IP核802一
ip模块仿真803
以太网芯片的功能的模型(如图4所示).
图3和图4中的MII,Memport(存储器模块),
赵江华,等:基于VerilogHDL描述的10M/100Mbps聂网卡设计模块的测试方案
图4测试系统结构二
PciBr(PCI桥模块)这三个模块都是用Verilog语
言描述的,即,MII是对以太网协议CSMA/CD(802.3
协议)中的MII层的功能进行模拟;PciBr是对PCI
总线桥的功能进行模拟;Memport是对主机内存进行
模拟.这三个模块都是对各自模拟的功能进行行为级
的描述.图中802部分是已经流片过的数字部分,但功
能比803实现的功能要少.此外,803主要是为了做成
三合-一的片子而进行的设计,而802只是单独地作为
数字部分而流片实现的.
上面两种仿真测试环境的改变主要是在我们做的
测试台部分进行的.针对不同的环境调用不同的环境
配置文件.两种测试模式功能上的改变,主要是通过
803RTI代码中引出的专门用于测试的端口输入值而
实现的.即,通过改变这些端口的值进入不同的调试模
式.具体如表l所示.
表1测试功能控制表
表l中,4个是关键测试模式:MII模式,PHY模
式,FIF0模式,Normal模式.
(1)在MII模式下,PHY部分被忽略掉,数据包
从PCI传到MII,或者从MII传到PCI,在这种模式下
803芯片中的MII是用一些芯片的闲置引脚相连的;
(2)FIFO模式的设置用于测试内部异步静态存
储器的性能;
(3)在PHY模式下,PHY部分应该从MAC层
断开,PHY中的MII与一些存储器的闲置引脚相连.
以这种方式.通过这些引脚,我们可以将数据包发送给
内部的PHY,数据在PHY循环一周后从其另一端接
收数据,以测试其功能;
(4)Normal模式意味着803芯片运行在正常模
式下,数据包将会从双绞线经过PHY,MAC,DMA中
的异步静态存储器,最后到达PCI总线上,反方向类
似
3系统设计思想
为了更好地检测803芯片设计部分完成的功能是
否符合CSMA/CD(带冲突检测的载波侦听多路访问)
协议,可采用前面给出的两种系统结构.这两种系统结
构主要包括三大模块:Memport,Pci—Br和MII.
MII模块:803芯片完成的是CSMA/CD分层协
议的介质访问控制子层(MAC)的功能,它与外部的接
口信号也是按照分层协议设置的.协议中的MII就是
实现MAC与物理层相连的接口部分.该MII模块主
要是用Verilog语言的行为级部分子集对协议中的
MII和物理层进行建模,模拟协议规定的MII的功能.
该模块与MAC的接口信号包括Tx—ER,TXD~3:
0>,TXEN,TXCIK,COL,RXD<3:0>,RX
EX,RXCIK,CRS,RXDV等标准输出输入信
号,其余信号都是输入信号(Input),包括PktLength
(数据包长),InitData(数据包初始数据)-Pkt—
Num
(包序号),HoldTime(信号保持时间),SetupTime(信
号建立时间)等控制信号.通过对这些控制信号的控制
(取不同的值0或者1),在MII模块内部产生大小不
同的数据包,发送给MAC层,即803芯片,然后在Pci
Br模块与803芯片的接口处检测是否收到了数据.
PciBr模块:按照PCI协议对PCI桥进行建模,
模拟PCI桥的功能.它支持2个主设备,2个存储器端
口,每个存储器端口都可以当作主设备.该模块在803
芯片和存储器之间提供了一个仲裁的通道.
Memport模块:对站点的存储器的行为进行建
模,存储从803芯片传来的数据,以及生成符合以太网
CSMA/CD协议的数据包,并发送给803.该模块与
PciBr模块的接口信号包括DataIn0,DataOutO,
Adr0,nRdBE0等接口信号,其余信号都是输入信
号BufSize,DESNum,TlstBufPtr,RlstBufPtr等控制
信号.通过对这些控制信号的控制,在Memport模块
内部产生大小不同的数据包,发送给PciBr模块,
在803芯片与MII模块的接口处检测是否收到了从
Memport发送来的数据.
图5芯片发送功能仿真测试图
4系统仿真与验证
本设计在Modelsim5.4软件操作平台上编译后
进行时序仿真.其部分仿真波形如图5所示,图中仿
(下转第l0页)
?7?
电子工程师通信技术与设备Vo1.29No.12003
2.2软件实现
对于上位PC机来说,设定定时中断每隔
20ms通过串行通讯口COMl向下位DSP发送
指令.如果发送的是
下位机发送数据的指
令.则等待数据上传结束,对数据进行校验,如果
校验出错.则发送重发指令,继续等待数据上传.
反复3次,如果还是出错,显示通讯失败.退出中
断.下位DSP接收数据采用查询的方式,它对接
收的数据进行校验.如果校验错误,置接收状态
数为假.DSP的数据发送则由上位机控制,发送
固定长度的数据(包括实时数据以及状态数据.
长度7字节),数据末尾加入校验数,实现与上位
机多机串行通讯.当上位机读出下位DSP上次接
收状态出错,则再次重复发送上次的指令.上位
机可以采用VisualC++,下位DSP可以采用C
语言与汇编语言混合编程.这样实现起来方便.
且效率较高.图4分别给出上位机的定时中断与
下位DSP接收数据的流程图.
3结束语
SCI方法实现成本较低,只需一块电平逻辑
转换芯片及一根串行通信线,就实现了
TM$320LF2407与PC多机串行通信.虽然禁止
了奇偶位,但由于采用了基于奇偶校验的校验数
方法,通过实际运行,测得其误码率仍旧在要求
范围内,实现了高速可靠通讯,满足了实时通讯
要求.但也有一定局限性,比如说:由于RS一232
协议的限制,通讯距离只有大约15m,没有冲突
检测与仲裁机制,只有采用PC机对总线访问进
行控制,这样就降低了PC的使用效率以及总线
的使用效率.对于这些问题,在以后的研究中可
下位DSP接收数据
上位Pc定时中断图4部分软件流程图
以进一步解决.如,可以采用RS一485协议,增加通讯
距离,采用2407A上备有的CAN控制器,通过CAN
总线来解决,但实现中也存在一些不足.总的说来,
SCI方法实现的多机通讯是一种上接第7页)和发送使能信号(TXEN)分别为0和1的条件
下,按
真了发送过程中的一种情况.首先,在一个PCI交易照25MHz的网络时钟频率将数据从
TXD<3:0>送
周期,将存储器模块(Memport)产生的数据端口出.最后,通过各种发送和接收过程的仿真,完
成了对
(Dataln0)的值送到Pci—
BF的数据端口(Dataln0),803芯片的仿真与验证,确保了其功能上的有效性.
再由PciBr模块根据PCI总线交易的协议,在n,....
FRAME,nIRDY.nTRDY有效的条件下,按照爹考又献
PCI总线的33MHz的交易时钟将数据1DonaldET.PhilipRM.硬件描述语言Verilog.刘明业.
(16’d673654309)传到AD线上.从而传到803模块等译.第4版.北京:清华大学出版社,2001
中.可以看出.在网络上没有冲突(COL为0)的情况2JanMR?数字集成电路设计透视?北京:
清华大学出版社,
下.侦听到网络空闲时,并且在发送出错信号(TXER)_
?lO?