基于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?