ioCheck.c
Routines to test if a blif-mv file is consistent.
ioCmd.c
Top-level routines for reading and writing files.
ioParse.c
Functions used in parsing BLIF-MV files.
ioReadBlifMv.c
Routines related to reading in blif-mv files.
ioTable.c
Routines for generating the table data structure from textual information. Used in the parser.
ioWriteBlifIo.c
This file contains blifmv -> blif write routines that handle the functionality of files IO.
ioWriteBlifMv.c
Writes out a blif-mv file.
ioWriteBlifUtil.c
This file contains blifmv -> blif write routines, which perform miscellaneous lower-level functions
ioWriteSmv.c
Writes out an Smv file.

ioCheck.c

Routines to test if a blif-mv file is consistent.

By: Yuji Kukimoto, Rajeev Ranjan, Huey-Yih Wang

Routines to test if a blif-mv file is consistent. They are also responsible for setting several internal data structures. Here are the list of checks we can do on an hsis network. For each model, we first check if there is no node labeled both as PI and PS or both as PI and PO. Then, for each subcircuit in the model, the compatibllity of the interface is verified namewise and rangewise. This is detailed below. Then, we verify that there is no combinational cycle in any model. Furthermore, for each latch in the model, we make sure that the input and the output of the latch are of the same type and that every latch has a reset table. Finally, we check to see if each variable is an output of at most one table. As for the check to be done for a subcircuit, we first check if the model to be instantiated is present in the hmanager. Then, we test if all the formal variables in the subcircuit definition exist in the model and at the same time they are of the same type of the corresponding actual variables. More thoroughly, we have to check if a flattened network has no cycle, but it is not currently implemented.

IoNetworkTestConsistency()
Checks to see if a given blif-mv network is consistent.
_IoModelTestMasterNodeConsistency()
Checks to see if there is no inconsistency in a model.
_IoModelTestConnectionConsistency()
Checks to see if there is no inconsistency in subcircuit connections.
_IoModelTestLatchConsistency()
Checks to see if there is no inconsistency in a latch definition.
_IoModelTestResetConsistency()
Checks to see if there is no inconsistency in reset declarations.
_IoModelTestInternalConnectionConsistency()
Checks the consistency of the internal connection of a model.
_IoModelTestIsAcyclic()
A DFS-based procedure for checking acyclicity.
_IoModelTestIsAcyclicError()
Prints out error messages during an acyclic check.
_IoModelTestIsAcyclicRecursive()
Recursive DFS routine for acyclic check.

ioCmd.c

Top-level routines for reading and writing files.

By: Yuji Kukimoto, Rajeev K. Ranjan, Sunil P. Khatri, Huey-Yih Wang

This file contains top-level routines for I/O functions of VIS.

Io_Init()
Initializes the I/O package.
Io_End()
Ends the I/O package.
CommandReadBlifMv()
The top-level routine for read_blif_mv.
CommandWriteBlifMv()
The top-level routine for write_blif_mv.
CommandWriteSmv()
The top-level routine for write_smv.
CommandReadVerilog()
The top-level routine for read_verilog.
CommandReadBlif()
The top-level routine for read_blif.
CommandWriteBlif()
The top-level routine for write_blif

ioParse.c

Functions used in parsing BLIF-MV files.

By: Yuji Kukimoto, Rajeev Ranjan, Huey-Yih Wang

IoVariableFindOrAllocByName()
Finds or allocate a variable by name in a hnode.
IoAtoi()
Converts a character string to the integer.
IoStringArrayFree()
Frees an array of strings.
IoNameInsertInArray()
Insert a character string to an array.
IoSymValueInsertInArray()
Inserts a IoSymValue_t structure to an array.
IoSymCubeInsertInArray()
Inserts a SymCube(an array of IoSymValue_t) to an array.
IoInputProcess()
Reads in .inputs constructs.
IoOutputProcess()
Reads in .outputs constructs.
IoMvProcess()
Reads in .mv constructs.
IoLatchProcess()
Reads in .latch constructs.
IoTableProcess()
Reads in .table constructs.
IoResetProcess()
Reads in .reset constructs.
IoSubcktProcess()
Reads in .subckt constructs.
_IoParserAddSubckt()
Add subckt information to the data structure where the parser maintains all the subckt data.
_IoIOProcess()
Process .inputs and .outputs construct.
_IoPTableCreate()
Allocates a temporary data structure for parsing tables.
_IoPTableFree()
Frees a temporary data structure for parsing the tables.

ioReadBlifMv.c

Routines related to reading in blif-mv files.

By: Yuji Kukimoto, Rajeev Ranjan, Huey-Yih Wang

Io_BlifMvRead()
Reads in a blif-mv file.
Io_BlifRead()
Reads in a blif file.
IoError()
Jumps out of an error state.
_IoGlobalVariablesInitialize()
Initilizes all the global variables used in the parser.
_IoGlobalVariablesFree()
Frees all the global data structures used in the parser.
_IoGlobalSubcktInfoFree()
Frees the subckt information only used by the parser.
_IoSubcktArrayFree()
Frees an array of the subckt data structure only used by the parser.
_IoSubcktFree()
Frees the subckt data structure used by the parser.
_IoGlobalResetInfoFree()
Frees the reset data structure used only by the parser.
_IoNodeTestCompatibility()
Checks if two hnodes are compatible with respect to their i/o interface.
_IoNodeTestCompatibilityAux()
Checks if two hnodes are compatible with respect to their input or output interface depending on the last boolean flag.
_IoManagerCanonicalize()
Canonicalizes all the tables in a given manager using Tbl_TableCanonicalize().

ioTable.c

Routines for generating the table data structure from textual information. Used in the parser.

By: Yuji Kukimoto, Rajeev Ranjan, Huey-Yih Wang

