You are on page 1of 101

澇編 離 衫



_  硕士学位论文





基 于 UVM 的 高 速 串 行 S er D e s 验证

作者 姓 名  李 兆 被 

学 校 导师 姓 名 、 职称 宋 建军 副 教授

企 业 导师 姓 名 、 职 称  管 幸福 髙工


学 校 代 码 1 070 1  学 号 1 9 1 1 1 2 1 30 1 

分 类 号 T N4 密 级 公 开

西 安 电 子 科技 大 学

硕士 学位论文

基 于 U V M 的 高 速 串 行 S e rD e 验 证

 s

作者 姓名 ?
. 李兆 祯

领域 : 软件 工程

学 位类 别 : 工程硕 士

学 校 导 师姓名 、 职称 : 宋建军 副 教授

企业 导 师 姓名 、 职称 : 管 幸 福 高 工

学院 : 微 电子 学 院

提交 日 期 : 2022 年 8 


H S e r D e s v e r i fi c a t i o n  b a s e d


h p e e d S e r i a

s l

on UV M

A  t h e s i ss u b m itt e d t o

X ED AN U N VE R S I T Y
1 
  I

i n  p a r t i a l  f u l fi l l m e n t  o f th e  r e q u
 i rem ent s

fo r  t h e  d e g r e e  o f  M as ter

i n  E n g i n e er i n g

By

L i  Z h ao z h e n

S u p e rv i s o r : S o n g  J i a nj u n  T i t l e : A s s o c i a t e  P r o fe s s o r

S u p e rv i s o r :  Gu an X i n
g fu  T i tl e : S en i o rE n g i n e e r

Au gu s t  202 2


西 安 电 子 科技 大 学


学位论 文 独 创 性 ( 或创新性 ) 声明

秉承 学校严谨 的 学风和优 良 的科 学道德 ,


本人声 明 所呈交 的论文是我个人在 导


师指导下进行的研究工作及取得的研究成果 。 尽 我所知 , 除 了 文 中 特别加 以标注和


致谢 中 所罗 列 的 内容 以外 , 论 文 中 不包 含其他人 己 经 发 表或撰 写 过 的 研 究成果 ; 


不 包 含为获得 西 安 电 子科 技 大学或其它 教 育机 构 的 学 位 或 证书 而 使用 过 的 材料 。



我 同 工作 的 同 志对 本研 宄所做 的 任 何 贡献均 己 在 论 文 屮 作 了 明 确 的 说 明 并 表 示 了


谢意 

学位论文若 有不 实 之处 本人承担 切法律责任


, 

本人签 名 :

李兆 彳t  日 期 2:
°
2 ^


l ( 

西 安 电子 科 技 大 学


关 于 论 文使 用 授 权 的 说 明

本 人完全 了 解西 安 电子 科技 大学 有关保 留 和 使用 学位论 文 的 规定 ,


E卩 :
研 究生


在 校攻读 学 位期 间 论文 工 作 的 知 识 产权单 位 属 于 西 安 电 子科技 大 学 。
学 校有权保留

送交论文 的 复 印件 ,
允许查 阅 、 借阅论文 ; 学 校可 以 公 布 论 文 的 全部或部 分 内 容 

允许采用 影 印 、 缩 印 或其它 复制 手 段保存 论 文 。 同 时 本 人保证 ,


获得学位后 结合学


位论文研宄成果撰写 的 文章 , 署 名 单位为西安 电子科技大 学 

保密 的 学 位论文 在 _
年解密 后 适用 本授权 书 

本人签 名 : 4 彳匕 丰 ^导 师 签 名 :

 %A^


日期 :

5  日  期 > : 
认 U  


mm
 

摘要

高速串 行 S e r D e s ( 串 行器 S e r a l i ze r

及解 串 器 De ser i alizer 的简写 ) 以 差 分方式 

通过加 重 均 衡 / , 时 钟 恢 复 等技术实 现高速 通信 , 具有芯片所 需 引 脚少 , 传输 距 离 长




等优 点 , 逐渐取代 了 传统 并行总 线 , 己成 为 高速 大规模 / F P G A/A S I C 不可或缺 的通信


模块 。 S erD e s 芯片 设计研 发过程 中 , 验 证环 节 必 不 可 少 。 通 过验 证 , 可提升芯片 设


计研 发 的 效率 , 降低流片成本 , 提供 质 量保证 。 目 前 S erD e s 验证 主 要采 用 F PGA 


证和 定 向 激励验证等传 统方法 , 不仅 费 时耗力 , 还 存 在 功 能覆 盖 不 全面 的 问 题 。 相对


于 传 统验证 方法 , UV M 验证具有架构完整 、 机制 成熟 、 重用 性 高等优 点 , 是 当 前业

界主 流验证 方法 。
本 课 题 源 于 企业 项 目 , 针对某款 高速 S erD e s 模块 , 对 其开展基 于


UVM 的 验 证 工 作 , 具体为 

1 ) 、 基 于 l Gb / 1 0 G bE t h e rn e t 、 P C Iexp re s s( G E N 3 及 以上 ) 物理层协议 , 研究 了



S erD e s 模块及子 模块 的 功 能特性 ,


其 主 要 功 能模块包括 物 理 编 码 子 层 PC S 、 物 理媒


介 附加 层 PMA 、
高级外 围总 线 AP B 三 个 模 块 ,
分 别 对应编 解 码逻 辑 、 物 理层 电 气 传


输 模块寄 存器读 写 配置功 能 依据 设计 需 求 文档 进 步细 化 PCS 功 能模块 为编


、 。 ,

解 码子 模 块 跨 时 钟 域子 模块 数据 整 形子 模 块 以 及 同 步 子模块 等 模 块 在 此基 础 上
、 、 。 

提取 S erD e s 各模块待测 功 能 点 , 制 定 出 相 应 的 验证计 划 



2 ) 、 基于 UVM 运行 机制 , 提 出 了 针对 S er D e s 结 构 的验证平 台 整体框架 。 其中 



课题所采用 的 自 上而 下 系 统环 境 配置方式 可 使 外 部 顶层 环 境具 备对 平 台 内 嵌套 最 小

 ,

子 模块 的 配置 功 能 进 步 编 写 框架 中 各组件代 码 搭 建 完 成 S e r D e sU V M 验证平 台


。 , 

平 台搭建过程 中 针对 S er D e s 寄存器多 验证维护 易 出 错 的 问 题 本文提 出 种基




, 、 ,

于 py ho
t n 脚 本 的 寄存器组件 自 动 化生 成方 案 , 不仅 简 化 了 组件代码 , 还 可避 免人为


撰写失误 。 针对 S e rD e s 结构复杂 、 验证功 能点 多 的特点 , 本文采用 层 次化 验证 HVP

( H i e r ar c h i c a l l y  Ve r i f c at o n P a n
i i  l ) 流程 反标 功 能 覆盖 率 ,
实 现验证 进程 的 可 视化 , 


少 了 人工干预 ,
有效提高验证效率 

3 ) 、 依 照 验证 需 求编 写 验证 测 试 用 例 ,
采 用 监 视器 、 断 言检测 项 和 比较器等 多 种


验证检 查方式 通过 , V C S  ( Ve r i l o g  C o mp i l e  S i m u l at o n i ) 进行仿真 开展 了 针对 , S erD es

不 同层 次 的 验证 。 对 于难 以 用 记 分板直接 比 对 的 测 试用 例 , 寄存器测 试 、 近端环 回 测




试 测试 替 换场 景 等 用 例 结合相 关子模块波 形进 步 分析验证

、 1 5 8 8 、 , 

最终验证 结果 表 明 , S erD es 各模块功 能覆 盖 率 和 wa v e i


后 的 代码覆 盖 率均 到达


1 00 % 。 验证 了 待测 S erD es 模块的 正确 性与 功 能 的 完 备性 

关键 词 : UVM ,
串 行解 串 器 , PCS ,  P MA ,
层 次 化验 证




A B S TRA C T

AB S T RAC T

H i
gh


pee
d  s e r a l  S e rD e s  ( s k e t c h  o f  s e r a
i i l i z a t o n  S e r a l i z e r  an d  D e s e r a
i i i l i z e r )r e a l i z e s

h gh p e e d  c o mmu n c a o n
 t hro u
g h  ag g r a v a t i o n  a nd  e q u a za t o n  c o c k  r e c o v e r y  a n d


i s t i i l i i

o t he r  t e c hno l o g i e s , w i t h  t h e  a d van t a g e s  o f  e s s  c h p  p n s  a n d  o n g  t r an s m i s s o n

 l i i l i

d i st an c e ,  g r ad u a l l
yr e p ac n g
i l
 t he t r ad i t i ona l
 p ar a l l el  b u s  a n d  h a s  be c o m e  a n


i nd i s
p e n sa
b e  c o mm u n c a t o n  m o d u e  fo r  h g h
l i i l i


p e e d  /  ar g e l

s c a l eFP GA / AS C I . I nt he

S e r D e s  c h p  d e s g n  a n d  d e v e l o p m e n t  p ro c e s s
i i
, 
t h e  ve r f c at o n  i i i l i n k i s  e s s e nt i a l .  T hro u g h

 

ve r i f c at o n
i i
,  i tc a n  m r o v e  t he  e
p i ic
f i e nc y o f c h i pd e s i g na nd d e v e l o
p m e nt , r e d uc et he

c o sto f  fl o wc h i p ,  an d  p r o v i d e  q u a l i t
y  a s s u r an c e .  Atpre s e n t
, 
S e r D e s  v e r f c at o n  m a n y

 i i i i l

ado
p t s  t ra d i t i ona l m e t h o d s  s u c h  a s  F P G A  v e r f c at i o n  an d  d i i i re c t i o na l  i nc ent ve

 i

ver i i c at
f i on , 
w h c h i i sn o to n l y t me i

co nsu m i ng , b u
tal s o ha s  t h e  p r o b l e m  o f n c o mp l e t e

  i

f u n c t o n a l  c o v e r ag e
i .  C o m p ar e d  w it h t rad it i o na l  v e r i fi c a t o n  m e t h o d s i
, 
UVM  ve r f c a t o n

 i i i

h a s  t h e  ad v a nt ag e s  o f c o m p l e t e  a r c h  i t e c t u r e  m at u r e  m e c ha n i s m  an d  h i
, g h r e u s e , w h i ch

i s  t he  m a i n s t r e a m  v e r i fi c at i o n  m e t h o d  i n  t h e  c u r r e n t  i n d u s t r y . Th i s
 p r oj e
cto r i
g na es
t 
 i

r o m  an  e nt e r p r
f se
 p r oj e c t  t o  v e r fi e s  a h i
gh s
p e e d  S e r D e s m o d u e w i t h  U V M  a s


i i l

fo l l o ws 


) B a s e do n l
G b/ l O G b  E t he r
ne tan dP C I E xp re s s( G E N 3  and  a b o v e ) phys ca  ay r
e
 i l l

p r o o co
t l

ii n c t o n a  c h a r a c t e r
t hef i l i st i c so fS e r D esmo d u l ean d  i t s s u b mo d u -

l e s  ar e

stud ied  . T h e  m a n  fu n c t o n a i i l  mo d u l e s nc ud e
p
hy s i c a
i l l c o d n gs u bi

l ay e rP C S , p
hy s c a i 

m e d aad d i i t i o n a  l a y e r  P M A  a n d  a d v a nc e d  p e r p h e r a
l i l  b u s  A P B  C o rr e s po nd n g  . i t 

ca ll a
c o d e c o g ic l
,  p hy s i
y e r  e l e c t r i c a l  t r a n s m i s s o n  mo d u e  r e g i

l i s t e r  r e a d  a n d w r i t e

c o n fi g u r a t i o n f
i i n c t o ns i .  Ac c o r d i ng  t o  t h e  d e s g n  r e q u r e m e nt s i i do c ume n  t

t he

i n c t o n a m o d u
f i i l l e s  o f  P C S  ar e  f u r t h e r  r e f
i n e d i n t o  c o d i n g  s u b m o d u l e , cr o s s

c lo c k

d o m a i n  s u b mo d u l e d a
t a  s h ap n g  s ub m o du l e  a nd  s n c h r o n z e d  m o d u e  O n  t h s b as s


y i l . i i


t e s t e d  i n  e a c h m o d u l e  o f  S e r D e s  a r e  e x t r a c t e d
t h e  f un c t i o n
p o i n t s  o b e

,  a nd  t h e

c o r r e s p o nd i n g  v e r i f i c a t i o n  p l a n  i s  fo r mu l a t e d 


)
B a s e d  o n  t he  U V M  o p e r a t o n  m e c h a n i i s m , 
t he  o v e r a l l  r a m e wo r ko f
f  t he  v e r f c at o n

 i i i

p l a fo r m
t  fo r  S e r D e s  s t r u c t u r e  i s
 p r o po s e d  A m o n g  . t he m ,  t he to p -

d o w n s
ys e
t 

e n v i r o nm e n t  c o n f
i g u r at o n m e t h o d  a d o p t e d  n  t h e  s u bj e c t  c a n  e n a b
i i l e  t h e  e x t e r na 

op e ve l  e n v i r o nm e nt  t o  c o nf
i g u r e  t h e  s ma e s tm o du e  n e s t e d  in  t h e a t fo r m  F u r t h e r

t l l 

p
l l l .

i 


西 安 电子科技大 学 硕士 学 位论文
 

wr i t e  t h e  c o d e  o f  e ac h  c o m
po ne n  n
t r a m e w o r k  a n d b u i l d  t h e  S e r D e s  U V M
 t he  f i 
 ,

v e r i f c a t o n  p a t fo r m  I n  t h e  p r o c e s s  o f p l a t fo r m  c o n s t r u c t i o n
i i l .

 ,  a im in g  a t  t h e  p ro b ems


o  ma n y  S e r D e s  r e g i s t e r s  a n d  e r r o r
of to
p ro n e  v e r fi c at o n  a nd  m a n t e n a n c e  t hi s  p ap e r

 i i i


p r o p o s e s  a n  au o ma t i c  r e g
t i st e rc o mp o n e n t  g e n e r a t o n  s c h e m e  b a s e d  o n  P y t h o n  s c r i p t



wh i c h  no t  o n l
ys mp l if
i e s  t he  c o m p o n e n t  c o d e


b u t  a l s o  a v o d s  hu m a n  w r i t i n i
g  e rr o r s


Acco rd i n g  t o  th e  c h a r ac t e r i st ic s  o f S e r D e s  w i t h  c o mp l e x s t r u c t u r e  a nd  m u l t i
p l 

Ve r i fi c a t i o n  f
i x n c t i o n  p o i nt s  t h ,
i s
 p ap e r ad o p s
t  th e  H V P ( H i e r ar c h i c a l l
y Ve r fi c a t i o n
i 

P a n )  p r o c e s s  t o  s t a nd a r d z e  f u n c t o n
l i i  c o ve r ag e  r e a l i z e  t h e  v i s u a l i zat i o n  o f

 Ve r f c a
i i ti on

pro
ce ss ,  r e d u c e  m a nu a  l i nt e r v e n t i o n ,  an d  e fe c t i ve l y  i m p r o ve  t he  e f
i c ie nc yo f

Ve r i fi c at i o n 


)
Wr it e  v e r i f i c at i o n  te s t  c a s e s  a c c o r d i n
gt o
ve r i i c at
f i o nre
qu i r e m e nt s ,  ad o
p t  m o n i t o r ,

a s s e r t i o n  d e t e c t o n  i t e m s  a n d  c o m p a r at o r  a nd  o t h e r  v e r i f c at i o n  c he c k  m e t h o d s  a n d
i 
 i

c ar r y ou S t i m u at o n  t h r o u g h  V C S  ( Ve r
l i i l o g  C o mp i l e S i mu l at i o n)  t o  c a r r y  o u t

v e r i fi c a t i o n  fo r  S e r D e s  at  d i f fe r e n t  l e v e l s  F o r  t h e  t e s t  c a s e s  t h at  a r e  d . i f i cu
f lt  t o b e

d r e c t ly co m
p ar e d  w i th  t h e  s c o r e b o a r d re g is e r ro x i m a l  l o o
p b ac k  t e s t  1 5 8 8  t e s t
t t est
p

 , , , 

ur t h e r  a n a l y s i s  a n d  v e r i f i c a t i o n  a r e
p ac e m n  s c na o  an  o h e 
re l e t e ri d t r u s e c as e s

f 

p e r fo r m e d  c o m b n e d  w i h  h e  r e l e va n s u b m o
t t t i d u e  w a v e fo r m -

l 

T hef na i l v a l d at i o n  r e s u l t s  s ho w e d  t ha t  t h e  f
i i i n c t o na i l c o v e r a g e  o f e a c h  S e r D e s  mo d u l e
 

t e r w a i v e  r e a c he d  1 0 0 %  T h e  c o r r e c t n e s s  a nd  f u n c t i o n a l
a ndt h e c o d e c o ver a ge a f .

c o mp l e t e n e s s  o f 
t h e  S er D e s  mo d u l e  t o  be  t e s t e d  ar e  ve r i f i e d 

K e yw o r d s U V M  S e r D e s  P C S : , , , P MA , HV P

I 


插图索 引
   


插图 索 引

图 1 . 1  S erD es 互连示 意 图 


图 1 . 2 时钟 数据 恢 复 ( CDR ) 电 路示意 图  

图 1 . 3 电 容 交 流 耦 合 需 要 DC 平 衡 


图 1 . 4 高速 总 线 协议数据 处 理流程 图  

图 1 . 5 受约 束随机测试和 定 向 测试时 间

进度轴  

图 1 . 6 验证方法学 发展 时 间 轴 


图 2 _ 1 经典 UVM 验证架构  

图 2 2 . U VM 常见类派生关系 图 
1 

图 2 . 3 U VM 基本树 结 构 
1 

图  2 4  U V M  p ha s e 

汇总 
1 

图 2 5 .

pu 操 作 t  1 

图 2 6 .

g et 操作 
1 

图 2 7 .
验证 收敛流程  1 

图 2 8 B ug

无法被观测 到 的情形 
1 

图 3 . 1  S erD e s 整体模块结 构 
2 

图 3 . 2 8 b l 0b 编 码 映射 关 系 
23

图 3 . 3 两种 6 4 B /6 6 B 报 文格式  27

图 3 4 .  6 4 b6 6 b 编 码 表 
27

图 3 . 5  1 6 比特 _
64 b6 6b 模 式编 码 后 输 出 数据 
28

图 3 . 6  1 6 比特 _
6 4 b6 6 b 模式 的编码时序 图  28

图 3 . 7  1 28b l 3 0b 编码结构 
29

图 3 . 8 PC I e 协议 中 1 28 b l 3 0b 编 码 的物理层实现  3 

图 3 9 .  1 28b l 3 0b 编 码模块 fs m 图示  3 

图 3 . 1 0  AP B 协议状态转移 图  3 

图 3 . 1 1  AP B 写时序  3 3

图 3 . 1 2  AP B 读时序 
3 3

图 3 . 1 3 同 步模块示 意 图 
3 5

图3 . 1 4  Gb 1  E t h e n e t  C o mm a d e t e c t p r o c e s s


 3 5

图 3 . 1 5 a l i
gn 模块状态机跳转  3 

图 4 . 1 UV M 验证环境 总 统框 图  3 




西 安 电 子 科 技 大 学 硕 士 学 位 论文
  

图 4 2 hs s t

验证环 境 目 录结构  40

图 4 . 3 环 境 配 置 系 统 示 意 图  4 

图  4 4 t e st

_
b as e .
s v 部 分代码  42

图 4 _ 5  hs s t
_
e nv 部分代码  42

图 4 6 f ag e nt

_
部 分代码  43

图 4 7 f d r v e r

_

部 分代 码  43

图 4 8 hs st

接 口 定义  44

图 4 9 .

pc s 内 部主要功能  45

图 4 . 1 0 o n l
y _ pc s 场 景 下 数据 流 向  45

图 4 . 1 1 hs s t 整体架 构  46

M4 . 1 2
 pc s +
p ma  数据流 向  47

图 4 . 1 3  hs s t 基类 定 义 部 分代码  48

04 . 1 4  s e qu e nc e 启 动 方 式代码  48

图 4 . 1 5 接 受测 发包示 意 图  49

M4 . 1 6
p _
rx
_
se
q ue nc e 关 键代码  49

图 4 . 1 7  dr i ver 类工作 原理 图  50

H4 . 1 8  mo n i t or 类工作原理 图  5 

图 4 . 1 9 参考模型类工 作 原理 图  52

图 4 20.
参 考 模 型 子 任 务 a l i gn
_
pro ce s s 关 键代码  53

图 4 2 . 1  AP B 组件 图  54

图4 . 2 2 a
pb _
ma s t er _
d r ve r 
i 驱动 数据代 码  54

图 4 2 3  Te s t

_
ba s e 定 义 回 调 函 数代码  55

图 4 24.
寄 存 器 模 型 框 架  56

图 4 2 5 x l s x

转换为 csv 脚本不 意  58

图 4 26.
寄 存 器 模 型 正 确 生 成打 印 信 息  58

图 4 2 7 hv

p 组 成成分及 其联系  60

图 4 28.  hvp 文件格式  6 



图 4 29.
反标 前 的 验证文 档  6 

图 4 30.
反 标 完 成 的 验 证 计 划  62

图 5 . 1 寄 存 器 测 试 代 码 示 意 图  64

图 5 . 2 寄 存 器测 试 波形  65

图 5 . 3 近端 环 回 场 景示 意 图  65

图 5 . 4  8 b l 0 b  ne ar

I o o p 场 景 波 开姻  66

图 5 . 5 替 换 场 景 示 意 图  66

V I
插图索引

图 5 . 6 8b l Ob 替 换场 景 断 言 代码  67

图 5 7 _ 8 b l 0b 替 换未 发生  68

图 5 . 8 8b l Ob 发生 替 换场 景   68

图 5 . 9  l o g i c a l  o p e r at i o n  验证 替 换场 景  69

图5 _ 1 0 8 b l 0 b1 5 8 8 测 试代码  70



图 5 . 1 1  1 588 测试波形 图  70

图 5 . 1 2 b t 寄存器 测试 l og 信息图  7 

图 5 . 1 3 正 常数据通路 回 归 结果  72

图 5 . 1 4 编码模块代码覆盖 率  73

图 5 . 1 5 PC S 模块代码覆盖率  73

图 5 . 1 6 u t 级功能覆盖率  74

图 5 . 1 7  i t 级 功 能覆盖率 统 计  75

V I
表格 索 引
 


 

表格索 引

表 2 . 1 多 重 条 件 的 判 定 组 合 
1 

表 3 . 1 S erD es  端 口 定义 
22

表 3 . 2 8 b l 0b 极性规律 分 析表  23

表 3 . 3 5 b6 b 编 码 映 射 关 系 分 析 
24

表 3 . 4 5 b6 b 编 码 映射 关系 分析 
25

表 3 . 5 控 制 码 映射关 系 分析 
25

表 3 . 6 8b l Ob 编 码 功 能 点 提取表 
26

表 3 . 7 6 4b66 b 功 能 点 提取 
29

表 3 . 8  1 28b l 3 0 b 类编 解码 模块 功 能 点  3 

表 3 . 9 AP B 端 口 的 名 称及功 能 。  32

表 3 . 1 0 验证计划 表 
3 8

表 4 _ 1  ap b _
tr ans 和 u vm _
re
g _
op 的 成员 映射关 系  57

表 4 2 H V P

组成成分 
59

I 


符号对照表 



 

符号对照表

符 号 符 号 名 称

G b/s 吉 比 特每秒


b i t  比特

X 


缩 略 语对照表
     

缩略语对照 表 

缩 略 语 英 文 全 称 中 文 对 照


S e r D e s  S e r a l i z e r/D e s e r a
i i l i ze r  串 行器 解串 器

 /

I C I n t e g r at e d  C i rc u it  集成 电路


SOC  S ys t e r m On C h  i
p  片上系统


F P G A  F e d  P r o g r a mm a b
i l l e G at e A r r a y

 现场可编程逻辑 门

阵列


I P I nt er
ne t  P r o t o c o l  互联 网 传 输协 议


U V M U n i ver sa l  V er i f c at o n  M e t h o d o o g y
i i l
 通用 验证 方法 学


e R M e  R e u s e  M e t ho d o o g y l
 E 语 言 重 用 方 法


V MM V er i fi c at i o n  Me t ho d o o gyM a nu a l l  验证方法学手册


O V M O p e n V e r f c a  i i t i o n  M e t ho d o o g y l
 开放验证方法学


D UT D e s i
g n
U nd e r  Te s t  待测 设计


C D R  C o c k  D at al  Re c o v e r y  时 钟 数据 恢 复


AG C Au t o m a t i c  G a in  C o nt r o l
 自 动增益控制


P C S  P hy s c a i l  C o d ng S u b i l ay e r  物理编 码子层


P MA  P hy s c a i l  M ed i um  A t t ac h m e nt  物理媒介 附 加 子层


A M B A A d v a n c e d M  i c r o c o nt ro l l e rB u s  高 级 微控制 器 总 线


Arc h i t e c t ru e  结构


AX  A d va n c e d
I e X t hd b i l e  I n t e r fa c e  高级可扩展接 

AP B  A d vanc e d P e r i
ph
e r alB u s  高级外 围 总线


H V P H i e r ar c h i c a l l
yV e r f
i c at i o nP an i l
 层 次 化验证计 划

XI





 

目 

摘 要  

A B S T RA C T  I l l

插图索 引  

表格索 引  I 

符号 对照 表  X 

缩略语对照 表  XI I I

第 一

章 绪论  

1 . 1 选 题 背 景  

1 . 2 国 内 外 研 究 现 状  

1 . 3 研 究 内 容 与 文 章 结 构  

第 二 章 U V M 验 证 方 法 学 研 究   

2 . 1 UV M  基础  

2 . 1 . 1 S ys t em Ve r i l o g 语言 简介  

2 . 1 . 2 UV M 验证平 台 架 构  

2 . 1 . 3 O bj e c t i o n 机制  1 

2 . 1 . 4 u v m o bj e c t 
_
和  uvm
_
co m p o n e nt  基类  1 

2 . 1 . 5 UV M 树状结 构  1 

2 2 . UVM 基 本运 行机制  1 

2 2 . . 1 P has e机 制  1 

2 2 2  s e q u e nc e 
. .
机制  1 

2 2 . . 3 F ac to r
y 
机制  1 

2 3 . TLM 通信机制  1 

2 4 .
寄 存 器 模 型  1 

2 5 .
覆 盖 率 机 制  1 

2 . 5 . 1 代码覆盖率  1 

2 . 5 . 2 功 能覆 盖率  1 

2 6 .
本 章 小 结  20

第 三 章 S e r Des 模 块 及 验 证计 划 制 定  2 

3 . 1 S e Des r 整体结构  2 

3 . 2 编 解 码 模 块  22

3 . 2 . 1 8 b l 0 b 编解码  22

XV


西 安 电 子科技大 学硕 士 学 位论文
 

3 . 2 2 6 4 b 6 6 b

编 解码  26

3 . 2 31 2 8 b
. l 3 0 b 编解码  29

3 . 3  AP B 模 块  3 

3 . 4 S erd e s 其 余 子 模块  33

3 . 4 . 1
跨 时 钟 域模 块  3 3

3 . 4 2 .
数据 整形模块  3 

3 . 4 . 3 同 步模块  3 

3 . 5 验 证 计划 制 定  37

3 . 6 本 章 小 结  3 8

第 四 章 S e r Des 模块验 证 平 台 搭 建  3 9

4 . 1 UVM 整体框架及验证文件 目 录  3 

4 2 .
环 境 配 置 系 统 
4 

4 . 3  i nt e r fa c e  接口 
43

4 4 .
数据 通 路 组 件 实 现 
44

4 4 . . 1 不 同 层 次数据通路  44

4 4 2. .
事务基类  47

4 4 3. .
序 列 发生器类  48

4 4 4. .
驱动器类 
50

4 4 5. .
检 测 器类  5 

4 4 6. .
参 考模 型类  5 

4 5 .  AP B 组件 实 现  53

4 6 .
寄 存 器 模 型 ( ml ) 组件 实 现    55

4 7 .
层 次 化 验 证    59

4 7 . . 1  HV P介 绍 
59

4 7 2HV P
. .
生 成 的 基本 流程  59

4 7 3. .
使用 HVP 收集代 码 覆 盖 率 的 步 骤  60

4 8 .
本 章 小 节  62

第 五 章 S e r Des 验 证 结 果 分析   63

5 . 1 测 试 用 例 及 仿 真分 析  63

5 . 1 . 1 寄存器测 试  63

5 _ 1 _ 2 近端环 回 测 试  65

5 . 1 . 3 替换场 景 测试  66

5 . 1 . 4 1 588 功 能测 试  69

5 . 2 仿 真 打 印 信 息 分 析  7 

5 3 .
代码 覆 盖 率 分析  72

XV 


目 

5 . 4 功 能 覆 盖 率 分 析  74

5 . 5 本 章 小 结  75

第 六章 总结与 展 望  77

6 . 1 总 结 
77

6 2 .
研 究 展 望  78

参考文献  79

 83

作者 简 介  8 5

X vl


第 章 绪论

 

第 一

章 绪论

1 . 1 选题背景

高速数据通信 发 展 以 来 , 随着信 号 传输 的 数据 量和速率越来越高 ,


并行总线

受到诸多 因 素限制 而被 串 行总线取代 , 而 S e r D eS( 串 行 器 Ser i a l i ze r 解串器



Deser i a l i zer 的 简称 以 差分方式 )


, 通过加重 均 衡技 术实现高速通 信 / ,
具有 芯片所

