Sis Tutorial
Sis Tutorial
Sis Tutorial
Rob A. Rutenbar
University of Illinois at Champaign-Urbana
SIS can also read logic design in many different file formats. But conveniently for us,
it can read the same format that the ESPRESSO 2-level optimizer tool uses, the so-
called PLA format. So, we will let you edit files in the ESPRESSO truth table format,
and those can be uploaded and optimized by SIS.
The new information you need is how to read a SIS output result, since the result is
an optimized Boolean network model, each of whose nodes is an optimized 2-level
SOP form. Lets look at a few small examples to see how to read a SIS result.
.i 4
.o 2
.ilb a1 a0 b1 b0
.ob s0 s1
0000 00
0001 00
0010 00
0011 00
0100 00
0101 01
0110 10
0111 11
1000 00
1001 10
1010 01
1011 00
1100 00
1101 11
1110 00
1111 00
.e
This is the result of optimizing this design with SIS, as it will appear in your
Coursera SIS assignment window:
a0
s0 = a0a1b1 + a1b0b1 Z1
a1
[2] = a1 + b1
b0
s1 =[2]a0b0 + [2]a0b0 Z2
b1
Suppose we have input variables a1 a0 and b1 b0, and we regard these as unsigned
2-bit integers. We multiply them, and compute the 4-bit product p3 p2 p1 p0.
This is specified in the ESPRESSO PLA format:
.i 4
.o 4
.ilb a1 a0 b1 b0
.ob p3 p2 p1 p0
0000 0000
0001 0000
0010 0000
0011 0000
0100 0000
0101 0001
0110 0010
0111 0011
1000 0000
1001 0010
1010 0100
1011 0110
1100 0000
1101 0011
1110 0110
1111 1001
.e
Here is what the SIS output looks like for this multiplier example:
The result drawn as a Boolean network diagram is this:
p1 = {p3}a0b0 + {p3}a1b0 p1
a0
p3 = {p0}a1b1 p3
a1
b0 p0 = a0 b0 p0
b1
p2 = {p0}a1b1 p2
Observe that SIS is free to use any node, as an input to any other node. In this case,
even the nodes that make the primary outputs, get used as inputs to other nodes.