IoPTableTransformToTable()
Transforms table information stored in a special data structure IoPTable_t used by the parser to the table data structure.
IoSymValueAlloc()
Allocates a IoSymValue_t.
IoSymValueArrayFree()
Frees an array of the IoSymValue_t data structure.
_IoSymValueFree()
Frees the IoSymValue_t data structure.
_IoSymCubeInsertInTable()
Given a symbolic cube in textual format and a table, updates the table by adding the cube.
_IoDefaultSymCubeInsertInTable()
Given a default symbolic cube in textual format and a table, updates the table by adding the cube.
_IoSymValueTransformToEntry()
Generates a set of ranges used in the table data structure from textual representation of symbolic values.
VariableReadIndex()
Returns the integer index given a value.

ioWriteBlifIo.c

This file contains blifmv -> blif write routines that handle the functionality of files IO.

By: Sunil P. Khatri

Routines for writing determinized, encoded tables to a file as requested by the write_blif command. All file IO routines are contained in this file.

See AlsoioReadBlifmv.c, ioWriteBlif.c, ioWriteBlifUtil.c

IoEncWriteMvToBinTables()
Writes out mv->binary encoding tables for relevant variables
IoEncWriteBinToMvTables()
Writes out binary->mv decoding tables for relevant variables
IoBlifWriteInputs()
Writes out .input line for blif file
IoBlifWriteOutputs()
Writes out .output line for blif file
IoWriteLatches()
Writes out latches to the blif file
IoMvCheckPrint()
Prints the .mv declaration of a variable, to file, if it is not in the st_table variables already printed
IoMvCheckPrintSpecial()
Prints the .mv declaration of a variable, to file, if it is not in the st_table variables already printed. Appends a special string "_bufin" at the end of the name.
IoWriteExpandedValueToBinTable()
Writes a blifmv value, in expanded form, into binTable
IoWriteBinTablesToFile()
Writes out tables in binTblArray to a named blif file
_IoEncodeWriteVariable()
Encodes individual variable based on its ranges, and writes to the file called "encoding"
_IoEncodeWriteVariableSpecial()
Encodes individual variable based on its ranges. Variable name has the string "_bufin" appended to it.

ioWriteBlifMv.c

Writes out a blif-mv file.

By: Yuji Kukimoto

IoBlifMvWrite()
The top-level routine for writing out a BLIF-MV file.
IoMvPrint()
Prints out .mv declaration for a given variable.
IoMvPrintSpecial()
Prints out .mv declaration for a given variable, with the special string "_bufin" appended to the variable name.

ioWriteBlifUtil.c

This file contains blifmv -> blif write routines, which perform miscellaneous lower-level functions

By: Sunil P. Khatri

Routines that perform lower-level tasks in the determinizing, encoding and) writing a blifmv table into a blif description are included in this file

See AlsoioReadBlifmv.c, ioWriteBlif.c, ioWriteBlifIo.c

IoMakeSingleOutputTable()
Makes a single output table for the outputNum'th output
IoOutputExpansionRequired()
Checks if the number of rows after expansion, due to the outputs = expansion, is more than a given threshold.
IoInitBlifInfo()
Initializes IoBlifInfo_t data structure
IoFreeBlifInfo()
Frees IoBlifInfo_t data structure
IoVarIsHnodePIO()
Determines if a variable is a PI/PO of an hnode.
IoEncodeVariable()
Encodes individual variable based on its ranges
IoNumEncBits()
Returns number of bits in encoding
IoNumDigits()
Returns the number of digits in the base 10 representation of a number
IoLog()
Returns log-base-2 of a number which is a power of 2
IoFindSmallestCode()
Returns the IoVarEncEntry_t with the smallest encoding length
IoIncreaseCodeSize()
Increases the code size of a variable
IoChangeBlifmvTableRows()
Alters blifmv table to reflect the increase in code size from IoIncreaseCodeSize
IoChangeBlifmvTableEntries()
Alters table to reflect the increase in code size from IoIncreaseCodeSize
IoChangeEncTableEntries()
Alters table to reflect the increase in code size from IoIncreaseCodeSize
IoInvertBinTableOutput()
Inverts a specified binary output of binTable
IoMakeBinaryRangesArray()
Returns array that represents a simple way of compacting a mv entry while representing it in binary.
IoNumValuesFromBinRangesArray()
Returns the number of values in the entrycolnum-1)
IoNumBinVars()
Returns the number of binary vars in the variable index (colnum-1)
_IoWriteEntryToTable()
Duplicate an entry and set it in a table
_IoWriteValueToTable()
Make an entry from a value, and set it in a table
_IoTableRemoveEqualsContruct()
Removes "=" constructs in a table
_IoVarEncEntryFree()
Frees the IoVarEncEntry_t
_IoEntryCheckRange()
Checks if runLength entries from startValue with skipLength increments are contained in entry
_IoCreateBinRange()
Returns a (startValue, runLength) pair such that the runLength is the largest number of contiguous values in entry, starting from startValue
_IoAddBinRange()
Enters a (startValue, runLength, skipLength) tuple into the mvEntryBinRanges array
_IoNumValues()
Returns the number of values in the entrycolnum-1)

ioWriteSmv.c

Writes out an Smv file.

By: Daniel Sheridan, Chao Wang

Write the current model to a file compatible with NuSMV v2.1

Io_SmvPrintVar()
Prints out variable name, cleaned for NuSMV
IoSmvWrite()
The top-level routine for writing out an NuSMV file.
IoSmvPrint()
Prints out VAR declaration for a given variable.
IoSmvPrintSpecial()
Prints out VAR declaration for a given variable, with the special string "_bufin" appended to the variable name.

Last updated on 20050519 00h50