需 引 脚少 ,
传输距 离长等优 点 , 是当前 F P GA( 现场可编程逻辑 门 阵 列 F i e l 

Ga Arr a y 中 不可或缺的功 能模块 而 验证 过程 占 据 数字 前端 设




gr am m ab
[ 1

P ro l e t e ) 。

计近 80 %的时间 ,
传 统 的验证方式 因 其局 限 性渐渐无法满 足 SerDes 技 术迭 代 发 展

的需求 , 因 此选用 合适 的 验证 方法 并为其搭建适合 的 验证 平 台 有 着重 要 的 研 宄 意



义 

S erDes 是英文 Ser a i l i z e r ( 串 行器 ) / Deser i a l i ze r ( 解串 器 ) 的 简称 。 串 行器也



称为 SerDes 发送 端 TX 解 串 器称为 S e rD e 接收端 RX 图 是 个 N 




( ) , s ( ) 。 1 . 1

S er D es 收发通道 的 互连示意 图 般 N 不超过


, 4 

Ch i


# l  Ch i
p
#2



TX十

 
> R X +

— .

 厂
仏 ^


C ha n n e l

N  i

 


 RX+ C !

. 
T X+


Re fe r e n c e  :

   R e fe e n c e
 r

c l oc k  1    v  LX  c o c k 2

 l


nj i



 ? ? ? ?

? ?
A Gr〇 u p<
_

 (
n n  ̄




 TX 十
( 二 :
RX 

TX  R X

_ 

Chan n e l

j

 


RX +  〇 > 
TX+


< 

 RX -

 

VTX

图 1 . 1 S e D e s 互 连 示
r 意图

SerDes 具有 以下特点 

1 . S e r Des 不发送时钟 信 息 是因 为 。 Ser Des 在 接 收端 实现 了 时 钟 数据 恢 复 电 路




如图 所示 简称 顾名 思义 主 要进



( 1 . 2 ) , C D R ( C l o c kD at aR e c o v e r y ) 
[ 】

。 , CDR

行二个任务 ,
时钟还原和 数据恢 复 。 时钟恢 复 技术是指在 己接收到 的 非 归 零码 中

提取 嵌入 数据 的 时 钟 信 号 。 在 数 字 通 信 领域 , 时 钟恢 复 无疑 是 关键 的应用 技 术 




西 安 电 子 科技 大 学 硕士 学位 论文
 

它广泛地应 用 在 时 间 同 步 , 时 间 同 步 网 络等方面 。 CD R 的 电路构成


般有二个部


分 带 有 振 荡 器 反馈 电 路 利 用 调 节 时 钟 的 相 位来追 踪 数据 相 位 错误 的 测 量 电 路
: 、 

但是 , 非 归 零 码 的 特 点 是 频 谱上 随 机二 进 制 数 据 的 谱 密 度 无 法 直接 映射 数据 的 速


率 换句 话说 时钟 信 息不 能直接 被提取 出 来 为 了 找到时钟信息 经常使用

[ 】

。 , 。 ,

边沿检 测 技 术 。 Ser D es 使用 CDR 电路从数据 的边缘提取时 钟 并将采样位置最优




化 这使得 S er D es 具备 高速通讯 的 核 心 功 能之

, 7 

Dec i s i on

賴 ^ ^

&A _ r\

Lj  R c e

ci
ov er

r c u i 


y
i W lil

图 1 . 2 时 钟 数据 恢复 ( CDR ) 电路示 意 图

2 S e r D e s

采用 了 差 分 的 形 式传 输 数 据 。 这是 因 为在接收时二端往往 很难达到

共地要求 , 为 避 免共模 电 压 在 接 收 端所产 生 的 电 压差 过大 , 可 以 选择双 电流驱动




模式 多 条 可 以 相 互 独立 的 通道可 以 放 在 个组 屮 来共享 PLL 资源 SerD e 系统


。 。 s

要求对参照 时 刻 ( R e fe r e n c e  C l ock ) 采取 差分 的 方 式 来减少 噪 声 ,


发射 端 和 接收


端各存在 个 两个参 照 时 刻 之间 只 能容许几百个 的频差 但相 位差并不 是


pp m ,

特定 的要求 

3 S e r. D es 接 收端有 电 容进 行 交流耦 合 。 隔离直流 , AG C 自 动 增 益控制 才 能 实




现放 大 , 这就需要 DC 平衡 ,
即 0 和 1
的 数量 相 等 , 如图 1 . 3 所示 

 0   

1 0 1 1 l 1 0 1 0 


_

 ^ <^



J V
1 1  I I I  I I  ?0
1

图 1 . 3 电 容 交流 耦合 需 要 DC 平 衡

4 . S e r D es 使用 了 8 b l 0b , 6 4 b 6 6 b 编 解码方式 , 其 具体作 用 如 下 

( 1 ) 提供 足 够 的 跳变 来 恢 复 时 钟 

( 2 ) D C 平衡 ,
高 电平和 低 电平的 数量要相 等 

( 3 ) A G C 自 动 增 益控 制 只 有 交流 分量才 能 实 现放 大 

SerDes 接 口 电路作 为 高速收 发 器模块往 往作 为各个 高速协议 的物 理层共 同 完




成 高 速数 据 间 通 信 。
图 1 . 4 所 示 为 经 典 的 高速 数据 通信 的 各 个层 次 




章 绪论
第 

 


  

   f  ^
/ >
N , \ 


? 传输层 ? 扰频 ? 链路层 ?  ̄ 一



( 数据 生成  ) 发送 铜 ( 

\ 
J \ 
/ V 
J V 
/ V 





( Sf 理 )
一 传输层 — 解■ — 链路 层 ^
( S5 )

 J V 
/ V  } v  ) V  

图 1 . 4 高速总 线 协议数据 处理流程 图



SerD es 属 于 物理层 ,
而 物 理层 中 又包括 了 逻辑层 和 电 气层 ,
而物理介质 的相

关子层 P MD 负 责 串 行 式信 息 传 递 的 电子块 。 物理媒 介 附加 子层 P M A ( P hy s i ca 



Med i u m  A t t a c hm e n t ) 负责串化 解串 化 / , 物理解码子层 P C S  ( P hy s i ca l C o d i n




S u b ay e r
l ) 则 负 责 对 数据流 的 编 码 解码 / 

S erD e s 使 用 在全球广 域 网 上 , 它利 用 了 光缆作 为传播介质 ,


以 形成全球 网 络

的 骨干 网 。 Ser D es 还使用 了 在 互联 网 上 I SP 模式的物理层 ( 简称 P HY 器件 ) 



实现上 。 I EEE 的 万兆 以太 网 标准 ,
仍然采用 S e r Des 作为 PH Y 元件 此外 。 , S erDes

的 作 用 范 围 后 来还扩 大 到 了 信 息 存储应用 领域 , 包括 了 串 行 AT A  屮 行 ( S ATA ) 、



行连接 光 纤通道 以及其 他的 通用 信息 保存方法 由 于通过这




串 S C S ( S A S
[ 1

I ) 、 , 。

些技术 , 可 以 在存储 系 统 中 实现不 冋 的 数据 类 型 和存储 方法 , 从而满足不 同 的应



用场景 。 最近数年 , Ser Des 技 术 己开 始推广 到包括在 屯脑 I / O 通 讯领 域 、 用 作传



送介质 的 光缆 、 铜线 以 及背板 , 以 及诸如 I nf ni i B a nd 、 Rap d i 丨 0 和 PC I  E xpre s s 



物 理接 口 协议层 。 I nfn i i B a n d 可 以 通 过背 板 或 电 缆 ,
成 为 中 心 服 务 器 与 单个存储

器 间 的 数据 传 输介质 。 而 P C E xp r e s s
I 则 作 为 与 高速卡 或 高速板卡 芯 片 的 数据 通信

计算 机 间 内 存 总 线连接 。 R ap i dI O 可 以 作 为嵌入式 系 统 的 处理 器总线 、 背板和本



地 I / O 总线 。 此外 , 在 开发 的 光纤通信接 口 标准 ( O I F ) 中 ,
光互连论 坛 ( O I F 

使用 将通信速率提高到

Des 6 G bp s/ G bp s | ]

S er l l 

随着数字 1 C 工艺 的发展 , 数字 芯片 的 规模 越来越 大 , 复杂度也越来越 岛 



在过去 ,
数字 电路设计不仅 集成度 很 小 , 而且设计效 能和 设计能力 都 非常低 ,


就导 致 了 数字 电路设计 的 复 杂 度 无 法进 行 合理 限 制 ,
进而导致芯片 的设计复杂度

和 功能性都受到 了 很大影响m 。 同时 , 芯片上 的 S O C( S y st e mo n C h i

p ) 技术的 

世让 数字 电 路 效率达 到 空前 的 高度 这也使芯片 的功能和 复杂度进 步增加 




, 。

加 上近年来半 导 体 企业 如 雨 后 春笋 般涌 现 ,
有 产 品瑕疵 的产 品 也必将 被 市场所淘




西 安 电子科技大 学硕士学 位论文
 

汰 而每 个流片 故 障 的 成本 也将 是 井 喷 式上 升 这就 导 致流前检测 工作 更加 重


, ,

要 。 流片 验 证工 作 的 好坏直接影 响 到 芯 片 设计 的 成败 , 而 且验证工作 的 质 量 还会


影 响 到 芯 片 的 设计进度和 设计质 量 。 目 前业 界普 遍认 为 , 在 芯 片 芯 片 设 计 流程 

验证工作 所 需 的 平均 时 间 超过 半 而在 些 芯 片 领域 验 证 花 费 了8 0 % 以 上 的


一 一

, ,

时 间I 而 S er D e s 的 仍使用 F P GA 验证 、 定 向 激励验证等传统 的 验证方法 , 这些



验 证方 法有 虽 然 可 以 满 足功 能 需 求 , 但往往都拥 有 局 限性 ,
以 下 对传 统验证方 法

的 优缺 点 展开说 明 

1 . F P GA 验证伴随着 FP G A 的 问 世 己有近 四 十年 的历 史 。 FPGA 设计板通常 由



许 多 的 逻辑单位 、 存 储器单位构 成 ,
并含有大量 的 布线 资 源 。
用 户 可 以 根据 需 要


选取 多 个 FP G A 器件 。 当 整个 设 计 的 任 务 完 成 后 ,
设计人 员 所提交 的 RT L 程序 就


会 被 检 验 员 烧 录 到 开 发板 上 并 加 以 实 体 检 验 , 因 为这个 检验方法可 以 利 用 硬 件来


完成 ,
所 以 优 点 是仿真速度快 , 灵敏度 高等 , 特别适合于对 目 前要求大 I P , 大数


据吞吐量 的 S OC 的 检验 ,
而 北方 通用 电 子 的 张跃玲 团 队 则 利 用 了 X i l i nx  V i r ex6
t 

FPGA 可 以 提供 个采 用 FP G A 的 软硬件 技 术协作 的 检验技术方法 测试的 SOC




, ,

系统 指令 硬件 等 有效提高 了 设计效率 但 该 验 证方法 也存 在 明 显




9]
SP P

、 I 、 I , 。

的缺点 只 能发 些简 单 的 测 试激励 不 便 于产 生 复杂 激励 并且 随着 设 计 结 构


: , ;

的 复杂 伴 随所 需验证平 台 ( 开发板 ) 的 片 内 资源也会增加 , 资 金投入相 应 也会增




力口 ; 并且定位 出 现 的 B UG 具有挑战 性 ; 开发板 对 可 烧录 的 RT L 代码 的 多 少 有 限

制 每个测 试场景 的生成都 只 能烧录 次 如 果 验证 需 要 多 种 测 试激 励 会使得





; ;

验证成本急剧 增 加 并使得验证 效率大幅 降低 



2 .
形 式验证是指从数学 的 角 度 出 发完 备 的证 明 或者验证 电路 的 设计方案 确 实


符合 电 路 设 计 所 描述 的 功 能 即 验证 电路实 现和 电路 设计 的 致性 具体可分




1 G ]

, 。

为 等价 性验证 、 模型 验证 和 定 理 验证 。 这种 试验 方 式 的 好 处 是不要 求开 发 测 试 激


励 , 这就减少 了 对试验 向 量 的 枚举 , 对指 定描述 中 所有可能 的情况都 能够全部覆


盖 , 而且 由 于 试验时 限极短 , 在 电 路 中 的 设计 错 误 也 能 够迅 速地 被检验人 员 找 到


并 纠 正 从而 大 大提 高 了 效率 , 减 少 了 设计 周 期 , 但缺 点 是对验证人员 的 数 学功底


提 出 了 高的要求 , 现 阶段形 式验 证 在 功 能 验证领域得 到 广 泛地 应 用 , 只 能 配合其


他可 以 实现功 能验证 的 验证技术使用 , 但是 1 C 开发 的 其他环节应 用 广泛 

3 .
定 向 激 励测 试大 多 应 用 在 复杂 度较低 的 单元级 、 模块 级 别 的 验 证 中 。 验证

人 员 需 要提 取 出 待 测 设计 的 测 试 功 能 点 并 设 计 对应 的 测 试激励 的 产 生 , 然后 需 要


按 照 验 证计划 逐 条进行 仿 真测 试 ,
完成仿 真后 , 验证 人 员 需 要 自 行 核 查波 形 中 的

时 序 关系 和 关键信 号 来判 断是否 仿真结 果 是 否 与 该 设计功 能 的 预期 致 定向




, 。

激励测 试 的 优 点 显 而 易 见 : 它 不 需 要 搭建 十 分 复 杂 的 验 证 环 境 ,
针 对性很强 , 

要 能 够 产 生符合要 求 的 激励 并进 行 检 查 即 可 , 所 以 这种 测 试方法 可 以 较 为快 速地


取得 阶段性 成功 简 称 快速测 试 冒 烟 在每 个 功 能 点 的 验证完 成 都可 以有效


, , ,




第 章 绪论

   

且稳 定 地推 动 验 证 进度 。
但定 向激励测 试也存在 以 下 缺陷 : ( 1 ) 每个功 能 点 都对

应着 种试验 激 励 尤其 针对模块 复 杂 功 能繁 多 的模块 光 是 罗 列 出 所宥 的 组




, , ,

合情 况就 必 须 耗 费 巨 大 的 试验资 料 。 验证进程 与验证 时 间 的 基 本 成正 比 关 系 , 



也 意 味着 只 要 验证 功 能 点 增 多 ,
所 需要 的验证时 间 也就线性增长 ( 2 ) 随着 集成 电

路规模 的 增 大 和 复杂 度 的 提升 , 想 要 列举 出 所有 的 待 测 项 几乎 是不可 能完 成 的 

验证人 员 凭借 自 己对 设计 的 理解 ,
只 能想到预期会 出 现的 BUG ,
却 无法发现预料

之外 的错误 , 这些错误 的 遗漏 ,
往 往会 导 致数字后 端产生重 大 设计缺 陷 从而 导致


流片 失败 每个定 向 激励仿真 结 束 验证人 员 都 需 要 个 个看波 形 由 于没


。 ( 3 ) , ,

有 自 动化的 比 对方式 需要 消 耗大量 时 间 , 还无法避 免 因 核 查失 误造成假通过 的情



况 

4 .
受 约 束 的 随 机 化 测试要 求对验证平 台 所产 生 的 随 机 化激 励也 需 要 相 应 的 约

束 , 而这种 试验往 往 需要对验证平 台 产 生更复杂 的 构造 和 功 能 , 因 此通常 需 要经



历很长时 间 后才进 行第 个试验 以 下简称测试冒 烟 而 因 为每 个激 励 向 量都共




, 。

用 同 个组件 与 环境 所 以将 会大 大提高在后 续 的 测试开发 中 的 效能 并且 由 于




, ,

自 动 化 比对 与 覆盖率驱动 ,
弥补 了 定 向 测试的 不足 , 准 确 率 也得到 了 显 著提升 

另外 , 受约 束 的 随机方法 往往有很 强 的 随机性 , 或者某个激励产生 的 前提 条件过



于苛刻 而 导 致这个场 景 花很 长时 间 都无法通 过随 机化 复现 出 来 而这 场景又




, ,

不可忽略 , 这时 就 需 要 定 向 测 试构 建特殊场 景 来 p
u s h 验 证进度 

针对 同 个 试验 项 可 以分 别 采用 定 向 测 试 和 受 约 束 的 随 机化 试验 项

目 , , 

进度 和 时 间 关 系 如 图 1 . 5 所示






j[ 随机 测试


— 

 … -

 I

定 向测 试


时间


图 1 . 5 受 约 束 随 机测 试 和 定 向 测 试 时 间

进度轴 1   

综上所述 ,
受 约 束 的 随 机 性试验 将 以 其 良 好 的特性成为 目 前业界首选的验证

方式 而这个验 证方式必 须适配 个完善 的 方 式学理论 和库 文件 支撑 如通用 验




, ,

证 方 法 学U V M ( Un i ve rs a l  Ve r f
i ica t i o n Me t ho do o
gy
l ) 

验证 的主要 目 的是为 了 检查在待 测模型 中 的 问 题或错误 ,


而与 使用 硬件描 述

语 言 的 设 计 方 法 不 同 验证 在 实 现层 面 上 更 倾 向 于 软 件 随 着 ,
。 1 C 产业 的蓬勃 发展 




西 安 电 子 科技 大 学 硕 士 学 位 论 文
   

验证语 言 也 在不 断 发展 然而要进行检验工 作 单靠 种 检验语 言 是远远不 够 的


, , 

不 同 试验 人 员 的 验证 思 路 和 实 现方 式 也 可 能有 较 大 差 异 ,
后 续验 证人 员 技术交流


或工作交接会带来很大 的 不便 , 直 接 降低验证平 台 的 可重用 性 和 移植性 。
因 此验


证 方法学应运而生 可 以 了 解到验证方法学 的 发展历程

由 图


1 1

, 1 .


vAv  e RM   U VM
1 1

U RM 

i s o r

2 0 00  2 0 0 2 2 007 20 1 




C on t r i bu t i o n sf
ro m


2 0 0 3 2 0 0 6 2 0 0 8 C ad e n ce

 A VM  O V M 
2 3 3

RVM yn o p s y








VM M en t o 

图 1 .
6 验证方法学发展 时 间轴

Ve r yD e s g n 简称 VD 公司 于 年开发 出 款名 为 Ad v 的软件


i s i t i ( ) 200 0 v  i s o r 

该工 具 以 网 页 超文本标记语 言 ( HTML ) 的形 式 引 入关键理论 , 包括激励产生机




制 自 检功 能机制 该公司 的 标是建立 个基于这些理论知识 的验证平 台 


、 。 目 ,

帮 助 设计人 员 快速发现并解 决 问 题 。 但是仅有理论知 识是不够 的 , 该公司 由于未




能有 套完整 的库 文件支持 还不 足 以 实现验证平 台 的 和 动化 和重用 化


自 。 2002

年 VD 公司在推 出 了 第 个证明 库文件 RM 此套库 文件及其蕴涵 的 实证思 路




, e ,

对后 来通 用 检验方法学 的 发 展 产生 了 影 响 包括证 明 框架 的 构造
, 、 o bj e c t o n i
机理 

机理等 在 年 发行 了 套基于 Ve r a 语言 且适配于验




se
que
nce 。 200 3 , S
yno p sy s ,

证领域 的 RV M 库 , 但理论 内 容和 库 文件代码 没有 e RM 那样丰富 , 所以在当时只



是 除 了 e RM 的第 二选择 。 不过 RV M 提 出 的 回 调机制 ( cal l back ) , 在 UVM 依然




保 留 了 下 来沿用 至 今 。 2006 年 , S
yno psy s 公司 提出 了V M M 方法 , 2008 年 C ad e n c e

提供 的 OVM 方法 , 提 出 了 不 同 的 主 流验证 与 验证 方法学 。 其中 ,


V MM 专门为


处理存 储 器与 寄存器之 间 的 问 题 , 专 门 给 出 了 寄存器模型 的 定义及其 实现方法 

大大简 化 了 相 应 的 测试步骤 而 OVM 则 创 新 性地介 绍 了 个 fa c t


o 机制 使不




, ,

同 的 类型可 以 重载 。 最 终 三 大 半 导 体 巨 头 公 司 继 承 了V M M 的 寄 存 器 模 型
, 、 0VM

的 fa c t o r
y 机制 , 于 20 1 0 共 同推 出 了U V M 验 证方法 学 , 整合了 平 台优势 , 提供


了 更为 强 大全 面 的库 文件支持 U V M 经推 出 便成 为 了 验证方法学领域 的主


, ,

流間 




第 章 绪论

     

1 . 2 国 内 外 研 宄现状

国 外 较 早地开 展 UV M 验证 方 法 的 实 践和 运 用 , 平 台 和 功 能较为 完 善 。
国 内

在 20 1 1 至 20 1 2 年间 ,
依然选用 较为传统 的 F PGA 验证方法 , 但 20 1 3 年之后 

UVM 被 国 内 广大学者机构 接受 , 研 究搭 建 UVM 环境 , 对各种 模块 、 I P 核 ,





SOC 系 统进行 验证 

在国外 各类专家学者 直 在 UV M 验 证 领 域 展 开 探 索 Ay n s 等人


, 。 J o hn l ey

利用 自 定 义 寄存器搜索 ,
克服 了 使用 更繁 杂 寄存器 的 问 题 。 如 无法 直接 从 ad a p t e r

中 进行存取 而必须 由 多 个 组合才 能存取 的 辅助 寄存器 提出 了 




, t r an s a c t i o n ,

独特 的 访 问 方案 和 等 人 指 出 了 当 错误地输入 了 激



Kur S c hw a r
tz T m  C o r c o r an

[ ]
。 t i

励 平 台 如 何得到 响应 的 想法 等人基于 给出

f Va n c e 了
1 一



uv m h arne s s


。 Je  , 

解 决方 案 模块配置 或版 本控 制 改变 而 耗 费 大 量 验 证 资 源 问 题 的 新 办法 ,
并利用 这

种 方 法 在 设计模块验证层 次 改 变时 减少 相 关 资 源 的 输入 [
1 6 ]


在 国 内 业界 , U VM 认证 技术也 不断地在 发展与 提 高 :


吴 星 星 教授 在 为 S P I

接 口 提供验证环境 时 ,
深 入 研 宄 了 U V M 认 证 平 台 的 框 架 以 及 构 成 平 台 的 基 础 组

件 ,
并发挥 了 对 s
y s t e m Ve r i o g l 验证语言 的继承 , 多态 、 封装 性 以 及覆盖 率 等优 势



1 7]
。 张少 真 、 成 丹 等 人 使 用 了M a tl ab 为 引 擎方法 , 并 进 行 了M a t l ab 和 UVM 


结 合仿 真 ,
Ma t l ab 算法模板 也 顺利 地被 UV M 所访 问 , 在确立二者 的联系 之后 

大 大加 快 了 验证平 台 的 搭建 时 间 并显著提升 了 仿真效果 [


1 8 ]

, 

各个 高校 也加 强 了 对 UVM 验证方法学 的研 宄 ,
张瑞在 对某 多 核 调 试模 型 进

行 检验时 采用 基于 断 言 语句 的验证方式 刘 魁玉设计 了 个基 于 





UVM


[ ]

1 553 B 双 总 线 协 议验证平 台 ,
切 实提升 了 验证效 果 而陈琳娜则在 己有 UVM

验证平 台 的基础上 通 过层 次化 构 建 的方 式 实 现 了 个共用 库 大大增 强 了 认证




, ,

平 台 的 可复用 性 段 杰在为 模块 的 验 证过程 中 针对相 同 地址 的 寄





A P B U A RT
1 一
[ ]

存 器访 问 配套 了 预警机制 , 并通过 ho o k 函 数和 c a l l b ac k 机制 实 现口 1

。 王泽华还提


出 了 将 区 块链 的 求解从 S H A2 5 6 哈希 函 数过程 , 替 换 为含 C ac h e 结构 的 数字集成


电 路 流程 的 新 方 案 以 克 服 区 块链应 用 中 对 能 源 和 计 算 力 浪 费 的 问 题 [
23 ]

, 

从理论 和 实 际 上可 以 看 到 , 国内 专 家 学 者对 UV M 验证认 识论 和 方法论 的 关




注 ,
说明 UVM 验证 认识论 和 方 法论 的 应 用 己 经成为验证 领域主 要 发 展 方 向 

未来 UVM 的 发展趋势 会主要表现在 认证 P 商用化 类库 能 力 的进 




, I

提升 和在结构 检测 等 多 种 认证应用 领域 中 提 出 的 统 化解决办法等方面 




, 、 ,

这些都 需 要 广 大验证人 士 、 企业和 行业 巨头 之 间 的 共 同 努 力 与 沟通 






西 安 电 子科技大 学 硕士 学位论文
 

1 . 3 研宄 内 容与文 章 结构

本设计 的主要研宄 目 标 , 是搭 建基 于 UV M 的 S erD e s 验证环境 , 以 此来验证



待测 设计功 能 的 准 确性 与 完整性 , 围 绕研 究 内 容 , 本文组织结构 如 下 



第 章 简 单 说 明 了S e Des 的 发 展 由 来 以 及 验 证 在 集 成 电 路 领域 的 重 要 性

: r 

然而 S erD es 目 前仍 然 采 用 传 统验证 方 法 在 横 向 比 较 了 功 能验证 中 各种 验证 方 式



 ,

的 优缺点 , 由 此提 出 受 约束 的 随机化试验作 为主 要 检验方式 的 原 因 ,


从而提 出

UVM 的产生 、 发展和 国 内 研 宄状 况 。 结 尾对 本文 的 研 究 内 容和 篇 章 构 成 作 简 要



说明 

第二 章 :
研 究 了 U V M 的 组 成 成 分 和 运 行 机 制 。
从验 证 的 基本 概 念 出 发 , 


UVM 的 验 证 方 法 学 展 开 深 入 研 究 , 比如 构成 UV M 平 台 的 基本 组件 、 各种 U VM

特有 机制 , 寄 存器模型 等 

第三章 :
设计 S er Des 验 证方 案 。
深入研 宄与 待测 设计 密切 相 关 的 以 太 网 协议


和 NCB -

P C I E xp r e s s B as e _
5 . 0r l . O 中 的 物 理层 部 分 以 及 对应 的 三 种 编 解码方 式 ,


测 设计 整 体将 被 分 为 AP B , PCS , P MA 三 部 分 , PC S 子 模块 又 分 为 编 解 码 模 块 

数据拼接 , 跨 时钟 域模块 , 同 步模块 。


并提取 出 相 应验证 功 能 点 , 并确立不 同 功

能 点 的 检 查方 式 , 设计完整 的 S er Des 验证方 案 



第四章 搭 建基于 UV M 的 S erD e s 验证平 台 这 章 也 是整个论文 的 主要




: 。

研 究要 点 , 需 要完成 U VM 平 台 的 总体结构设计 ,
并 通过 在 各 个 阶段 中 构 造 了 试


验平 台 , 对各个 阶段 的 数据 通路 ,
以 及 各 个 UV M 模 块 的 实 现过程进 行 详尽 的 阐

述 ,
并 对 不 同 试验激励 构 造 的 基 本 步 骤进 行 了 说 明 ,
并 结 合波形分析方法来确 定


试验结果 的 可靠性 , 在搭建平 台 过程 中 , 针对 S e rD e s 寄存器多 、 验证 维护 易 出 错


的 问题 本文拟 提 出 种基于 脚 本 的 寄 存器 生 成配置 自 动 化流程 避免人



p yt ho n ,

为撰写 失误 。
针对 S erD e s 结构复杂 、 验证功 能 点 多 的 特 点 , 本文拟采用 HV P 


证 自 动 管 理 流程监 视功 能覆 盖率 从而 提 高验 证 工 作 的 效 率 

第五章 :
分析 S erD e s 的验证结果 , 借助仿真编 译工 具 v c s + ve r d i 对 S e rD e s 


块 进 行 仿 真 并 结 合 波 形 进 行 测 试 功 能 分 析 经 过进 步 改善 约 束 增 加 回 归 次数

。 , 

待 测 设计 的 代 码 覆 盖 率 和 功 能 覆 盖 率 若 均 达 到 1 00 % , 则验证收敛 , 达 到 预期 

标 

第六章 :
对 全文进行 总 结和 展望 。 对整个研 究 内 容进行总 结 ,
分析优势 与 不

足 , 提 出 未来研 宄工作 的 方 向 




第二章 UVM 验证方法学研 究
   

第 二 章 U V M 验 证 方 法 学 研 究

支撑 UVM 验证方法学 的 是 套功 能齐 备 的 机制 和 方法 本章对 UVM 的验




证平 台 架 构 、 树状 结 构 下 的 构 成 组件 、 fa c t o r
y 机制 、 o b ec

t i on 机制 、

has e 机制 

se
qu
ence 机制 、 TLM 通信 机制 、 寄 存器模 型 、 覆 盖 率机制 等进行 研 % ,
为后 续基

于 UVM 的 SerDes 验证平 台 设计奠 定理 论基础 



2 . 1 UVM 基础

UVM 验证方法学 能够成为验证 的 业 界潮 流 ,


因为它是 以 S

st em Ve r i l o
g 语言

为基础 ,
并提 出 了

个完整 的库 函 数 。
库 文件涉 及许 多 常 见 的基类和 参数 , 对验

证平 台 的 构 造 以 及 使 用 流程做 了 规 定 

2 . 1 . 1  S y s t e m Ve r i l o g 语言 简介

S y s t e m Ve r i l og 是由 ver i l o
g 发展而来 的 , 可 以完全兼容 ve r i l og 。
在 2002 年被


tm
提 出 并于 , 2005 年正 式成为 美 国 电气 电子工程师 协会的 标 准 即 , I EEE 1 8 00 -

20 05 


诞生后 很快得到 了 业 内 许 多

目 前 最新 的版 本是 I E EE 1 8 00

20 1 2 。 S y s t e m Ve r i l o
g 

工程师 的青睐 , 它 具 备 了 各 种 面 向 对 象编程语 言 的 优 点 : 封装 、 继承和 多 态 。 



于其与 ver i l og 兼容 的特性 , 可 以 大大缩短硬件 工程 师 的 学 习 周 期 



2 . 1 . 2 U V M 验证 平 台 架构

UVM 还提供 个基于 Ve 语 言 的标推库文件 它涵盖 许多基




f 
Sys t e m r i l o
g , /

类和方法 ,
如图 2 . 1 所示为典型 的 UVM 验证架构 

env

r e fe r e n c e  m od e l ?  s c o r e bo ar d

, 丨 , 

i n age n t  out
_
a g e n t

se u en c e r


dr i v er m o n i t o r m on i t or

|  |

; DUr 1  -  - 

?    

图2 . 1 经典 UVM 验证架 构




西 安 电子科技大学硕士学位论文
  

该 验证平 台 各个 组 件 的 功 能 描 述 如 下 

驱动 器 作 为 验证 平 台 核 心 组件 之 负 责将事务转换为信 号 级


( 1 ) d r i ve n ,

数据 , 并通过接 口 驱动 到 待测 设计 

( 2 )  mo n it o r : 与 d r iver 不 同 的是 , 这 个组件 监 视 DU T 的 输 入 或 输 出 行为 

它 将 信 号 级 数据转换 为事 务 , 并将 它 们 发送 给 后 续 的 组 件 成 员 ,
如 参考模 型 或计


记分板 

( 3 )se
q u e nc e 与 se
q ue n c e r :
激励产 生 的 源头 , 本是 d r i ve r 的功能 , 但为 了 组

件功 能划 分更加 明 确 ,
从 d r i ve r 中 剥 离开来 , 提 高 激励 的 产 生 的 灵 活 性 

( 4 )  ag e n t :
将具有相 同 端 口 协 议 的 组件封装起 来 。 dr i ve r 与 mo n it or 两者的

代码 结 构基本相 同 其本质 是 因 为两者 处理 的 总 线 具有相似性 。 , 由 于这种相似性 



A g e nt 将 二 者 封 装在 起 通 过特 定 变量 来 决 定 是 驱动 型 变量还 是监 测


, i s
_
a c t i ve

型变量 。
内 部 总 线 的 连 接方 式具有 了 多 样 性 , 也 简化 了 验证平 台 的 搭建 

复刻 DUT 的 行为 使 之具有和 DUT 样的功能


— 

( 5 ) r e fe r e nc e _
mo d e l : , 。

般 和 记 分板 组 件 直 接 连 接 并 把 输 出 结 果 直 接 传 送 给 它 ,
用 来与 待 测 设计物 的 输 出

结 果 作 比较 , 而待 测 物 复 杂 性 的増 加也相 应造成 了 参考模型 复杂 性 的 增 加 , 该组



件 可 以 通过其他 编 程语 言 建模 通 过 接 口 函 数 对接验 证平 台 具 有 很 强 的 灵 活 性 , , 

( 6 ) S C 〇 r d bo ar d : 是验证平 台 中 负 责 输 出 验证 结 果 的 组件 , 通过 比对 DUT 


出 监 测 到 的 数据 和 参 考 模 型 模 仿 DU T 行 为后 得到 的 数据 , 来判 断 DUT 是 否 符合


预期 , 具有 验证结 果 自 动 比对 的功 能 ,
减少 了 人为 的 c he c k , 也是 UV M 验证平 台

便 捷 高 效性来源 之



( 7 )  e nv :
按照 UVM 树状结 构 实 现各 个组件 的 实 例 化 以 及 连接 

2 . 1 . 3 O bj e c t i o n  机制


O bj e c ti on 机制也用 于监控 UV M 平 台 中 仿真进程的 结果 。 具体的利用 

ra i se
_
o bj e c t i o n 与 dro p _
o bj e c t i o n 的配合使用 , 具有提起或撤销 所有 o bj e c t i o n 的功


能 。 当 所有被提到 的 o bj e c t i o n 都 被撤销 后 , 仿真将会停止 , 另 外 即 使 组件 ( 


Dr i ver ) 中 含有 fo r e v e r 语句 , 仿真也不会

直循环 下去 , 这 是 因 为在 UVM 中 

fo r e r v e r 的优先级小于 o bj e c t i o n 

在 U V M 平 台 实 现 过程 中 每 次进入 个 时 都有 个特定 的 系 统变


一 一


p ha s e ,

量 , 该 变量 计算 p h as e 中 o bj e c t i o n 被 提 起 和 撤 销 的 所有 组 件 的 数 量 。 只 有 当 所有


对 象 都 被移 除 时 验证 进程才会进入 下 当整个 过程完 成并执行后


 p has e 。

has e 

平 台 将 调 用 ¥ fm i s h 函 数 终止 整个 仿 真进程 

以上 结果 , 仅应用 于如上 图 中 所指 的 1 2 种 r un

ti m e  p has e 。 它 并不适用

ru nj p h a s e , 因此 ru n
_

ha s e 和 ru n -

ti m e  p ha s e 都 是 可 以 并行执行 的 。 但如 果 十 二 个


动态 p
has e 都有被提起 ,
则 ru n
_ p ha s e 不必 ra i se
_
o b e c t io n

也会 自 动执行 

1 


第二章 U VM 验证 方法学研 究

2 . 1 . 4 u v m
_
ob

ec t 和 u v m _
c o m po ne n t 基类


uv m _
o bj ect 和 u vm
_
co mp o ne n t 是 UV M 中 最 基 本 的 两 个 概 念 , UVM 环境 中

定义 的 所有类 , 都派生 自 这两 大基类 



uvm _
o bj e c t 是最基本 的 类 , 它的范 围相当广 阔 ,
以至于在 U VM 中 的 几乎每


个类 都 是 由 它 所衍生过 来 的 , 而 uv m co mp o n e nt 也包含在其 中 。
面 向 对 象语 言 儿

乎总 是有这样 个规则 类 的 层 次和级 别越低 其拓展性越强 但它们本身 的 功




: , ,

能越 少 由 于这 特性决 定派生 于 此 的 类往往 不 能长 久存在 于 仿 真 过程 中 派生




。 ,

自u v m 一
o bj e c t  的 类 包 含u v m —
s e
q u e nc e 一
i t e m 、 u vm

re
g 等 

uv m _
co mp o n e nt 类也 由 uvm
_
o bj e c t 派生而来 ,
但和 常见 的派生 自 uvm _
o bj e c t

的类有所 区 别 ,
前 者 能够 稳 定地成为验证平 台 结 构 ,
只 要进 行 了 实例化就可 以 长


久的存在 。
而后 者 随 着 仿 真过程 的 进 行 , 不 会 形 成稳 定 的 树状结 构 ,
属于 消耗


品 此外 相 比于 具 有两 个特殊属 性 是 通过

。 uvm co mpo ne n t uvm o b ect .



: new


_ _

( ) 函 数 并 设置 p ar e n
t 参 数 形 成树 形 结 构 , 这也成为 p ha se 可以 自 上至下执行 以

及 UV M 验 证平 台 能够 正 常 运 行 的 关 键所在 

常 见类之 间 派生关系 如 下 图 所示
25
U VM 2 2 .
[ 1



u v m _
vo d

 i

u v m r e
_


u v m  r eg fi l e
 v i  u v md r i vc 

> u v m o hj e c 
_
l /
 

uv m r e b oc k  u v mm o n i t or




— 一

/ / 

u v m r e
g
f i e l d ^  i ‘  / u v m
[ 一
s eq u e nc e r

u v m  t r an s a ct i o n  u v m r e p o rt o b j
ec 


* V '



u v m


ge n
  


 



m m
^r


u e nc e

u v se r l e


u v m c om p o n

_

uvm s e u e nc e r b a s e  uvm _
s co r e h oa i 




 =  -  = 

t uvm r oo t \ \

 u vm

u v m e enc e e nv


qu
s \
_

u v m

_
t es t

常见类派生关系 图
2 5
图2 . 2 U V M 【 

2 . 1 . 5 U V M 树状 结构

从上 节描述可 以 得知 衍生 的 组件 在实例 化之后 能够





自 u v m _
co m p o ne n t ,

成为稳定构 件 直 出 现在 整 个仿 真周 期 中 并能够形 成树状架 构 以 便于管 理 




, 。 。

1 


西 安 电 子 科技大 学 硕 士 学位论 文
 

本的 树状 结构 如 下 图 所示
26
UVM 2
[ ]
. 3 

興中 uvm _
t op 是 UVM 树状结 构 的 根 , 他是直接 由 uv m r oot 例化 得到 的 

u v m t o
_ 


u vm r oo t


 j 

uvm es t t o




m c as e O
( y _


 i

en v


m y  e n v )

i a

t  s c b m d l  o a
g t


my a
ge n t )  (

y —
s c or e b oa rd
)  (

y m od e l
)  (

y a
ge n t


Z \




r  d r v m on

my
_
s e

u e n ce r
 (
my d r i ver)  (

ym o n i t o r


基 本树 结构

图2

. 3  UV M | 

2 2U V M
. 基本运 行 机制

UVM 的 运 行 除 了 基本 组 件和 基 类之 外 还需要 定 的 机 制 来支 持 这样才




, ,

能合理地调 度各个成分 , 使其有 条 不紊地相 互配合执 行 。


本节简要描述 UVM 


种基本 的 运 行 机制 

2 2 . . 1  P h a s e机 制

UVM 搭 建 的 验证平 台 拥 有 众 多 组件 , 如 何使 各个组件在特 定顺序 下有 序执



行是非常关键 的 。 UVM 通过 phas e 机 制 实 现这 种 操 作 



UVM 中 的 根据 是 否在 仿真过程 中 消 耗 时 间 分为两种 种是



has e , t nc t o n
fi 
 i

phase , 具体包括 以 下 两 个 

( D bu i l d
j h ase :
该 阶段完成验 证平 台 的 创 建 和 配置 工 作 。 特点是 自 上而下

执行 

( 2 ) C o n n e c t _ p
hase :
该 阶 段 完 成 平 台 各 组 件 的 连接 工 作 , 此外还包括 TLM

通信 的 连接 。 特点是 自 下而上执行 

另外 种是 这 类要 包含 很 多 它们统称 消耗


一 一

as k hase has e

p

p , run
_ p ha se 。

仿真时间 , 通 t as k 来 实现 。 驱动 和 监 测 DUT ,
仿真结 果 的 收集 , uv m _
i n fo 信息的

打印 , u v mjr e p o rt 报告 的生成 , 都是在这些 p


ha s e 阶段 完 成 的 

如图 2 4

为 UV M 中 的 p
has e 汇总 , 各个 p h ase 会按 照从上至 下 的 次序 自 动运

1 


第二章 U VM 验证方法学研 宄

行 若不 同 的 组件在 同 都有进程 待 执 行 UVM 采用 深 度 优 先 的 顺序 执 行


p has e



。 ,

bu i l d

h ase
 ^ 
p re  r e s et  p h a s e


r e se t ha s e
co nn e c t _
ph s
a e
 
_ p 

has e
en d of e l a bo r a t i on p
has e
 
po st r e se t
p 

 o n f g u re p ha
s t ar t _
o f e l a bo ra t i on ph ase pre _
c i

s e

c o nf
i g ur e p has e

po st c o n f g ur e i
ph a s e


_ _

un ph^ e


p re m ai n p
ha s e
 

ma n i
— ph a s e
 

ex tr a t
jh as e  \ p o st m ai n ph a s e

h u t d o wn
c h ec k p
ha s e  p r e s
pha s 

s h ut d o wn ha s e
re
po r t
ph a s e 
p 

  


f i na l

p ha s e  ^ 
po st s h u t d o wn
p h a s e

图2 . 4U VMp h a s e汇 



从宏 观上看 在 顺 序 执 行 过程 中 没 有 时 间 差 但是 由 于同 的 


has e
phase p

个 组件 执 行 的 任 务 具 有 时 间 差 即 需要等到最后 个组件 完成定 义 在 该 




h as e

才 可 以 进入下 个

的进程


7 l

h ase 



此外 , UVM 也支持 p h as e 跳转机制 。 当 验 证 的 DUT 较为复杂 时 , UVM 可以



不按 既定 顺序 执行 ,
而 是按 照验证 需 要进 行 p
h ase 跳转 , 比如 DUT 在 正常运行 时


突然 收 到 了 复位信 号 , 那 么 验证环境也应 该模 仿 DUT 的行为 ,
跳转到 re S e t
p haS e

阶段来执 行 些 复位清 除 操 作



在 实 际搭建验证平 台 过 程 中 , 验证人员 并 不 需要 每个 p
h ase 都编 写任 务 , 

解各个 p
h ase 的执行顺序 按 需使用 即 可 ,
UV M 定 义诸 多 p
hase 的 目 的足为 了 验证

人 员 留 % 充 分余量来完成验 证任 务 

2 2 2
. .  S e q u e n c e机 制

se
q u e nc e 派生于 uvm
_
ob

e ct , 在 仿 真过程 中 不 以 固 定 的 组件 存在 , 它 的作用

是产 生激励传给 s e
q ue nc er ,
再通过 se
qu
e nce r 给到 dr ve r

以此驱动 DUT ,
由 于不

具备 co mpo nen t 的特点 , 它 在 仿真 中 的 生 命 周 期 随 着 激励发送 完 成而 结 束 



s e

u e nc e 还支持嵌套使 用 , 当 存在 多 个 en v 子 类或者 多 个 se
qu e nce 时 , 平台

可 以 通过 v i rt ua l s e
q u
e nce 机制 控制 各 个子类环 境 中 se
q u e nc e 的 发包顺序 ,
实 现统


调度



2 2 3
. . F a c t or 
y 机制

绪论 中 提到 机制 是 UVM 继承 OVM 的 大重要特性 针对派生 




, Fac t o r

u vm
_
o bj e c t 的 基类使用 uv m
_
ob ect
j _
ut i i s 宏 ,
派生 自 uvm
_
c o m p () n e n t 的姐 件 使用

1 


 西 安 电子科技大学硕士 学 位论文 

uvm
_
co mp o n e n t _
ut i l s 宏 , U V M在 识 别 到 宏 后 将U V C ( Un i versa l  Ve r i f c at o n
i 
i

C o mpo ne n t ) 加 到 内 部 的 注 册 表 里 表 明 其 成 员 变量 除 了 常 用 的 .
ne w 函数 , UV M

支持 以 s t r i ng 作 为 实例 名 称 , 在进 行 实例 化时 平 台 会通过 UVM 拓扑结构查询 该




组 件 是 否 有重载记 录 , 若 存在 则 对 该 组 件进 行 重载 

重载是 fa c t o r y 机制 最关键 的 功 能 。 和 其 他语 言 中 的 类重 载方法 不 同 , UVM



的 fa c t o r
y 机制 以新建 的 c l ass 代替 旧 类 ,
从而可 以 在注册表 中 找 到要重载 的 组件


时 产生新的类实例 在构造 些 复 杂验证环 境 时 有 时 需要对整 个组件进 行大


, 。 ,

幅度的修改 重载这 优 势 就体现 得 非 常 明 显 原先类 的任务 只 要定义成


, , v i t ua
r 

t as k , 在 异 常 测 试 用 例 里 只 需 在 声 明 重 载此 类后 重 新对 t as k 编 写 便可完成 内 容 的

替换 这样 来 就可 以 把公 共组件分离 出 来 多 个验 证 人 员 共 同 维护 而当特


, , , ,

殊场 景下 需要 重 新 修 改 公 共组件 时 ,
则 可使用 重载 , 这样将 自 己 改动 的 影 响 精 确


到个人负 责 的 case , 而 不 会 对 其 他 人 造 成影 响 ,
提 高 了 验证 效率 

2 3T L M
. 通信 机制

验证 平 台 组件 间 通信 也 是 不 可 或缺 的 关键组 成部分 , S V 语言 提供 了 全局 变量 

事务 旗语 和信箱 但是 使 用 这些 由
2 8
( e ve n t ) 、 ( se map ho re ) ( ma i l bo x )
丨 ]

。 , S 

提供 的 通信 方 法有 许 多 缺 点 , 验证人 员 需 要 消 耗 大 量 时 间 编 写 相 关通信 代码 。 


此 UVM 提供 了 套 更 为 先进 的 通信 机制 TLM 机制

, 

T LM 为 UVM 组 件 间 建立 的 专用 的 通道 , 别 的 组件 的事务不会流到这个通道


去 同 时 给这 个通道 阻塞或者 非 阻塞 的 特 性 于具有独立性
29

[ ]

。 由 ,
可 以避免组件


进 行通信 时 出 现混乱 , 保证信 息 的 准确 性 , 这就是 TLM 机制 最重要 的 特性 。 

面介绍 TLM 常见 的术语 



操作 如图 2 所示 动作的参与者 A 将 某 个事 情 发 送 给 B 构成


p u t 5

( 1 ) :

此过程 中
“ ” “
个最 简单 的通信 被称 为 通 讯 的



。 , A 发起者 , B 称为通信 的 目 标
“ ”
或者 接 受者 , A 的 端 口 用 正 方形表 示 , 称为 P O RT , 而 B 的 端 口 则 用 圆 形表示 

称为
26
 E X P O RT 1 ]



动作 发起者


( 目 标 

数据流

A ] ?£ B


图2 . 5
p u t 操作p 6 

操作 如图 所示 A 向 B 索取 了 个事务 可看 出 和 操作


2 2 6
( )
g e t : .
, ,
pu

“ ” “ ”
很相 似 , A 和 B 依然是动作 的 发起者 和 接受者 , 对应 的 p o rt 也没有变 

1 


第二章 UVM 验证方法学 研 究


-  


 
■  

还是 A 对应 PO RT , B 对应 EXPO RT , 只 是 当 数据 的流 向 发 了 改变 , 可 以看到 

P O RT 和 EX P O RT 体现 的 并 非数 据 流 向 而是 控 制 流 向 ,
pu
t 和 g et 两种操 作 的数据

流方 向 恰 好 相 反 但控制 方 向 是 致的 都 是具 有 P O RT 端口 的 方作为命令 的




方作 为接 收方被动接受指令
26

发起方 E X P O RT 端 口 的

[ ]



动 作 发蹄

|  数 据 流
A C B


操作
26
图2 . 6  ge t 
[ 

2 4

寄存器模 型

寄存器模型 也是 UVM 中 极其重要 的 成 分 , 它 的存在 , 丰 富 了 验证平 台 对 待



测 设计对象 的访 问 方法 , 也增强 了 对 DUT 工作 状态 的 把握 能力 。 在试验过程 中 



如果要在某 时 间 节 点 获得某 寄 存 器 的 数 值 来进行 测试激励 输入 或者进 行 数据





比对 , 但如 果 没有 寄 存 器模 型 , 平 台 需 要通过启 动 se

uence 并按照总线要求给

DUT 寄 存器相 关端 口 施加 具 体 的地址 、 操作类 型 来 获 取某 个 寄 存 器 的 值 。 ,然这



种操作方 式的 准确 性 毋 庸置疑 但操作 极其复杂 大大 增 加 , , / 编 写 川 例 的复杂度 



提供 的 寄 存器模 型在 保障 正确 率 的 同 时 简 化 了 这 操作

UVM 

他 可 以 根据 仿 真过程 中
“ ”

寄存器模型相 A 于 DUT 各个寄存器 的 拷 贝 文件 , 


改变而镜 像 的变化 从而达到 和 寄存器 同步 的 的 因此寄存器




3 ()

的 DU T 目
[ 1

DUT ; ,

模 型 往往 具苻 与 真 实 寄 存器类似 的 结 构 、 属性 以及访 问方式 



1 .
寄存器 的 访 问 模式


( 1 ) 前 门访 问 :
模拟 DUT 的 行为 , 在 总 线 上发 出 读 写 指 令 , 通过 寄 存 器模

型产生事务级 内 容 ,
在通过 ag e n t 访问 D UT , 消 耗仿真时 间 

( 2 ) 后 门访 问 :
不 需要消 耗仿真时 间 ,
就可 以 引 用 待测对 象设计的高层次结

构 

后 门 访 问 相较前 门 访 问 的优势是 不 消耗仿真时间就可 以获取到 :


DUT 寄存器

的值 , 在如今 日 益复杂 的模块中 , 可 能 需 要 配置 复 杂 的 寄 存 器 , 消 耗可达 1


个或

几个 小 时 通过后 , 门 访 问 时 间可 以缩短到 原来

1  n  〇〇 。
但后 门访 问 也有不足之处 

就是 , 正是 由 于不消 耗仿真时 间 , 在 波 形 文 件 中 无法找 到 操 作 痕迹 , 只 能依 赖验



证工作者在后 门 访 问 时 使用 uvm o 打 印 出 的信 息来观察


jnf , 增加 了 调试的 难度 

2 .
镜像值和期待值

1 


西 安 电 子 科技 大 学 硕 士 学 位 论 文
 

( 1 ) 镜像值 : D UT 的 寄 存 器 值 随 时 都 会 在 模 拟 过程 发 生 变 化 , 但 寄存器模


型 并 没有 实 时 捕 获 这种 变 化 因 此可 能会 出 现模 型 里 的 值 和 实 际 值 不 相 同 的 情 况 , 

但 对任何 种 寄存器 寄存器模式就会有 种对特定 的变量最 大程度地 同 步 DUT


一 一

, 

寄 存器值 , 这个变 量就 是 DUT 的 镜 像 值 



期 待值 比如 D UT 中 个 寄 存 器 的 值 与 寄 存器模 型 的 镜 像 值 样大


( ) :


但 必 须给辅 助 寄 存 器输 入另 种值 这个 值将变成期 望 值 如 果可 以通过


。 , wr it e

写入 , 那 么 期 望 值和 镜 像 值 都 会 改 变 。 也可以使用 set 设置 完 成 期 待 值 后 调 用


任 务 如 果检 测 到 期 待 值和 镜像值 不 致 会把期待值 写 入并更新镜像值

up d a t e , , 

3 .
常用 操作


( 1 )  r e ad 和 wr it e : 当 使 用 前 门 或后 门 访 问 系 统对 待 测 设 计 的 设 计 进 行读 取


操作 或 写 入操 作后 ,
系 统将 改 变 寄存 器模 型 的 镜 像 值 

( 2 )
 p
eek & p o ke :
p e e
k 为读操作 ,
p o ke 为写操作 作用 与 , r e ad 和 w r it e 相同 

都会更新 寄 存器模型 的 值 , 但 只 适用 于后 门 访 问 

( 3 )s et 和 g et : s et 用 来更新期 待 值 ,
但 镜 像 值不 做 改 变 。 G et 操作 会返 回 模


型 中 此寄 存 器 的 期 待 值 

( 4 ) u p dat e : 此任 务 比较 寄 存器模 型 中 寄 存 器 的 期 待值 和 镜像值 ,


并在 镜像


值 和 镜 像值 不 相 同 的 情 况 下 进 行 更 新 

( 5 )  ran d o m i ze :
寄存器模型 支 持 r a nd o m zei
接口 。
执行 随 机化后 , 期待值会


变成 随 机 的 数值 , 但镜像值不 发生 改变 。
并 非 所 有 寄 存 器模 型 的 每 个 辅 助 寄 存 器

值均支持这 函数 如果不支持 则 调 用 此 函 数之后对预期 值 并不进行 修改 




, , ,

r a nd o mi ze 在通常 的情 况 下 与 u p d ate 同 时 使用 而 没有分别 使用 , 例如当 D UT 进行




初始化时 , 就 需 要 设 置 若 干 辅 助 寄 存 器 的 随 机值 , 而 这些 数值 通 常 是 用 r an d o m i ze

获取 的 , 然后在调用 u p d at e 配置 给 DUT 

2 5
. 

覆 盖 率机制

绪论 中 提到 , 无 论 是 定 向 测 试还 是 受 约 束 的 随 机化 测 试 , 在 验证过程 中 , 


要有 个 具 体 的 指 标 来 描 述 验 证 工 作 的 完 成 度 这 个 指 标 必 须 包括 D UT 的 所有 功


能是 否 都得到 了 充分 的 确 认 , 并且验证 的 结 果是 否 可靠 , 是 否 完 整地执 行 了  DU T



全部代码 , 只 有 解 决 了 上 述 问 题才 能证 明 验证 是 否 收 敛 

在 实 际 验证 过程 中 , 验 证 平 台 通 过 发 送 激励 来 驱 动 DUT , 从而使待 测 设计运



转 起来执行 相 应 的 功 能 , 并产 生 特 定 的 输 出 。 在此前 提 下 , 上面提 到 的 问 题 就可



以 分 别 使用 功 能覆盖率 ( f u n c t i o na l  c o ve r ag e ) 和 代码覆盖率 ( co d e  co v e rag e ) 




决 , 功 能覆盖 率主要 是检测 DUT 是否 能按照 s
pec 执行特定 的 功 能 ,
需 要验证人


员 充 分 理解 s
pe c 后人为添加 , 而代码覆盖率主 要检测 是 否 DUT 的 所 有 代 码 都 有

1 


验证方法 学 研 究
 第 二 章 U VM
  

被执行过 。 验证 收敛 的 流程如 图 2 7 .
所示 

不 同 的 随 机激 励



多 次运 行

   I   

代码 盖率

? 编 写 定 向 用 例 y 

& 足 要 永? 收 敛


添 加 约 束   俩
功 能覆 盖 率

修 改代 码

分析覆盖 盲 区 《 不 满足 要 求

图2 . 7 验 证 收敛 流程

2 5 . . 1
代 码 覆 盖 率

1 .
代码 覆盖 率 的 意 义

代码覆 盖率首先 用 于系 统测 试领域 , 然后 引 入验证 , 并集成到主 要 的验 证工



具中 , 比如 mo d e l s i m , vc s 。 不 需要验证人 员 编 写 , 可直接使用 。 它 的功能是 自 



监 测 待 测 模块源代 码 的 执 行情 况 

代码覆盖率达到 1 00 % 并 不 能证 明 DU T 完伞没有缺陷… 1

。 如图 2 . 8 所示 , 

于 出 现 了 错 误并恰好 相 应选择信 号 选 为 1 ,
导致这个 bug 被遗浞 而 尤法观测 到 缺

而 代码 却 显示覆盖 完个 研 宄表 明 当代码覆盖率达到 %时 可能只有




陷 ,
。 ,
90 ,

半 左 右 的 设计功 能 能够 被覆盖

3 2 i



B ug he e




一 
、 
 一



_
_

D 〇


\ 组 合 逻 辑 1  n 

、 t _ _ 

_


 ^
无法 观测 到


* - —

b ug
 r j


d q  pr






 I
组合 逻辑 2
 j

产生 bu
g 时 , 选择 f i T 3 

阁2 . 8 B u g 无法被观测到的情形

1 


西 安 电 子 科技大 学硕 士 学 位论文
 


2 .
代码覆盖 率 的种类


代码覆 盖率有 不 同 的 种 类 , 对 DUT 从不 同 角 度 分析检测 。
常 见 的 有 行 覆盖 率


( li n e  c o ve r ag e ) 、 翻 转覆盖率 ( t o g g l e  c o ve r a g e ) 、 条件覆盖率 ( c o nd i t i o n  c o ve ra ge 

以 及状态机覆 盖率 ( F S M  c o v e r age ) 

行 覆 盖率用 来指 示 在验证过程 中 已执行 的 源代码 行 和 未执行 的 源代码 行 。 



最终覆盖率报表 中 未执行 的 行通过 报 表进 行 标记 方面可 以 看 出 现有




, re vi e w ,

激励是否有场 景缺失 另 方面 也 可 以 分析 代 码 本 身 的 编 写 方 式 是 否 具 有 逻辑


, ,

错误 , 无法涵 盖 。 此外 , 对

些复杂 的 I P 来讲 , 如 果 只 会 用 到 部 分场 景 , 激励本


身就不 必覆盖他 的全部功 能 , 这种 情况 只 需要说 明 情 况后 忽 略 即 可 

翻 转覆盖 率用 来 统计信 号每 比 特是 否 都有翻 转 并在报表里记录从 仿真开




始 到 结 束 总 共 翻 转 的 次 数 尤 其 是 随机进 行 读 写 数据 时 需 要 确 保每 比特 的翻转

, 

当然也有例 外 比 如 对 于 协议 规 定 的 地 址 信 号 可 能 某 比特 直为低 电平 这种



, ,

情况 下 翻 转覆 盖 率 无法 保证 1 00 %覆盖 , 此时 分析情况后 忽 略掉 即 可 。 翻 转覆 盖

率 往 往 用 来检 测 模块 互 连 时 信 号 线 连 接 关系 

条件覆 盖 率 用 来统计 在 单个或者 多 个条件作 用 下 是 否 , DUT 有执行过所有可



能 的情形 , 对于 多 个条件 共 同 作 用 的 语 句 ,
他们 之 间 的 组合都 需 要遍历 ,
才 能证

明 验证 的充分性 , 多重条件 的 判 定 组合如 表 2 . 1 所示 



表2 . 1 多 重 条件 的 判 定 组合


判 定语句 :

a> b) && (
m> n )




 条 件 组 合  结 果 |

a > b  m> n  t ru e

a > b  m< n  fa l se

a < b  m> n  fa l se

a< b m < n  fa l se

组合 的 互斥情 况 常 常 出 现在 复杂 设计 中 比如 大于 时 定大于

, a b , m n 

那么 a> b m<n 这 组合 定不会被覆盖 到 此情形 下 的 覆盖 的 缺失 是正常 的


一 一

, , 

验证 人 员 可 以 当 作 冗余项 忽 略 

状 态 机 覆 盖 率 是 保 证 待 测 设 计 状 态 机 各状 态 间 的 跳 转 都 又 被 覆 盖 , 通过 内 部


计数器 统计 出 DU T 进入某 状态 的 次数 邻 近 状 态 之 间 转 移 的 次 数 通过 状 态 机


、 ,

覆盖 , 可 以 直 观地观 察状态 机 是 否 达 成 预 期 的 跳 转 以 此 推 断 是 否 存 在 设 计上 的 错


误 

1 


第二章 U VM 验证方法学研 究
  

2 5 2
. .
功 能 覆 盖 率


1 .
功 能覆盖率 的 意义

功 能 覆 盖率 表 征 现有 激励 下 D UT 是否 达 到预期 的 功 能 它 是和 设计意 图 紧密

 ,

相连的 。 随机化测 试 的 技术 日 趋完 善 ,
使检验 平 台 更方 便地大 量 产 生 受 约 束 的 随

机奖励 从而 省 去 了 巨大 的 人 力 成本 但 同 样 缺 点 也很显 而 易 见 旦缺乏相应




, , ,

的标准 , 检验 员 将 无从 了 解 这种 随 机 奖 励 能 否 涵 盖 预期 的 所有 功 能 点 , 因 为代码

覆 盖 率 只 是 衡量 设计 的 实 现情 况 , 如 果 某个功 能 点 有 所遗 漏 , 代码覆盖 率 是 无法

发现这个 问 题 的 功 能覆 盖 率 的 出 现 可 以 有 效解 决这 问题

, 

功 能 覆 盖 率 不 像 代码 覆 盖 率 样 内 嵌在仿 真 工 具 中 需要验证人 员 自 己提取




功能点 制 定 覆 盖计划 并 编 写相 关 的 覆 盖 率模 型 因此也会存在 定 的风险 




, , ,

果验 证人 员 编 写 错 误 或者有 遗漏 ,
都会导致覆盖 点 与 预期 功 能 的 不对应 

2 .
功 能覆盖率 的种类和 实现


验证 待 测 设计功 能 时 , 通常 需 要 监视设 计 中 的 状态 ,
以及总线 数据或

些关

键指 示 信 号 , 这时候 s
yst e mv er i l og 提供 的覆盖 组 ( c o verag egro u p ) 方法就起 到 了

作用 覆盖组用 来 采样 总 线 上 的 数据 或 者 DUT 中 的 寄 存器 它 与 类相 似 声明 


, ,

后 就可 以 对 它 进 行 实例 化 。
实例 化后 就可 以 自 定义采样 的类型 、 位置 以 及周 期 

依 据 采样 结 果 , 就可 以观察到 D UT 是 否达 到 了 预期 的状态 。 UVM 验证平 台 完全



拷贝 了s ys t e m v e r i lo
g 覆盖 组 的 概念 

功 能覆 盖 率 的 组成要 素 包括 覆 盖 组 覆 盖 点 、 、 仓 其 中 覆 盖组 是 最外层 结构
, 

多个 可 以被 个 包含 每个 有用 以包


c o verag e p o nt i c o v e r ag e  g r o u p , c o ve ra
g ep o nti

含很 多 的 b n i 。 如 果 没 有特别 声 明 , 默认仓的 数量与 覆盖 点变量 的 个数呈现指 数关



系 。 即 若变量个数为 N , 则仓的数量为 2

N , 但在实 际应 用 中 , 经常 要根 据 特殊


情况针对性对 的 设置仓 的 数量 , 比 如 有些情 况变量 的 值不 可 能 随机到 0 或者 1 

就需 要 手 动 删 除 掉对应 的 仓 有 时 验证过程 中 不希 望得 到 某 个值 那 么 运用 非



法仓 ( il l e ga l b i n s ) 的 方法 , 可 以 对 是 否 采集到 非 预 期值进 行 预警 % 

特别 注 意 的 是 功 能覆盖率采样 的 地方往往 是 , D UT 的 输 出 部分而不是在验证



平 台 的 控制 部分 。 也 就 是 说遵 循 尽 量 使 用 DU T 内 部信号采样 的 原 则 

当 然对于 日 益 复 杂 的 设计 对 验 证 人 员 功 能 覆 盖 模 型 的 撰 写 提 出 了 更 高 的 要 求 

如 果 要 把每 个 细 节 全 部 验 全 , 也会 消 耗极大 的 资 源 , 这就 需要验证人 员 按 照模块




的优先级 和 重要 性 , 明 确什 么 样 的 覆 盖 点 必 须 保证覆 盖 , 什么 样 的覆盖 点 能打到

部分仓 即 可 。
验证过程是没有 终 点 的 , 只 要 芯 片 在 工 作场 景 中 不 出 错 的 概率 足够


高 , 那么 验证过程就可 以 被认 为是 充 分 的 

1 



西 安 电子科技大 学 硕士 学 位论文
   

2 6

本章 小 结

本章对 UVM 的 结 构 组件 以 及 各种 机制 展 开 了 深入研 宄 :


作者首先从 UV M

最 常 见 的 基本 结 构 为 出 发 点 , 深入研 究 了 驱动 器 、 激励产生器 、 检测 器 、 代理等




基本组件 的 原 理和 功 能 深入分析 了 ,  UV M 的 几个主要 的 运行 机制 具 体包括 ,
p ha s e

机理 、 o bj e c t i o n 机理 、 se
q u e nc e 机理 、 fa c t o r y 机制 、 TLM 通信 、 功 能覆盖率机制


等 

20


模块验证方 案设计


   第三 章 S er D es

第 三 章 S e r D es 模块验证方案设计

在对 UVM 验证 方法 学展 开深 入探 索 后 , 本 章 节将 结 合 高速 通 信 协 议 以 及 设

计 需求 文档开展对 待测 设计 S erDes 模块 的 研 宄 对 涉及 的 三种 编 解码 模块逐 




开分析 ,
提取编 解码模块 、 数据整形 模块 、 跨时钟域模块 、 AP B 配置模块 、 同步


模块等子 模块 的 功 能 点 确 定每 种 测 试 的 检查方 式 设计 完 整 的 , , S erDes 验证 方案 

3 . 1 S er D es 整体结构

本文 的研究 标是根据 款高速 Des 模块搭建 UVM 验证平 台 并验证 功 能


目 Ser 

此模块作 为 高速 串 行 收发 器 完 成数 据 在物 理层 和 协议层 的 传输 工 作 ,
支持 C EL

E t he r ne t ,  I n t e r ak e n l , P C E U S B  G P O N
I , , , E P ON , C P R 1 , J E S D 2 0 4 等协议 

其 中 待测 设计 S erDes 整体 模块 框 图 如 图 3 .

所示 

A PB M A S TE R

A PB

vn 
-  -
  


  TX |



Tx -
B 响 e T Xb r i d
ge
 E n c o d er  ?  ?  T o  > 



f e

s e n a 


 

P LL


d k 



l ahn e

R XN


^ d a la
" - —

s  y

、 ,

l 

Rx Rx

<N
B n dg e d n Ve
*R xB r i d

e— o t 
D 咖 t c
<  Jo
^
T 

C 〇R
 



r £ f
8 g

a ra l l e l





l k


           1  R XP

PCS  P MA

图3 . 1 S e De r s 整体模块结 构

整体模块按 照 结构可 以 划 分 为物理编 码子层 ( PC S )



物 理媒 介 附加 层 ( P MA )


高级 外 围总线 ( AP B ) 三大模块 ,
其中 P CS 作 为物理逻辑层 负 责 数据 的缓存 , 

特翻转 ,
编解码 等功 能 , P MA 作 为模拟模块 负 责 串 并 转 化 ,
时钟 数据恢复 , 提供


P LL 参考时钟 等功 能 ,
APB 对待 测 设计寄存 器进 行配置 工 作 ,
由 于本 Ser Des 

2 


西 安 电 子 科技 大 学 硕 士学 位论文
 

块作 为高速 串 行传输 HSST( H i


g h S p ee dS er a
 i l T r an s m it ) 模块 表 。 3 . 1
展示 了 S e r Des

模 块关 键端 口 信 息 

表 3 . 1 S erD e s 端 口 定义

序号
|  名 称  类 型  功 能 描 述


PA —
VD D


模拟 电源端 口 



VD D


数字 电 源端 口 



PA _
G ND



模 拟 地端 口 



G ND



数字 地端 口


5  fd a t a[25 5 0 ] :




来 自 fa b r i c 的 并 行输入 数据


6  tcl k I  发 送 侧 输入 时 钟 ,
与 fd a t a 同步


7 En a b l e I 芯片 使能信号
   


p cs
_
ne ar _
l oo

_
en  I 环 回 测试使能信 号


9 p cs
_
rs t

3 0 :

]   pc 各 通 道 复 位 信 号

 I s

1 0
 pma _
rst

3 : 0 ]   p m a 各 通道 复 位 信 号

 I

1 1
p l l
_
r st  I p
l l
模块复 位信 号


1 2

t x _
s fd
_
lag




1 5 8 8 时 间 标志 输入 , 与 fd a t a 同步


1 3  t  s fd  o f fs e t  I  1 5 88 时 间 偏移 量输入 , 与 fd a t a 同步


1 4

RXP 、 RXN



串 行数据 输入 

1 5

T X P  TXN .




串 行数据 输 出 

1 6
p cs
_
d o ut [ 2 5 5 : 0] O 输 出 到 fa b r i c 的 并行 输 出 数据


 

1 7

rc lk



输 出 并 行 数据 同 步 时 钟


1 8  t x _
s fd
_
fl a
g _
o O 输 出 到 fa b r c i
的 时 间 戳标 志


1 9  t x _
s fd
_
o fs e t _
o O 输 出 到 fa b r i c 的 时 间 戳偏 移量

3 2 .
编 解 码 模块

3 2 1. . 8 b l 0b  编 解码

8 b/ 1 0b 的 编 码 方法 是 将 8 比特组合成 1 0 比特 , 其 中 包括 2 5 6( 2

8 ) 个数据


字符编码 和 个控 制 字 符 编 码 分别 记录 为 

为满

G ro up )

( D G r o up

) 1 2 ( , Dx [ ]

足 串 行 解 串 行器功 能所 必 需 的转换
/ , 确保 〇 和 1 元素在数据流 中 数量相 同 , 也叫

. 直流均衡 ; 确 保字 节 同 步 容 易 实 现 ( 找 到 字节 最低 比特 的 位置 ) 

8 b/ 1 0b 的 编 码 方案 将 8 比 特数据分成两块 : 3 个 最 高有 效 位 (
y ) , 5 个最低有


效位 ( X ) 。
代 码 字 的 排 列 顺 序 为 从 最 高有 效 位 到 最 低 有 效 位 分 别 为 : , H 、 G 、 F 

E 、 D 、 C 、 A 。 这种 编码 方 式可 以 提 高码 率 。 3 位 的子组编码为 4 比特 , 记录为 j


h、 g 和 f。 5 比特 的 子组编码 为 6 比特 , 记录为 i 、 e 、 d 、 c 、 b 、 a 等 , 它们 的映

射关系如 图 3 . 2 所不 

22


第三章 SerD e s 模块验证方 案 设计
  

m a b i t 


b i t O A  


_




c 5 b i t 子 数 据 模 块^  5 b / 6 b 编码 6b i t 子数据 模 块





   

17 / / 


 控 制n L J  l


n _
_ _


运行不 致 

i b i t 





 F

b i t 5 .   .





" "

b , t

5  3 b i
t 子 数 据 模 块、 3 bMb 编 码 4 b 子 数 据 模 块 i t

T

/  


b H7
 


j b i t 

图3 . 2 8 b l
0b 编 码映射关 系

3 b/4 b 和 5 b/6 b 编码结 果 合并为 1 0 比特码 abcde i f



h j
并按照 低位到 高位 的 顺 序

发送和接收 

8 b l 0b 不平 衡度 指 l Ob i t 编 码 数据 直 流平 衡 的 程 度 ,
通过 0 和 1
数 量绝 对值之

差来表 征 如果每 组 或者 中 和 的 数量相 同 就被称之 为平 衡代码


。 4b i t 6b i t 0 1 

4b i t 子组中 , 1 6 种排列组合 中 只 有 6 种 组合 可 以 达 到 完 全 直 流平 衡 , 6b i t 子组中 



64 种排 列组合 中 只 有 20 种 组合可 以 达到完全直流平衡 。 由 于 4b i t 和 6 b i t 这两个




子 分 组 都 是 个 位数 , 不平衡度不 可 能 算 出 + 1
或者 -

1 , 因 此在 8 b/ 1 0b 编码方案 中 也

使 用 +2 或 者 -

2 的值代表不平衡度 。 因此 。 在编码过稈使川 极性偏 及参 数表 示 极性



平衡 , 在不平衡 的情况下 , 使用 RD -

表示 1
的数 f j 比 0 的数 L 丨 多 2 ,
使 丨 丨
j R D+ 


示 1
的数 R 比 0 的数 丨 丨 少 2 。 这种极性差別很大 的 l Ob i t
编 码组通常 用 于 K 码控制

字符 , 表 3 . 2 为 8 b l Ob 编解码极性规律 

表3 . 28 b l 0b 极性规 律 分 析 表

P r ev i o u sR D D i s

a r i t
yo f 6o r
4
 比 特C o d e N e x t  RD

 2 n o t u s e d( c h o o s e+ 2e n c o d n


g n s t e a d

1 i i



 0 -

1 1

  


 2

1 1

  

+  1

2 -

  _


+ +
 1

 




和 作为 码 的控 制 字符 


使用

8 b/ 1 0b K2 8 . 1 、 K2 8 . 5 K2 8 . 7 K ,
即 co mma 。

种 控制 字 符 的 优 点 是 可 以 根 据 需 要 设 置控制 字 符 的 位 数 、
位宽和位向量 。 Co m ma

只在 个 数据结 构 中 当 作 限 制 文 字 存 在 并 不 在 整 个 数据 信 息 我荷 绀 成 部 分 中

, 

2 }


西 安 电 子 科技 大 学 硕 士 学 位 论 文
   

因 而也 可 能用 作 指示帧的 起始与 终止 , 甚至 用 作字 节 间 对齐 的 控制 字符 

代码 5 b/ 6 b 编码和 3 b /4 b 编码 的 映射有标准化 的 表 可 以 基于 查找 的方式 实现 , 



由 于 数据 流不 断 地从 发送端传输 到 接 收端 所有 以 前发送 的数据不 致性 的 累 积




状态称为 仅 出 现在+ 和 状态 中 分别表示 比


“ ” “ 


Run i ng D i s
p ar
i t
y( RD )  。 RD 1

1 , 0

或比 更多 的位 初始值为 值取决于

更多 的位 


“ ” “ ” ”
1 1 0 ,

1 。 N e x RD t C u rr e n t  RD

当前 6b 码或 4b 码的 D i s
p ar
i t
y 。 在实际应用 中 , 这些状 况 是 可 以 直接确 定 的 编 码

映射方式是基 于 的 位数和 的位数之间 的不 致性来进 行 的 根据


“ ” “ ”
C u r r e n t

1 0 。

RD 值 ,
决定 5 B / 6B 和 3 B / 4B 代码 具体 的 值 , 如下表 3 . 3 和表 3 . 4 所示为 5 b6b 


3 b4 b 的 映射关 系 , 表 3 . 5 所示为控制 码 的 映射 关 系 如 下 

表 3 . 3 5 b 6 b 编 码 映射 关系 分 析

I n p ut RD 
= -

1  RD 

 + 1  I n p ut  RD 
= -

1  RD 

 + 

E DC B A abcde i  E D C B A  a b c de 

D . 0 0 0 0 0 0 0 o o m 0 l 1 1 0 0 0 D . 1 6  1 0000 0 1 1 0 1 1  1 00 1 00

D . 0 1 0000 0 1 1 1 1 0 1  1 000 1 0 D . 1 7  1 000 1  1 000 1 



D . 0 2 0 0 0 1 0 1 0 1 1 0 1 0 1 00 1 0 D . 1 8  1 00 1 0 0 1 00 1 

D . 0 3 0 0 0 1 1  1 1 000 1 D . 1 9  1 00 1 1  1 1 00 1 

D . 0 4 0 0 1 0 0 1 1 0 1 0 1 00 1 0 1 0 D 2 0 1 0 . 1 0 0 0 0 1 0 1 

D . 0 5 0 0 1 0 1  1 0 1 00 1 D .
2 1  1 0 1 0 1  1 0 1 0 1 

D . 0 6 0 0 1 1 0 0 1 1 00 1 D . 2 2 1 0 1 1 0 0 1 1 0 1 

D . 0 7 0 0 1 1 1  1 1 1 000 000 1 1 1 D . 23  1 0 1 1 1  1 1 1 0 1 0 000 1 0 



D . 0 8 0 1 00 0 1 1 1 00 1 00 0 1 1 0 D 2 4 1 . 1 000  1 1 00 1 1 00 1 1 00



D . 0 9 0 1 00 1  1 00 1 0 1 D . 25  1 1 00 1  1 00 1 1 

D . 1 0 0 1 0 1 0 0 1 0 1 0 1 D .
26  1 1 0 1 0 0 1 0 1 1 

D . l l 0 1 0 1 1  1 1 0 1 00 D . 2 7 1 1 0 1 1  1 1 0 1 1 0 00 1 00 

D . 1 2 0 1 1 0 0 0 0 1 1 0 1 D . 28  1 1 1 00  00 1 1 1 


 ̄  ̄
 ̄  ̄ 

D . 1 3 0 1 1 0 1  1 0 1 1 00 D . 29  1 1 1 0 1  1 0 1 1 1 0

0 1 000 1

D . 1 4 O H I O 0 1 1 1 00 D . 3 0  1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 

D . I 5 0 1 1 1 1 0 1 0 1 1 1  1 0 1 0 0 0 D 3 . 1  1 1 1 1 1  1 0 1 0 1 1 0 1 0 1 00

K . 28  1 1 1 00  00 1 1 1 1  1 1 00 0 0

24


第三章 SerD es 模块验证方 案 设计

表3 . 45 b 6 b 编 码 映射关 系 分 析

i n p ut RD 
= -

1  RD 

 +  1  i n
pu t  RD 
= -

l  RD =
 + 

HGF HG F



g y
j    

gh j


D . x O 0
.  1 0 1 1
f 0 1 00  Kx . O O O P 1 0 1 1


0 1 00

00 00 0 
D . x . l 1


1 00 1

 K x . l 1 1 1 0 1 00 

x 2 0 x 2 0 0  0
D . . 1 0

0 1 0 1

 K . 1 1 0 1 0 1 0 

D . x . 3 O i l  1 1 00 00 1 1 Kx . 3 O i l  1 1 00 00 1 

D . x 4 . 1 00  1 1 0 1 00 1 0 Kx . 4 1 00  1 1 0 1 00 1 


 

D . x 5 . 1 0 1


1 0 1 0
 K x 5 0 0
. 1 0 1 0 1


1 0 1 

D . x 6 . 1 1 0

0 1 1 0
 K x 6 0 0
. 1  1 00 1


Q U 

D X P 7 
. . 1 1 1 1 1 1 0

000 1

 

D X A 7. . 1 1 1 0 1 1 1 1 000 K _ x 7 . 1 1 1 0 1 1 1 1 000




  

表 3 . 5 控制 码 映 射关系 分 析

n p ut  RD  RD +
= -

I  1 

丁
DEC HEX HG FE D C B A ab cd e i f
g hj  ab c d e if
g hj

K . 28 0 .  2 S C 0 0 0 1 1 1 1 00 00 1 1 1 1 0 1 00 1 1 0 0 0 01 0 1 

 

K . 28 . 1 1  6 0 3 C 0 0 1 1 1 1 00 00 1 1 1 1 1 00 1  1 1 0000 0 1 1 

K . 28 2 .  9 2  5 C 0 1 0 1 1 1 00  00 1 1 1 1 0 1 0 1  1 1 0 0 0 01 0 1 

K . 2 8 3 . 1 2 4 1 C Q 1 1 1 1 1 Q0 00 1 1 1 1 00 1 1 1 1 0 0 0 01 1 00


  

K . 28 4 .  1 56  9 C 1 00 1 1 1 00 0 0 1 1 1 1 00 1 0 1 1 0 0 0 0 1 1 0 

 

K . 28 5 .  1 8 8  B C 1 0 1 1 1 1 00  00 1 1 1 1 1 0 1 0  I 1 0000 0 1 0 

K . 28 6 .  2 2 0  D C 1 1 0 1 1 1 00 0 0 1 1 1 1 0 1 1 0  1 1 0 0 0 0 0 0 1 

K . 28 . 7  2 5 2 FC 1 1 1 1 1 1 00  00 1 1 1 1 1 000 1 1 0000 0  1 1 



K . 23 . 7  2 4 7 F 7 1 1 1 1 0 1 1 1  1 1 1 0 1 0 0 0 0 0 0 0
1 1 0 1 0 1 1 

K . 27 7 .  2 5  F B 1 1 1 1 1 1 0 1 1  1 1 0 1 1 0 1 000 OO I OO I O l l 

K . 29 7 .  2 5 3 F D 1 1 1 1 1 1 0 1  1 0 1 1 1 0 0 0 0 0
1 1 000 1 0 1 1 

K30 . 7  2 5 4 F E   1 1 1 1 1 1 1 0
 ]
O m i Ol Q Q Q 1 0000 1 0 1 1 

为适配各协议 , 该 设计 模块 为 8 b/ 1 0b 提供 了 三种 配置模式 , S in
g e l
_
8b l 0b 

d ual
_
8b l 0b 以及 q ua

_
8b l 0b , 通过端 口 信号 cf
g _
en c o d e
_
mo d e 进 行模式选择 ;


增 加 了 强 制 极性 控 制 模 块 , 为每个 8 比特通道增 加 2 比 特 的 控制 信 号 t x _
d i s
p _
Ctr 

和 t x _
d is
p _
s d 。
将 这 段 逻 辑 插 入 到 编 码 极 性 逻 辑 生 成块 中 , 支持强制 替 换对应 

“ ”
比 特输入数据 的 真实 输入极性 当 时 




t x_
d i s
p _
ctrl , t x _
d i s

_
se l


2 b 0 0 ,

个 比特 的 输入极性受到 上 个 比特 的输 出 极性 的影 响 即 正 常 编 码 过程 


8 8 , ,

时 强制 将 对 应 的 比特数据输 入 极性为 负


t x _
d isp _
ctr l , t x _
d is
p _
sel


2 b l 0 , 8 ,


时 强制 将对应 的 比特数据输入极性为负 




t x d is ct r l t x d i s se l 2 b l l 8
p p
, , ,
{ 一 _ 一
— }

此之外 为保证部 分协议发送 I DLE 码 的 时序极性要求 ,


需 要通过控制 信 号将输入

2 5


   西 安 电 子 科技 大 学 硕 士 学 位论文 

的 D 1 6 2 .
替 换为 D5 . 6 以 此 保证输 出 极 性 为 负 此时 需 要 将 。

t x _
d i s
p _
ctrl , t x _
d isp _
s el


配置为 此外 还支持 时 间 戳测 试来 实现 同 步 定 位功 能定 位 


2 b0 1 。 8 b l Ob 1 588 ,

过顶 层 信 号 t x _
s fd
_
fl a
g 以及 t x _
s fd
_
〇 fs e t 标记 数据 比 特位置 在 输 出 标 记 比 特 时 , 

拉 高标 志位 t x
_
s fd
_
l ag
f _
o 以及位置 t x _
s fd
_
o fs e t
_
o 

根 据 上 节 对 设计 模 块 的 分 析 , 8b l 0b 编 码模块 功 能 点 提取如 下 表 3 . 6 所示 

表3 . 68 b l 0b 编 码 功 能 点 提取表

验 证 功 能 点 配 置 验 证 预 期


正 常 数 据 编 码 编码结构与对照 表 



t x
_
d i s
p _
ct r l , t x _
d i s
p _
se l


00

enc
_
mode : si n gl e / d ua I /
q u ad

时 序 检 查 N A .
输 出 延 后 输入 2 cy c es

l

中 断 上 报 〇 1 11

1 &&非 k _
c o de  上报 中 断


强 制 极 性 {
t x _
di s
p _
ct rl , t x_
d i s
p _
sel


1 0/ l l
输 入 极 性 替 换 负 正 / ,
编码数


据 也相 应变化


替 换 场 景 {
t x
_
d i s
p _
ctr l , t x _
d i s
p _
sel


0 1  D LE I  输 出 极性为负


1 588 场 景 {
t x
_
d i s
p _
ctr l , t x _
d i s
p _
s e l


00 标 志 信 号可 以 正 确 拉高 的 同


enc
_
mo de : s i n g e /d u a
l l /

u ad  时 位置 也 正 确 指示

1 .
验证 256 种 D _
c〇 de 和 1 2 种 K _
co de 根据 输入极 性进 行 编 码 后 的 数 据 与


对照表 表 表 致
— ?

3 . 3 , 3 4
. , 3 . 5 

2 . 验证输 出 和 输入 的 延 时 是 否 满足 时 序 

3 .
验证 k in 指示位若 错误标记 2 4 4 ( 2 5 6 -

1 2 ) 种 无控制属 性 的 D _
co d e , 


上报错误 , 将输 出 信 号 i n vai ld
_
k 信号 拉高并上报给 中 断寄存器 

4 .
验证接 口 信 号 {
t x _
d i s
p _
ctr l ,
t x _
d i sp _
se l

配置 为 1 0 , 1 1 时 模块进 行 强 制


极性 替 换 , 编 码 的 数据 应 收 到 强 制 极性 的 影 响 而 非 原 本输入极 性 的 影 响 

5 .
验证接 口 信 号 {
tx
_
d isp _
ctrl , t x _
d i s
p _
sel

配置 为 0 1 时 , 模 块进入 替 换场


景 确 保 链 路 复 位 过程 中 由
, K2 8 . 5 和 D 1 6 2 .
组成 的 I DLE 码 编 码 后 输 出 极性 为 负 

若推算 出 输 出 极性为正 , 将 D 1 6 . 2 替换成 D5 . 6 保 证输 出 极 性 为 负 



3 2 2. . 6 4 b66b  编 觯码

6 4 b6 6 b 编 码技术主要使 用 于 1 0 G 以太网 ( 1 0 G B ase -

R) 上 , 是

个将 解 码 和

扰 码 有 机地结 合 的 新 技术 

首先 ,
把数据 分为 八 个 字节 ( 总共 64 比特 ) 的组 。 然后 , 通过某特 征 多 项 式


的 自 同 步扰码 对这些字节数据进行 了 随机处理 在 此基础上 对每 八字节组


, 。 ,

都有 个 标识和 个 标记 同 时 每 八 字节 组都有 个控制 字 符 最后 




一 一 一

1 0 1 1 , 。 ,

果 这 八 字节 组都 是 数据 字 符 则 增 加 了0 的标识符 而如果 个或 多个字节是控




, 1 ;

26


第三章 Ser D es 模块 验证方 案设计

制字符 则 添加 个 标识符 将 个 字节字 符 由 代码 定 义 可能是




一 一

, 〗 〇 。 8 ( 8 b l Ob ,

个 数 据 或控 制 字 符 编码为 个 比特 长字 符过程通常称 为转换代码 这些 比





) 64 。

特 可 以 在 不 同 的 时 间段 内 被重 新分配给每 个 比特 都具有 个唯 的 映射表 




一 一

且每个映射表 中 的 字符都具有唯 的 长度 G FP T8 提供 种 标 准 方法 将 


一 一 一

。 ,

64 比特的 8 b l 0b 数据进行组合 。 而 1 0 G bE 则 提供 了 万 兆 以 太网 各万 兆光纤链路



的 相 应子集映射表 。
同步过程 中 所使用 的 同 步头 0 1
和 ] 0 保持不变 , 不参与 扰码

过程 转换代码 的 生成过程可 以看 作 是 个 简 单 的 数据 帧 头 帧尾都可 以使 用 比




。 、

特 同 步技术 同 步 比特还保证每 位至少有 次转换 图 代表 的编




。 66 。 3 . 3 6 4 b/6 6 b

码过程 ,
其中 D 代表数据帧信 息 , Z 代表 7 比特控制 框架信 息 , S 代表 帧头 , 

代表帧尾 ,
图 3 . 4 所示为 64 b6 6 b 编码 的对应关 系 

0   1 8 x 8b i t s 数据 分组 ( 己加 扰 

( a ) 仅 有 数据 信 号 的 64 b / 66 b 码组

1  0 7
x 8 b i t s 数据 、 控制 混合 分组 ( 己加扰 

( b ) 数据 、 控制 信号 混合 的 64b / 6 6 b 码组

图3 . 3 两种 64 B /6 6 B 报文格式

1 / 技 制 块格 忒

头部
|  数裾 负 倚

( 扰
D D D D D D D 0 D O/ 1 : 8 D l : S D 2 :
8 D B :
8 D 4 : S D 5 : 8 D 6 : 8 D 7 : 

ZZ Z Z / ZZ Z Z  1  0  O x l e Z0 : 7 Z l : 7 Z 2 7 Z 3 : : 7 2 4 : 7 Z 5 : 7Z 6 : 7  Z7 : 

T Z Z Z Z Z Z Z  0 0 x S 7 7 Z
/ 1 I : 7 Z2 : 72 3 : 7 2 4 : 7 Z 5 : 72 6 : 7 2 7 : 

D 丁 ZZ / Z Z Z Z   0  0 x 9 9  D O 1 : 8  6 Z 2 : 7Z3 : 7 2 4 : 7 2 5 : 7Z 6 : 7 Z7 : 



D D T Z Z Z Z Z  0 O x a a D O
/ 1 : S D 1 : S 5 Z 3 : 7  Z4 : 7 Z5 : 7 2 6 : 7 2 7 : 

D D D T / ZZ Z Z   0  0 x b 4  D O 1 : 8 D 1 : S D 2 : 8  4 Z4 . 7 Z5 : 7 Z 6 : 7  Z7 : 

D D D D /T Z Z Z  0  O x c c  D O 1 : S D l : 8 D 2 : 8 D 3 : 8  3Z 5 : 72 6 : 7 Z7 : 

D D D D D T Z Z  0 0 x d 2 D 0
/ 1 : S D i : S D 2 : 8 D 3 : 8 D 4 : S  2Z 6 : 7Z 7 7

 :

D D D D /D D T Z   0  O x e  D 0 1 l : S D l : 8D2 : 8 D 3 : S D 4 : S D 5 : 8 1 Z 7 : 

DD D D / D D D T   0  O x f f  D 0 1 : S D l : 8 D 2 : 8 D 3 : 8 D 4 : 8 D 5 : 8 D 6 : 

S D D D D D D D   0 0 x 7 8 D
/ 1 1 : S D 2 : 8 D 3 : 8 D 4 : 8 D 5 : 8 D 6 : S D 7 : 

ZZ Z Z / S D D D  1  0 0 x 3 3 Z0 : 7 Zl : 7  72 : 1 Z3 : 7 4 D 5 : 8 D 6 : S D 7 : 

图 3 . 46 4 b6 6 b 编码 及

Syn c
j i ea d e r 的 不同代表 的数据结构不 同 ,
但 在 物 理层 的 设 计 件 朱 区 分 两 比 特


2 7


西 安 电 子 科技 大 学 硕 士 学 位 论文
   

的作用 并且对 负 载数据 的 加 解扰 处理 将这 部分 的 处 理交给 了 链路层 处理


, , 

物理层保证 的 是不 同 位宽模 式下数据 的 编码 正 确 性 。


因 此 发送激 励 的 输 入数据 是


全部 随 机化 的 每 比特 的 翻转都可 以覆盖到 设计 仍然通过

, 0/ 1 。 cf
g _
e nc o d e mo d e

的 配置来选择 区 分不 同 种 的 6 4 b6 6b 模 式 为 匹 配不 同 速率 支 持 , , 1 6 比特 6 4b6 6b 

1 6 比特 6 4 b6 7b 、 3 2 比 特6 4 b 6 6 b 、 3 2 比特 6 4 b6 7 b 、 6 4 比特 6 4 b66 b 、 6 4 比特 6 4 b6 7 b

模 式 输 入端 , 口 定义 了 最大位 宽 的 en c
_
d n i

63 : 0

, 三 比 特 的 头 部输 入 t x h e a de r

2 : 0



和 类似 同步头 多 比特 并且 不 参 与 加 解扰过程 还有输入




( 64b6 7 b 64 b6 6 b , , ) ,

信号 t x _
se
q 辅助编码 , 以 1 6 比特 _
6 4 b6 6 b 编码模式为例 ,
当 t x
_
se


0 时 , 表示编


码 的 最开始 此时第 个头 部 的 两 比特数据 H O H 进入到 编码数据 的


, he ad e r O , 1

最低位 ,

个 输入 数据 的 低 1 4 比特从低 到 高依 次填 充 s e
q 剩 下 的 位置 ,
高两 比

特进 入 到 第 二个 s e
q 块 的低两 比特 ,
以 此 类推 完 成编 码 , 图 3 . 5 为 1 6 比特 _
64 b6 6 b

模 式 编 码 后 输 出 数 据 的 组成 过 程 

S  M S B L S B S e q M S B
= =

LS B e
q 0 1

| HO H  DO  D I
| |

 |
. . .

 D |
1 3
 |  D |
1 4 | 
D 1 5 | DO  D  |

|   . . .

| 
D 1 3
 丨


A A
  V   Y




he ad e r 0 [
l : 0 ]  d m0 [
1 5 : 0 ]  d n i l

l 5 : 0 

 M  M

Se

4 Se 5
q q
LSB SB LS B S 

D D HO H  DO D     D  D D D 4 D DO D    D




2 5

| 
1 4 |  1 5 | 1

| [


. . .


l l
 |
| 

| 
1 3  |



| [


. . .


1 1
 |

A 入
 V
V   


y Y


d i n3 [
1 5 : 0 ] h e ad er l

l : 0] d i n4 [
1 5 : 0]

图3 . 5 丨 6 比特 _
64 b66 b 模式编码后输 出 数据

由 于 输 入数据 e nc d n i
和输出端 口e n c do ut 都是 1 6 比特 , 由 于输 出 加 J 头部

信息 为 了 维持其 时 序 的周 期性 定会在某个 其输入数据 无效 图 




, , s eq , 3 . 6

示 1 6 比特 _
6 4 b6 6 b 模式 的编码时序 , 红 框 表示 输入 数 据 无 效 

< A e  o f e nc o d e r 



c c

y l 

e l k 0        1

2 3 li


3 0 3 1

3 2 0  |
//

t x s e
q [
6 : 0

 h eader O
 
h e a de r  1

 ]   ?

h e a de r  1 5
 |

  |


s

e n c d i n

1 5 : 0
]  D O D  D 2 D |

[ |

 D 4  P 5 D 6  D 7
| | | |

|  D i)

60
  |
D6  1

|  [ | 
D 62
  |
D 63  | | s

en c d c ur


1 5 0 】
 D |

 D  D 2  D 3 P 4 D 5 D 6


[ | | |

|  l


D 59 | 
D 6Q  | 
D6 1
 | 
D 62
 

D 63 | 
D 64  D 6 5  |
 

图3 . 6 1 6 比特 _
6 4 b6 6 b 模式 的 编 码时 序 图

根据上节 对 64 b6 6 编码的分析 ,
提取如下表 3 . 7 所示 功 能 点 

28


第 章 Se r Des 模 块验证 方 案 设 计

表3 . 7 64 b66 b 功 能点提取

验 证 功 能 点 配 置  配 置 .


2 预期


I 6 b i
t 6 4 b 6 6 b 模 式 t x se
q
: 0 -

3 2  t x s e
q p
a us e : 3 】
编 码正 确


1 6b i
t 6 4 b 6 7 b 模 式 t x s e
q
: 0

66  t x
_
s e
q p
a us e 2 :
1 ,  4 4 6 5 编 ,
码正确


3 2b i t 6 4 b 6 6 b 模 式 t x
_
s e
q
: 0

3 2 t x _
s e
q _
pa us e : 3 2 编码正确


3 2b i t 6 4 b 6 7 b 模 式 t x
_
s e
q
: 0 -

66  t x
_
s e
q _
paus e : 22 , 4 4 6 6 编 ,
码 :


二 


64b i t 6 4 b 6 6 b 模 式 t x s e
q
: 0

3 2  t x
_
s e
q p
a us e : 3 2 编 码 正 确


64 b i t 6 4 b 6 7 b 模 式 t x —
s e
q : 0 -

66  t x
_
se
q pa u s e 2 2 :
, 4 4 6 6编 , 码正确

异 常 功 能 序 列 错 误 后 恢 复 正 常 N . A  |
恢 复正确

对于 64 b6 6 b 而言 , t x
_
se
q 并非 由 内 部计数器 自 动生成 ,
需 要 外 界 激励 输入 

而上节分析到 不 同 的 , 6 4 b6 6 b 的 位宽模式 t x
_
se
q 的 输 入范 围 不 同 并且每个 ,
t x
_
se


计数周 期 内 定存在 拍或 几 拍 无效输入数据 通 过对设计 的分析 和 推算 表 中





, ,

配置 1
给出 了 不 同模式下 t x se
q 的有效范 围 , 配置 2 给出 t x _
s eq
paus
e 代表无效

输 入数据 对应 的 t x _
s e
q 值 

最后 项 异 常功 能 测 试正 是 考虑 到 是 由 于 外 来输入 存在 链路不稳 定


t x _
se
q ,

导 致输入 的 t x S e
q 不连续 ,
需要测试 t x _
S e
q 在 人 为打 乱顺序 后 再 正 常 发送连 续 数

据 , 验证 设计 是 否 具有 恢 复功 能 

3 2 3 1 2 8 b
. . l 3 0 b 编解码

待测 设 计全 而兼容 各个 版 本 的 PC 办 议 以 对小 M 的客户 窗求 旅容


e x

r es s V

I ) : ,

G EN 1

G E N 5五 代 ,
其速率分別为 2 . 5 / 5/8/ 1 6 /3 2 G T /S 。 / l : C3 E N 和  G E N 2 l
模式 下 的

物理层使用 了8 b / 1 0b 编码 , |
〖丨
1 在 G EN 3 及 以 上版本 使用 的 是 1 28b l 3 0 b 编码 

1 2 8 b/ 1 3 0b 编码是 以太网 屮 使用 的 6 4 b/ 6 6 b 的演进版本 。 在 1 2 8 比特的 pay o a


d l


而加上 2 比特的 同步头 , 如下图 3 . 7 所示 



 ̄ 一  ̄
 ̄  ̄

0 0 2 3 4 5 6 7 0 2 3 4 5 6 7 0 23 4 5 6 7



1 1 1 )

丨 丨 丨 丨 丨 丨 丨 丨 丨 | 丨 丨  |    | |  
|  | |  
[  |   |

入 JK
  V  Y

, V - 


 ̄ 


^ yn c
 s

mbo l  0  s
ym b o  l 1  s
ymbo  l 1 

( 0 1 

? 1 2 8

b i t ay l o ad  ?


 p

? ?


 

d a ta b l ock

图3 . 7  1 28b l 3 0 b 编码结构

同步头 ( S ync ) 为 0 1
时 , 表不其后跟 的是 O r d e r e dS e t ,
为 1 0 时 ,
表不后 面

跟的为非 O r d e r e dS e 数据 这两 比特同步头和 比特的 起称为数据




t 。 1 28
p a y o a d l

块 ( Da t aB l o ck ) , G EN 1 /2 模式下 ,
P HY 层依 次完成位锁定 ( 比特 Lo ck ) 和字节

2 9


西 安 电子科技 大学硕士学位论文

锁定 ( B yt e ) 锁定而在 G EN 3 ( 及 以上 ) 版本 , 物 理层在 完成 比 特 Lo c k 后会进行



块锁定 ( B l o c kL o c k ) , 相对应于 G EN 1 / 2 的字节锁定 , ( G EN 3 不 存在 字节锁定 ) 



而完成块锁定需要特殊的数据流 E EO S( EI l ectrical  I d e E xl i t  O r d e r e d S e t



G EN 3 G E N 4 G EN 5 的 配 置 有 区
/ / 别 ,
但都是使用 OOh 和 fh 交 替 的 数据流 , E EO S

 I

是 O rd e rS e 的 种

 t 

1 28b l 3 0b 编码只 是在 1 2 8 比特 的 p ay o a d l
前面加 了 两 比特 的 同 步头 , 严格 意

义上不 能称 为编 码 无法实 现 编码 样 的 直流均 衡 所 以 同 样


一 —

。 8 b/ 1 0b 。 6 4 b 6 6 b 

需要进行加扰操作 。 G EN 3 的 扰码算数表达式为 公 式 3

1 

2 3 2 6 8 5 2




x )  = x  + X   + x   + x   + x   + x   + 1 ( 3

1)

同 样类 比 64b66 b 编 码 设计在 物理层 关注 的 是不 同 位 宽 模式下 编码 的 正 确 性


, 

e nc o d e r _
1 28b l 3 0 b 的 输 入 信 号 有 上 个 模块 输入 的 电 气 使 能 信 号 T xE L e c i d l e , 

T xE Lec i d e l
拉低 时代表退 出 电气 空 闲 状态 而进入正 常 编 码 , TxD a t a Va i l d 信 号代表


当 前输入数据 是 否 为有 效输入 , 拉 高 时 对应 的 数据 正 常 编 码 , 拉低时表示当 前 拍

数据 不 参与 编 码 , 图 3 . 8 所示 为 1 28b l 30 b 编 码 的物理层 实现方式 



I I


 

Powe Do w n


2 0 |

 (
PO  I  I  


'  ̄ 

1  I

TxE ec
t l d e l
  \
f  



… … -
     - 

y ^ 
T * D * ava , kl

 (  )    . .

=I T j


L   

Tx s a n i a o ck A A A r [J \ A 



    \  
一 

Tx s ?H e a a e



,  °

(  n  r Vi  V i m


 ̄ — —
 ̄ ' ? —  ̄



谈
Tx D a 5 0 B oc k 。 B oc k B oc k 2 B ock3 B oc k O
t B o ck 2 B oc k 3

a 1

^
t  l
l l l i … l l

l ]

^ j ^ ( ^ \ 


■  i  

图3 . 8 P C I e 协议 中 1 28b l 3 0 b 编 码 的 物理层实现

待 测 设计 使 用 状 态机完成 了 相 应 1 2 8 b l 3 0 b 编码子模块设计 如 图 ( 3 . 9 所示 ) 

定 义 了 三个状 态 , 其中 I N T AL 1 1
_
S T AT E 表示初始状态 ,
当 满足 电气 空 闲 信 号使


能 ( tx
_
e ec l i d l e 拉高 ) , 当 前拍包含 2 比特 同 步头信 息 ( t x
_
s t art _
b o ck

拉高 ) 并且

当 前 拍 为有 效输 入 ( t x _
d at ava l i d 拉高 ) 时 , 状 态机进入 B LO C K _
C YCL E 阶段 

之后 由 于 没有 头 部信 息 ,
状态机进 入 BLOCK _
OTH E R _ ^^# l

S 进行循环 ,
循环 次

数取决输入位 宽 以 比特 编码模式为例 个 为 个 


。 32 1 2 8 b l 3 0b , 4 cyc e l b o ck l

输入 1 3 0 比 特 s 数据 , 此 时 对 应 B LO C K _
C Y CLE 持续 1
个 c
yc e




B LO C K O TH ER _
_
比特 S 持续 3 个 c
yc
l e 。 由 于 输 出 数据位 宽 同 为 32 比特 ,
因此

输入有 2 比特 的 冗 余 数据 ,
那么 在第 1 6 个 b o ck l
发送完时 ,
恰好有 3 2 比特的冗

余 数据 对 应 完整 的 个 比特 输入数据 此时 需 要 拉低 拍 


一 一

32 , , t x d at a vali d ,
_ _

3 


第三 章 SerDes 模 块 验证 方案 设计
 

时进入 N T AL T AT E 完成 次 比特数据 的编码功 能 之后 再循环进 行编 码


I I I S , 


_

t x
_
e l ec i d l e & t x _
s t a r t b o l c k

 & t x d at a v a l i d  




^
 I 

I N T A L\
I I (B L O C K \



(


e l se  l  S TA T E V  d se
t C Y C L E 

t x _
e l ec d i l e & T 

\  t x
_
s t a r t
_
b l o ck &/

\   t x da t a va l i d /
t x d ec i d e&

|


_

e l se
\ /  (
!  t x
_
s t ar t
_
b l oc k ) 


\ t x d a ta va l i 

\ /  B L O C K  \

O TH E R r



B

V TS
J


t x e l ec i d l e & (
! t x

s t art b l o ck 

& t x d at a v a l i 

图3 . 9  1 28b l 3 0b 编码模块 fs m 图示

根据 上节分析 , 提取 ] 2 8b  1 3 0 b 模块 功 能 点 如 下表 3 . 8 所示 

表3 . 8  1 28b  1 3 0 b 类编 解 码模块 功 能 点

验 证 功 能 点  激 励 验 证 预 期


状 态 机 N A .


em
f 正 常跳 转


正舍编码3能 RA  编 码 正 确
异常测试  Tx 在 的第 拍 未 拉 高 具 有 恢 复 功 能



s t a r t b oc k l b oc k l

异 常 测 试 二 Tx _
d a ta v a l i d 在 b oc k l
循 环 结 束 未 拉 低 具 有 恢 复 功 能

在满足正常 的编码功能外 , 还应 该对 非 正 常编 码情形增加异 常测 试 :


需要测

试 Tx 在 的第 拍 未拉高 以 及 Tx 在 循环 结束未拉


st art b o ck
l b ock
l d at ava l i d b ock

_ _

低两种情况下 , 重新 发送 正 常 数 据 后 , 待 测 设计是 否具有恢复功 能 



3 3A P B

模块

功能完备 、 复杂 度 高 的 设计模块 寄 存 器配置是 不可或缺 的 , S er De s 模块 中 的



寄 存 器 配置方 式有 两 种 其 是 通过位流 的 形 式 PM A 由 于是外 部 先将寄存




, , 丨 P ,

器配置值存储到 个 RA M 里 在 生 成 位流文 件来对 其 配置 PM A 相关寄存器的




S ,

值 。 而 PCS 部分 是设计 人 员 参与 了 代码 的 全部 co d i n
g ,
为其准 备 了 通信接 口 ,



以另 种是通过 A P B A d v a n c e dP e a B u s 协 议 配置 PC S 相 关寄存器的


h e
p he
( t r i r l

3 


西 安 电子 科技 大 学 硕 士 学 位 论 文
  

值 。 PC S 的 寄存器包括 pc s _
l a ne 和 p
c s co m mo n 两部分 ,
支持对 P C S4 条 La ne 


独配置 以 及 公共部 分 的 配 置 

根据总线功能和 作用 的 区 别 , 将 A M B A  A d v a n c e d  M ( i c ro

co n t r o l l e r Bus

A rc h i t ec t ure ) 总 线 分 为三类 , AM I 、 AX I 、 APB 。 AP B 在 降 低功耗 的 前提 下减少




了 外设端 口 的 复杂 度 表 3 . 9 描 述 了A P B 端 口 的名 称及功 能 

表 3 .
9A P B 端 口 的 名 称及功能 

名称 功 能描述
 

PCL K 总线时钟 :
在 PC L K ■ 上升沿时 , 用 作整个 APB 数据传输 的 基 准


PA DDR 地址 : 用 来存放数据



P W R TE 1



写信号 :
为 1 时 实现写功 能 为 .
0 实现 读功 能 

PSEL   选择信 号 :
为高 电平时 需要进行 .

次数据传输


PEN A B LE

使 能信 号 : 为高 电平时 ,
开 始进 行读 或者 写 任务 

PW D ATA

写 数据 :
在写周 期 ( 即 PW R 1 TE 为 1 ) 被 驱动 

P R DA FA

读数据 :
在读周 期 ( 即 PW RUE 为 0 ) 被驱动 

P RE A D Y

准备信号 :
当 P EN A B LE 为低 时 插入 等待状 态 从 而延 长数据

 . .

AP B 协议状态转 移 如 图 所示 AP B 协议共有三个状态 开始上 电进




3 . 1 0 , ,

入 I D LE 状态 , 当 且仅 当 片选信号 PSEL 拉高 时进入 S ETU P 状态 , 此 时 还要相 应




的给读写 信 号 P WRI T E 和 PA D D R 赋值来进行 次数据传输 在 此状 态 下 停 留
一 

个 c
yc e l
后 拉高 , APB 使能信号 P EN AB L E 开始进入 AC CES S 状态进行读写任务 

N o  t ra n s fe 

/ D L E X I

y

J p s e
y



i x o

/ \ P EN A BLE 



/ T r an s fe r



P REA DY =




an no
PSE x

l 



an s fe r

 \ P EN A B L E 


tr

P RE A D Y =




. / A CC E S S X j P RE A D Y =


{  PSE x l

 y a n dt r
a n s fe r

图3 . 1 0 AP B 协 议状态 转移 图

3 2


模块验证方 案 设计


 第 三 章 S erD es

如图 3 . 1 0 表示 AP B 的 写机制 , 写 传 输 过程在 时 刻 T 1
处进 行 , 在 T 1 的 整个

吋 刻 循 环 中 所有 信 息 都 不 改 变 对应状态转移 图 中 的 ETU P 周 期性 在这 个循



S ,

环中当 P WR TE I
为高 电平状态时 , 才进行读写机制 。
从 T2 的开始 , 对 PA DDR 

高效 而且可 以在 PR EAD Y 由 低压转 为 高 电 平 的 下 时刻




P W D AT A 、 P EN A BLE ,

周 期性进 行 写传输 , 在这

时 间 对应 ACCES S 状态 

P C LK

PAD DR  :

 a d d H

 丨

  

 — ■

 s 

 L .



P WR I TE  

PSE L  
〇 j
  ^ \\  

P E N A B L E   fT  _
i 

P W DATA  !
I T  da


a l


P R E A D Y  r
{ |




 
f |

」 

图3 . 1 1 A P B 写时序

如图 3 . 1 2 为 AP B 的读机制 时序 ,
读 机制 中 的 S E TU P 周期和 EN A B L E

周 期 的 概念 与 读 机制 相 同 , 在 S ETU P 周期中 , 当 P WR TE 为 低 I 电平 时 , 

行 渎传输 

 n  X2  X i  X   T

XO L .
4 .
r5 6

C K   U  u U  L
, i , ; ; , | 

P L
 L L





L ^

| |

ADD  T   

P R j
f a ddr l


P W R TEI
\   \



PS E L
 \   :

| |
\\


P E NA BL E  f 
l 



W D A TA  H   X da  t




 1


 

P R t A D Y   H  Y ; ! !


\\
 

图3 . 〗 2 A PB 读 时序

该模块 的验证功能点为 

1 . 正 常 时 序 逻辑 下 , 读写 操作 正确性 

2 .
异常测试 : P EN A B L E 和 P S EL 信 号拉起 的 先后 顺序不 同 时 ,
设计 的 处

理结果 应为无法正 常读写 。



次读 写 操 作 未 完 成 ( 即 P R EA D Y 信 号未拉高 ) 

进 行第 二 次读 写 操作 , 验证 第 二 次读 写 操 作 会 失 败 

3 4 S e r d e s
. 

其 余 子 模块

3 4 . . 1 跨 时 钟 域 模 块

收 发 两侧 均有跨时 钟域 模块 ,
简称跨时 钟 桥 ( hr i d
ge _
u n i t ) ,
基本的结构其中

3 3


西 安 电子 科技大学硕士学位论文
  

t x _
br d g e

只用 作 缓冲 数据 其 内 部 结 构 由 时 中 配置模块和 异 步 , i fo
f 组成 , r x
_
br i d
ge

功 能 多 于 发送 测 针对 不 同 协 议 的 应用 场 景 通 过相 关 寄 存 器配置 可配置 为 , , n o r m a l

模式 ( 异步 i fo
f ) 、 c ha nn e l  b o n d n g ( i
简称 ceb ) 模式 , et c ( 频率 补偿模式 ) 以及


c eb+ctc 模 式 验证 时 配置 为 。 br d ge

_
f fo

_
mo d e 进行测 试 冒 烟 对于 异步 。 if
f o 模式 

除 了 要 验证数据 通 路 是 否 正确 , 还要对 i fo
f 读空 , 写 满 的 情 况进 行验证 。
设计模


块为此专 门 设置 了 中 断 寄 存器 , 该模块 需要验证 的 功 能 点 为 

写 时 钟 频率 快于读 时钟 频率 数据超过水位上 限值 不 定为 深度

1 .
, ( i fo
f 

可 通过 寄 存器 配置 ) , 能 否 正 常上报 中 断给相 应 的 t x/ r x _
br id g e _
i fo
f _
o ve r f
lo w 寄存


器 

2 .
读 时钟 频率快于 写 时钟频率 ,
水位低于 下 限值 ( 可 根据 寄 存 器 配置 ) 时 

能 否 正 常 上报 中 断 给 t x/ rx _
br d g e

_
i fo
f _
u nd e r f
lo w 寄存器 

3 .
未 发生 und e r f
lo w 或者 o ver f
low 时 数据 以 及 控制 信 号 的 跨 时 钟 域操 作 是 否



正确 

3 . 4 2

数 据 整 形 模 块


T x/ r x  g e a r  b o x 用 于 数据 的 拆 分 ( s

l i t ) 和拼接 ( un o n i ) , 例如某 d a t a mo d e
_

下 fa b r i c 侧 有 效输 入为 32 比特 ( 有效载荷 、 不包 含控制 信 号 ) , 输出给 pma 的位




宽只有 20 比特 , 由 8bl 0b 编码 的特性可知 , 时 钟 频率不 改变 的 情况下 ,
p ma 侧需

要 4G 比特位 宽 , 但 是 现有模 式无法支 持 , 这 就 需 要 将 输入 数据 对 半 拆分 , 时钟倍




频 此时 , t x _ ! e ar _
bo x 配置 为 s
p l i t 模式 而镜像的 , rx  g e ar  bo x 就 需 要 配置 为 u ni o n

模 式完 成 数据 拼 接 以 保证给 fa b r i c 的 有 效输 出 为 32 比特 ; 而对于 fa b r i c 侧 有效输




入为 8 比特 , 输出给 pm a 的位宽却有 20 比特 的 d at a _
mo d e , 则 需 要 将 输入 数 据 拼


接 , 具体行为是讲 gea
r 模块 的 时 钟 进 行 分 频得 到 dk _
en 信号 ( 简称 ce ) , 当 ce



时 , 代表 当 前 e k l 的 8 比特数据 作 为之后 拼接数据 的低 8 比特 , 此时并不输 出 数




据 而在 持续 拍后 置为 且维持 拍 对应 的 比 特输入数 据 作 为 拼接 数


一 一

, , ce 1 , 8

据 的高 比特 并将之前存储 的低 比 特数据组成 比特 同 输 出 在经过


8 8 1 6 ;
enc o d e r

模块输 出 p
ma 2 0 比 特位 宽 数据 , rx 部分则 需 要 配置为 s
p l it 模块保证输 出 给 fa b r i c

的 数据 为 8 比 特 该 模块 需 要 验 证 对 于 不 同 数 据 位 宽 下 数 据 拆 分 和 拼 接 是 否 正 确
。 

3 4 3
. .  同 步 模块


如图 3 . 1 3 为 同 步 模块示 意 图 经 过编 码 后 的 数据 在 经过 ,
p ma 模拟部 分 的 并 转


串 , 串 转并 变化后 ,
会发生 比特偏移 , 除此之外链路 的 不稳 定也会导 致某些字节


的 缺失或者移位 因 此在 的第 级 经过寄存器打拍 之后 下 个模块 的 作用 是 负



, nc

责 找到 字节 对齐位置 c o mm a 并且按 照 协议 找 到 多 个 c o mm a 字节后 alg in 模块拉高




同 步信号 l sm
_

ynC 解码 模块才可 以 正 常 进 行工 作 。 此 外 还有 移 位 寄 存器 比 特 _
sl i


3 


第三章 SerDes 模块验证 方 案 设计
 

可 根 据 配置选择 是 否 使 能 以 将 同 步 字节 末尾和 输 出 数据 的 末尾对 齐 。 包含模块 



I   

I  

I  

 

  I


s m s
ync

  A g n




l i

 <




 

I  1
 

⑶ ?1^ n f〇 r m a on
^ 

c o d e v o a o n
丨 i l


 i l t i

输 



 r  ̄ _ I 

输入N

0b t
数 \^  

> c o m m ad e










/ g 
1 
选择
; !





l 



器

丨 目 de co de 

I B i t

s l i
p 1


  二   

 



同 步 模块 丨

图3 . 1 3 同 步 模 块 示 意 图

1 .
〇 ) 1 11 1 ^ _
( ^ 1 ;
模块 负 责 寻找 : (: 〇 1 11 丨 1 3 1
位置 如 。 图 3 . 1 4 所不为千兆 以太 网 (: 〇 1 11 1 

检 测 流程 示 意 图 


《戈

▲如 機缓 |  D a t a

 为 2 0 b D i t a t aw i nd ow 为2 0b i t 

D 



I  



 
1 


I I

卜 ―
叫 〇_ 为 隱

 叫
… …


=  I _ 」  I _ 

^ 
1 ) 〇


S l

!Z  :
h , i
 
^ ^5 4


5^ i
b u b
l -



 S^  I S
… 


4 

do 



nb b9 b 7  \ b6   b 5  b4  b3   b?  b   bO 
… 

b i 2 b i o :

. l

- "
— ? . _ . _

= 二 二 二 二 一  一 二 ir : i rz -  一 一  一  r zr : —  - - r z ir z r z r :
: : j ^ 

| 

:  ̄ : :

l , , ,   ? N m  ? r r T   , r r r , r ?   , , T 1 T m f ^    U _ N 邏   . . 
 

5 b  b b b b 9 h 7h b 5 Wb 3h 2 b b Ub


… 

b l
〇 ;
b l X h i 7 b l 6 b ! I 4 i
) 1 3 ! 2 l l l
〇 ( )
! ! 9 b I 8 

l J 一  一 一  二 一  一  一      一  一  
 

Do u



t O


… 

說 枓 8 ^ 

图3 . 1 4 I G bE t h e n e tC o m m ad e e c t


p
r oc e s s

 t

对 每 个 数据 ,
c o m m ad e t e c t 会直接 比 较低 的 1 0 比特或者 高 的 1 0 比特是 否 为


co  mma ,
如 果检测 到 co  mma ,
则给出 标志 ,
并且将数据输 出 

3 5


西 安 电子 科技 大 学 硕士 学 位 论文
  

在首 次检测 到 c omma 时 需要记录 下 是在 哪 个 数据 的 哪 个位置检测 到


, co _a 

当 内 置状 态 机控 制 第 二 次或者 第 三 次检 测 co mma 时 则 直接查看记 录 的 数据 的记


, 

录位置是 否 为 co mm a , 是 则 表 示 再 次 检 测 到 了  c o mm a 

在 pcs 比特 s l i
p 模式下 , w o r da l i
gn 模块 会根据 a l i
g n np
e ma 进行移位调 整 

因此 co m m ad e t e c t 模块直接对输入 的 20 比特数据 检测 是 否含 有 co mma 



2 a . l i

gn 模块 :
按 照 协议连续找 到 正 确 位置 的 com ma 

以 20 比特举例 , 8 b ]  Ob 解码会反馈 2 比特 的 co de
_
v o at o n
i l i ( I NV ) 和 co de
j yp e 

表示 当前 的 2 个数据 是 否有效 以 及 数据 的 类 型 是 K ( 特殊字 段 ) 还是 D( 数据字




段 ) 。 先进入 的 数据在 LSB ,
后进入 的 数据 在 MS B 

因 为本协议对 c o m ma 的 位置有 奇偶 限 制 ,
所以 20 比特时 , 限定如果 co mm a

在 比特的 L SB 加么 M S B 定是 D 如果 在 MSB L S B 也 定是 D
— 一

20 , , co mma , 

为 了 状态机 的 简 化 状态 机 统 按照 在 LSB 作为条件来跳转 而如




, co mma ,

果检测 co mma 在 MSB , 则 直接 在 状机模 块 改 变检测 到 co mma 时 的位置 ( 信号




co mm ad et
 p a
l ) ,
从 MS B 调 整到 LS B ,
但是 输 出 给解码模块 的 数据 不 作 调 整 , a l i
gn

模 块状态 转 移 图 如 下 图 3 . 1 5 所示 

/  I  S YN C A CQ 1  1
 p

LO S S O F  SY N C V

/ //
 ^  \
A

 M S B /L S 4 =
I N V LS


C \



 、

\ 0< b &  2 <
kh  t
I n t


1 


\ 




 /
) 

 f、 

 1 1 1

\\  

  

< S YNC A CQ 2 \
t
S VN C A C Q 2 A N B

C?





\ 1


; (


\/  X  / \ *CQ DET 

^  〇〇 h  & go o d _
c n t




S YN C A CQ  ^g〇 〇a  S Y N C A CQ A
 h
— 

_ _
3 l 〇 _ _


n b  i 〇 b
沒 
/ 〇 n >
 

\

 f
l h 〇 h 1 


? i l s i

  MS B M B NV C


1 S Y NC _
A CQ _


S YN C A C Q _
4 A

b a d : S I

    LS B LS B NV



\ \ ba d : I


_


 J  J
 y y  *
J O b & i
f i
Hul  c  ̄
i U3
\ 0 0 b

0 1 b


 {

{ 


MSB
MS Bb a
_
ba d



 ! LS B

 LS B  b a d
ba d






^ ^ ^ ’

  1 0 b :

 { M S B bad ,  ! LS B ba d



 一
" "


 


MS B
 

L S B
 

l l b : bad ,
ba d
  I

{ _ _


图3 . 1 5 a l i
gn 模块状态机跳转

3 6


第三章 模 块验证 方 案设计

SerDes
 

3 . 比特 _
s li
p :
移 位 寄 存 器
移位寄存器 比特 _

如 可 根据 配置 cf
g _
co mm a _
d et 模 式来选择 是 否 开启 使 能 

若配置为 输入 到 同 步 模块 的 数据 不 作 处理输 出 给解码 模块 配置 为 




0 ,
, 2 b0 1 ,

择移位 , 将 输入 数 据 移 位 直 到 co _a 的 末 尾 比 特 与 输 出 数 据 最低 位 对 齐 

同 步模块 的 验证 功 能 点 为 

1 .
当 c fg _
de t _
m〇 d e 配置为检测 模式时 , 验证 co m ma
_
det 模块能否识别任 意位

置到 的 c o mm a 值 , 对于 20 比 特 的 输入 数据 , c o mma 的 最低位序遍 历 0 -

1 9 所有

位置 并添加 功 能 覆盖率模 型 

2 .
当 c fg _
det _
mo de 配置为 pc s _
比特 _
s l ip 时 验证 , co mm a _
det 模块是 否 可 以 使


能 比特 _
s li
p ,
并将检测 到 的 c o mm a 移动 到输 出 数据 的 最低 位并 添加 功 能覆盖模 型 

A l i
gn _
mo d e 状 态 机 的 状态 跳转 是 否 正 确 , 同 步信号是否正确拉 尚 

3 .
异常场景测试 : 连续 累 计 四 次 b ad
_
c〇 _a ,
检 测 状态 机 是 否 失 去 同 步 到 状


态 LOSS _
OF _
S YN C 以及输 出 信 号 l sm
_

y nc 是 否拉低 ,
之后 再发送 go o d _
co _a

后 , 是否 可 以恢复 同 步 并且 丨 s m _

y nc 再 次拉 高 

4 .
临 界场景测 试 : 连续 累 计三 次 b ad _
co mm a ,
再 逐 次 发送 go o d _
c o mm a , 

察 同 步 状态 是 否 达 到 临 界 值 后 逐 次 恢 复 到 最 稳 定 状 态 S YN C _
AC Q _
1 

3 5 . 紐 计 划 设计

正如上 章所述 在检验 的早期 阶段 检验 人 员 必须全面 掌握 D UT 的基本构




, ,

造 , 并仔细分析 DUT 的功能点 , 以 对功 能 点使用 列 表 的 形式给 出 检验 计 划 , 并计



划 好 相 应 覆盖率计划 和 检验 计划 

该项 目 对 S erDes 模块使用 UV M 验证方法学进 行模块级验证 。 在 模块级验证



中 , 主要包括 功 能验证 、 可 靠 性验 证 、 测试验证等 。


相 应 的验证计划表见表 3 . 1 0 

栏列 出 要执行 的测 试计划 检查 栏 列 出 各 种 检查 和 覆盖 计 划
“ ”

测试项
“ ”

目 。 了 

随 后 检查 和 覆盖 栏概述 了 相 应 的 检 查和覆盖


并对 各 种 检查计 划 进 行 说明
“ ” “

了 。

计划 

在 覆 盖率 栏中 覆 盖 率 组表示 测 试 计 划 的 覆 盖 率将 在 相 应 的 覆 盖 组
“ ” 一
“ ”

, 

覆 盖率 属 性表示使 用 断 言 覆盖 表 示测 试计划 的 统计 情 况排 除 功 能 覆盖 率
“ ” “ ”
, N A .


例如 , 对于寄存器测试 ,
采用 的 是 uvm _
m i rr 〇 r 任务 , 如果 D UT 的值和 寄 存


器模 型 值 不 匹配 , 就会直接上报 uvm _
e rro r , 所 以检查方式采用 直接输 出 结 果 ( t e st

re s u l t 的方式 ) 判断 p as s 或者 fa i l , 中 断测 试类似 寄 存 器 测 试 , 在满足 中 断产 生条




件后 , 读取相应 中 断标 志 寄 存器 的 值 ,
如若不是预期值 , 则 需 要相 应错误 条件 下

编写 UV m _
e rr 〇 r 信 息输 出验证结果 , 这两 者 测试都排 除功 能覆 盖组到 的 收集 , 

覆盖栏用 N A .
表示 , 其他测试同理 

3 7


西 安 电 子 科技 大 学 硕 士 学 位 论文
 

表3 . 1 0 验 证 计 划 表

测 试项 g
  检 查   覆 盖 | |


寄 存器读写测 试 
Te s t _
r es u l t

RA .



中 断 测 试 Te st
_
res u l t N A

 .

8 b l 0 b 类  T X /RX  功 能 测 试 T x / Rx s c ore b o ard  C o ve r G r o u p




6 4 b66 b 类  TX / R X  功 能 测 试 T x / Rx s c o r eb o ard  C o ve r G  r ou


1 28b l 3 0 b 类  TX / RX  功 能 测 试  Tx / Rx s c ore b oa rd  C o ver G r o u p




近端 环 回 ( n e a r  oo p
l ) 测 试 T x / Rx s c or eb o ard  Cove r G  r ou


远端环 回 (
fa r  l o o
p) 测 试 T x / Rx s c o r eb oard  C o ver G ro u p

 

无 效 控 制 字 错 误 上 报 功 能 A sse t
r  p r o pe r
ty  C o ve r
 pro per
ty

F I F O 相 关 功 能 测 试 Te st
_
re s ult  C ove r G r o up


A PB  协 议 测 试 A sse t
r  p r o pe r
ty
 
C o v e r  pr o pe rt y


A l i
g n fs m 
 状 态 跳 转 测 试 Te st
_
re s ult  C o ve r G r o u p


同 步模块 c o mm a 异 常 场 景 测 试 Te s tj r es ult  C ove r G  r ou




输 入 输 出 寄 存 器配 置 功 能 测 试 T x/Rx  s c o r e b o ar d  C o v e r G r o u p


I d e

码 替 换 场 景 测 试 A ss e t
r  p r o pe rt y  C o ve r
 p
ro

e rt


1 5 8 8 场 景 测 试 Asser
t 
t y  C o ve r
pr o per  pro pe r
ty

3 6
. 本章小结

本章展 开 待测 设计 的 研 究 : 基于 l G b/ 1 0 G b  E t he r ne t 、 P C I  e xp r e s s  ( G EN 3 

以上 ) 物理层 协议 的 深 入 分析 待 测 S erD e s 模块 , 将 S er D e s 结 构划分为物 理编 码




子层 PCS 、 物理媒介 附加 层 P MA 、 高级外 围 总 线 AP B 三 个 模 块 , 其分别 对应 编


解码逻辑 、 物 理层 电气传 输 、 模块 寄 存 器 读 写 配 置 功 能 。
依 据 设计 需 求 文档 , 

步细化 PCS 功 能模块 为编 解码 子 模块 跨时 钟 域子模块 数据 整形 子模块 以 及




、 、

同 步 子 模块 等 模 块 。 在 此基础 上 , 提取 S erD e s 各模块待 测 功 能 点 , 确 定各项待测




功 能 的 检查方式 , 制 定 出 相应 的 验证计划 

3 8


第四章 Ser D es 模块验证平 台 搭建

第 四 章 S e r D es 模块验 证平 台搭建

在 对待测 设计深入 分 析 并提取验证功 能 点 ,


制 定验 证计划 后 , 结合 UVM 


证平 台 搭建 的 原理和 机制 , 在本 章将 完成基于 UVM 的 高速 串 行 SerDes 验证平


台 的设计 。 具体包括 整 体验证平 台 框 架 的 设计 、 验证环境 目 录 的 设计 , 激励发生


器 、 驱动器 、 检测 器等 UVM 组件 的 设计 ,
测 试用 例 的 编 写 并 结合 儿种特殊测 试


波形来佐 证验证平 台 设计 的 正 确 性 。 此外 ,
在 平 台 搭建过程 中 , 针对 Ser Des 


构复杂 、 验证功 能点 ,
以及 SerDes 寄存器多 、 验证维护 易 出 错 的 问 题 ,
本文提


出 种 基于 脚 本 的 寄 存 器生 成配置 自 动化流程 简 化 了 组件 代码 避免


t ho n
py , ,

人为撰写失误 。 针对 Se r Des 结构复杂 、 验证功 能点多 的特点 ,


本文采用 H VP 


证 自 动 管 理 流程 , 该流程可 实现验证进程 的 可视化 , 减 少 人工干预 ,
有 效提 高验


证 效率 

4 . 1 U V M 整体框架及验证文件 目 

ha ness
r 

  

v i rt u a  n t e r fa c e
l i w ra p p
e r d i r ec t c o nn ect i ns t du 


_


< >

Co nf g i db

f  v i rt u a r i n t e r fa c e  w r a
pp
e r

  ^
1 es t c a s e



s t e m i

〇

 g ^



^ 〇 , 
一 I
? e n 

j  1

 i 


ftxa
ge n t  p 」 xa g e n t  a p ba ge n  t f unct on

 i

  1
 c o v e r

;  

  f

h 

mod e 

 r a 
p


f r x a
ge n t rx a ent

   1

  

I  *

 |


i _ 
   _ _  ? 一

 

S 丨  


s core bo ard


 

r e fe r e n c e  m o d e 

图 4 U VM 验 证 环 境 总 统 框 图

1 

为 S erD es 模块搭建 的验证平 台 称之为 H SS T ( l l i


hs
pee
ds e r i a tl r a ns m i t s ) 


证平 台 , 对应 SerD es 高速 串 行传输 的 特性 , 上图 4 . 1
所示为 Se r Des 验证环境总

3 9


西 安 电 子 科技 大 学硕 士 学 位 论文
   

统框 图 

和 语 言 搭 建验证平 台 类似 外层都要定义 个 U V M 业 内


ve r i l og , mo d u l e ,

通常定义名 为 h ar n e s s 作 为 顶层环境 , i nst


_
d ut 里 是待测 设计 的 例 化 ,
定义虚拟接


口v i r t u a  n t e r fa c e  w r a p p e r 
l i
完 成 和D U T 的 连 接  , v i t ua
r l i n t e r fa c e  w r a
p p e r 包含三种


接 口 , 分别是 fa b r c  f 、 i i
pma
i f 以及 a

b f 。 i
接 口 定 义 了 对 应 的 输入输 出 端 口 。 ra 

是 寄存器模型 。 F u n c t o nc o v e rm o d e i l


为功能覆盖率模型 

H ar n e s s 作 为顶层模块 ,
控制 整个验证平 台 的 开始和 终止 ,
通过调 用 定义在


mo du e l
里的 mn t est
() 任务 ,
测 试用 例 首先被激活 ,
并开始按照 UVM 树形 结构

完成验证平 台 的 bu i l d pha s
e 和 c o nne c t
ph
as e 等 初始化配置 阶段 。
同时用 例所需

的 相 应激励 向 量 发送给相 应 的 代 理 ( ag e nt ) , ag e nt 包含 的 se


q u e nc e r , dr ver i 

mo n i t o r 完成 DUT 的 数据 驱动 和 监测 

其验证环境 目 录结构如下 图 4 2 .

所示 

r > l i 

       
e n v
 ,
  

? d v )b t
, ,

h s st  >
 p c s
      
 ? s m

 i

? t c

? t h


 

? c h ec k e 


} 

?c o m m H e 


on l

? f r am e

? r a l

] _ p g f u t i l

 

 
H u t i l s 1 

H  p gpu t
i l s



s c ip
r t  HP ga p bu t i l s
 

图4 . 2h s st 验证环境 目 录结 构

1 .
验证层 次 : dv : d e s i
g nve r f c a t o n i i i 总 共集成 了 三个层 次 的验证 , 分别为 



) 单元级 un i t t e s t b e nc h( 简称 ut ) 。 确 保 单 元级 模块 的 功 能 的 完 备 性 , 

编解码模块 

区块级 简称 比 单 元级 集成度 高 层次 保证通路




2) b o c kt e s t be nc h(
l bt ) , ,

的 正 常 工 作机制 ,
如 PCS 模块 




集成级验证 i nt e g r at e d t e st be n c h( 简称 i t ) ,
负责 P C S + P MA 整体验证 

从 ut

> bt -

> i t 集成度逐步提 高 ,
低层 次 的 验证着 重 于 设计 的 全 面 性完 备 性 

高层 次 的 验证 在 基本 功 能无误 的 前提下 着重 于 模块 间 通信 的 正 确 性 

2  c o mm o n
. 组件 :
其 内 包含 的 内 容 , 在 bt/ i t 层 次均可 复用 

40


第四章 SerDes 模 块验证平 台 搭建
 



) c h e c k e r :
检测组件 , 包括 t x/ r xs c o r e bo a r d 


2) e l k : 时 钟 的生成 、 分频模块 

⑶ i
f 验证 使用 到 的 数据包定义 宏定义


ame : h s st 、


4)
 ra h 寄 存器模型 



) u t i l s : age nt 组件 ,
分为  A P B接 口 、 P M A 接 口 、 Fa br i c 接 口 

s cr i

t :
常用脚本 , 包括 全局 环 境变量配置 和 寄 存 器模 型 生 成脚 本 

3 . c f
g :  t e s t b e n c hf
i l e l i st 、 回 归 列 表管理

4 . e nv : 验证环 境主体部分 

5  s im
. :
仿真 目 录 

6 . t c :
用例 目 录 

7 . t h :  t e st be n c h 顶层 

4 2

环境配置系 统

设计模块有上 百 个 寄 存 器 故 需 要验证平 台 也拥 有 高 效 的 配置体 系 来支撑 设



 ,

计结 构 本验 证平 台 通过 套 上而下 的 配置系 统来控制 包含的嵌套最




。 自 cf
g e nv

小组件关键配置 的传 导工作 。 提 高 了 验证平 台 的 直观性和 重用 性 。 所有类 型 的



c fg 均 是派生 自 u vm
_
o bj e c t 的子类 ,
如图 4 3 .
所示 

e n v e f



r x a
gt
c f
g  P
tx a
gt _
c f


d r vc f
g  m o n  e fg d r vc f
g m o e 
n f

d u t e f
g  


f rx
_

g t c f
g  f
_
t x a
gt —
c f


d r v

c f
g m o n e fg
d r v c f
g m o n ef


v i


e f






c f
g p r x se
q _
c fg
 f
_
r x s e
q cf
g  p2 m  p c s  r x  c fg 
1  p 2 m  p c s  t x  c fg

图4 . 3 环境 配置 系 统示 意 图

e nv 将 e nv
_
c f
g 中 的 子项 向 对应 的组件 ,
如 p _
r x _
agt
_
c f
g 分发 ,
发送方式是

4 


   西 安 电 子 科 技 大 学 硕 士 学 位 论 文  

u v m c o n f
i gd b ; d u t
_
c fg 定 义 的 随 机 变 量 , 将 会 在 t e stbase 调 用 函 数


e nv _
cf
g . ra n d o m ze ( i

全 部 随机化 与 寄存器模 型 搭配使 用 , 通过 AP B 完成对 DUT

的 配置操作 。 t e st bas e 拥有约 束 的最高优先级 



以 最底 层 的 drv _
cf
g 为例 ,
其 配置传 输途径 如 下 

1 .
首先 env
_
c fg 在 t es t
_
bas e 中 创 建并 随机化 。
如图 4 4 .
所示 

cl a s s  t e st b a s e  e x t e n d s  u\T i i t es t



_ _

e nv  e n v 

e nv  e o v cf
g 

v i rtu a l  n t e r fa c e


w ap p e r  v f w r ap p e r i
_


i m c t i o n  v o i d  te s t
f _
base : : bu i l d
_
p h a s e ( u vm j
h a s e  ph a s e ) 

s u pp e r b u i d . l
_ p
ha s e(
ph a s e ) 

1 ,

t hi s . e nv
_
c fg

e nv
_
cf
g :  : t
yp e _
i d :  : c re a te

e nv
_
cf
g )


t hi s . env

cf
g
? nm d o m i z e ( ) 




l i i s e nv
f . e i iv :  : t
yp e i d :  : ci eate
C eu v ' t h i s )

e ud f
ti n c t i o a


 eud c l ass

图4 . 4t e s t
_
b as e . s v 部分代码

2 .
其次在 e nv 组件 接 收来 自 t est
_
b as e 传来 的 e nv
_
c fg 组件 , 若未收到 , 上报


fa t a l
信 息终止仿真 ; 若接收到 , 可通过 e nv
_
cf
g 中的 c fg
p r n t i
控制是否打 印全部


信息 。 f
_
age nt 组件 例 化后 , 将 env cf
g 中的 f
_
t x _
agt
_
cf
g 传给 f
_
a g e nt ,
并将 e nv

中 的四条 l ane 的 v i tua


r l i n t e r fa c e 传给 f
_
ag e nt 。
如图 4 5 .
所 7 K为 hs st _
env 中 相关操


作 

c l a s shs s t
_
e nv  e x t e nd s  u v m e nv 

im c t o n vo i dhs s t
f i 
_
env : : b u i dj h a s e ( u v m

_ ph a s e  p h a s e ) 

” n ” ”
i f

! uvm c o n fi g db #

em ’
cf
g) : :
ge t

t hi s , ,
cf
g ,
cf
g) ) b eg in


" " n
r om

T ,

u vm fa al( bu i l d phas e e nv  un a b e  to  g e t c f uv m c on f
i db
_
l :

 ,

l 
 _
_ g _


end

e l s eb e
gin

i f( tl ii s x fg p rint )


_


p r ints  % 0 s U V M N O N E )
' , f , f ,

u\ m m fo ( bu i l d  p h a s e s fo m i a t f hi s

e nv  c f
_

( g  ,
t . cf
g . s
pr n i t
() ) ,

end


” ”
t ais f
f .


t x


g t
pg _

| _
a g e nt :  : t
yp e 」d :  : c re a t


_
t x _

gt ,
t hi s
) 


* ,
, ,
! , *

db # ( p g et ( t h i s h

u\ m c o nfi f a
g e nt cf f
j x  a gt c fg cf
g f a gt  c f

s i s tx
_ g _ _ _ _ g) : :
; ? ,
t .

_

_
g)

fo r e a c h t li i s f . t x v i fI i ] )  b e g i n


( _ _

" M
v i f[ % O d ]
, ,


u vm _
c o nfi
g _
d b# (p g _

_
v if) : : s et

t i s


_
t x _
a gt ,
S s fo m i a t f

f a) ,
f t x _
v i f[ i ] ) 

end


图4 . 5  hs s t
_
e nv 部分代码

1) 在 f
_

g e nt 组件接 收到 来 自 e nv 传递 的 f
_
agt
_
cf
g 配置 ,
并通过 f
_
ag t
_
cf


42


第四章 模块验证 平 台 搭 建

S erDes
 

中的 drv
_
en 配置来 决 定 是 否 创 建驱动 器 ( d r ver i ) 组件 , 若打开 ,
即 drv _
en 的值


为 h s st _
d ec : : ON ( 在 rame
f 公共组件 定义 的宏 ) , 则创建 f
_
drv , 并将定义在 f
_



_
cf


中的 drv
_
c fg 传给 f
_
drv 。 图 4 6 .
所示为 f
_


e nt 中 相应的操作 

c l as s f a g e nt e x t e n d s  u v m  a g e n t
 pg _
_
 

f u n c t i on  v o i d f a e nt bu i l d h as e ( u v m
p ha s e ph a s e )
pg g p
:  :



_ _ _ _ 


su
pper b u i l .

_ p
ha s e ( pha s e ) 

” "
co n f
i g d b # ( p gj f  _
a g e ut _
cf
g)
: :
g et( & i s ,  ' cf
g ' c fg ) )  b e g i n



H M
cf f a g e nt cf e d c r e a t( c fg his )
yp
t i
g pg _ _ _ g :  r :  :
, t


e nd

if t

hi s . cf
g . d r v  en 

 hs s t _
de c : : ON ) b e g 
i 

fo r e a c h


_
vif[ i ] )  b eg in


M n
t h i s f dr v i

[ ]_

pg _
fd iv er
r : : t
yp e _
i d : : cre ate

S s fo r m a t f( f
_
d rv

%Od ] ,

) ,
tlii s
) 

%O d
# , , , '

co n f
ig d

db# ( p g dr v
' J

s ¥ s fo m a t f
v er ^d r v

uv m f cf se t f
/ c fg h i s cf cf
_ _ _
i i
g) : :

