|
Next: Commands in VIS Up: No Title Previous: Formal Verification in
Synthesis in VISVIS can interact with SIS in order to optimize the existing logic. There are two possible goals/scenarios:
A key fact is that only the current level of the hierarchy is sent to
SIS, and not the subtree rooted at the current node.
Modules at a lower level are treated as external and the boundary variables
are carefully preserved, by reintegrating their multi-valued status after
the optimization step in SIS (SIS requires that boundary variables
are completely encoded, i.e., are binary variables). In the current version, only combinational logic is sent to SIS: latches are cut away from the module sent to SIS and they are reincorporated when the design is read back into VIS. Therefore we cannot take advantage of sequential optimizations in SIS, either at the level of a completely encoded sequential network or of a symbolic state table. The boundaries between modules are established when the initial hierarchy is described, and they are rigid in the sense that optimizations can never bridge them, but only operate within them. Notice that there is a way to replace a subtree of the hierarchy with another one by using read_blif_mv -r; this feature could be used to change boundaries in the original specification.
Writing and Reading from SISVIS communicates with SIS via the write_blif and read_blif commands. Operations performed by write_blif are:
Operations performed by read_blif are:
Flow of Operations for SynthesisThe typical flow of operations of synthesis for verification is:
It is possible to verify that after optimization with SIS the new global network (where the node returned from SIS is plugged back in the original network) is equivalent to the old global network, by using the command comb_verify that checks combinational equivalence of networks. Combinational equivalence can be checked at each level of the network hierarchy, from root to leaves. Before applying comb_verify, the command init_verify must be invoked.
Example of Synthesis of Traffic Light ControllerThe following script demonstrates the path from VIS to SIS and back. We have chosen to optimize the network of the leaf farm_control. We verify that the initial global network and the new network, after replacement of the network in the leaf farm_control by the one optimized by SIS, are combinationally equivalent. The script used to run SIS (in a different shell) is shown too. Experiments report big savings in literals for the optimized modules, since the BLIF-MV files generated by VL2MV have a lot of redundancy.
UC Berkeley, VIS Release 1.0 (compiled 11-Dec-95 at 10:36 AM) vis> read_blif_mv tlc.mv Warning: Some variables are unused in model main. vis> init_verify vis> ls hwy_control sensor timer farm_control vis> print_network_stats main combinational=142 pi=0 po=0 latches=4 pseudo=2 const=40 edges=206 vis> cd farm_control vis> write_blif farm_control.blif Writing encoding information to farm_control.enc vis> read_blif -e farm_control.enc farm_control.opt.blif Warning: Some variables are unused in model farm_control[0]. vis> cd .. vis> init_verify vis> comb_verify tlc.mv Networks are combinationally equivalent. vis> print_network_stats main combinational=132 pi=0 po=0 latches=4 pseudo=2 const=34 edges=186 sis> read_blif farm_control.blif Warning: network `farm_control', node "[1]0" does not fanout Warning: network `farm_control', node "[5]0" does not fanout Warning: network `farm_control', node "[11]0" does not fanout sis> print_stats farm_control pi=18 po= 6 nodes= 62 latches= 0 lits(sop)= 709 lits(fac)= 419 sis> source script.rugged sis> print_stats farm_control pi=18 po= 6 nodes= 24 latches= 0 lits(sop)= 34 lits(fac)= 34 sis> write_blif farm_control.opt.blif In the previous example, the command init_verify has been given only in order to do print_network_stats before logic synthesis, to compare the networks before and after optimization by SIS.
Next: Commands in VIS Up: No Title Previous: Formal Verification in
Yuji Kukimoto Tue Feb 6 11:58:14 PST 1996 |
Contact |
©2002-2018 U.C. Regents |