98mwi1mDl件述语言 Chia°b6eoM 下载 begin Tq File fopen("-/jb/div tq") 2.输出到文件 显示、写入、探测和监控系统任务都有一个用于向文件输出的相应副本,该副本可用于 将信息写入文件。这些系统任务如下 Sfdisplay $fdisplayb sfdisplayh sfdisplay Sfwrite Sfwriteb Sfwriteh sfwriteo Sfmonitor Simoni torb Sfmonitorh sfmonitoro 所有这些任务的第一个参数是文件指针,其余的所有参数是带有参数表的格式定义序列 下面的实例将作进一步解释说明。 integer Vec F⊥1e in⊥七ia1 begin vec File = sfopehdiv vec") display(vec File, " The simulation time st",stime)i /第一个参数 vec Fi1e是文件指针。 Fclose(vec file) end 等到$ display任务执行时,文件“div.vec”中出现下列语句 The simulation time is 3.从文件中读取数据 有两个系统任务能够用于从文件中读取数据,这些任务从文本文件中读取数据并将数据 加载到存储器。它们是 Sreadmemb 文本文件包含空白空间、注释和二进制(对于$ readmem b)或十六进制(对于 Sreadmemh)数字。每个数字由空白空间隔离。当执行系统任务时,每个读取的数字被指派 给存储器内的一个地址。开始地址对应于存储器最左边的索引。 reg [0: 3] Mem A [0: 63] in⊥七ia1 sreadmemb("ones and zero vec", Mem A) //读入的每个数字都被指派给从0开始到63的存储器单元。 显式的地址可以在系统任务调用中可选地指定,例如 Sreadmemb("rx vex", Mem A, 15,30 /从文件“xκ.vec”中读取的第一个数字被存储在地址15中,下一个存储在地址 //16,并以此类推直到地址30 也可以在文本文件中显式地给出地址。形式如下 @address in hexadecimal 在这种情况下,系统任务将数据读入指定地址。后续的数字从指定地址开始向后加载。b e g i n T q _ F i l e = $ f o p e n("~/ j b / d i v . t q ") ; . . . $f c l o s e(T q _ F i l e) ; e n d 2. 输出到文件 显示、写入、探测和监控系统任务都有一个用于向文件输出的相应副本,该副本可用于 将信息写入文件。这些系统任务如下: $f d i s p l a y $f d i s p l a y b $f d i s p l a y h $f d i s p l a y o $f w r i t e $f w r i t e b $f w r i t e h $f w r i t e o $f s t r o b e $f s t r o b e b $f s t r o b e h $f s t r o b e o $f m o n i t o r $f m o n i t o r b $f m o n i t o r h $f m o n i t o r o 所有这些任务的第一个参数是文件指针,其余的所有参数是带有参数表的格式定义序列。 下面的实例将作进一步解释说明。 i n t e g e r V e c _ F i l e; i n i t i a l b e g i n Vec_File = $fopen(" d i v . v e c ") ; . . . $f d i s p l a y(V e c _ F i l e,"The simulation time %t",$time); / /第一个参数V e c _ F i l e是文件指针。 $f c l o s e(V e c _ f i l e) ; e n d 等到$f d i s p l a y任务执行时,文件“d i v. v e c”中出现下列语句: The simulation time is 0 3. 从文件中读取数据 有两个系统任务能够用于从文件中读取数据,这些任务从文本文件中读取数据并将数据 加载到存储器。它们是: $readmemb $readmemh 文本文件包含空白空间、注释和二进制(对于 $ r e a d m e m b)或十六进制(对于 $re a d m e m h)数字。每个数字由空白空间隔离。当执行系统任务时,每个读取的数字被指派 给存储器内的一个地址。开始地址对应于存储器最左边的索引。 r e g [0:3] Mem_A [0:63]; i n i t i a l $r e a d m e m b( " o n e s _ a n d _ z e r o . v e c " , M e m _ A ) ; / /读入的每个数字都被指派给从0开始到6 3的存储器单元。 显式的地址可以在系统任务调用中可选地指定,例如: $r e a d m e m b( " r x . v e x " , M e m _ A , 1 5 , 3 0 ) ; / /从文件“r x . v e c”中读取的第一个数字被存储在地址1 5中,下一个存储在地址 / / 1 6,并以此类推直到地址3 0。 也可以在文本文件中显式地给出地址。形式如下: @ a d d r e s s _ i n _ h e x a d e c i m a l 在这种情况下,系统任务将数据读入指定地址。后续的数字从指定地址开始向后加载。 98 Verilog HDL 硬件描述语言 下载