t ii i
? ( [ ] ,


, t .


_
g [I ] ) 



e nd

e nd

图4 . 6  f a ge n t _
部 分代码

2 ) f
_
drv 收到来 自 f
_
ag e n t 传来的 〇 Jr v _
_
c fg 后实 例化 , 在 ru n
_ p ha s e 的 t as k

阶 段使用 。 至此 , 最底层 的 drv _


cf
g 走 完 了 全程 。
如图 4 7 .
所示 为 f
_
d r ve r

中 的相

关操作 

f un c t i on v o i d p g 
 _

_
dr
iv e r : : bu i l d
_
p h a s e ( uvm _ ph
ase
 p ha s e )

su
pp er b u i l d p h a s e ( ph a s e )

_


" M
uvm  c on f
i g  d b# ( p g d
* , T ,

i l
f ! f i i ver 
c fg ) : :
g e t ( thi s , \ c fg ,
c fg ) )  b e g n

 i
[ _ _ _

M H


c fg pg _
f dr i v e r _
c fg :  : t
yp e i d : :  c re a t e

cf
g ,
t i s
) 


_ _

en d

t a sk  p g —
f  dr i v e r :  : ni a i n _ p h a s e ( uv m _

h a s e ph a s e )

 

su er un a s e (p h a s e
p . i
_ p li


fo r
i c

be g in

i f

t h i s c fg .
. s
qr _
en

h s st
_
d ec :  ; ON ) b e g 
i 

