0% found this document useful (0 votes)
362 views4 pages

Verilog File Handle

This document provides an overview of basic file input/output (I/O) functions in Verilog, including opening and closing files, reading from and writing to text files, writing to multiple text streams, using monitors, and other Verilog file I/O commands and considerations. It describes functions such as $fopen to open a file, $fscanf and $feof to read from files, $fdisplay and $fwrite to write to files, and $fmonitor to monitor changes to variables and write to files. It also notes differences in file formats and syntax depending on the operating system.

Uploaded by

Bhaskar Babu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
362 views4 pages

Verilog File Handle

This document provides an overview of basic file input/output (I/O) functions in Verilog, including opening and closing files, reading from and writing to text files, writing to multiple text streams, using monitors, and other Verilog file I/O commands and considerations. It describes functions such as $fopen to open a file, $fscanf and $feof to read from files, $fdisplay and $fwrite to write to files, and $fmonitor to monitor changes to variables and write to files. It also notes differences in file formats and syntax depending on the operating system.

Uploaded by

Bhaskar Babu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Introduction to Digital Systems ELEC245

Session 10 K. Joseph Hass


Electrical Engineering Bucknell University

Basic Verilog File IO


$fopen(lename,[accesstype ]); $fscanf (lehandle,format spec,[value ],[value ],. . . ); $fdisplay(lehandle,[format spec ],[value ],[value ],. . . ); $fwrite(lehandle,[format spec ],[value ],[value ],. . . ); $fmonitor(lehandle,[format spec ],[value ],[value ],. . . ); $fclose([lehandle ]);

Basic Verilog File IO


Opening and Closing Files

integer MyFileHandle; MyFileHandle = $fopen(MyFileName,MyAccessType); $fclose(MyFileHandle); Access Type r or rb w or wb a or ab Meaning Open text or binary le for reading Open text or binary le for write Open text or binary le for appending

Basic Verilog File IO


Reading From Text Files

r e a l MyNumber ; integer i ; i = 1; w h i l e ( i > 0) begin @( posedge C h a n g e I n p u t s ) ; i=$ f s c a n f ( M y I n p u t F i l e , %f , MyNumber ) ; end %b %h %t %m %v binary hexadecimal time module name strength %d %s %c %f %e decimal string character real exponential

The $fscanf should return 1 at end-of-le. . . this is broken in Xilinx ISE Version 11. . . use $feof instead.

Basic Verilog File IO


Writing To A Text File

integer MyFileDescriptor ; r e a l MyNumber ; M y F i l e D e s c r i p t o r = $ fopen ( MyFileName , w ) ; always @( posedge O u t p u t S t r o b e ) $ f d i s p l a y ( M y F i l e D e s c r i p t o r , %f , MyNumber ) ; $fwrite is similar to $fdisplay but does not append an end-of-line.

Basic Verilog File IO


Writing To Multiple Text Streams

parameter STDOUT = 1 ; i n t e g e r MyMCD; // A m u l t i c h a n n e l d e s c r i p t o r r e a l MyNumber ; MyMCD = $ fopen ( MyFileName ) ; // no a c c e s s t y p e always @( posedge O u t p u t S t r o b e ) ; $ f d i s p l a y ( (MyMCD | STDOUT) , %f , MyNumber ) ; end Note that $fdisplay (STDOUT, %f, MyNumber); is equivalent to $display(%f, MyNumber); and similar equivalents exist for $fwrite and $fmonitor.

Basic Verilog File IO


Monitors

initial $ monitor ( A= %h t i m e= %t , MySig , $ r e a l t i m e ) ; A monitor prints whenever one of the specied variables changes. Only one monitor can be active at any time. Using $fmonitor with a le handle writes to a le

Other Verilog File IO


Other verilog commands for le IO include Read and write binary (rather than text les)
Command syntax is OS dependent File format (big endian or little endian) is OS dependent

Write when signal becomes stable ($fstrobe) Read, write, and display without format string
Default format is decimal Final character of command is default format (e.g. $writeb for binary)

Access by characters rather than lines Arbitrary positioning of read/write pointers

You might also like