InterconnectNetworksBySMV Module
This module implements functions to generate SMV files for synthesizing correct sorting/splitter networks for a given number of inputs and a desired depth. Further options are found by the global variables below.
Functions and values
Function or value | Description |
|
|
|
the cgi program
|
Full Usage:
PredeterminedModules d n casNet
Parameters:
int
n : int
casNet : (int * int)[][]
|
generate a map that holds the already predetermined CAS modules given by casNet and some propagation rules
|
Full Usage:
ReadNetworkFromFile inFile
Parameters:
string
Returns: (int * int) array array
|
read in an incomplete comparator network from a file that shall be completed to a splitter network; the file should list the levels of comparators given in brackets [] containing pairs of integers separated by ";"
|
|
|
|
generate variables g_{i,j,k} meaning there is a comparator connecting lines i and j in level k, x_{i} meaning the value of input i, and y_{i}_{k} as the output of channel i after level k
|
|
generate well-formedness constraints on the variables g{i,j,k}
|
|
This function writes the SMV file to stream ostr that states that there is no wellformed comparator network with n inputs and maximal depth d.
|
casMap holds already predetermined CAS modules
|
|
Full Usage:
computeModelCheckingProblem ostr d n casNet
Parameters:
TextWriter
d : int
n : int
casNet : (int * int)[][]
|
compute model checking problem
|
Full Usage:
flattenLevels
Returns: bool
|
whether output equations shall be flattened to input variables
|
Full Usage:
flattenOutputEquations d n
Parameters:
int
n : int
|
expand output equations by replacing their left by right hand sides
|
Full Usage:
fullLevels
Returns: bool
|
whether every channel in every level is connected by a CAS module
|
gVar[i].[j].[k] is an expression that holds iff channels (i,j) are connected by a CAS module in level k
|
|
Full Usage:
halfOfAsDNF
Returns: bool
|
whether halfOf constraint is given in DNF
|
|
constraints on inputs for splitter (conjunction implies that half of them are true)
|
Full Usage:
noComments
Returns: bool
|
don't print output comments, just write SMV file
|
Full Usage:
onlyFinalCrossHalves
Returns: bool
|
whether only the final level of CAS modules may compare halves
|
Full Usage:
runNuSMV smvExe smvFileWriter
Parameters:
string
smvFileWriter : StreamWriter -> unit
Returns: string
|
Running NuSMV on the web server with input coming from stdin: Expected arguments are smvExe which is the path of the executable file of NuSMV like "/srv/www-es/cgi-bin/NuSMV" and a function that will write a input file for NuSMV to a stream.
|
Full Usage:
useFinalHC
Returns: bool
|
whether final level of CAS network shall be a half cleaner
|
Full Usage:
useHalfOf
Returns: bool
|
whether halfOf constraint shall be added (for splitter networks)
|
Full Usage:
useInitialPB
Returns: bool
|
whether initial level of CAS network shall be a Parberry stage
|
Full Usage:
useSizeConstr
Returns: int option
|
whether there is a contraint on the number of CAS modules
|
wellformedness constraints (conjunction must be satisfied)
|
|
xVar[i] is an expression that denotes ith input
|
|
yVar[i].[k] is an expression that denotes ith output of level k
|