t hi s g et .

_
tr
_ p ro c e s s
() 

en d

end


o in


图4 . 7f d r ve r
_

部分代码

4 3  i n t e r fa c e 
. 接口

i nt e r fa c e 的 概念 在 s

st e r m ve r i o g l 中提出 , 它是 e nv 与 DUT 的媒介 。 在待测


“ ”

设计过程相 当 繁琐 时 通常 对 个接 口 的修改会 牵连 整 个验 证平 台 所 涉 及 到


的 所有接 口 , 不但增 加 了 工 程量 , 还导 致 丢 失 概率 大 大提高 ,


并 且 出 错 后 定 位流

43


西 安 电子 科技 大学 硕士学位论文

程更加 复杂繁琐 变相提高 了 平 台 的 维修成本 接 口 的出 现就克服 了 这 问题


, 。 

因 为接 口 中所含 的接 口 往往 为 DUT 的接 口 , 其 时钟 信 息 和 复 位信 号 都耍 写 在 括


弧内 表小 和 不仅 足输入 信 号 而且信 号初始值 由 顶层

, e l k rs t mo d u e ( h a r n e s s
l 

提供如 图 4 8

所示为 hs s t 接 口 定 义信 息 

i n t e r fa c e
 pg _
t x _
i n t e r fa c e ( n i
putb i t t xc l k  np u . i t  b i tt x
_
r s tn ) 

SET UP  TI M E 

p ara m e t ei  2 0 0p s 

HOLD T I ME


200
p ar am e t ei 
_

s 

w re[ i
pg c o mm o u de c : : TD ATA D W _

l : 0
]
t da t a 

c l o ck n

mck i
 @ ( po s
ed

e  tx  c k ) l 

d e fa i x l t  in

ut ^ S E TUP _
TIME 

d e fa u l t  o ut

ut ^ HOL D T ME _
I 

ou t
pu t  t da t a 

ei i d c l oc k n mck



g

c oc ki n

gp
ck
@ ( p o s edg e t x c l k) 

d e fa u l t i n

u t  ?? S E T UP T M E _
I 

d e fa u l t o ut

ut  ? ? H OL D T I M E 

i np u t  da t a t 

end c o c ki i i ck



g p

m od

or t  m a st ei
^ c oc k ng m c k)
l i



