# V7 H9 ^9 u8 I* ` X 针对这个难题,笔者提出一种进行仿真测试的新方法.该方法应用TEXTI0和:MATLAB来辅助仿真测试过程.使测试向量数量巨大、难以处理的难题得到很好的解决。以电视视频系统中实时多目标捕获单元的仿真测试为例.对这种新方法进行全面的讨论。 7 D$ O L+ p% ^" M0 K0 @ . B7 k" r* ~# ~ % t+ M4 M5 x7 w0 c: C! K' m b) g
2 基于TEXTIO的VlII)L仿真 " l" t% V/ P# x$ L C8 a5 R" [! Z. l5 m" c+ A
b C- P3 k3 T6 j v 3 F0 {" c. G: f+ a+ y 2.1 TEXTIO的功能; Y7 V# H' f* }* G# |
- L8 ~: ^3 v& i3 k, z+ r 5 `* Z9 [# w$ w6 h, `4 l. L3 c ; a* Q( N. `; P1 a" ~/ S' X1 _ TEXXTl0是VHDL标准库STD中的程序包(Package),它提供了VHDL与磁盘文件直接访问的桥梁。TEXTIO定义了3种类型:LINE类型、TEXT类型及SIDE类型。TEXTI0在程序包中定义了一些访问文件的过程(Procedure)。 ' U& ?$ L _. c! r 2 Q0 i# ]6 K* i* y: o0 U+ G 1 a' N Y% r+ l ' v9 ?2 V$ S) T TEXTIO提供的基本过程有:0 t: @" X" p( M2 D
- r/ X. b/ N A9 d) i s
9 H4 I( c9 l8 T7 s" U, x* a " ?6 [# ^5 b4 ~. ^9 W (1)procedure READLNE(文件变量,行变量),用于从指定文件读取一行数据到行变量中; + z `6 ]4 ~% Q: ]5 l: H; n3 Q9 Z ' L d& P3 g& Z4 k! ]! K0 H' g (2)procedure WRITELNE(文件变量,行变量),用于向指定文件写入行变量所包含的数据; * D3 O0 X7 B' M( S1 q/ F2 X {/ I) h# l5 J- o; y4 K8 W
(3)procedure READ(行变量,数据类型),用于从行变量中读取相应数据类型的数据.根据参数的数据类型及参数个数的不同.有多种重载方式,TEX-TIO提供了bit、bit、bit_vector、BOOLEAN、character、in-teger、real、string、time数据类型的重载;* {9 \' `6 Z9 D. |' u2 z* G. n0 @
8 f2 n; K( v; a7 I, S
(4)mcedure WRITE(行变量,数据变量,写入方式,位宽),该过程将数据写入行变量。其中,写入方式表示写在行变量的左边还是右边,其值只能为left或right,位宽表示写入数据时占的位宽。例如write(Oufljne,OutData,left,2/表示将变量OutData写入LINE 变量OutLine的左边,占2个字节。 + V/ b3 K; Y$ q$ }( V4 | ( n1 ]; O0 g3 G o6 o0 Q ; {9 j" ?- h; g4 p' n0 R- ^8 J# e7 }- z; m$ c8 \3 y
2.2 仿真测试方案 ) K. F( h# d5 k. x9 ] + u; @, @# M( P" @. I ' ^. Z3 B9 Q1 i7 N. a) {& b7 L
4 T% M+ ]4 o) e; t 使用TEXTO和MNTLAB辅助TestBench进行复杂数字系统仿真的方案框图如图1所示。 Y2 ^3 K! s1 Q: m7 c5 G i4 ]
) q6 d; _/ G8 D