or
t v e{ c o c km
m od
gpe k)

p p ss i i 

fce

ci i di i i t e r f a c c  x  in t ei
p g
: t
 

图4 . 8 h s s t 接 口 定 

另 外区别与 中线网类型 和 寄存器类型 的 定义规则 般接




ve r i l og w i re re
g ,

口 信号都是用 l og c i
数据 类 型 代 替 。
特殊的 诸 如 待 测 设计端 口 为 i no ut 信 号类型 

则 需要在接 口 中 替换为 w i re 类型 这是 , 由 于 l og c i
数据类型 不 允 许存 在 多 重 驱动 

此外 , 宏 定义 了 建立 时 间 和保持 时 间 均为 200
ps , 表示接 口 的采样 和驱动 都有


200
ps 的延迟 

接 口 信 号 与 配置 系 统 的 传 递 过程非 常 类似 , 区别是 h s st 拥有 四 条独立 l a ne 



所 以接 
口 是二 维数组 , 通过 c o nf g i
_
d b 从 t e st
_
bas e -
> e n v > a e n t > s u b c o m o n e nt 





层 传递 。 上方代码 已 有 所体 现例 化和传 输过程 , 不 再赘述 

4 4 .
数据通 路 组件 实 现

在 前述 h s st 验证文件 目 录介 绍 中提到 笔者为保证设计 的 正确性和 功 能 的 完



 ,

备性搭建 了 不 同层次的验证平 台 , 针对 b o l c k  t e s t be n c h 层次的 on y l


_
pc s 


i nt e g r at e d  t e s t b e n c h 层次的 pc s

p ma 集 成模块均 搭 建平 台 

4 4 . . 1 不 同 层 次 数 据 通 路

根据 第 三 章 针 对 S erD e s 模块 的 分析可知 PC S 作 为物 理编 码子层 是纯数字 实




现的 , 各个模块 的 功 能 在 前文 己叙述详尽 , 其主要功 能 如 图 4 9 .
所示 

44


第四章 Ser Des 模 块验证 平 台 搭建


J: L  TT






cs rx  pc s
_

gn
rx a l i
t x en c o d e 


r x _
d e co d e r  t x  g ea r b o x

r x b r dge i un i t  t x _
br dge i
_
un i 

   


跨时 钟 域 频差补

充 通道绑定等 、

) 
 (
( 跨盯
栉 钟域
时《 域 




r

 L _


图4 . 9
p c s 内 部主要功 能

发送测 和 接 收侧 数据 互不干扰 ,
所 以本文确 定 的验证思路是 :
在 通 用 性测 试

每种 数据 模 式 对应 个测 试用 例 使用 


( sa n i t
y
t e st ) 中 ( d at a
_
mode ) ( c ase )

en v 例化 t x/ r x 所需要 的 a
gen
t : 、 r e fe r ce mode l
等组件 。
从两 个方 向 分 别 产生测试激

励 , 驱动 数据 , 监测 数据 以及进 行计 分板 比较 ,
当 t x 及 r x 侧 数据 比 对 成功数达

某 个值 此值可通过 中的 配置 般情 况下 侧开始 比


s c o r e d bo ard scb c fg rx
至 丨


( _

较数据较晚 , 故以 r x 侧 为主 ) 吋 , c ase
p
as s , 仿真结束 , 若数据 比对 出 错 ,
依靠

UV M ER RO R ■

将 错 误报 出 并通过优 先级开关 来控制 是 否 打 印 t r ans c at o n i 等 关键



信息 。 其中 tr an s c at o n i 事 务流 向 如 图 4 . 1 0 所不 

rx a e

t s
p 


p _ _ g _

x m o n
P


2 ni tx

r x a r\ t a t
jp c s p p



. c i

p _
_
p _
_ — —

  m2
pcs
rx



p _ _

j |

  

j ?

[ ?  i

 

p
r xa g t pm o n

; P _
rx
_
i f
  p |


_
t x
_
i 

a c 

1  L 



 ?

 ;

b e

ch ec ke 




2m rx  P c sr x  Pcs  t

pc

p _ _

I    
 
 e x


ex


 i  

L 

. .  !
fr x  i f
  f :

t x  i f M  ft xa

t . fni o 


rx  c h e c k e r   
-  -  





— ;

! !

-  


】 


「 :

ac f rx a t f m o n f t x a

t . f d rv




t _ _



f t x a t f s e



_ _
g _

图4 .
1 0 o n l
y _ pc s 场景 下数扼流向

4 5


西 安 电 子 科技大学 硕 士学位论文
  

其 中 p 2 m 1

p

ys ca
 a
yer
i t o m a c


fa b r c

)


er i l
; 
m2 p : m a c l aye rt op h y s c a i l l a
ye r 

对于 t x 侧 , 激励 由 f
_
s eq 产生到 f
_
d r v ,
并通 过 接 口f _
t x i n t e r fa c e 驱动 pcs _
t 

的 DUT , 此时 f
_
mo n 将采 集 到 的 D UT 的输入 数据 传给 t x _
c he c k e r 在期望 ex
p 

存起来 而 ,
p _
mo n 会 将 采集 到 的 DUT 的 输 出 数 据首 先送到 解 码模型 ( m2 p p
c s r x 

侧 解码 ,
然 后 将解 码 后 的 数据 流传 给 t x _
chec ke r 的 act 侧 存起来 , 然 后 比较 act

和 e xp 数据 是 否 相 同 

对于 r x 侧 , 激励仍然 是U p _
se
q 侧产生 , 但是并不 是直接驱动给 p _
d rv , 

是现在参考模型 (

2m _ pcs _
t x ) 里编码 ,
将编 码后 的 数据再送给 p drv ,
同样通

过接 口 (
p rx i f) 驱动 DUT , f _
mo n 将采集 到 的 DUT 输 出 数据送 到 r x _
c he c ker

的 ac t 侧 存起来 ,
p m〇 n 将 D UT 的 输入数 据 送给 r x 侧 的 解码模型解码 ,
解码所


得 的 数据送到 rx c he Ck er 的 e xp 侧 , 比 较两 者数据是 否 相 同 

1 . P C S + P M A 层次


P MA 作为物理媒介 附 加 子层 负 责 串 化 解 串 化 既有 数字逻辑部 分又有 / , CD R

时钟恢复 电路 , P LL 锁相 环等模拟 部分 , 和 pcs 作 为高速 串 行传输模块 的 核 心 部



分共 同 完成数据 在物理层 的通信 。


其整体结构如 下 图 4 . 1 1
所示 




pa

I  ? 

f I

分输
等 士 差 分 输 出


i i I ! 

ma ve

 rec e i
 p ma _
t ra ns i ni t


RX )  (
TX 

s er i a l  t opa ra ll el
p a ra ll e l t o  s er ia 



并 输 出 并 行 输 入


¥ j

re c e ve ra n s ai

pcs i
 pcs _
t 

iR X )  7 tx 

并 输 出 并 行 输 入


¥ j

fa b r i c

图4 . 1 1  hs s t 整体架构

其中 ,

mat r a ns m i t 端将 p
c st r an s m it 终端传送 的 并 行 数据 信 息 变 换成 串 行差


分数据传输 ;
p ma 通过 r ec e ve i
端把从 pad 上 收 到 的 差分信 号转换成并行 数据信


息 。 为 此在 on y l
_
pc s 的 基础 上进 行修 改 ,
设 计 了p cs+

ma 的 i t 层 次验证环境 

如图 4 -

1 2 所示为 i t 层 次数据 流 向 

46


第四章 S er D es 模块验证平 台 搭建
 

rx a gt p s c

p _ —



p2m _ pcs t x ^
P _
rx
_


t .

p d r v
 p t xa

t .

pm o n


 」
 
卜 二



m 2 rx


■ .


p _
pcs _


   i



p
r xa
g t pm . o n^
 P r x f   pt x f i




L
" _ -




- — I : - 一  —




I  

i 
  I  a c t

fa ke _
pma _
t x  fa k e _
pma _
rx
 

[ 


,  
  


 p 
 1 —
1 =1 技声伽

p2m x


_ p cs _

pma r x  pm at x




 ex p
I p
p c s rx p cs t x 

f t

 - -

   t .   


〉 :

  」  f a
rx —
f i f f t x f t x
g t . f mon


rx ^

c h eck er -




_ _ _

y 





r 个



ac t

 f rx a

t . f m on  f t xa
gt
. fd r v

t 

x a eq

gt f s


t .

图4 . 1 2  pc s +
pma 数据流 向

On l
y _
pc s 层次 t x 侧 p
c s 的输 出 信号 t o _ pma 直接与 t x 侧接 口 相 接 监测 编码

 ,

后 的 数据 , 此时对应 的 是 1 0 比特 / 1 6 比特 / 20 比特 /3 2 比特 / 40 比特 / 64 比特 / 1 28

比特 的并行输 出 信号 ( 对应不 同 的 data mo de ) , 而在 pcs



pma 层次 ,

pc s 的输出

信 号经过 p
ma t x 将 并行信 号 转换 为 串 行信 号 , 由 于 高频 的 比特信 号 不利 于采样 

故采用 通过再 次例化 个 模块 表示并? 足真实的 模块




i na _
r x fa k e
_
pma _
r x

ma 

将 pma 输 出 的 高速 串 行仿 号 转化 为 并 行信 号 进 行 采样 

同理 r x 侧 环 境 给 的 并 行 信 号 激励 直 接 给 到 接
, 口 进行监测 经过 , fa k e
j m aj x

进 行 并 串 转化后 经过 p ma _
r x 串 并转化 后 作 为 pcs _
r x 侧 的 输 入数据 

这样做 方面有利 于数据 的 采样 和驱动 另 方面也可对 模块进 行




p ma 

检测 

4 4 2 . .
事 务 基 类

最 初 的 基类 定 义 在 co mmo n 组件 的 ram
f 目 录下 ,
派生 自 uvm
_
se
que nce _
i t em 

定义 了 数组位宽 8 比特 的数组 d ata


_
8 比特 以 及位宽为 1 0 比特 的 数组 d at a
JO 比

特 服 务 于8 b 类d a 注册时使用 还定义


l 0 b t a mo d e , fa c t o r
y uvm fe d
i l

_
arra

i nt ; 

了 数组长 度 参 数 co de
_
l e nt h ,
不同的 d at a
_
mo d e 根据特性定 义不 同 的 数组长 度 

定义 了d a t a _
6 4 比特 , data _
1 2 8 比特 , s
ync _
h e a d e r 等 参 数 为6 4 b 6 6 b ,  1 28 1 ) 1 3 0 1 

类 d at a _
mo d e 提供支持 , 图 4 . 1 3 所示为基类的定 义 ; 而在 f
_
u t i l s 事务类

pg _

_
xac t o n i
和 p _
ut i l s 事务类 pg jp _
xact o n i
都是派生 自 fr a me 定义 「 的基类 

4 7


西 安 电子 科技 大学 硕士 学 位论文
 

c ass S b 1 O b  d a t a  e xt e n d  u M n  s e q u e n c e  i t e m

 pg  


rand b i t

7 : 0 ]  da t a 8 b it
[]


rand b i t

9 : 0] d ata
_
1 0bit[] 

ra nd  i nt  c od e —
l en

t h 

r a nd b i t

63 : 0]  da 6 4 b ta
_
i t


ra nd b i t
[ 
1 2 7 0] d a 2 Sb
: at
_
1 i t;

rand b i t

2 : 0]  ync  h e a d e s r


uv n iob ec ti i t i l sbe i n(


pg 8 b 1 Ob d at a )



  

j 

uvm _
ie d
f l
_
i nt ( c o del en
gt
h ,
UV M A L L O N ) _ _

uvm

fi e l d 一
arr a
y _
i nt ( da a t 8 bit . U VM _
A L L O N )

endc l ass

图4 . 1 3 hs s t 基类定 义部分代码



4 4 3. .
序 列 发 生 器 类


j xj e q u e n c e 负 责 发 送 测 激 励 的 产 生 , 拥有属 于 自 己 的配置系 统 s e
q _
C fg 

里 面 包含众 多 配置 , 包含 pc s _
mo d e 选择 d at a
_
mo d e , cf
g _
e n c o d er mo d e 选择编解


码模式 , c f
g i t em
_
c nt 控制 发包 的 总 数量 。
根据 不 同 的 配置 , s e
q u e nce 将不 同

d at a
_
m〇 d e 的 包封装 起来 , 用 户 可 以 准确地对包 的 结 构 , 顺 序 具 体 数据 作 修 改 , 

s e
qu e n c e 的 启 动方式有三种 , 前文 己 有叙述 本 次设计 。 se
q ue n c e 在 c as e 中启动 

关键代码如 图 4 . 1 4 下 



t x 一
s e qu e n c e  f _
s e
q 


“ ”



_
se
q f

t x —
se
q u en c e :  : t
yp e _
i : : c i e a te ( f
_
se
q ) 

fs e q . s ta t( s eq u enc er )
r 

图4 . 1 4s e

u e nc e 启 动 方式代码

包含 的 内 容 几乎 与 致 编码前数据和头部信


x q u e nc e
que nce
r x se f t se
p _ _
_ _

息分离 所 以 接受测 发送 的 激励 也 是数据和 头 部 分离 的 激励 旦发出 先在


, , , r 

侧的 v p i ( 参考模 型 ) 中 完 成编 码 过程 再 由 编 码 后 的 数据 发送给 ,
rx
_
dr v e r

驱动 

但是在这之前 需要保证 D U T 四 条 L an e 都 已找到字节边界 , 需要 rx


_
Se
q 收到来


自 e nv 传递过来 的 SY NC O K _
信号 。
作 为参考模型 ,
p2 m _ pc s _
t x 定 义 了 任务


c o mm a
_
se nd 按 照 协 议发送包含 c o mm a 字 的 信 息 流 之后 通过 队 列 传 输 的 方 式送

 ,

到 t as k : : co mm a _
s e ar c h 中 , co mm a _
s e ar c h 任务模仿 DUT 实现方式 , 通过静态检


测或者动态移位 的方式 根据 的 配置选择 寻找到 定数量的并


( cf
g c〇 _a d et )
_ _

且 位置正确 的 co mm a 时 , 将 定 义在 p2 m _ pc s _
t x 的 状态变量 s
ync _
fa i l
更 改为



ync _
ok ,
如 果设计正确 ,
则 此 时 DUT 的 al i g n 模块 也 会将 此通道 的 输 出 信 号


l sm
_

y nc 信 号拉高 在 , env 中 定 义专 门 负 责 检测 a l i
gn 状态 的 任务 al ig n _ pro ce ss 

48


第四章 Se r D es 模 块验证平 台 搭建

只 有当 p
2m
pc s _
t x 四条 l ane 的 s

nc
_
ok 信号都拉高 以 及 D UT 中 的四条 l a ne 

l s m _

yn
C 信号均拉高时 , 表征无 论 是参考模型 还是 D UT ,
同步模块 的 行为都正

常 , 在这个前提下 ,
p d r v 接收 到 的 驱动信 息 从 co r mn a _
s e nd ( ) 转换到 p _
r x _
s e
q 

供 紧接着 。 se
q 根据 相 应 的 数 据 配置 决 定 发 送 何 种 类 型 的 i t e m , 如图 4 . 1 5 为 p _
se


发包示意 图 , 图 4 .
1 6 为 p _
r x _
se
que nc e 关键代码 

c〇 
nf g l

_
d  b 跨组件传 输





se
p —
q <

rs 


 ̄  ̄


> V 0 


 :



_ c o m m a  ^g S
j 1

ea

s rc n n c〇 k

l 


_

来 自 s e
q 的数据包 




貪 球

o m m as e n

c d : 

社
拉局

纖靜 , P戌 礙? 
丨 s ni s nc

_  y 



p 2 m 』 cs j x  ^ | 

\7 
\ 7 

ZZ  p  v . i 

 \y


—  ̄  ̄  ̄

v 

du 

e n 

图4 . 】 5 接 受 测 发 包 示 意 阁

v i r t u a l t a s k  ho d y ( ) 

h s s t d c c : :


c s wor k _
mo d e
_
c a n c l

_ p
c s m o de 

fo r 

w h e be 



l l i


( )



u v m c o n f


_
d b# (
h ss t

d ec  h s s t s

n c
_
e )
: : w a i t

m od i f i e d( n u l l

g e t fu l l

_
n a me (
) ,


n c
_
s t a U i s



uv m co n f
i f  (


db ( h s st
_
d ec : : h s st s
y nc _


: 

" "
mc n cs at u us be
g n


e nu e Fu n a s s  s n c s t a t


(
l l

g

_
l l
_
( ) ,  y t

y _
) ) 


M u
uv m o n am c (  ) u en c ec anno
_
er r r (

e t t
y p
e ,
se
q t
 g
e t s
ync _
s t al u s 

en 

e s e b e 



l i



% 0s


u v m n fo e n am e ¥P n 0 sb o d se e nc
g et t s r
 qg

y 



y p
t t 
p p


( _
() ,
( y ( ) _


e t se

u e n ce
_

a t h ,

y nc s t at u s . n a me ( ) ) ,
UVM _
N O N E )
e n d

en d

o i n n on e


图4 . 1 6
p _
r x _
s e

ue n c e 关键代码

而 Se

u e nc e r 的 作 用 较为 简 单 , 它 只 是用 来代 表事务类 型 的 种 类 , 和 普通 的


se
q ue nc e r 没有差 别 , s e

u e nc e r 己 经把 所要 求 的 全 部 功 能描 述 完 毕 ,
但因 为普通

仅仅对应 了 个 类型 所 以 在定 义 时 只 需 设置参


一 ?

s e
q uenc
er t r ansac t i on , se
q ue nc c i

4 9


   西 安 电 子 科 技 大 学 硕 士 学 位 论 文 

数来表 明 的 tr ansact o n i
类型 即可 ,
本 次设计 中 f
_
seq u e nce r 对应 的 t r a ns a c t i on 

pg _
f xact o n i

p _
se
q u e n c e r 对应 的 t r a n s a c t o n i
是 p g _
p _
x ac t o n
i 。
要注意的是 , 扩展


型 f
_
s e
q u e n c e r /p _
s e
q u e ncer 可直接 调用 由 基类所 定 义 的 函 数 和 方法 , 这主 要是 因

为 在其构 造 函 数 阶段和 bu i l d p
ha s e 阶 段 都 使 用 了 s
叩e r 函 数方法 

4 4 4 . .
驱 动 器 类

dr ver i
主要 的 主 要 职 能是将 数据通 过 定 义 的接 口 驱动给 D UT , 其工作 原理如


图 4 . 1 7 所示 

f    > N

基于 uvm 
_
dr
ive 基 类   B u d p h a e

_
i l

_

扩展 l i f dr i vc  进 行 实 例 化
r 

  厂
> 8 b 1 0b 类驱 动








 ^ f 

对 fd r i v er 进 行 宏注 册


m n p
h as e
  6 4 b6 6b 类驱 动


V 


J v 




 




i ■

 、

广 、 

退 出 1 2 8b l 3 0b 类驱动


un

 p h as e  

V  
J  V  



工


f    ^ f 

创 建 构 造 函 数
 細“




N eW ( )

V  
x \ 


图4 . 1 7 d r i v er 类工作 原理 图


_
d r ver i
负 责 驱动来 自 fa b r i c 端 口 的 数据 t d ata , 通过 d ut
_
cf
g 的 约 束实现


drv
_
cf
g 相 关配置 的 同 步 , 在 不 同 的 数据 模 式 配置 下 , 端 口 每

位代表 的 含义有


所不 同 以 为例 每 个字节 的 有 效载荷 需 要搭 配三 比特 的 控 制 信 息

, 8b l 0b , : kin 

共组 成 比特 数据 代表此 时 对 应 的 比特是否


t x d c t r 、 t x d s se 1 1 k n 8


p l 。
i i , i
_
_ _
_

是控制 字符 ( k 码 ) , 后 两 者信 号 的 组 合 决 定 是 否 强 制 极 性 或 者 替 换场 景 

p _
d r i ve r 负 责 接 收来 自 p ma 传来 的 数据 p ma d n i ,
数据拆分 , 接 口 定 义恰


好是编码过程 的反 向 操作 

d r ve r i
首先 向 s e
q ue nc er 发出 事务 申 请并阻塞 , 当 s
qr 在接受 申 请之后进 行 回

应 ,
并将 re
q 作为句 柄 , 当 d r ver i
在 接 受 事 务 并 调 用 任 务 处 理完 毕之后 , s
qr 

50


第四章 S er D es 模块验证平 台 搭建


   
 ̄  ̄

 - 
   ■  
 

会回到 d r i ver 事务 的 完成标志 i t e m do ne , 之 后 才 能进 行 下


次事务 的传递 , 

程使用 循环 代表驱动 直进 行 去 冋 隔 时 间 为接 


fo re ve r
@ v f mck F 丨

) ,

 ( i . ,

义为 master 类型 的驱动 时钟周 期 , dr ve r i


不产 生事 务 , 只 负 责 驱动 。
这也是仿真

波形数据源 源不 断 的 原 因 

4 4 5
. .
检 测 器 类

mo n i t o r 负 责 监测 接 口 数据 于 ,
dr ve r i
操作 恰好 相 反 但 不 同 于 ,
dr ver i
在 fa b r i 

和 p
ma 侧各有

个的是 , mo n i t o r 不仅 需要对输 出 的 信 息监测 , 还需要对输入 的



数据监测 ,
只 是验证平 台 发 展 伴 随 功 能细 化 的 必 然要 求 , 然 而本 次验证平 台 的 设

计 中 并没有 例 化 四 个 组件 , 而 是 只 例 化 了f _
mo n i t 0 !

和 P _
mo n i t o t

两个组件 。 

是 由 于可 以通过 mo n c f
g 配置信 号 c fg t x _
s d 来决定是此时 fa b r i c 侧 的数据监测

具 体是 发送测 还 是 传 输侧 , 以 f
_
mo n i t or 举例 ,
其工作 原理如 图 4 . 1 8 所示 

r n  r 

基 于 uv m

_
mo n i t o r  基 B u i l d

h as e 

类扩 展 出 fm o n i t o r 进行实例化



> T X 输入 fa b r i c 端监测


V 

y V 



对 > 0 n 〇 进 行 宏 进 入
f i l r r

gJ
C X f s e 




_ 

注 册 u n p h a e r
_


i   
^ 

’  、

 0 ?R X 输 出 fa br i
c 端监测


n I 

j  J

参 数 设置
 r u? i s C 





J  ^ 

I 
创建 构造 函数
Ne \v
关闭d as 

( )

v  
j  V 



图4 . 1 8 m o n i t or 类工 作 原理 图

由 于检测 器 ma n i

h as e 使用 了f
o reve r 函数 , 故监测 行 为类似于驱动 器 , 

要仿真不停止 ,
会 不 断按照采集周 期进行下 去 , 由 前 文 论述可 知 , 需要采集 的 数

据必须为有效数据 , 对于 64 b66 b 编码 ,
在 某 个 循环周 期 内 的 某 些 固 定 序 列 对应

的 数据 输 入 时 无效 。
如 1 6 比特 6 4 b6 6 b 编 码模 式 ,
在输入序 列 t x _
se
q 为 3 1
时 

对应输入数据 无效 ,
因此需要在采集数据时 ,
需 要增 加 判 断 条件 ,
当 t x
_
se
q 

足范 围 在 0

3 2 且不等于 3 1 时 ,
方可采集有 效数据 。 同 理对于 1 2 8 b l 3 0h 编码 

5 


西 安 电 子科技 大 学 硕 士 学位 论文
    

采集有 效输 入数据 需 要满 足 t x _
d at a _
va l i d 不为 0 

4 4 6
. .
参 考 模 型 类

参考模 型 需 要 具 备 和 待 测 设计相 同 的 功 能 ,
根据 数据 通路 分析可知 , 参考模


型 需 要 分 为 两大类 , 通过 c fg
_
t x _
se r配 置 为 发 送 侧 和 传输侧 , 而 发送侧 的 参考模


型又分为  m2 p pcs
t x 和 p
2m

cs

t x ,

m 2 p( m a c a y e rt op h y s c a  a y e r )
l i l l
表示  m ac

层 到 物理层 对应 , SerD es 从 fa b r c i
到 p ma 的 数据流 向 ,


2m (

hys c a i l  l a
y e rt om a c

l ay e r ) 表示物理层 到 对应 S erDe s 从 pma 到 fa b r c i


的 数据流 向 分别 对应两种 数据

 )

流向 的编码模型 。 而 接 收侧 的 参 考 模 型 分 为 m2 p pcs _
r x 和 p
2m p
cs
_
r x 分别对应


两种 两种 数据流 向 的 解码模 型 ,
参考模型 的工作原理如下 图 4 . 1 9 所示 


/ 

ni 2p p
cs
」x  |
b r i d
ge r e
g p r o c es s

r  ^ r \ p 2 m p cs t x r r 

基 于 x b d ge t r i

_
un i t

ro ce ss

e ^
m c om on n  B u d a

u v p e t i l li s 




_

基 逢 扩 展 出 进 行 实 例 化 _ _ ^ e a r

r o ce s s
_ 

_





 

t o

p p
J

v / v e n co d e r
p r oc e s s

   y  ^
 I  



  

 t x d r i v er r e
g p
r oc e s s

对v i


〇 行 宏 进
i f
汪 册 r u n




h as e


r

 

 ^





r x s a m pr e gp r oc e s s

参 数 设 置 ^   b

= = 5E±= 


u n h as e
 w

p a
gn
ord r o c es 




_


_

j    L J |
 i 



1  d e co d e r
p oc
r e ss




   I

 T

 -

)   〔 |
m2
p p
cs
_
r x r x b r i d

e u n i t

ro c e ss

2 m cs x
创建构造 函数
 

关闭
p p —

r x g
ea r r o ce s 


 c asl s _ p

N ew ( )  ▼

rx b d e ro ce
ge
r r s s

_ g _ p 

 \
^ J
  

图4 . 1 9 参 考 模 型 类 工 作 原 理 图

参考模型 的 m a np ha s e

阶段使用 o rk
f  j
o n

进 程 定 义 了 若干 个子进程 而 子进

 ,

程又包含 多 个子 任务 ,
以 解码模 型侧 的 同 步模块 wo rd
_
al g n

_
pro c e ss 为例 , 此进

程 下包含 了 多 个子任务 诸如 , c o mm a 字节 的 寻 找搜索任务 co mm a _


s earc h , , a l i
gn

状态机跳转 任务 a l i
gn _
l s m
_ p
r o cess 等 ,
图 4 20.
举例 了a l i

gn _
l s m _

r o ce s s 的 关 键代 码 

5 2


第四章 S e r D es 模 块 验证 平 台 搭建
   

t a s kpc s _
nc g e:

_
a l i
gn I s m p r oc e s s

i n t a n e d l i
, 
i n p u t  p cs  d e c : : r x al g n
i I s m  st  e  c ur  s t 

n put b i t[ 1 0 i s c o mm m a r ef
pc s
d ec r x al i n s m s t en e x t st


i 
 
: : :

] ,  _ _ _


sb d  co m m a  c n t m m a)
re f b  i tl
p ace l

r ef  i n t
 g oo , 
r e fbi t
 ge t _
i rs t
f co

b i t  I s b 一
b a d, m s bb ad 

b i t  I sb

c o de 一
v o i
, 
m sb c o dev o i


b i t  I s b

i s

co m m a ,
ms b

i s

c o mm a 

b it m sb m s b k k
」 s

d ,
i s , 
l sb i s
_ 

i f
 (
c ur

st
==

pcs —
dec : : GE _
SO LO S S OF —
S YNC )
beg n

 i

i f( i s

c om mm a [ 0 ] | |
i sc om m m a [ l
] )
&&  m s b —
i s d
)
b e g i

n e xt s t

 p cs dec : : GE S  I CO M D E T I


e n de l s eb e g n

 i


n e xt s t  cu r s t ;

g et f i rst

c o m ma 

r b O 

end

e n de l s e  f( c u  r

_
st
= =

pc s
_
dec : : G ES  l
_
COM _
DE T l
)
beg n

 i

i f

l s b

co d e

v i o l

m s b c o de _
v i o | 

( (
! l s b co d e _
v i o && ! msb _
c od e _
v o i

&& ( m s b _
i s c o mm a & & (
! l s b i
s c o m m a)) )
_ _ | 

((
! I s b co d e

v i o&& ! msb —
c od e v o)& i : & ( (
! m s b」 s d )
&& l s b
_
i s
_
co m m a
) ))
be g n

 i

n e xt _
s t

 pc s
_
dec : : Ge _
SO _
LO S S

OF —
S Y NC 

i r st

g et _
_
co mm a  1 bO 

e n de l s e i f
( ( (
! l s b

c o d ev i o )& & (
! msb —
c o de —
v o) ) i && (
m sb

i s d )& &( l s b i s
_
co m m a
) )
be g n

 i

n e xt s t

 pc s
_
dec : : GE S l

CO M D E T —



e n d  e l s e  f( ( ( i ! l s b
_
c od e
_
vio )
&&( ! msb _
c o de v o) ) &i &(m s b i s
_
d)& & ( l s b _
i s
_
k) )b e
g n


n e xt 一
s t

 p cs

dec : : GE —
S2 一
CO M —
DET 一
2 

e n del s eb e gi 


n e xt —
s t c ur

s t


end

e n de l s e  f( c u r

_
s t

pc s _
dec : : GE S2 _
C0 M _
D ET _
2 )
be
g n

 i

end

图4 . 20 参 考 模 型 子 任 务 a I i
gn _
p r oc e s s 关键代码

“ ”

图 4 20.
所 示 代码 即 为第 三 章 中 同 步 模块 里 al g n i
模块状态机 的 模仿 

al ign
_ p ro c
e s s 结 合 由  c o mm a 一
res e ar c h 任务提供 给 a l i
g nj p r o c e s s  相关的 c o mm a  


键信 号 l sb
_
i s
_
co mm a , ms b _
i s
_
co mm a 等信 息 ,
并根据 c o mm a 相 应 比 特 位置 判 断

是否为 b ad _
co mm a 或者 go o d _
co mm a ,
再根据 相 应 的 条件完 成状态跳转 。
最终完

成和 DU T 致的功能



4 5A P B
. 组 件 实现

控制端 ( us erorc c s ) 通过 AP B 总 线访 问 内 部 寄 存器 进行 寄 存 器 配置和 , s t at u s



监测 ,
该组件实现 了 寄 存 器 的 前 门 访 问 机 制 ,
结构如图 4 2 . 1
所示 ,
包括 AP B 

关 环 境 配置 ap b _
c fg , 序列 发生 器 a

b _

qr , 驱动 器 a
pb _
d r ve r i ,
检测 器 ap b _
mo n

5 3


西 安 电子科技大学硕士学位论文
 

和接 口a p b i f ,
接 口 信 号 同 前面在 章 节 描述有 p c l k 、
ps
e l 、

a ddr 、
pd at a 、

r ead
y 


wr i t e 信号 

a pb c fg  

d r 

m on

q r 


pb i f  apb _
a g en 

图4 . 2 1 A PB 组件 图

AP B 组 件可 以 通过与 a
p b」
f 连接 待 受测 物 的 寄 存器 访 问 控制 模块 , 并与


apb dr i ver 结 合 实现对 DUT 寄 存 器 的 配置 ,
并与 apb
_
mo n 结合实现对 内 部 辅助

寄 存器状 态 的 监视 。 在 ap b i f 系统中 , 通过 mo d p o r
t 可 以将驱动 器与 监视器接 

分类 ,
以 确 定 信 号 的 输入输 出 方 向 

A P B的 t r an s c a t o n i
含 有 三个 变 量 ,
分别为 a
pb _
ad d r 、 a


_ p
d at a 、 a
pb _
r w k nd


分 别 对应地址 ,
数据 ,
读写类型 ,
支持参数化配置 。 寄 存器 与 APB 组件之 间 的

访 问还需要 以及 组件进行通信 控制端 旦与寄存器的




b us2 re g master
re
g2 bus 。

读写请求 立即 启 动 , s

r , 通过事务和信 号 级 的 相 互转化调 用 任务 se nd
_
t r
_ p ro
cess

对接 口 进行相应的 读写操作 , 图 4 22 .
为 apb
_
maSt er _
dr ve r i
接收到读写事 务 后驱

动接 口 执 行相应的 关键代码 

t as k pg

pb _
n as i t er
_
dr iv e r :  : s e nd _
t r
p r oce s s (
i i i t  l a i i e i n d e x) 

x a ct o n pb
a ^) a r
pg i  t
j 

e v er be g n
fo r 
  i

@ (
t ii i s . a
pb _
v i
Q l an e i n d e x ] mc k ) .


l f( t r
q [
l an e i n d ex ] . si ze 〇>0 ) 
b e g in

r ctit( )



pb tr  t r
q[ l a ne i n d ex] p o p 




_

 ux n ^
do ca l l b a cks ( pg a

^ ) ma ste r d ri v er .

pg a
pb m a s er t clr i v er c bs 


tra i i s
_
r ec e n ed
( 
t h is , 

pb _
t 2

t h i s .
c f


a an i
_
m od e _
e i i ,
 t l
ii s . cf
g b
〇 a dc a st
. i

_
e n , 
t his .  c f

. s ram m o d e )) 

M w
%O s
' k

U V M H G H )

pha s


wm n fo j\m e S s fc ? n a t ^ s end tr
jp oco s s g e a
pb

pb tr s
pr int( ) ) I
\ i ,  r t  t i ,

( _
 _
, 

r vv k d
c a s e( a b tr a
pb i i i



pg a
pb d e c : : R EA D O P   :  t h s i . re a d( a

A )
 tr . a
p b  a d dr .  a
pb t r . a
pb pd a t
a .
l an e
_
i nd ex ) 

W Ri E OP 

pg

p b  d ec : :  1  :  t h i s .
\\ T i t e


pb t r . a
pb _
a d di .
 a

b t r a

pb p da t a J an e
_
i n dox ) 

e n d c a se

nde x


pb _
tr .
l a ne
_
i d   l ane 一
i 

" ”


%O s

u vm
_
i n fo ( nj n
」i i ase , S s fo r ma t l



^ 3
_
nis t
_
drv  s e n d _

pb t r



pb t r . s

ri n t
( )) , U VM H G H I



 u vm do c a l l b ac k s ( p g a
pb
ma s t er dri v e r ,
pg a
pb n ia st er d i i ve r _
c b s . t ra ns
_
e xe c t i e d ( t h i s a b

p .

_
t r
)) 

b u fe r

T h Ls .
la ne eni
pty [ a p b tr .
l a ne i d]  1


se it an
por t i t en d o ne ( )




_ _ 一

e ud

end

n d ta sk se ndt
e :  r
 pro c e ss 

图4 . 2 2 a


_
m as t e r _
dr ver i
驱动 数据 代码

5 4


第四章 Ser De s 模 块 验证平 台 搭 建

可 以看到 任务里调 用 了
se nd _
t r
_ p ro c e s s t a s k _
r e c e rv e d 以及 t ask _
e xe c t ue d 。 


当前 AP B 组件 中 并 没有 定 义任 务 内 容 而 在 ,
t e st
_
b as e 中定义了 t ask 内 容 图 。 4 23

.

所示为 t est ba e 中 定 义 回 调 函 数 示 意 图
S 


_

c b e x te n d s b m a s t er dr i ve r c b s ;
c ass
pc s pg


l 

 —  _ _

v rt u al  ta s k
i  tra ns _
r ec erv ed
 ( pg —



_
m a s te r
_
d r i ve r x a c t o r .  re f
pg

pb _
xa c t k>n a 


b  tr 

b dec b en e  sr am  inod e  e n , a b d ec b eu e bro a dc a s t en



p ut p g a a a
pg p






: : .


 _
_ _ _  _ _ _ _
_

b d ec ram mo d e e s r am m od e)
p gj p
: : s
— —
一 _




f ^
s ram
 iii ode en 

 pg _



_
de c :  O F F ) be g 
i 

bj Mr =
4 ^ 0 0 0 0)  b e g n

i f a
( p
ti .

^ b >
_
a< [
3 1 : 28
]
 
 i

^ bO OOO

b b a ddi n s i de ^ b O OO ^ bOO ^ b OO be g 


If a t r a I 5 1 2 i l l O I l i
p p {
: .
})
. .

[ _
_ ( ]  

i f

br o a d c a s t _
en 

 pg _



_
de c : : ON ) 
be
g n

 i



b _
t r a .


b _
a dd  r

3 0
]

1 

a b t r a b a dd r 29 25

 5 b00 0 0 0
p p
 .  : 

_ _
[ ]

e nd e l  s e  be g n

 i

a b t r a b a dd r 30










— —
[ ]

en d

end

en d e l s e   b e gi n

ad d r

a b t r ? 3 b 3 1 1
p 


 . 

_ q _ _
[  ]

dec S R A MO )  a p b  t b ad d 0
= =
f sra m m od e a b r a
p r 3 29  21 00)

pg
i 

 : :
 . :



( _
 _
( ] 

m ode S R AM ^

else if s ra m

ap b dec 1 a b br a b ad 3 0 29

2 b O O ;
pg

p p
 :  : .

( _  _
_ )  _
[ ]

B R OAD C A S T )

m ode d ec
印b 2 b
= =
else i f s ra m a b a b tr a d dr 3 0 29 l O
pg p p
 : : . :  

^ 一  —

 — _
[ ]

en d



J n fo C A P B C B M D F \ ¥ s fo n n a % Sh U VM n GH
' '

b ad dr

a ddi h

pb b

u vm  tf

a _
 \a
p _
. a
p _


_





en dt a s k

e n d c la s s


图4 . 23  Te s t
_
b as e 定 义回 调 函数代码

本文使用 了U V M 重 要机制 之 的回调函数 山 于 在不 同层次不同验证任务




中 , AP B 协议 需要严格遵守 , 因此 AP B 接 口 的 r e ad 和 wr i t e 作为固 定任 务 定 义

在 a
Pb _
d r iver 组件 中 , 而 只 若只针对 PC S 模块 , 只 需预留空间 , 根据 特 定 配置

而选择不 同 addr 地址 , 便 完 成 对 寄 存 器 配置 的 读 写 操 作 , 这样针对后 续工作场




景 的 不 同 造成 配置 的 改动 , 只 需要在 t es t
_
baSe 下 修 改相 关 配置 即 可 

4 6 . 寄存器模 型 ( ra l ) 组件 实现

由 3 . 4 章节可知 ,
本 设计 的 寄存器访 问 模块 中 定 义 了 多 种 寄 存器 ,
从而 决 定

了D U T 各个子模块 的 工 作状态 与 行 为 , 并且利 用 对 AP B 端 口 的读写操作 , 就能



够完成从外部对 DUT 内 部 寄 存 器 的 初始 化设置 、


访 问 以及更改 。 为 了 能对各个


寄 存器 能够 正确 被 外界访 问 验证平 台 为 此专 门 搭 建 了 套 寄 存器模 型 组件 


, ,

体包括 了 寄 存 器模 型 、 AP B 组件 以 及 寄存器桥接 ( ad a

t er 模块 ) , 整体框架如 图

4 24

所示 

5 5


  西 安 电 子 科技大 学 硕士 学位论 文

i  ra j i i s st

r e
g  

A P Ba g e n 

 



 I ) UT


H s uk H  I
i 船 i
— 一

 re s l er s



— 一 '

 MON
?  *

? 


| |

jo p 



 h ss



;  




 


pb _
t r a ns

| u v mr
e pH e m  |
Ana l

ys
i s

jx > 


I Xv f a u l

^ r mq^  

a da e 

J —    

ed or  <



t r r c t
p p

图4 . 2 4 寄 存 器 模 型 框 架

本节将对 寄 存 器 模型 、 寄 存器桥接 等组件设计 实现 , 包括创 建寄 存器 模 型 



实现 寄 存 器桥接 、 建立访 问 机 制 等 共 同 完 成 寄 存 器 模 型 集 成 

( 1 ) 寄 存器模型 设 计

寄存器模型 ra l hsst
_
re
g 例 化 了p c s
_
l ane ,
p c s _
cmn , h s st
_
t op 这三个类型 的寄


存器 区块 , 分别 是 pc s 通道 寄 存 p
cs 公共寄存器 以及 hsst
_
t op 顶层模块寄存


器 t o p x sv 文 件 层 定 义 了 这 三类 的 基 地 址 , 本次 以 pcs j ane 区 块 为 例 ,
其下有几


十个寄存器 每 个寄存器又有 个或者 多 个域组成 同 样每个域也通过单 比特


一 一

, ,

或多 比特实现 ,
不 同 的域映射 寄存器不 同 的功 能 ,
并且相 互独立 

当 定 义好 了 寄 存器地址 , 名称 , 域 的信息后 ,
需要补充 bu i l d 函 数实现 ie d
f 
 l

的 实例 化 以 及 配置 配置 需 要对 。 9 个 参 数进 行 设置 从左 到 右 依 次是父 类 位 宽 : 、 

最低 比 特位置 、 存 取方 式 、 易 失性 、 复位值 、 是 否存在复位值 、 可随机性 、 单独




存取性 设计若未特别 说 明 后 续
。 , 5 个参 数 都取 默认值 验证 人 员 只 需 掌 握域名 , 

位宽 、 最低 比特位置 以 及 R W/R O 类型 即 可 完成配置阶段 



( 2 ) 寄 存 器桥接模 块 ap b
_
ad a
pter

上 小节在讲 AP B 组件 中 提到 的 主要功 能就是完成


ad a p t e r ra hs st re
, l
_
_ 

和 AP B 组件之 间 的 连桥接 。 ada



t e i

主要 负 责辅助寄存器的操作事务 以 及


uvm _
re
g _
op 和 AP B 事 务 ap b _
t r an s 的 交互 转 换 , 其影 响 作用 最大 的 是 内 部定 义


的 re
g2bus 和 b u s 2 re g 函数 ,
共 同 完 成 了u v m _
r eg
_
op 和 ap b _
t r an s 之 间 的交互映


射 过程 把操 作 位置 类型 数量等传 送给 另 方 和 


, 、 、 。 a
pb j ra ns u vm re
g 一

p

成员 映射关系如下表 4 . 1 所示 

5 6


模 块验证平 台 搭建
  第 四 章 S e r D es
  

表4 ? 丨 a
pb _
t ra ns 和 uv m
_
re
g_
op 的 成 员 映射关 系

操 作 成 员 uv m _
r e
g _
o p a p b
_
tr a ns

操 作 地 址 A d d r  a


_
addr

读 写 数 据 d a
/ t a a p b
_ p
da t a

操 作 类 型 k i nd : :

UVM _
W R TE  UVM R E A D Y
I ,

_



pb _
r w _
k i nd


re
g 2 bu s ( ) 函数 的应用 场景为 :
当 寄存器模型 被访 问 时 ,
模型将对应寄存器 的

信 息 保存 在 uv m _
re
g _
op 中 , 同时调用 re
g 2 bu s 〇 , 以 实 现 从 uv m _
re
g _

p 到 ap b _
tr an s

的 映射 , 并 同 时返 回 ap b _
tr ans 实例 ,
其次 ap b
_

qr 将得到 的 ap b _
tr a ns 传给


ap b
_
dr ve r i , 在 ap b
_
i f 上执 行相 应 寄存器 的 读 写 操作 

bus 2 re g ( ) 函 数的 应用 场景为 : a

b_ _
dr iv er 完 成读 写 操作 后 会返 回 句 柄 给


以表面完成 了 本次 任务 则 直 保 持监 视 状态 


a b s r ap b t r an s a

b ad a
p e
t r
p _ q _

_

捕获 ap b _

qr 收到 a
pb _
tr ans 返 回 句 柄后 , 隐 式重新调 用 bu s 2 reg ( ) 函数 ,
实现从



pb _
tra ns 任务到 uvm _
re
g _
op 的 映射 ,
将配置信 号反馈给辅 助 寄 存 器模型进行 相

应 的 更新操 作 

( 3 ) 寄存器访 问

在 2 6 .
章 简 要 介 绍 了 寄 存 器 的 两 种 访 问 方式 ?


前 门访问和后 门访 问 , 具体


在脚本验证平 台 , 利用 AP B 进行 的访 问 就属 于 前 门 访 问 , 还 需 要 建立 AP B 组件


和 a d ap t e r 桥接 ,
来实现总 线 与 寄存 器模块之 间 的直 接联系 。 而后 门 访 问 则是通

过直接创 建 寄 存器模 型 与 DUT 之 间 的 链接 , 并调用 uv m _


re
g _
b lo c

中 : : ad d _
hd l
_ p at
h( ) 的 函 数实现 。 但 因 为 设计模块 中 辅 助 寄 存器 过 多 , 所 以 单纯使


用 前 门 访 问 就 会耗 费 大 量 时 间 , 而后 门 访 问 则 是 因 为不耗费时 间 而使得 d e bug 


杂 度大大增加 , 于 是本平 台 就选择 了 前后 门 混合 的 方法 , 创建 了 辅助 寄存器测 试


用例 , 通过前 门 对 所有 的 辅助 寄存 器做 了 读 写 检 测 , 其余则 采用 后 门 访 问 ,
在保


证 寄 存器模 型 的 正 确 性 的 同 时 缩短 了 仿 真 时 间 , 提高验证 效率 

( 4 ) 脚 本批量生 成寄存 器模 型 文件


对于 结构较为简 单 的 D UT 可 能 只 存在 几个寄存器 , 此时 , 按照 Uv m _
re
g 

u vr n
_
re
g _
b 〇 Ck

层 次划 分 , 参数 设 定 , 地址 映射 的 流程 即 可编 写 简 易 r al , 参数 的


方 法 搭 建 寄 存 器模 型 即 可 但 是 对 于 复 杂 设 计 来讲 。 , 人工编 写 的 方 式效率 极低而

且失误率很高 , 某 名 称 或 者 映 射 地址 的 拼 写 错 误 不 易 显 现 , 导 致 定 位成本 高 昂 

脚本 的 使用 可 以解决在这 问题



设计 需 要提供 x l sx 格式完整 的 寄 存器表格 , 首 行 需要 定 义关键词 



O f fs e t _
ad d r :
偏 移 地址 , 即 针 对基地址 的 偏 移量 

N a me :
寄存器的名 称 

比特 s : 与 之后 的 ie d
f l
配合使 用 , 表征 8 比特的 uv m _
re
g _
b ock

分配给 ie d
f 
 l

的具体位置 

5 7


西 安 电 子科技大 学 硕 士 学 位 论 文


 

寄存器最小单元 的名 称 同 个 的每个 作用 可


F e d i l : 。 uvm
_
re
g _
b ockl ie d
f l

以 无关 

T yp e : f
ie l d 的类型 , 常见的是 RW 型 ( 可读 写 ) 和 R0 型 ( 只 读寄存器 

D e fa u l t : f
ie l d 的 默认 值 , 位宽 同 ie d
f l
所 占 比特数 

寄 存器表格确认无误 ,
首先使用 p yt
ho n 脚本 x l s 2csv .

py 将 x l s x 或者 x l s 文件转换


成 c sv 文件 。
关键代码 如 下 图 4 25 .

所示 

i mpor
to s

i m
po r
t p a n da s


de fx l s 2 c s v ( npu t i ,  ou t p ut ) 

ex cd
' '

r ea d
p a n da s

n n d ex 0 o v enc od

u tf S
pu t  co c o ut
p ut n -

t s

. i i l . i
_
( ,
_
) _
( ,  

d e f  m a in 

()

£ en d s \v h ( ' x
* f

x l s li st

f fo r  f
  ii i o s . li s td ir
Q i f  it l s orf e . i i d s \v it h ' xl s x
[  ) ( ) ]

fo r  f  i nx l s  li st 

’ *


f f

x l s 2 c sv

f ,  £ sp li t

) [


. c s v 


f  n am e





ma n i

m a n〇

 i

图4 . 2 5x l s x 转换为 cs v 脚本示意



其次使用 ED A 厂 商 提供 的 寄 存器模 型 生 成脚 本 ra l
ge n 生成 RA L F 文件 。


所有 寄 存 器 模型 均 生 成且 无格 式错 误后 将 打 印 如 图 4 26 .
所示信 息 

= =



M P C S RA M @ 0 x 4 0 0 0 0 0 0 0+ 0 X 024


- -

( ) [
1 】


- -

 (
rTP C S RA M 0  @0x0


|   -  -

 (
FjP C S  RA M  0  F  [
32 ]  @ 0  RW 

>0


R )  P CS R AM l   @0 X 0


 - -


FjP C S
_
RAM
_

_
F  [
32 ]  @ 0  RW 

>0

i n fo ;  . r a l f f i l e ss a v e dt o r a l f out




Synop s
y sU VMR e g i s t e rA b s t r a c t i o nL a y e rC o d eG e n e r ato 

Copy r i h t  c 1 9 9 1 2 0 2 0b y
S y n o p s y sI n c





( )

Al lR i g h t sRe s e r v e d .



图4 . 26 寄 存 器 模 型 正 确 生 成 打 印 信 息

执行 r a l
ge n

1 s v -

t H S S T  〇r a -


_
H S S Th s s t
_
re
g mo d e l . ra l f 生成 r al
_
hsst . sv 

ra l
_
PC S _
L AN E . sv ral
_
PC S _
C MN . s v 

使用 u nt i l s .

py 和 d e f py .
自 动生 成寄 存 器值 的 定 义和 注 册 ( 配合 dut
_
cf
g 对其


进行约束 ) 

最后 用 脚本 wr i t e py .
生成所有 d ut _
c fg 的约束 ,
并在 配置 阶段将 受 约 束 的 随

机值写入 DUT ,
写入可 分为快写 入和慢写 入 ,
快写 入采用 直接复制 的 方法完成


配置 ,
而 慢 写 入 则 是根据 AP B 协 议消 耗仿 真时 间 进行 DU T 的 配置 , 通过使用 脚


本 完成寄 存 器组件 的 生成 ,
有 效减少 人工 维护 成本 , 提高 了 验证工 作 的 效率 

5 8


第四章 S e rD e s 模 块 验证 平 台 搭建
     

4 7 .
层 次化 验 证

4 7 1
. . HVP  介绍


随着 验证工 作 的 日 益复杂 ,
需 要 收集所有微观 级 别 的 数据 ( 例如 回归 中 的单


个测 试状态 ,
功 能和 代码覆盖率等 ) ,
以 便更好 的跟踪 。 人工 的 收 集上述数据 可

能会 导 致 人为错误 , 使跟踪 数据 不 准确 。
将 整 个验证 跟踪过程 自 动化是理想 的 解


决方案 , 既保证 了 跟踪 的 准确 性 ,
又避 免 了 工 程 师 繁琐 的 管理 

S yno p s y s 的 VC S 使 用 层 次化验证计划
   HV P ( ( H i e r ar c h i c a l l y

Ve r i fi c a t i o n P an l ) )

解 决上述 问 题 旦 验 证 环境准 备就绪 在 回 归测试的 时候 就 可 以 使用 层 次化




, , ,

验 证 计 划 在 电 子 表格 或 文 档 格 式 的 公 共 位 置 收 集 相 关 信 息 

4 7 2
. .  HV P 生 成 的 基 本 流程

分层验证 HVP 支持 DOC 、 XML 等多 种格式 。 本文选择使用 了  X ML 格式




的 分层验证计划 测试用 例 的每 次回归 都会调用 U RG( U n fi e d  R e p o r



。 , i

G e ne rat o r 统 报告 生成器 将会访 问 覆 盖 率数据 库 实 现对 覆盖率 的 管 理


) 。 hvp , 

以表 4 2 .
简要介绍 h vp 的 结构及成分 

表4 . 2H VP 组成成分

hvp 变 量 描 述


计划 整体 定 义 个层 次结构

P a n( l )

 

F e a t u r e( 特性  )


l an 定义下包含多个 fe a t u r e





 S o ur c e s ( 源 )  覆 盖率 的 收集对 象 ( 覆盖组 、 实例 、 模块 等 ) 
G oa  l ( 目 标  覆盖率 需要达到 的 要求
) , 通常 1 00 

A tt r i b u te( 属 性  特征之外 的属 性 ) ( 字符 串 ,
时间 、 整形 、
枚举类型 


M e a s ur e  ( 测量 )

配合 m e tr i c 使 用 声 明 需 要反标 的 覆盖 率 

Me tr i c( 度量  从 ) d a ta b a s e 注释到 vp an l 的值

计划 P l an : 定 义 了 某 个层 次结构 , 由 层 次 性 的 树 形 结 构 所组 成 

特性 F e at ur e :  F ea t u r e F e a t ur e

是 HV PM 中 的 基 本 构 造 成 分 , 换言之 , 验证

计划 的 层 次架 构就等于 F e at u r e 的层次架构 。 Feat u r e 可 以 包括属 性 反标值规则 、 



目 标覆盖规则 、 测量准则 、 子特性和子计划 的 声 明 



源 S o urce s : 源 是 指在验证平 台 中 功 能 和 代码所 覆盖 的 信 息 收集 对 象 ,


如覆


盖组件 、
模板 、
实例 以 及指定 测 试 的 p a s s / fa i l 结果 

目 标 Goa l :
度量覆盖率 Me tr i c 的 基本条件 , 通常使 用 目 标表达式来定义 

可从度量 、 计划或特性 的 声 明 中 确 定 

属 性 At r i bu t e :
声 明特征之外 的属 性 。 可 以是整 型 、 时间类型 、
字 符 串 或枚

59


   西 安 电 子 科 技 大 学 硕 士 学 位 论 文  

举类型 

测量 M ea s ur e :
可 以测试 Measu r e :
测试者 能够使用 Me t r i c 来声 明 对 Feat u re

的 某些覆盖率 ( 代码 、 断 言或功 能覆 盖组等 ) 要 求在 测 试数据 库 中 获取 的 反标成



果 。 高层 次 的 特 征 衡 量值通 常采 用 聚 合低层 次 的 子 功 能 度 量值 来计 算 

度量 Me t r i c :
度量 Me t r i c Me t i r c 意 味着 要 把 试 验 数 据 库 注 释 到 试 验 计 划 的 值 

能够对各个度量确 定 分类 、 目 标 、 集合成 员 ,
以 及所有者 属 性 

反 映 了H V P 组 成 成 分 之 间 的 联 系 可 以看到 定义 了 整个



图 P L AN


4 27


HVP 层 次结构 ,
其下 包括众多 fe a t u r e , ( 或子计 划 s u bp an l ) 诸如 co de 特性和

fu n c t o
i na l
特性 , fu n ct o na i l
特性又可 以 包含覆盖率组 co ver
gro u p 特性和 断 言


a s se r
t on i 特性 ,
这些特性又通过 对应 的 度量 m etr c i
和源 s o u rce 与数据库 c o ve ra
ge

d at aba s e 连接 ,
完成对应 的 反标功 能 

M OD 

e at u e
HV
I r


P  

X


R )
P l an
 

 

,M

 ( 

e as

 、
: r c
 ' 


^ C co v e r

r ou p
 J
(  A ss e rt on  ) i






、 

’



一  


、 、


, '


、  广 m e

i nc 、

乂 、
, me nc t

7

 C . 
me n e

x





o u r ce


? 一 ? 一
; )

0^ )  C f

) S (
o u r ce



L Li 工

— ― [」

 ―

(   C o v e r a ge d ata 

ba se




组 成成 分及 其 联系
36

图4 . 27  H VP 【 

4 7 3
. .
使 用 HVP 收 集 代 码 覆盖 率 的 步 骤

1 .
生成 XML 格式的计划文件


生 成 XM L 格 式计 划 文件 有 两 种 方 式 是可 以 通过 文件调 用 以 下


hv

命令 H v p ge n x l s

l e a

p a n  oc x h v p
l j .
来 生 成该命令将 生 成 文件 xxx xm . l ,
二是可 

直接用 XM L 格式编写相应计划文件 。 HV P 文件格 式如 下 图 4 28 .


所示 

60


模块验证平 台 搭建
   第 四 章 S e r D es 

1 p l a ns r a m p l a n 

2 a t t r i b u t ei n t ege r
p h a s e =
l 

3 a t t r i b u t er e a l v e r s io n

0 . 5 

4 a t t
' ' *

r i b u t es t r i n g r o o tm o d =
 

5 f e a t u r es i n g l e r ea d s 

6 me a s u r eG r o u p ,
A s s e r t s n p s 

" "

7 so u r  c e= j
p r  o pe r t
y :
¥ { r o o tm o d } r  ea d 

8  e n d mea s u r e

9 e n d f ea t u r e

1 0 f ea t u r es i n g l ew r it e s 

1 1 me a s u r e G r ou p ,
A s s e r t s n p s 

" 

1 2 s o u r c e =
p r o pe r t
y : ¥ {
r oo t mod }
w r i t e

1 3 e n a me a s u r 

1 4 e n d f e a t u r e

1 5 f e a t u r ea d d r 

1 6 me a s u r e G r o u ps n p s 

" M

s

1 7 o u r c e =

ro u p :  a d d rc ov 

1 8 e n d me a s u re

1 9 e n d f ea t u r e

2 0 fea t u r ec o d e 

2 1 mea s u r eG ro up ,
A s s e r t s n
p s 

" ,

s

2 2 o u r c e= mo d u l e : s r a m 

2 3 e n d m e a s u r e

2 4 e n d f ea t u re

2 5e n d p l a n

图4 . 2 8 H V P 文 件 格 式

2 .
验证 与 回 归 。
完 成验证 计划 开 发 之后 , 接 下来开 发 测 试 用 例 , 并行运行所

有测 试用例 回 归 

3 .
合并覆 盖率 数据 库 。
在 s i m 下 m ak e f
i l e 里运 行 m ak e g e n
_
co v _


t 生成 

4 .

覆盖率反标 

     


 y  

 
: ■



 



Swe va * l ue


c hec k e r  c o v er  m e a s u re  s n
ps . s ou r c 


hts n s G r ou p

g p





 


一
 r
   ̄

 級 驟 n論  叫  


碎 磁 ^細 棚 ■ 球 ?

一 ̄

 
 

_  ̄
 — '


: ! :




一 ―  ̄

nr : : z 
ss a  2   zz z z z z zn


 > :

1  c ov erc f
g
e n c o d e m od e= r  二 ^
 -
 


 —




? Kcod e ^

2 c o v er  1 2 .
 2 56


7 祕 -
2 。 


将 D U T V S 出 与 馋 考 没立

  1
〇 c 〇d e

进行比对 检 盪 擴码 迗  ?

果 与觀 的
 PL U

4 x d s c t r
t xd s s e〇 =


p l i

p
一 



{ .

r 她 c s jcw

樹 r偷


DtH 

i 
# 獅 後 r
3 —

   



1 

 贫轉

,頌 ,     一
  …


U  c r os s1 2
 啤— ,




广 

二 , 乂亡 ^



m& m  _ 翁 d 饮 ^ L 3

 、 ,
魏 嘴




_
 

'二
「 一  .  ? —

图4 . 29 反 标 前 的 验 证 文 档

上图 4 29 .
所示为反标 之前 的 验证 文档 , 注意 点如下 

第 行 只 能使用 特定 的字符 图中为 和


fe a t u r e
h vpp a ne n c g ro u p o urc e
1 . , l , , s 

等 , 使 用 不 允许 的 字 符将会 导致运行 HV P 命令时 出 错 



2 S o u rc e

歹 丨

J 编写规贝 I

J 

针对 c o ver
gro

p 


r o up :


g _
xx x ,

为通配符 , cg _
x x x 为想要反标的 c o ve rg r o u p

6 


西 安 电子科技大 学硕士学位论文
 

针对

c o ve r p o n t i 


r o up :


g _
xx x c .

p _
x x x c
p ,
_
x x x 为想要反标 的 c o v e r b i n 

针对 c o ve r b n s i 

g r o u pb n i :


g _
xxx c p .

_
xx x b n s . i
_
xx x , b i ns

x x x 对应  h i erarc h
y 结 构 的b i ns 

针对 cro ss 

g o
r u
p :


g _
xx x c s .


xxx , cs
_
x xx  为相 应  gr o u pF 面的 cr o s s 

3 .
文件格式 当 前反标 只 支 持 。 X ML 格式 将之前 的 文档 内 容直接复制 到 , XML

格 式 的 文件里 , 可 以使用 enco er


_
hvp _ p an x m
l . l
作为模板 。 在 l i nux 环境下 ,
使用

so ice
f 打开 XML 文件 

4 .
反标 。 相 关 文件 准 备好 之后 可 以 进 行 反标 ,
反标命令 如 下 

" 


hv
p  a nn o
t at e  -

l e a p a n -

l . / xxx x m . l 

d i r . /x x x vd b .

x xx x m . l
为准备好 XM L 格式计划 , vd b 为相应 的覆盖率文件 

下图 4 . 3 0 所示 为反标完成 的 验证计划 


 ’  "
 -  r

 J  J K  M  n C

  
S w <

e i

 va ue




 


c he c k e r  c o v er   meas u r e  ¥ n s s ou r ce  :   ^



; g
ht
 s n
p s .
G rou p ;

 





;  < '

?  -

 ?  
r 

i  丁 : f  二 H::::  二 二 I T
二 
 

1  co ve r  cf

e n c od e r  m o d e  =
 ,

:二 



一 



b 0 00 0 /4 b0 00 1 

. ,  ̄ 一 -     


^  ? 
 "

 、


2  c over1 2 | ?

Kc od e 2 5 61?  

n s与 赛考 卿

. |

    

齡ur

[ 

4 .


tx d .

pct r
t .
t xd i s
p
s e l


  -




2 b 0°
 } 减] ?二

 " "

 ,

8  c r os s  1 , 2 ,
3  ;

— —

f  

图4 . 3 0 反标 完成 的 验 证 计 划

4 8 .
本章 小节

本文基于 UVM 方法学搭建 了 验证平 台 。 提 出 了 验证平 台 的 总 框架 , 其中论




述 了 诸 如 序 列 发生器 、 监测 器 、 驱动 器 、
参考模型 等组件 的 实现细节 ,
其 中 针对


SerD es 寄存器众多 , 维护成本高 的特 点 ,
使用 py
t ho n 脚本优化 了 寄 存器组件 的

生成 。 针对 S erD es 结构复杂 、 验证功 能 点 多 的 特点 ,


本文采 用 HVP 验证 自 动管


理 流程 , 该 流程 可 实 现验 证进程 的 可 视化 ,
减少 人工干 预 ,
有 效提 高验 证 效 率 

62


第五章 S erD e s 验证结果 分析

第 五 草 S e r D e 验 证 结 果 分 析

 s

在 搭 建验 证 平 台 完 成 冒 烟 测 试 后 , 通过 不 断修改 约 束条件 , 使得待测 S erD es



模 块遍 历 各种 工 作 场 景 本 章 将 结 合 某 几 种 测 试 用 例 的 关键 代 码 以 及 对 应 子 模块

 ,

仿真结果 , UVM 打 印 出 的 仿真报告 、 回 归 报告 , 在最终验证 呈现收敛状态后 



不 同 层 次 的 代码 覆 盖率 , 功 能覆 盖 率 收集情 况来证 明 验证 的 充分性 



5 . 1 测试 用 例 及 仿 真 分 析

基于第 四 章 搭建 的 U VM  S erD e s 验 证平 台 ,
本 小 节重 点 介 绍 几个特殊 用 例 的

构造 , 并 结 合 对应子模块 的 仿真波 形进 行验 证 ( 整体 结构仿 真波 形 不直观 并且 由



于涉密 问 题未列 出 ) , 其 中 包括通过 AP B 接 口 读 写 配置 并巧 妙使用 phas e 机制 的



寄 存 器测 试用 例 以 及对 应 寄 存器模块 的仿 真波形 通过环境配置选择重新 定义数



 、

据流 向 的环 回 测 试及对应 ne ar _
l oop 模块 的 仿 真 波 形 使 用 断 言 完 成 检查 的 、 8b l Ob

替 换场 景用 例 和 1 588 时 间 戳测试用 例及其仿真波形 



5 . 1 . 1 寄 存 器 测 试

寄 存器对 于 复 杂 的 待 测 设计 的 重 要性 不 言 而 喻 , 尤其对 于 S erDe s 这样拥有




庞 大 配置 体 系 的 模块 因 此 需 要 构 建 寄 存 器测 试 用 例 来 对所 有 寄 存 器 的 读 写 做


次全面核查 本小 节介绍 了 巧 妙运用 。 UV M 中 p


ha s e 机制 实现寄 存 器 测试的 方法 

第二章提到 了 U V M 具有强大 p h a se 机制 和 o bj e c t o n i
机制 , 所 以为 了 专门针


对寄存 器测 试 预 留 这 空间 这 前的
一 一

了 p re co nf
igure p ha s e p ha s




_
j p ha s e ,
re s et
_

阶段 完成整个 设计 的 复位 , 而后 面 的 co n f gure

_ p
h a se 阶段 , e nv 会利 用 它 调 用


cf
g _
dut( ) 任务完成对寄存器 的配置 ,
所 以 在此阶段 只 要 利 用 o bj e c t i o n 机制 , 通过

rai se
_
o bj e c t i o n 和 dro p _
o bj e c t i o n 的 相 互配合就可 以 在不 影 响 其他功 能 的 前提 下 完


成读 写 测试 。 以 〇 nly
_ p
cS 层 次为例 , 下 面简 要介 绍测试用 例 的 构 造 思路 

寄存器分 为 P C SJLAN E 和 PC S _
C MN , 由 于 PCS 有 四 条通道 l ane O ,  1 , 2 

为 了 代码 的 可读性 和 建议性 本文通过使 用 宏 定 义 将 任务封装起来




3 ,
( de f
i ne )

并预 留 了 名 称 和 通道编 号 ,
优化 了 测 试代 码 的 质 量 , 增 强其 可读性 ,
其关键测 试

代码如 下 图 5 . 1 所示 

63


西 安 电子 科技大 学 硕士 学位论文
  

t a sk  pr e _
co n f i
gu r e _ p
h a s e( u v m
_ p h a s e  p h as e )

uvm
_
r e
g re
gs _ q [¥ ] 

u vm
j r e
g re
g —
fo r
_
t est




uvm s t a tu s e  s t at u s

4] 


_ _

b i t
 [
7 0 :
]  r d _
d ata[4 ] ,
wt —
d a ta 4
[ ] 

s tr i ng  re
g —
na m e [ 4 ] ,
r eg r i
gh t

4] 

i nt r e
g _
s z [ 4]

P ha s e . r a i se . ob e c t
ion(

t h i s
) 

d e fi n e  r e g i s t e r —
t e st

m o du l e n a m e, l an e n m n ) \

b e g i n 、
’ ' ' ' 、 ' '

 P CS RA L —
M O DE L . mo d u e l

n am e e [
l a ne

n um ]

g et _
re
g i s t e rs

re g s
q) ;


' ' ' '


reg
_
s z [
l ane _
num ] 
 re
g s
_
q .
s i ze〇 ;


' ' ' '

for i nt

O <re s z I an e num ++ be g n \


(  j J g _ [ _
] y )

” ' '

r eg fo r

t est

l an e _
num ] 
 re
g s
q pop
_ b a c k( ) ;



— _

' 、 、 ' ' '  '

reg name [
l an e —
rx um
] 

 re
g 一
fo r t e st
f 
l an e

m m i


ge t 一
M l

n am e ( ) ;


' ' ' ' ' ' ' '

g ht [

re
g _
r i  l an e num ]
 re
g _
fo r
_
t e s t[  l ane mam  ]

g et _
ri
gh t s ( ) ;



_

re
p e a t ( 3 ) b e g n \ i

'  ’ '

s t d : : r a n do m ze ( w t i d ata  l a ne t uim 



[ _
 ]) ;

' ' ' ' ' 、 ’ ' 、 、 '  '

re
g fo r t est  l a ne n um

. r ea d

s t atu s [
l ane nu m ] )
rd d ata [ l an e num 



_
[ 一  _
 ,
_ — ] ) ;

' ' ' ' ' ' '  ' v y ' '

re fo r te st a ne n um wr
i t e ( st a t u s [ a ne n um wt d at a [ an e num
g  _
- 

 l
_

  ]
.  l
_ 
 ̄ ] ), _



_


 ̄ ] ) 

\ 
' ' ' 1 ' ' '  '

re
g fo r
_
t es t [  l ane
_
n um  ]

m i rro r

s t a t us [
 l an e
_
nu m ] ,
U V M C H EC K _
) ;


e n d \

e n d\

end


re
g i s ter

t e st ( P C S —
L AN E ,
0 

 re
g i s t er
_
t e st ( P C S _
L AN E ,



re
g i s t er
_
t e st( P C S
_
C MN ,
0)

p h as e d r o p .

_
o bj e c t i on ( t h i s


p h as e .


um
p ( uvm _
re
p o rt _ p
h a se : :

ge t
() ) 

e n dt a s k p r ec o nf
i g u re j p

has e


图5 . 1 寄 存 器 测 试代 码 示 意 图

将 队 列 深 度 寄 存器名 称 寄 存器 例 化全称 类 型 分 别 用 、 , , re
g _
sz 、 re
g _
fo r
_
t e st 

re
g 一
na m e  re g _
r i
g ht 缓存起来 首 次 先 读 寄存器 的 初始 值 随 机化 , , 8 比特数据 w d ata

写入 ,
调用 mirr o r 检测 写入和读 出 是否 同 步 , 共 重 复三 次 , uv m _
c he c k 若不通过


会报 错误 提 示镜像值和 实 际 值 不 相 同 若 都通过 进行 下 个寄存器 的读


e rro r 。 ,

写 检验 。 当 4 组 PC S _
L ANE 和 1 组 PC S _
C MN 中 所 有 的 寄 存器都读 写检验 成功


后 直接使 用 p h a s e j u mp 调 到报 告 打 印 阶段结束 仿真 。
图 5 2 .


所 示 为 寄 存 器 测 试对
应子模块 的波形 图 

64


第五章 SerDes 验证 结果 分析
 

P 5  |
7 .

 ?
0 (

V 
O QO ,

 p
o o


,    , , ,  |


5 0




f .


3 0
 ,    , , ,  |
i .
 9〇 <



〇 .

 p



f  n 



九 叫 i
匪麵 丨 i n 圆 謂睡 j 丨 i i n 腦顧 醒 _ 酬 刚 i 丨 丨 1 s 』 ! 關 圆 mm 謂社川
i ! 1

o f

n  ^
r s f







"  ̄

rL rLr i r L r L r L r u L 厂 l t u lt i
"  i
 f 
  ̄




i n n ji j L rT n n n n n
_ ji _ _ _ _
_ _ _ _ _

c f
g _
v ? U〇 i

 I  0  

  I
J  j
.  J I  I  |


c f
g ^
add c

l S0 }    |
e S   〇
! : 
c f
g j^ a t 3 {
7 〇 i
 |

 j  0  〇   ^  : ) I
c 〇   l
b 8
  \


c E
q _
c d o t b P〇  i
i f  ^  ^     r 

厂 I

4 a

e o

        0   

c s ad  3 0 f[


g t
y f l f ) f ] ( I 1 1 ( I 0 f l f l




图5 . 2 寄存 器 测 试波形

由 波 形可知 信号相 比 信 号提前 拍拉高 进入 ET U P


c f e c f e na b e S 

ps

g g
, l ,
_
_

状态 下 拍 和 均拉高 状态机进入 AC CES S 状态 此时分




cf cf e nab e
g pse g
l l , ,

_ _

两种情况 : c f
g _
wr i t e 置为 1
表示 向 对应地址 的 寄 存 器写 入配置 值 c f
g _
w d at a , 

置为 表示读取此地址 下 寄 存 器 的 值 图中向某 地址 的 寄存


c f wr t e 0 c f
g r dat a

i ,

_
_

器 连续进 行读写 操 作 ,
每次 寄存器 的 读出 值与 写入值相 同 , 说 明 寄 存器 读 写 配置

功能正确 

5 . 1 . 2 近 端 环 回 测 试

近端环 回模式 n e ar
Joop 实现具有 P CS 收 发通 路模 式 的 自 检功 能 ,
接 收侧 的



模块可 以通过寄 存器 joop 来 选 择 数 拙 来 源 密存


第 级

rx sam re c f
gj n e ar
_
p _
g ,

器配置 为 1
时 , 接收 的 是直接从 p
cs t x 编 码后 的 数据 而 l l

P MA 传输的 数裾 , 

过将 t x/ r x 侧 配置镜像 的 d at a _
mo de , 实现 PCS 编 解码逻辑 自 检 , 如图 5 3 .
所示为


近端环 回 模式示 意 阁 

m a




H r
— — .

直 

_


c s
jn  c

 ;




cs t 

rx
_
a l i
g n 丨
 丨
tx
_
en c o d e r

i n e a r  o o p  1

d e co d e i1  x  g e a r  bo x


rx
_

 j

 ̄ 一   ̄  ̄  一


rx
_
br
i d ge _
un i t
 j  tK _ _
bn d ge _
un i 

msf 



跨时 钟 域 

图5 . 3 近端环 回场 设示总 阳

65


西 安 电子科技大 学 硕士学位论文
   

此时 , 定 义在 hsst _
e nv 环境中 的 用 于 TLM 通信部分需要受到 c f
g _
n e ar
_
l oo


的 约 束 ,配 置 为 0 时 , 数据流正 常 ; 当 配置为 1
时 ,
r x c he c ke r 功能关断 , env

中传至 t x
_
c hecker 的 act 数据 为 f t x mo n 监测 到 的 输 入数据 而 , e x
p 处为 f
_
r x _
mo n

“ ”

监测 到 的输 出 数据 , env
_
c fg
 中 约束  cf
g e n c o d er
_
ni o d e
==
 cf
g _
deco d e mo de  

使
其编 解码模式相 同 , 由于 n e ar
_
l oo
p 跨越 众 多 模块 , 数据传输途径较长 , 所以在


sc o re bo ard 中的 s c b _
c fg 也 定 义 了  c fg _
n e ar
J o o p 的 酉己 置 ,
若 酉己 置 使 能 , 将会把

先采集 的 数 据 存 到 个队列 中 等 到输 出 数据采集 到 两者再




f t X m〇 n i t 〇r i fo
f , ,

_ _

进行 比较 。
如图 5 . 4 所示为 8 b l 0 b 模式下 ne ar
_
l oop 子 模 块波 形 

崎 _ 妇 “每



: , '


 .
  . 
 .

 .  .  .  .  ,

p   


t *   


 二( 

. 

一 .

1: :

一 一


 二
 



3 e d2   3 e  d2

图5 . 4 8 b l 0 b n ear _
l oop 场景波形 图

由 图 中可 以看出 数据 传 输路径相 对较长 ,


将 输入 数 据 t d at a 8 7 0 ]


和输 出 数据


每 比特拆分 为 组 可 以看 到输 入 数据 之后 出 现 的

’ ’

d o ut [ 8 7 0 ] h49 c h3 ed2


pcs
: 1 1 ,
_

段 时 间 后 也 出 现 在 输 出 数据 相 对应 的 位置 数据 编 解码功 能 的 致性得到 了 证



明 。 6 4 b6 6 b 和 1 28b l 3 0b 也都支持 n e ar
jo op 功 能 , 具体测 试方式类似于 8 b l 0b 

5 . 1 . 3 替 换 场 景 测 试

8 b l 0 b 发生 替 换场景 的 在 发 i d l e 码 K2 8 . 5 / D 1 6 2 .
后输 出 极性不为 负 的 时候 

若 K2 8 . 5 的输入极性为正 ,
则输 出 极性为负 , 再 经过 D 1 6 2 .

后 极性再 次反转 , 


终导致输 出 极性为正 , 与 协议要求不 符合 , 所 以 此时 需要将 D 1 6 2 .
替 换成编 码后


0/ 1 数量相 同 不 存在极性 的 D5 . 6 ,
保证最终 的 输 出 极性为 负 。 在 发送 i d le 码之前

会发

组 T/R 码 。 替 换场景 时 序 图 如 下 图 4 3 . 1
所示 

e l k 

d n i  )(  R / /

K2 3 .

)  X K 2 8 .

\  D 1 6 2 .

乂  71 2/  …

? / 2/ e p a ce d
 

l r l

{ )

—  ̄ — —

d i s p n i  ^ PO S  X P〇 S
 \  )( N EG X N EG
… 

Co nd i t i o nfo r  r e p l a c i n



 ̄  ̄  ̄


t x d i s
p _
c t r l
,  V 2 '

b 00  2W I Y

2 b 00 
^ A A

—  

x d s se


i l

_ _

d n i re

l ac ed D C 
/ R/ (
k2 3 7 ) X  k 28 5
 ( D )
5 .
6 )(  / I 2/  …

4 / l/


a ft e r  r ep ac l
i ng )



1

d , S
p o ut  y PO S N EG  Y  N E GX N EG

图5 . 5 替换场 景示意 图

66


第五章 S e rDes 验证结果分析


 

该 替 换场 景 断 言 的形式检查 , 在 f t x
_
se
qu
ence 组件 中 , 确定好发 包的格式 

因为 8 b l Ob 类型 的 数据格式有 4 种 ,
从小到大 co de
je ng t h 为 1 , 2 , 4 , 8 , 其中

为 表示 只 包含 组 比特有 效 数据 比特控 制


co de l e n gt h 1 fd a t a cod e
_
g r o u p ( 8 , 3

字总共 1 6 比特 ) 到达编码模块时 cf
g _
e nc o d e r
_
mo de 配置 为 s i ng l e
_
8b l 0 b 模式 

此时按照 T /R/ I 2 的 顺序依 次填充在连续 4 个 i t e m 中的 data


_
8 比特 [


位置 发 出 并


在第三个 的 中 附带控制 自 信息 之后 随


i t em ,
即 D 1 6 2 . i t e m t x
_
r d
_
c tr l


0]

2 b l 0 ;

机 间 隔 多 次封 包 发 送 由 于 没有 固 定 周 期 理论上 替 换场 景 可 以 发 生 在 任 意 情 况 , ,


而对于最复杂 的情况 co de
_
l e ngt h 为 8 的情况 , 表示 fd a t a 用 到 了8 8 比特 ( 

X I I 比特 ) 数据 , 经过 t x _ g e ar _
b〇 x 模块 分成高低各 四 组 ,
低 四 组先进到 编 码模


块 , cf
g _
e nc o d e r
_
mo d e 需 要配置为 qua

_
8b l 0b
_
mode 四 条通道全部使能 ,
高四组

数据进入下 拍 个 中 存在 个 根据协 议 发生替换





。 i t em 8 co de _ gro u p , , 8 b l 0

的 场景 没有 限 制 , 这就需要将 D 1 6 . 2 及其控制字 t x _
r d ct r l
的 位置遍历


d at a [ 0 ] ?
d at a [ 7 ] 8 个位置 ,
其他 3 个 code

g ro u p 按顺序填 充 。 其 余数据 类 型 处理

方式相 同 。
根据 定 向 发包完成激励生 成和 驱动 工 作 。 之后使用 如 图 4 32 .
所示断

言 验证 

 d ef
in e d  i s
p _

q } l a ce _
ch k

m s t n un i) \

 .


' ' '

P ro p e d cl i k nst
i ty

i s
p _
re
p ace l
_
 i
 ;


k ) \
@ ( p o s ed ge  sv a c l

d isa b le i l i
f [

sv a _
c lk
_
e ii   | |
! h ame s s . U _
PCS 1 3 G _
ENC . u _
8b l 0b )



i f
(  {
t x _
d i s
p ch l
 [
m ni ] i , tx
_
di sp 一
se】

mm i

 bO  1
} )



' '

C \
) \ 

> ## 1  ( h ani e s s . U PC S 1 3 G EN C u .

_
8 b l 0b : ms f .
d i s
p _
o ut
= =
 NE G T VE I 

’ ’ ' '

U G EN C

PCS


ham es s .

_
1 3

. u —
8b l 0b . i n st . d o ut  n s d e ( i i h l a5 ,
h2 8 9)) ;


en d pr o p ei ty\

' ' ' ' '
' '

a _
d is p _
re
p ac e l
_
c li k _
 i n st a s s ert
 p r o p e it y ( d i s
p _
re
p l ace
_
c li k  iii st )
e l s e\

B eg ii i 

' ' ' ' '

E NC S VA
< t i  "

 u \in _
erro r C _
_
E i T〇 r \ d i s p 
_
re
p l ace
_
chJ c _
 ii i s t



en d \

d s re
p a ce cli k (i i O Sb l Ob s
g e O)

p —

一 一 —
iii



c li k ( u
 d i sp _
re
p l ace
_
 l
_
8b  1 0b _
sin
gl e 0 )

 ,

di s r ep l a c e c l i k (u 2 8b 1 0b s in e,0 )

p _ _ _

_
gl 

d i s
p _
r q ) l a c e _
ch k (u 3
_
8b l 0b _
s in
g ] e , 0 )

图5 . 6 8 b l 0b 替 换场 景 断 言 代 码

其 中 s va
_
c lk 与e nc o d e r 的 工 作 时 钟 连接 , s va
_
c k l 对应 c l k
_
en ,  x t
_
d s
p i

_
ct r 

和 t x _
d i s
p _
se l
分 别对应 DUT 的 d i s
p _
c t r l
和 d i s
p _
se l , 由 设计 s
pe c 可知 当 前输入

67


西 安 电 子科技 大 学硕 士 学 位 论文


 

的 在下 拍产生输 出 极性 再下 拍输 出 最终编码后 的 比特数据 只 有




一 一

d i n[7 : 0 ,
1 0

当 8 b l 0b 编码模块使能打开时才开启 断 言 , 以当前 co de
_
g ro u p 的 {
t x _
d is
p _
c t r l 

作为断 言 的触发条件 只 需判断 个 之 后 对应 的 输 出 极 性




’ 一

t x d i s se 2 b 0 e k

l 1 , l

_ _

是否为 N EG T V E 以及再下 个 后输 出 的数据是否为 或者 




’ ’

h2 8 9  (

1 , e l k h l a5

别对应 D5 . 6

和 D 1 6 2+ . ) , 若 断 言 成立 , 证 明 设 计 符合要求 

图 5 . 7 ,
图 5 . 8 分别 展示 了 有无 替 换场 景 出 现 的 两种 子 模块仿真波形 



,  ,
  ,         ;  ,

  j
,  

c ix
) 
 KV

> i _ r L r Lr L rLr L r L r L r LrLrL rL rLn ru _ LTL r L



T _ rLrL n j



_
di 9
p _
c tr l
_
chk
_
u0 _
8? 1 0b j i ri

l ? 
   

d in |
7 0 】
ec (  0
 !  h j f

 I 
be畫56!b e
 I S O   d c  94  厂
I 

tx
 0

di ? c t r l
p  1
  ; 


t d i 3
p _
? e l
 p  0 

1   |  |  :


ci s
P 〇u t
u〇 ]
 2   x
{ t     2


i j i i i  i i

 nn 

do u t I
9 D ] 
 *

c > 2 8 9  j  XXX     1
0 I j b9  I 5

 I  J 
l ? c  =

 ^ :
 l ? c
 !  j 
1 9 c
 J 
£ f 4
 

cn c d in l
^ j ^  j

 [  dc   (
〇  nM l 4 f 7  J
4 bc  I 
I S e

 1
4b c
 j £ 0   d c  1 ^4  j  e S  f

Td l


e r , c di r .

4 3  I I
1  0  (



_
< J i n _
4 b

3 :
0 ] N i 

> U0{  ot     tc c


1 
1 0 0  I
1 Q D 0  =

1 0 1 0 =

 1 0 1
 j
l C l O I 
10 1
 j 
1 1 0  j 1 0
 I  

? _
d i n 6b |
S0 ]  -

> m 〇  { x    r .




l 6

 p i  *  =

1 1 1 1
^1

 ;
l l l S

i d l l
 I
L 0 

 

1 j
_
DS  6   0  ; 

图 5 . 78 b l 0b 替 换未 发生

 ,   , ,  I
I O
M OO
T ^ O
,  ,    , , ,  Tp |
i ,


o o




 l
i s

   

  〇

> 1 ji _ n n rLn rLn n n _ _ _


_ _ _ T n n n _ _ _ _ n _ n n _ _ rL




a di sp c tr L  c hk _
u0 _
8b l 0b s i n g l e  nv


_ _ _ _

d i n

7 :
0 丨  d c7 1 1 1
 I I

 9 1

 1 i d
 J 
f 1
\ 
b ej5 0 b ef 
5 0
 b l j \ 3


\8 aj3 9]c l e a  I

\ 
b e
 |
3 0

tx
_
di s
p _
ct c l
 i

 

tx
_
d i s
p _
8 e l
 |

 
j  J


d i 3
p _
out U〇 ]

 {
2  2     2 
I I

I I

I  2 j   1
J  2   1 I

d 〇u t |
90 }  c 

> 2 8 91 1 S5 a  3 7

^ a 3 aS 3 a8

^ J
c T  1
 J 
3 6 ^
 I 

 j   j   j   J  ,
I sS
l 
l ? c
 f  \ 
l & a
 1 
2 e < ^
 l 
^9  I 
1 9 l
n^

en c
_
d i n [
4 3 0 )  d c  1 1
 1 I

 9 1

 I 
4 f d
l 4 f 7
 j 
4bc
 I 
IS O
 I 
4b c
 I 
5 〇
jb l  8a | 3 ^
 c I


 e a | ! b

 fl 〇

en c
_
din {
4 3 :
l l 】  〇 

u _
dx n _
4b l
3 0 ) U 1
1  _

> n 〇 1  1 00
 ] 1 0
1  0  I I 1 0 0

〇 (

1
l i t )

 t
l Q ig
]
1 0 1
 j  l O l Q
 ] 1 0
1 1 0 D 1 1
1 1 0
 |   1

1 0 


 H p TT
*  * * * *  * *
u I l i 0 0 0 0 l l l l 0 Q X 〇 ! 0

d in b S 〇
丨 -

1 1 1 0 l l ! !
> l !
p O 1 1
〇 l



6 > 

_
! l |  : j l  ,
 \ _
 l

i  s DS  b
   0 
[  [


图5 . 8 8 b l 0b 发生 替换场景

其 中信号 i s
_
D5 , 6 由 ve rd i
软件 自 带的 l o g c a lo
p ra o n
e t i i
产生 ,
来表 征 设计 是

否 将输 入 的 D 1 6 2 .
替换未 D5 . 6 ,
替 换 完 成 后 的 值保 存 在 内 部 变量 u d hi
_
4b 

如果 则证


’ ’

u —
d n i

6 b 中 ,

u —
din
_
4b[3 0] : , u _
d n i

6b[5 0] :

==


4 b0 1 1 0 , 6 b l 0 1 00 1

明 发生 了 数据 替换 , 具体设置 如 下 图 5 . 9 所示 

68


第五章 SerD es 验证结 果 分析




zl
— 
—- —

— 


- '

t K / c Sf
t l OW ^ Sf
c i Wr  r t
i  t o ?
w ?
〇? ! ? ?

?  0 ;
- -

t > <, l 
l 〇 ^
' e * 

PC S I 3 C C N :


x  Ct S W i
i O  ?b l O ?>  1  m C

v s o oi cr t

u 6 t


5 <J !  - -
t f
t l o
if
i i i—





 —

t 


   

?? ? f j 
V< m * r

C r
r ? ?
? ! (
> * i xM / 


、 f .
  |

 -

t -

|  ! && |
{  <> * 


    
* *

< < > > < <  < > > > -



{ >
? = = * > =
 < *  > * 
( 

 

gjg ^〇 j ggj^^
i f
j ^B 3 BS 2 3E 5S E3 ES SE S ?E 3BK S BE 23 S 3 E SB3 

mm  v^ v<

? > ? *



 u

t m c
f r  :


mu k  f
tQt eno t


 Oo? e



 一  — 一

0 bs n g e/ u r 4b 4b 0 0& £



/ na me s s ; \ PC S l 1 3 G  E NC / U8 b l 0 b/ u 0  8 t 5 l tc o n tr o j l r l l er / yd m {


30 J
? ^
1 1 


_ 

G  E NC / u  8 0 bs n g e/u d ud m6 b 50 6b OO


UP C 5 1 0 b/ u 08 b cont o e ?




/ ha me s s 3 b l l < l r f  l l r
/ {

l l 


/ ]

图5 . 9 o g l i ca l  o pe r a t o n i
验证替 换场 景

综上所示 , 无论是否发生替换场景 , 在发送 I D LE 码之后 的 输 出 极性都为




N EG T V E 进 步佐证 了 断 言 使用 的 正 确性

I ,


5 . 1 . 4 1 5 8 8 功能测试

同样使用 断 言来 c hec k 的 测 试还有 1 5 8 8 功 能测试 , DUT 通过配置寄 存 器



cf
g _
t x/ r x _ pt p _
en 来控制 1 5 8 8 时 间 定时功 能 的 开启 和关 断 ,
1 58 8 的 诞 生 时 为 了 角¥

决以太网定时 同步能力 的不足 由 计算机 及其 网 络业 界开发 出 的 种网络时间协




在 多 个版本 的迭代下 同 步精度可 以达到 级别 模块设计的输入〇


_





叩 。 〇

t x _
s fd
_
l ag
f 以及 t x _
s fd
_
o fs e t [ 7 0 :


分别表 示 当 前 fd a t a
[
1 27 0] :
存在吋 间戳 以 及时 间

农小编码后时 N


戳最低 比特位置 ,
输出信号 t x
_
s fd
_
l ag
f _
o 和 t x
_
s fd
_
o f
l se t
_
o [
7 : 0 j

戳存 在 标 志 以 及 位置 , 这 种 精 确 到 比特 的 测 量方法提 升 / 以 人网 的 同步能力 。 

而以 8 8 比 特 有 效输入 的 8 b l 0b 数据模式 为例展开测试 



由于 8h l 0b 编 码前后 数据差距很 大 , 时 间戳的 标准 以 编码后 的 1 0 比特数据



为标 准 , 即 输入的 t x _
s fd
_
o fs e t 以 1 0 的 倍数 为 标 准变化 而 不 是 1 1 的倍数 , 比如

拉高 fs e 代表 的第 X 比特 至


t x s fd fl a t x s fd o t 7 0] d5 0  fd a t a  ( 5 0/ 1 0 1 1 )
g 


: , (

_ _ _ _ [

( 5 0/ 1 0 X 1 1 + 1 0 ) 比特 即 fd ata [ 6 5 : 5 5

被标记 ,
若此时 对应 的 co de
_
g ro u p 的 8 

特为 则 应该输 出 信 号 找到 并且 j e ng h 为


’ ’


h fb ,
t o jp ma [ 1 27 0] : h l e4/ h2 1 b , c o de

8 的 数据模 式 ,
t x _ gear _
bo x 拆分成高低 四 组 , c f
g _
e nco d er _
mo de 为 q
u ad 模式 

所以 fd a t a

65 : 5 5

对应的第 5 组数据输 出 应对应 t o _ pm a 的第 丨 0 比特到第 1 9 比特 

此时 值应 为

即 t o _ p ma [
1 9 : 1 0

, t x _
s fd
_
o fs e t
_
o [
7 : 0] d l O 

对于不同 的 d at a
_
mo de ,
t x
_
s fd
_
f l ag 的输入 范 围 有所 区 别 , 上文提到的

co de
_
l en

t h 为 8 的d a t a
_
mo d e , t x _
s fd
_
o Ts e t  l 最大可 以达到 7 0 ,
而对于 c ode
_
l e ngt l 

为 1
的 d ata
_
m o d e t x ,
_
s fd
_
o fs e t 只 能设置为 0 ,
在 case 中重载 d r i ve r 组件将时 间

由于使用 断言 所以采川 定 向激励的方式只 标记 




戳相 关输入 驱动 给 D UT , ,

69


西 安 电子科技大 学 硕士学 位 论文
   

种 作 为输 出 米样 吋 钟 以输 出 信号 的拉 高


k fd
co de ro
p p m a c x o
u t s f a

l t


, ,
_ _ _ _
_

作为断言 的触发条件 判断输出 , t X _


s fd 〇 fS e t 是 否 能正确表征 时 间 戳的 正确位置 

其关键代码 如 图 5 . 1 0 所示 

d ef n i et x  1  5 8 8

m ac _
s fd c h ec k m o d e (c l k

f l a
g o f fs e t d
, ,
at a ,
s u bmo d u ! eJ an e )


' 、 ' ' 、 ’ '

b Ob ma c  s fd  c h e c k ubni o d du ch ne
p r op e rt
y f t x l 5 8 8
_
8  1 
」 s l e l a ;


b i t
[
1 27
 o
: 0 ]
l c d a t a , 
l o cd a t a d ;


b i t
[
1 9 : 0
 oc da 20]
l t a ;


b i t

3 9 : 0
 oc da 40

l t a ;


i n t l oc o ffs e t ;


' 、 ’ '

@ ( p os e d g e c l k )


d i
sa b l e i ff s v a  l  5 8 8 8 b l 0 b !





' ' ' '
' ' '

=
¥ro s e  f a l oc o f fs e t  o ffs e t ##  1 


g
l 
( (  ) ,
_
)

' ' ' '


l l oc d a t a  ¥ pa s t d at a 2 ## 1 


( ,
_
( ,
) )

oc d a a 2 0
=:
oc da a 0+ 2 0 J oc d at a 40

o c d ata 0 + 40 > \

l l t l t l :

)

 ,
_
[ ] _ [ ] |

' ' ' '

= =
i f

sv a t x d at a mod e

 l an e
 ]
 1

 )



_ _


' 4
= =
o ffs e t + e4   o c o ffs e t +

oc da t a 2 0 l oc l  0 h l l d ata 20 l oc l 〇 h2 1 b 




: :

[ _
] |
_
[ ] ;

' ' ' '

==
e l se i f

s va t x data mod e

 l an e  ]






= =

ffs e t + e4 o ffs e t +

l oc d ata 40 l oc o :  1 0

h l

l oc d at a 40

l oc :  1 0] h2 1 b 


[ _
]  |

_ _

en d p r o p e r t y \
' ' ' ' ' 、 、

a t x 1 58 8 8 b l 0 bm a c

s fd
_
c h ec k
」 s ubmodu l e
_
ch l an e : a s s e rt
p
r o p er t y 、

' ' ' ' ' ' ' '

f t x l  58 8 8 b1 0b m ac s fd c h ec k s u bmo d u e l c h l an e e l s e 


( _ _ _ _
)


“ “
FD C HE C K
’ ’

 u vm err o r

l  58 8 S ,
f t x l  5 8 8 8b  1 0 b m ac s fd c h e ck 


_ — _

' ' ' ' '
' ' '
’ ’

s u bm od u l e c h l ane  fa i l
) 

t x 1 5 88 m ac s fd c he c k m o d e(


_ _

 S  VA PC S  TO P u   .

_
t o
p p c s ch a n ne l
_
0 u .

_
t o p t x ch ann e l .

 pm a  t c l 


 S  VA PC S 


TO P u」 o p  . 




c s ch a n n e 

 1


0 u  ? t op 
_
t x _
chan n e  
l  ?
 t x
_
s fd

f a l 

g o 

 S 
VA PC S  TO P   ?
 u
」o p  p c s
_
ch a nne  1


0  . u
」 o
p t x

c ha nne 
l .  t x s fd
 o ffs e 
t o 

S VA PC S T〇 P . u t o p p c s c h a n ne l O u .
t o p t x c han n e l  .
t o —
pma 


_

t o p
m a, 0


_



图5 . 1 0 8 b l 0 b 1 5 88 测试代码

1 5 8 88 b ] 0 b 测试对应 的 子模块波形如 图 5 . 1 丨 所示 




 r

 
 —

 aff
c 1 I
u \
t  il

如 i  4 招r ^
 
   ̄    '  * —  

C

>  5& 

 

 5



I 0 

> 1 

t x _
X S 6?
_
8& J
 _
ef  ?v
 

_

说8 紀 啟 , .
? 切 j  SV
 | 1
| I I   
X 

 ;
i i    1
i 

 ̄  ̄  ̄  ̄
 ̄  ̄
 ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄

_,认 言  G
 —
j l i L J - 1
; ; i !

 ̄  ̄  ̄  ̄

 ̄ ̄  ̄  ̄


 ̄  ̄
i L
p i ? ? 1
1 ? ?



 ̄ ?
  ̄


l i j 

?v *
_
i s 拥 你 一
4   i   ;

I  0   _ J  j    {

cx
_
s l d
_
o f f s e t
_


? l
f ]  2G  I   j
i t 


 ̄  ̄ - 


" ' — ? —  ̄  ̄  ̄ — ' - - ? —

tc _ p
?? j
i 9  l s i  ;

i 9s  *


! t f i y t


 " 



si c

 
厂游 厂 促
   v


_
* ? ? & -

J f3 
5 ;   ; 3 

图5 . 1 1  1 5 8 8 测 试波形 图

70


第五 章 Ser Des 验证结果分析
 

通过波形 分析可知 当 拉高 fs e 为

t x s fd fl ag t x s fd o t d50 fd a t a 65 : 5 5

, , ,
_ _ _ _ [ 

为 此时 观 察输 出 信 号 拉高 时 fs e 为 对应


h fb ,
t x
_
s fd fl ag
_
o t x _
s fd
_
o t
_
o [
7 : 0] 1 0 ,

的 也为 与预期 结果 致

h e4
pm
t o a 1 9 : 1 0 l , 


_
[ ]

5 2

仿 真打 印 信 息 分析

以 on y l
_
pcs 的 寄存器测 试为例 , 在 s i m 目 录下 执 行 m ak er u nt c

t c
_
xx x 命令

后 ,
打印 出如图 5 . 1 2 所示信 息 :




U WR e p o r tS u mma r y 


Q u i tc o u n t :  0o f  1 6 06



 Re p o r t c o u nt s *
b ys e v e r i t 

U VH

I N F 0 :  1 2 6 3

U V M  WA R N I N G : ?

l i VM  E KR O R  : 0

U VM

「 AT A L : 0

Re p o r t c oun t s b yi d


DA I AF LU S H ) 2


MA X QU I TSET 1  


RN  TS T ]



T _T SE T 





b U dp h a s 旮  8
t i 
 】

1 
bu l d pha s e 95
i 
 —


c o n nec t

p h a s e 2 4


_


h a ne s s  2 0r 
 ]


 p c s  4 t xc f g j


p g 8 
 f  mo n ]


po
r e e p h a s e 
s t
_
s t



h d e ? 2


fj on
j r

re
j 
 f  i i j
_
) s
 j

( p re re et ph
a e 74_

 s
_
s  |


re e
p h a s e  9
s 
 t )

run ha e 969 
 s
f 
p ]

I 
r un _

ha s e l  1  1

r 
r u n _ ph
a s e 2 1  


1 1
p c s i e
g
s ?n l  t
y _

t ? ? s t j  

| 
u vm t es t .

_
t op . env . h s s t _
e n v . a pb a g t 1  


ht a ed r omf i e 〇t h o m? / oo / n a v c s / 0 G 2 0 Q
- 

s ^ l
y s /
¥ f i n 3

l s 2
i i l f
/ c> t l ! i
y p .

s o nt me 4 6 2 3 9 9

Sf in i sh i mu l a t i i > 0000 0

i  V  CS S ! i m u l a t i o n  R  e  p  o   t i

T i me : 4 62 3 99 5 0 0 G G Of s t c
pc s i e

s ^ n i t

t e s t

s e ed = 1 63 3 9s i m . l o



_

C P UT i f i? o :  1 4 4 9 .
2 2 0 s o r  on d s ;  D ^ t as t r u c t u r es i z e :  1 6 . 7Mb

S u nJ a n1 61 1 : ? 3 :


Q 32 0 ? 2


图5 . 1 2 b t 寄存器测试 丨 og 信息图

其中 为仿真最大容 许错误数 即 的 数量达 到 某 阈值


uvm
Qu i t c o u nt ,
_
erro r 

仿 真 将 会 提前 截止 这 阈 值 正 在 的 阶 段通 过


base
, t e st
_
re
p o rt _
p h ase

e rr nu m

s er v e r ge t .

_
s e ve r i t
y _
co unt ( UVM —
E RR O R ) 设 置 除 了 u v m ,

err o r 宏 之外 

从 l og 信息 中 还可 以看到 uvm
_
i n fo 的 内容 , u vm
」 n fo 宏 与 ve r i l og 的 d i s
p ay l
类似 

但它 比 有更强大 的语句 它 由 三个参数 组成 第 个参数是字符 串 




d s a
p y
i l , , ,

“ ”

示 信 息 的归类 如图 中 中的 即 的第


丨 o
g ,
5 . 1
[ pg _

_
mo n] pg _

_
mo n uvm
_
i n fo

个参数 , 第 二 个参数表示 打 印 的 内 容 ,
第三个参数为打 印 的冗余级 

定义 p yt
ho n 脚本 t c .


s on , 完成 c ase 名称 ,
回 归次数 ,
仿 真选项 的 定 义 ,



行 mak e f e i l
脚本 M ak e r un r e
gr 将 t c .


so n 转换 为 仿真命 令 并逐项仿真 ,
仿真的每


个 c as e 的 l og 信 息 定 义在 t c 目 录下 ,
名 称为 t c
_
_
xxx _
t e st

r x x x( 种子号 ) . l og ,
戶万

有仿真结 束后 ,
调用 m ake _
ge n _
s i m _



脚本 , 通过 gre p 命 令搜索 t c 丨

l og 关键

7 


西 安 电子科技 大 学 硕 士 学位 论 文
 

“ ”

词 C A S E  PA S S , 若 搜 索 到 此 关 键 词 脚 本会将 对应 的 , ca se 归入 s i m u at o n
l i

p
as s e d

类 , 最终生成 如 图 5 . 1 3 所不 回 归报 告 XXX R e gre ss i o n R e g r e s s o nS u m m a r



y 

i      P C SR e g r e s
! S !


s i o n R e g r e s s i o nS u m m a r y

i      R e v i s i o n
! !
i ! i
: v l .


!       T i me  2 0 2 2
i ! { ! 1


1 7 1 5 4 2

 :

To t a l c a s e s G

 :

E x e c u t e dc a s e s : 2 6 0

P a s sc a s e s : 2 G 0

S i m u l a t i o nF a i lc a s e s : 0

T h ef o l l owin c a s e s s i mu l a t io n
p a s s ed
g 

/ l 〇g s / t c 8 b l 0 b e r ro r i n s e r t e 5 1 2 7 s im o

t s t r . l



_
_ _ _

/ I 〇g s /t c 32 b it 1 28 b l 3 0 b a n it te t r 24 188 s im l o

s s
y 


. .

_ _ _

/ l 〇g s / t c 64 b it
_
1 28 b l 3 0 b mode l
_
s a n i t
y _
t e s t

r l 7 5 5Q
_
s i m . l o


o s / t c 1 6 b i t 64 b 67b s ani t t e t r2 6 9 5 2 s im l o

/ l s

y 


/ l 〇g s /t c 64 bi t 128b l30 b f s m ove te s t r2 7 9 5 9 s i m o


c r l



. .

_
_ _ _ _

/ l og s / t c 64 b it 64b 6 7 b s a n i t t e t rl l G 09 s im l o


y 


. .

/ l o g s / tc 32 b i t 64 b 66 b s ani t t e s t

r22 89 3 s im l o
y 


. .

_ _ _ _ _

/ l 〇 g s /t c 32 b it 64 b6 7b s a n i t t e t r l0 7 7 1 s im l o


y 


. .

_
_ _ _ _

/ l og s / t c 8b l 0b d i s c t r l i n c l u d e r e l a c e t e s t

r ! 8944 s i m l o
p p 



_ _ _ _
_

/ l og s / t c 32 b it xa u i 6 4 b66b sa n i t e s t r 24 07 5 s i m o

t l
y 


. .

_ _ _ _ _ _

/ l 〇 s /t c ua d 8 b l 0 b s a n i t t e s t

r 967 1 s i m l o
g q y
. .

_ _ _ _ _


/ l 〇g s / t c 64b i t 1 28 b l 3 0b mod e G s a n i t t e s t

r 2 03 7 2 s i m l o
y 



_ _ _ _ _

/ l og s / t c 32 b it 1 2 8 b l 3 0 b mo d G G s a n i t t e s t

r 2 83 1 3 s i m l og
y 


_ _

/ I og s /t c 32 b it 128 b l 3 0 b mo d e l a n it te s t 24 8 1 9 m o

s r s i l
y 



_ _ _

/ I o g s /t c 32 bit 128 b 3 0 b f s m o ve te s t r 7 6 85 s i m o

l c r l



. .

_ _ _ _ _

/ I o g s/ t c 1 6 b i t 1 2 8b l 30 b mo de l s a n i t t e s t

r2 1 329 s i m l og
y 

. .

_
_

/ l og s /t c 16 b i t 64 b66 b s a n i t t e s t

r 2 6 1 67 s im l o




_
_ _ _ _

/ I og s / t c dua l 8 b 0b a n i t t e s t 29 3 1 s i m l o

l s r
y 


. .

_ _ _

/ l og s / t c 64 b it 64b6 6b s a n i t t e s t 6 98 s i m l o

r l 1
y 


. .

_ _
_

/ \ o / t c 8b Gb e o in se rt t e s t r2 4 7 95 s im og
gs

l r r r l


. .

_ _ _
_

/ I og s /t c 8 b l 0b e ro i n s e r t e s t r l 9 0 7 7 s i m og

r r t l


. .

/ l 〇g s/t 8 b l G b e ro i n e rt te s t 2 2 4 1 8 s i m o

c r r s r l



, .

_ _ _ _ _

/ I o g s /t c 8b l0b d is ct r l i n cl ude e l a c e t e s t r l Q5 2 m l o

r 3 s i
p 




. .

_ _ _ _ _

/ I o g s / t c 8 b l 0b e r r o r i n s e rt t e s t

r 375 2 s im l o



. .

_ _ _ _

/ log s /t c 1 6bi t 64b66 b s a n i t


y t e s t

r l9 19 5 s i m lo

. .

_ _



图5 . 1 3 正 常 数据 通路 回 归 结 果

在 不 断 回 归 发现错 误 ,
设计更 正 , 上传版本 , 再 次 回 归 这样 不 断 迭 代 的 过程


中 ,
最终实现缺陷 收敛 , 图 中 展示的是 8 b l 0b , 6 4 b6 6 b , 1 28 b l 3 0 b 三种 编 解码模


式的 c ase 回 归 结 果共 20 0 个且 回 归 全部 p as s , 验证质 量得 到 保证 

5 3

代 码 覆 盖率分析

由 于 本 次设计平 台 采 用 分层 次验证 ,
所 以 覆 盖 率 也 采 用 层 次 化 收集 的 方式 

以 下 展 示 了 不 同 层 次 的 代 码 覆盖率 收集情 况 ,
图 5 . 1 4 展示 发送侧 编 码 模块作 为


设计顶层 的 代码覆盖率 

72


第五章 S e rDe s 验证结 果 分析

wa v e i
之前


A s

4 ^ ^ V

? f
c aric  Sc v t U < v e  F S M  C wtw? e* R

" ?

 0^5 ^  GS级3  %

 E SE 3  切 寺奶  o w r  g

> ? c
c a 



^ y
^ 4


r >
i c
〇 ^ i

v   i  j


mt e K  ESS  S S3   S^ M  〇g ^ £ a  ”

0〇 〇 〇〇 


t <


I ? E > !

:  . < ?
{ S S

扣 : 沘 * s r 核 ? ee 、  ^i2%  mmr^n

馨、 US b ! 5S T {  " 从 该 艾倒  i oo OQ 

 I CO 00 


 r^S ^g l  * 4 S ” 

爹' i
Mw、 6 4 J ? 6 ? * .


 S幽 9 I 3 .


t <

B* ^  l
?0  W 1 00 納

 ^mm  ^s ga  ^

^ a

< t fv t
> *  7 r  ,
1 00 s x ^ g
> 

? * 

y ^nH MJ mmm  妨 嫩 ma ^s j


圔^?  e oov  u v m越 m  认 仍

w w ?^ < a *


i 5 〇 y  i a j  t r 

 cp
! t ; a

 國U   ^B B BB  3 f
- -



, 4 ^ K t 4 I
S K  L g i aB? m  30 M V

 S J

wa ve i
之后


' '

- - ?





r  r 

y 

Su m / □






_
 j 

H C ^ F

e my  Mw * t % S R
t t i
s c
f c *


| 

dm 
! 


 Sc? *
*  L ? y?  P S M  Cr !
S H? ? ? ?B  S wx r

R  A s s et s

? ■

g W T Vfs j  懸麵  W ? .  t m翻  y 9 ? f

E S ^ S 3  ^^ ^ 3  1 0 0 00 ^ 

^^ ^ 1 T
O S 1 %  V9 
/ ?




 ;f    :


 mmm   6 & ^_ s 级 沉 的  恥  m^^ s rm  vx m \


U 〇 〇

' 

 g:
? . .
P f
c i
e  r> 
i c t , '



*  ? ,  ^ *b f . u :

j ,
7 〇  g^ e 兹 : . 〇〇 〇 ;   K y^ i : :

< ?
o< .

E£ S2 3  l oo se r w vam a  ioo i i oo ^



::

  £^  驗S i  n  3¥ ^  ?  mr ^M  nmr^ 
 mr

^s  y3 〇 ^

- i

. . :

i uo j oc 1 00 00 %

   g 嫌sa    概挪xc 滅  i ^ v o
' -
 ^o k 

ov so ny s
g  c 



? ?  v ; : i > \ < i < i

>  E^3  4  ? ?

* OG



 wT M ff 7
gr OC

? f

 j
l ! ! ?

 mm  E^ 31   ^msa  m  r ^ m ms m  a

 C^




tr  ?
- -
r r r ? w r S 0  C C<

C /

j J v <3 ^

^ ? ? ??  Oi M  f  M W^

i . < ( <

i 〇  J . 

图5 . 1 4 编 码 模 块 代码 覆 盖 率

8 b ] 0b 模式下 , uO
_
8b l Ob s i n

l e 到 u3 _
8b l 0b
_
s i ng e l
四 条 通道 的 数据 相 互 独


立 , 行覆盖率及条件覆 盖率达到 99 04 . % ,
翻转 覆盖率达到 93 . 8 8 % ,
条 件覆 盖率


97 02 . % , 整体覆盖率为 96 9 . 1 % 。 其 中 翻转 覆 盖率无法达到 丨 00 % 的原因是由于

极性控制 信 号 定义 为两 比特信 号 而 极性用 到 和 这 两 个值


’ ’

8b l 0b , 2 b l O 2 b l l


极性在 发生正 负 变化吋 高位 的 始终没有变化 故翻转 覆盖 率 无法覆盖这 




, 1 ,

特 的 翻 转情况 。 6 4 b6 6 b 模式下覆盖率 为 98 3 6 .
% , 1 28b l 3 0b 模式 K 状 态 机覆盖 率


达到 1 00 % , 行覆盖率为 93 24% .

覆盖率达到 9 6 64% . 。 wa ve i
后均达到 1 00%

PCS 作 为 设计 顶 层 的 代码 覆 盖 率 如 图 5 . 1 5 所示 

N am e  S c ore  L i
ne  1 〇〇 〇 < 1
 F S M Co na bon B r anc h  A s se r 


: …
  — — 

- -

g j 
na r r ^ s  I 二 1  i O O QO^ 
I  : 二  H 00 .
0 ( yx r I 1 00 0〇 v ;
| 1  : O O QQ


f f 1  i  00 00

 U 1 1 00 . 0 0^ 1  

U  a 膠獅■ 0 0 0 0> p W 00 0CN 1^  O A V U  OOV


P CS 1 0 0 o ^ 1 E w7 U CK  0 0 00 OO

 ;  ! .  1  .  ; : .  E  ^ ; : : j l i l 


j  . .

 [I ZZi Si  1 0 EU  ^1 r w, *

°
〇〇 OO O Ov 00 0 0%  > a
r g l f
l P & on i
f c o mm o n 0 ' 0 0 00 00 00 


c l 

 1
g f  t
 . t  1 .


_

b1  SS ^  0 KT EZTS2 00 〇 、 防m 00 0 0 、 F m 00 0 0 F j "


F t
f ^

oof

■ ■

0 0 00

a p b i q c 2 1 0 C 1 〇  1 1 (

C V 00 



  : ;
 1 i

t 3 


 

 SS H 3  a 醒 ■翔 00 0 0 色m ^

cp 0 00 00 0 0 〇0  00%


g pb 〇r 0 〇 00


/ 1
l _
c . f ?
g _

E 2 1   1   ]   1  1 

「 £ l
u m aC
T 〇 t c l

、 se i  f : : : : : X S^  1 0 0  C KT -
t d麵  1 00 0 0 >
 ES ZE 3  l 〇〇 〇 £ m 陽■減 1 00 0 0 

g x e n  QO O a A r^^ 00 0 0^  00%


i u m ac r o  t
se ! I t  1 1 0 0

g  D薄  oo o o^ ^S S3 〇 〇 〇 〇 ?  n mmm

5e 二 


p 〇? o 〇 〇 〇
c ! 00 00
? ■


j ) k i i  i





_
_

d 0 ^j ^f ^  00 0 〇 >  OO O CHt  探凝 _  00 %


g u pm a k c 0 l 00

t i j t , I  ! 1
f j _
_ _ _

 m 网 i oo o o%  驟

k  se o um oo o k 〇〇 


g ] u pm a  i c i i  i r : :
 l c i . c r i 〇〇

  Mf
ea  1 0 0 00 ^

■課 殺關 00 0 0  00 00%  赚 滅 物  00^


pm
se 1 4T 1
卜 u a t e l k
_
i 2 L i i .  1 〈 1 00

p r r ut  d k  ie j 0 0 0 0^ B MS 8ai 0 0 0 0^  P O OOT  讓 靈國 〇〇 〇0 >


- -

u l

| §3 
l i 3 

 3 :
c 】

MM 枚 滅麵 
g d  O O t
f  00 0 0^ 1 00 0 i 


u p rn a t J i en s 0 i C Q 1  E  < ; 1 00 00
j l
_

h @ u pm ' u en s e 4
l  麵 1 00 0 的 隐 峨_3  1 00 ( m 1 Q Q  0 0V


g j 
u pm a
_
u en s e <
2  防 忽 爾狡 > 1 0 0 0 0 ^ 眩 现臟 ^.
1 00 0 0,

隨驗翻  1 00 00^  I  1 00 00 

^  y 初 概_ 0 0 0^ 极 00 0 0 Y 隨爾_  1 00 00^  OCX


u pm a t x cn % ci 3 f  !  0  1 
1 00  

j ] 

? ?n  O n^ 獅 Q O ^ ^^^ 00 0 y >
 1 00 0 0^  淡 H MH  0 0 00 %  〇0>


u r sr t

p c s r
sy nc T  1 Ci  1 1 ( : l i 1  1 00 
_

 " " "


 1 00

 T ] 00 00 〇 <?


T 00 0 0 00 4 

u n em o ve
iD
f pc s 〇 ct r 1 F j  00

t i I
1  1 
_
 _

h&  忍i E 3I 3 3 ^ r r^ 

00 0 0 % 


u t c l k 2 P 〇e -
m u* o o oo  
i oo o o  i 1  1 0 0 00%


H 獅  00 ^ ? ^^ 00 0 0  孩咬爾?3
°
u c k 2 p de d v n vo x  -

0 1 00 0 0%  00 00>


卜g
t i f 1 1 .   1

} _ _

 關遞 綱 經 S 巡3  Bggg a  1 K Fa a C O3 l

00 O T

op har y 0 00 0 0 〇〇 〇〇 00 Qy  0 0 00 > 〇0 00>


 gl
u t p c s c r

 1



1    g  . i 1 1


 
 

 
_ _ _

漆 初 W 00 「經 織 F  F f邐 E EZ EI


g 00 00 00 Of

0 0 0

〇 0 0〇

u op an e 0  1 T 00 ?


t p c i c r l  1 J 
- 1 , 00


r v l ?

1   :  ' .  1

I 
  

3 _

W T 哪撕洲

  謂  1 00 ^Ba 

h an ne  2 00 0 0  O O 0〇s BT

u t op p c s  c 1 0 0  1 00 ■
i 1 0 0 00>  OO OOS

l  
  l 


5 
 

^ T^ l

^ u t 〇 P P C S cn ar ne 3  R? q 1 00 00 E E3S SS S 1 00 0 0  1 00 0C 

EZS i l O O OOS iSEE


f  1 0 0 00 \ MTT  j ^ a a 00 00M



l .


! _
|    i


图5 . 1 5  PC S 模 块 代 码 覆 盏 率

7 3


西 安 电子科技大 学 硕士 学位论文
    

对于 PCS 模块 的代码覆盖率 , 由 于 对设计文件 的 保护 未 能展 开 详细 的 , wa ve



 i

分析 。
但从与 设计 的 分析结 果来看 , 分为 几大类 

( 1 ) 缺省 类 

比如使用 c as e 条 件 分支 时 缺 少 d e fa u l t
情况 , 或者使用 i f 条件时 m i s s i n ge ] s 

的情况 , 在与 设计确 认后可 wa vei 



( 2 ) 互斥类 

这种 情 况常 常 出 现在存 在 多 个判 断 的 条件语句 中 , 比如 i f( a & b & c be g ) i n .


. 

&b&c 当前 为 时 执行第 个 语句 


e n de l s ei f a be g n i . . e nd 。
a b c 1 1 1  ,
be g i n 。
)
! .

 (

行 完 毕 后 直接 调 至 下 语句 块 而 的 覆 盖率 统计会将 


ei f

t , e ls c o nd i t i on abc

1 1 1 统计在 结果 中 ,
使得永远无法覆 盖掉 , 这种 情况设计人 员 可 以 简化语句 规避


此类情 况 但 可 能 在 代 码 可 观 性上 受 到 影 响 验 证人 员 也 可 在 具 体 分 析 后 ,
。 w a ve i 

( 3 ) 配置类


如 诸 如 地址信 号 a d dr

3 1 : 28 ]
某 些 比 特 的 翻 转 无法 覆 盖 的 情 况 是 因 为 这 类 属

 ,

于 配置类 信 号 , 每 个 配置类 信 号 有 其 特 定 含义 , 不强制每 比 特都要覆盖 ,


但仍 需

要验证人员 结合 s
pe c 分析是 否合 理 以 免有验证 疏漏 

5 4 .


功 能 覆 盖 率 分析

功 能 覆盖率 的 收集 与 代码覆盖率类似 , 也采用 了 分层 次 的 结 构 , 其中 



ut 层 次 的 功能覆盖率如 图 5 . 1 6 所示 , 以 c o ve r
g ro u p 为基本单 元 , 包括 了 状


态 机 跳转 覆 盖组 cg c o v fs m ,
编码 模 式 组 cg
_
e nc
_
mo d e 。
检验 8 b l 0b 的 256 组 

码 以及 1 4 组 K 码是 否均有覆盖 的 覆盖组 c
g _
rd
_
s t a ,
检验 64b6 6 b 是否 t x _
s e
q 

有遍历 的 覆盖 组 c
g t xq
_
64b6 6 b 等 ,
都 达 到 了 ] 00 %覆盖 

G r ou p  S c or e  I n st a n c e s  U + C  U C X



—"

? Ca¥ u n i
t : : e n cf c o vm o c eh
f r
c qc o vf s m 厂 11 0 0 0 0% 1 C G 1 C C


- w  —
 

一 一

? -

 ¥u n ; t : : e n cf c o vm o c e
t l
: : c ge a n dh ea d e

r 「 11 00 0 0% 4 7 6 C 4 7 6 C



 Cc  ¥ u n r e nc
_
f c ov
_
mo ^ i :
: c g _
e n c
_
rn o d e  I  ] 1 00 0 0 % 5 3 8 4 C 5 3 S 4 C


¥ u n !
t : :
e n cf c o v
j r 〇

c e
f ! : :
c gj
n t
_
s r a  F r

I C O:  A  C 4 C

+ 

纖 
¥ i m i t : : e nc
_
f o> v 一
mo < e
f i : :
cg
_
r c J

_
va ue J  險 禮編 1 00 . 00% 8 6  C 8 6 0

?  Ca  ¥ u n i
t : : e nc
_
f co v
_
m o de } : ; cg
_
t xq
_
6 4 b 6 6 b i !  r  l O O DO V. *  44C C 4 4 G C

图5 .
1 6 ut 级 功 能覆 盖率

i t 层 次功 能覆 盖率如 图 5 . 1 7 所示 ,
发送侧 接 收侧 侧 的 时钟 模式 覆 盖组

cf
_
hs st
_
c l k _
mo de _
t x/ r x , 近端环 回 工作模式 的覆盖组 c
gj p c s _
ne arn d _
cf
g _
l o o p bac k 

远端环 回 工作模式覆盖组 cf
g _ p
c s
_
fa r
_
c f
g _
l o o p b ac k , 电气空 闲 使能覆盖组

74


第 五章 S e rD es 验证 结果 分 析


g h s st e i ,
pr bs  功能覆盖组  c
g p ma sr am , AP B  重 载 功 能 覆 盖 组 cg _
_
usr
_
_
ap b
_
re l o ad

等 , 均达到 1 00 %覆 盖 

G r ou p ¥ ( or e  n s t a nc e U C U C X 


I s h

S
°


S u n t t :  ns s i
_
f £ 〇v
_
f n ode l :



g _
cc s
_
r e c1 g  1 0 Q 0 0 4 1 0 1 


^u r> ?
t  h s sifc o v  m od e l :
e ge kd H l
q nt x r x 1 0 0 00 St  4 6  0 4 £ 3 4

+ 

 ? 
S u n s
t  ^ s s t
_
f co v _
m ode i :
; c g _
f> 5s t
_
dk _
m oc e i

_
f X 1 0Q00 % 3 02  03 0 2 】 


S u^ t : :
f s s s tfc o v  m od e ! e ghs s t c t k  m o d e  Xx  ■祕劍  1 00 00 % 3 0 2  03 0 2 1 9

S u n c o v  m ode gh s  00 0 0 % 5  0 5  1




? t :  t ^ s s tf l :
e s t  i 1 .

2 2

l u n t  n s ! ,

_
f c o v
_
m ode l : :
c g _
mo d£
_
c h a n 9e _
h < 2
phy  1 00 .
0 0 % 2 6  C 2 6 5

Cf
t  S u n ;
t :  h s s t fco v  m ode l : : c o  m o de  c h a n ge  so f t u^v  找i t : s ^ 1 0 000 % 3 3  C 3 3 2 -






懿
°


s u rn t h s i t
j e o v  m od e i :
: c g jK i e
_
hd _
s of t
j y h y  mmmmm  1 0 0 0 0 .
/<  1 0  0 1 0 0

C G  S  BBBM  ! 〇 〇 

+ u n J
t  h s s t  f c o v  m ode  C Q l :

_
pc


_
h :
;  .


 〇 〇 < 1 6G  C 1 60 0

+ S u n h o v  m od e n d  cf q o o pba  b媒 疯 细  1 0 0 Q 0 X  9  C  9  ( 3

l t .  s stf c l
 :
c 〇pc s  fa re


c ^


I  


繇 
S u n ! t : : h s s t
_
f c ov _
m ode l : c
9 j3 c s
_
f a re nd
_
p 〇r t

oo p t>d  _ 々 4 钱纖

1 0Q 0 0 V 9  0 90


^ S u rw h ss co v m ode  ne e nd g J o op b  0 0 0 0 %  C 9 C


c s

p < c 9

f f 1


i r
 .

t :

  _ _ _
_ _


S t i r? t ;
, hs s t  / co v  m od e l .
 ; c opc s  / ve a r e n d  p or t  oo p

 1 0 0 00 % 90 90

鎌  00  0 0 4   C 7 0
°
+ 
S i m i t : : :
hs s t f co v m o de r :
c g p m a 」 o o p bf
l cf
c 1 7 

 _ _ _


 ^

S u ru t :  h s s t f co v  m od e l : c <2  p m a  o w s pe e d  b y p a ss  H 纖
l 涵1 0 0 0 0% 1  G  0

 1

? S un i t : :
h s s t f co v m ode l  : c qpm apr b s 贼 纖■ 1 0 0 '

0 0% 14  C 1 4 1 


— u h co v m ode m s ra m _ 趣1 錄 邋  1 0 0 00 %  0 2 0

M t ss
S c
gj > 


r :
t f i : :
a 2
  _
_


^ un h ov ? ode c g
pm a x be a o n r游 輕細  1 0 0 0 0 %   〇  l  〇


S i
t : : s s t f c f i
t c 
 i
  _ _ _
^ _


S u n s t : :
h s s t f c o v  m ode t :
c i d ge
〇r xbr f t f o 1 0 0 00 %  29  C 2 9 0


¥ u n hs o v  m oct
e e gu s a pbr e o a d 00 00 %  Q 1 0





t :
: s t fc f r l 1 .

图 5 n . i t 级 功 能覆盖率统 计

5 5 .
本章 小 结

本章 对 典 型 的 几个测 试用 例 如 寄 存 器 测 试 ,
环M测试 ,
替换场景测 试 ,
1 5 88

功 能测 试等逐 展开分析 并结合子模块仿真波形进行核验 并单个 仿真




, 。 ca se

结束打印 出 的 l og 倍息 , 以 及 如 何 使 用 脚 本 批量 回 !
L 丨
并打 印 回 归报告 。 通过不 断

回归 , 验证进程 最终 收敛 , 不 同层次下 S erD es 模块 的 功 能覆盖率达到 1 00 % 



wa ve i
分析 后 代码覆 盖率达 到 1 00 % ,
对 wa v e i
的 原 因 进行分类并解释 , 最终达

到 了 预期 的 验证指标 , 证 明 了S e r Des 模块各项功 能 的 正确性 



7 5


西 安 电 子科技 大 学 硕 士 学 位 论文
  

76


第六 章 总结与展望
 


第六章 总结与 展望

6 . 1 总结

随着数字 1 C 集成度 和 复杂 度 的 迅猛增 长 , UVM 提供 的 强 大 的 机制 来产 生各



种 复杂 激励 , 成为 当 今验证方法学 的 主流 。
本文验证 的 S erD e s 模块作 为 实 习 公

司 的 高速 串 行传 输 的 物 理层 模块 兼 容 了 多 种 配置 设 计代 码 体量 大 功 能 复 杂 ,
, ,


为 了 适配如此复杂模块 的 验证 , 本文 以 UVM 通 用 验证 方法学作 为 理 论支 撑 , 



建 S er D e s 的 UV M 验证平 台 框架 。 主要工作有 如 下 几 点 

1 .
对 UVM 的 结 构 组件 以 及 各种 机制 展 开 了 深 入研 宄 :
首先从 U VM 最常见

的基本结 构为 出 发点 , 深入研 宄 了 驱动器 、 激励产 生 器 、 检测器 、 代理 等基本组



件 的 原 理和 功 能 深入 分析 了 ,  UV M 的 几个 主 要 的 运 行机制 具 体 有 ,
p has e 机理 

机理 机理 机制 等 为 文搭建 UVM 验证平 台 提供




o bj e c t o n se
q u e nc e fa c t o r

i 、 、 。

理论支撑 

2 .
通过对 l Gb / 1 0 G bE t he r n e t 、 P C Ie xp r e s s ( GEN3 及 以上 ) 物理层协议 的 深

入分析 , 将 S er D e s 结 构 划 分 为物 理编 码子 层 PCS 、 物 理媒介 附加 层 P MA 、 高级



外围总线 AP B 三 个 模 块 , 其分别 对 应编 解码逻辑 、 物理层 电气传输 、 模块寄存



器读 写 配置功 能 依据 设计 需 求 文档 进 步细化 PCS 功 能 模块 为编 解码 子模




。 ,

块 、 跨时钟域子模块 、 数据 整形子模块 以 及 同 步 子 模块 等 模块 。 在 此基 础 上 , 

取 S er D es 各 模块 待 测 功 能 点 , 制 定 出 相 应 的验证计划 

3 .
基于 UVM 运行机制 提 出 , 了 针对 S erDes 结 构 的验证平 台 整体 框架 其 中 。 

课题所采用 的 自 上 而 下 系 统环境配置 方 式 可 使 外 部 顶层环境 具 备 对平 台 内 嵌套



 ,

最 小 子模块 的 配置功 能 。 进

步 编 写 框架 中 各组件 代码 , 搭建完成 S e rD e sU V M



验证平 台 。 平 台 搭 建 过程 中 , 针对 S erD es 寄存器多 、 验证 维护 易 出 错 的 问 题 



本文提 出

种基于 p yt ho n 脚本 的 寄 存器生 成配置 自 动 化流程 , 不仅简化 了 组件



代码 , 还可避 免人为撰 写 失 误 。 针对 S erD es 结构复杂 、 验证功 能 点 多 的 特点 



本文提 出

种 HVP 验证 自 动 管 理流程 , 该 流程 可 实 现验证进程 的 可 视化 , 减少



人工干预 , 有 效 提 高验证 效率 

4 .
编 写 验证测 试用 例 , 采 用 监视器 、 断 言 检测 项 和 比 较器等 多 种 验 证 检查方

式 , 开 展针对 不 同 层 次 的 验证 。 对于 难 以 用 记分板直接 比对 的测试用 例 ,


如寄存

器 、 环回 、 1 588 时间戳 、 替换场景等用 例 ,


若验证报 错 , 还 需 结 合相 关 波 形 进


步 分析确 定 。 最 终验证 结 果表 明 , S e rD e s 各模块功 能覆盖率 和 wa ve



后 的代码

覆盖率均到达 1 00 % 

7 7


西 安 电 子 科技 大 学 硕 士 学 位 论 文
  

6 2
. 研究展望

本文基于 UVM 验证 方法学 , 为 S erD es 搭建 了 可 以 提供复 杂 激励 的 验证平



台 , 在 构 造 测 试激励 时 , 笔者使用 S VA 断言简单的 c he ck 了 输 出 时序关系 , 




态机 的 跳转等功 能 , 对于 S VA 其 余强 大 的 功 能缺少 应用 。
并且对重载 、 回 调机


制 的使用 不够多 , 虽 然 正 常 数 据 通 路 功 能验 证 很 全面 , 但异 常测试 的 构造场 景还

不够 多 , 因 此后 续 可 以 深入研 究 的 方 向 有 

1 . S VA 断言 , c a l l b ac k , 重载机制 的 深入研 宄和 进 阶使用 。


除 了 使用 s
y s te r m

ve r i lo g 语 言 生成 受 约 束 的 随 机 激励 之 外 还 可 以 通过 , c 语 言 或者 脚本 生成其他灵

活激 励 

2 .
针 对异 常 场 景 的 构造 投入更 多 研 究 , 在 确 保验 证周 期 可控 的 情 况 下 编 写 更

多 的 异 常 激励 , 提升验证 的 完备性和 可靠性 



78


参考文 献

参考文献




湛伟 .
高速 S e rD e s 技 术 的 发 展趋 势 和 挑 战 [



电子 产 品 世 界 ,
20 1 9 , 
26

9) 

48 -

5 3 


2] 周立 .
光纤保密通信系 统 的设计 、
实现及 性 能 分析 [
D ]

南京 南京邮 电大学 :


202 1 




杨坤 .
应用 于 U SB2 . 0 的 高速 时钟 数据恢 复 电 路 设计 D [ ]

武汉 华 中 科技 大

 :

学 ,
20 1 6 




王薇 .
基于 FP G A 的 数据 采集 与 处理 系 统研 宂 [



电子设计工程 ,
20 1 5( 1 6) 

36 38



朱佳 陆锋 种用于 00 0B AS E X 物理层 的 0B 编 码 器设计 电子与






] ,
. 1

8B/ 1 J .

[ ]

封装 ,
2 02 0 , 
20



: 3 7 40 -




6] 李永乾 基于 . 8 b/ 1 0b 编码技术 的 SerDes 接 口 电 路设计 [
D ]

成都 电子科技大

 :

学 ,
20 1 0 



] 许应 基 于 . AM B A 的 S o C /I P 仿 真 验证 平 台 的 设计 与 实 现研 宄 [
D ]

北京 北

 :

京大学 ,
2 0 07 


8]
H .  D .  F o st e r  . T r e nd s  n  f u n c t i i o na l  v e r i f c at o n i i : a 20 1 6 nd u st r yst ud y[ C ]
i . D vC o n 

S an  Jo s e , 2 0 1 7 : 3

4 


9] 张跃玲 ,
张嘉 ,
汪健等 _ FP G A 的验证平 台 及有 效 的 So C 验证 方法 [


_
单 片机


与 嵌入式系 统应 用 ,
20 1 6( 3

: 8

1 1 

_


1 0 ]R .  D r e c hs l er .  F o rma l i c at o n [ M ] S w i t z e r a n d
S y st e mV e r f i i , l : S
p r nge r

, 
20 1 8 : 1 -

3 0 


1 1
] 张春 麦宋平 , ,
赵益新 ? S y s t em Ver i l og 验证 测 试平 台 编 写 指 南:


M ]

北京 : 


学 出 版社 ,
2009 : 5

6 


1 2
] S .  Ro s e n be r g  A P r a c .  t i c al Gu i d e  t o  A d o pt i ng  t h e  U n v e r s a i l  V er i f c at o n
i 
 i

Me t ho d o lo gy [ M ] .  Nor t h  C aro li na ,  LU LU , 
20 1 3 :  25 9 263 -




1 3

刘 斌 芯 片 验证 漫游 指 南 .


M ]

北 京 电子 工 业 出 版社 :

20 1 8 :  257 -

3 1 4 

4 ]  A y n s e y  D o i n g  F u nn y S t u f f w i t h  t h e  U V M  R e i s t e r  L a e r  E x e r i e n c e s  U s n g





l .

g y p  : i

F r o n t  D o o r  S e q u e nc e s , 
Pre d i c t o r s ,  an d  C a l l b a c k s

C ]
.  D vC o n C a , 
l i fo r n a i
, 
20 1 7 


1 5
] K . S c hw a r t z , 
T .  C o r c o r a n  E rr o r . I nj e c t o n i :  Wh e n G o o d   I np ut  G o e s  B a d [ C ] 

D V C o n C a ,
l i fo rn i a , 
20 1 7 1:

1 3 


1 6]J .  V an c e , J  . Mo n t esa no ,  K .  V asc o nc e l l o s 
. My Tes 
t be n c h  U s e d  t o  B reak  ! N o w i 

B e nd s  A d a p : t i ngtoC h a ng n gD e s g nC o n f


i g u r at i o ns [ C ] i i ,  DVCo n ,  Ca l i fo r n i a 

20 1 8 1 :

1 7 

79


西 安 电 子 科技 大 学 硕 士 学 位 论 文
 


1 7

吴星星 . 基于 UV M 的 S PI 接 口 I P 核 的 验证平 台 设计 [
D ]

安徽 安徽大学 :


20 1 6 


1 8

张少 真 ,
成丹 ,
刘学毅 . UVM 和 Ma t l ab 的 联合仿 真方法 及 应 用 [



中 国 集成


电路 ,
20 1 7 , 
2 6 0 9 1 8
( )

25 


1 9] 张瑞 基于 断 言 的 形 式化验证 与. UVM 的 综合应用 D [ ]
. 西安 :
西 安 电 子 科技


大学 ,
20 1 8 


20

刘魁玉 . 基于 UVM 的 1 5 53 B 总 线协 议验证平 台 设计 [
D ]

哈 尔滨 哈 尔 滨工

 :

业大 学 ,
20 1 9 


2 1
] 陈琳娜 基 于 . UV M 的 层 次化 验 证 平 台 研 宄 [
D ]

浙江 浙江大 学 :

20 1 8 


22] 段

杰 ? 基于 U VM 的 A P B U AR T 验 证 平 台 的 设 计 与 实 现 D -

[ ]

成都 电子科

 :

技大 学 ,
2020 


23 ]
王泽华 .
基于 UVM 的 C ac h e 验证平 台 的 设计 与 研 究 [
D ]

西安 西 安 电子科

 :

技大学 ,
20 1 9 


24 ] Ac c e ll e ra .  Ver i f c at i o n  I nt e l
i l e c tu a l  P r o
pe
t y  ( V I P )  R e c o m m e nd e d  P r a c t
r i ce s

E B/O L  ht t p s // o c p p o r g / i m a g e s / d o wn l o a d s / s t a n d a r d s / uv m / V I P
i 1 0 df

. : . . .
[ ] 一


Ac c e ll e ra , 
2009 


25 ]
张彦 磊 基 于 . UV M 的 AP B -

I 2C 验证 I P 的 设计 与 实现 [
D ]

成都 电子科技大

 :

学 ,
20 1 9 


26
] 张强 . UVM 实战 [
M ] ,
北 京 机械 工 业 出 版 社 :


20 1 4 : 6 4 67 -




27
] 潘玉 茜 . 基于 UVM 的 G MA C 高效验证平 台 设 计 [
D ]

西 安 西 安 电 子 科 技大

 :

学 ,
20 1 7 



28
]  EEE

, I E E ES t d1 8 0 0 -

20 1 2  S t a n d a r d  fo r  S s t e m V e r i o
, y g l

 Un i fi e d  H a r d w a r e

D es i
gn S p ec
f c at io n

i i
,  an d  V er f
ica i t i o n  L a ng u a g e [ S ] ,  N e w  Yo r k : I EE E S t and ar d s

A s so c i a t o n  C o r p o r at e  A dv i s o r y  G r o u p

, 
20 1 3 


29
]  E  C umm
. i ngs , 
H  C h a mb e r s U V M A n a

.   l
y s i s  P o r t  F u nc t i o n a l i t y  a nd  U s i n g

T r ans ac t i onC o
p y  C o mm a nd s [
R] .  U SA :  S unb ur s t  Des i
gn , 
20 1 8 

Acc e Un v e r s a l  V e r i f i c at io n  M eth o d o o g y  1 2  U s e r Gu de [ E B /O L ] ht t p s


30 l l e ra .  i l . s i . :  //


a c c e l l e r a o rg / i m a g e s / d o wn l o a d s / u v m

_
u sers _ gu d e i
_
l . 2 .

pd f  Ac c e l l e r a , , 
20 1 5 


3 1
] 仇荔 基于 . O VM 架构 的 EPA 芯 片 验证 的 研 宄 D [ ]

浙江 浙江大学 :

20 1 3 


32
] F .  Fa l l ah , 
S .  D e v a d as K  K e u , 
. t zer .  OCCO M Ef
ic -

i e n t  C o mp ut a t i o n  o f

O b s e rv a b i l it
y

B a s e d  C o d e  C o v e r ag e  M e t r i c s  fo r  F un c t i o na l  V er f
i c at i i o n [C ] 

P ro c e e d ng s1 9 9 8 D es g n  a nd  A u t o m a t i o n  C o n fe r e n c e S an  F ran c s co 9 9 8 1 6

1
i i i
,  ,
: 


33
] E C e my

, 
S .  D u d an i
, 
J  . H av li c ek , etc S . V A  T he :  P o we r  o f  As se r ti o n sin

S ys t e m V e r i l o g f M ] . S w it z e r a n d l
, 
S p r i ng e r , 
20 1 5 : 3

28 

80


参考文献


3 4
] 郑红党 孙彦 景 李松 等
, , ,

基于 FP G A 技术 的 8 B/ 1 0B 信 道编 码 设 计 [



实验


技术 与 管理 ,
202 1
, 
3 8



:  40 44




3 5
] 刘香利 ?
基于 UVM 的 CB US 验证 [
D ]

西 安 西 安 电 子科 技大 学


20 1 9 


3 6] 麻聪 颖 基 于
. UVM 的 千 兆 以 太网 MA C 控制 器验证 设计 与 实现 [
D ]

西安 

西 安 电 子科 技大 学 ,
20 1 9 

8 






致谢

时光荏苒 , 三年研 宂生生 活转 眼接近尾 声 。 三年 的 求学生涯 中 , 不仅对于专业知




识有 了 更 深入地 了 解 也 收获 了 做 人做事 的 道理与 方 法 路走来 自 己 的 成长 离 不



。 ,

开老师 的 教诲和 亲 人朋 友 的 支 持帮助 , 在此 , 对 于 指导和 帮助过我 的 亲人 、 老师 、 



学 和 朋 友表示最衷心 的 感谢 

论 文 的 完成离 不开 导 师宋建军 老 师 的 悉 心 指 导 宋老师 乐 观 的 生 活态度和 严谨 的


, 

治 学 态度 使我对生活学 习 的 理解 受 益 匪 浅 ,
从论文 前 期 的 选题和 后 期 的 指 导 , 老师都


给予 了 专业 的建议和 帮 助 , 为我解答疑 惑 , 保证 了 我朝 着 正 确 的 研宄方 向 学 习 

感谢我所在 实 习 公 司 的领导 和 同 事 , 在 我论 文上给予 了 我极 大 的 帮 助 , 在毕业



设计过程 中 , 对 于 技术上 的 难 点 和 疑 点 都细 心 解答 ,
给 了 我很 多 宝贵 的 意 见 和 建议 

感谢 你们 在我工 作和 学 习 中 对我 的 指 导 和 帮 助 

8 3


作者简介
  

作者 简介

1 .
基本情 况

李兆被 , 男 , 山 西孝 义人 , 1 997 年 2 月 出生 , 西 安 电子 科技大学微 电 子学 院 软件




工程专业 20 1 9 级 硕 士研 宄生 

2 .
教育 背景

20 1 5 . 09

20 1 9 07.
中 北大学 ,
本科 , 专业 :
微 电 子 与 科学 工程


20 1 9 08.

2022 06 .
西 安 电子科技大学 , 硕 士研宄生 , 专业 :
软件工程 ( 集成 电路


方向 

3 .
攻读 硕 士 学 位 期 间 的 研 宄 成 果

3 . 1 参与 科 研 项 目 及获奖




企业 项 目 , 某器件 hs s t 高速 串 行 传 输模 块 验 证 ,
己完成 ,
2 02 0 8 202 2 2

, 负责模


块验 证 工 作 

85

You might also like