MIS: A multiple-level logic optimization system — различия между версиями

Материал из Модулярная арифметики
Перейти к: навигация, поиск
(Новая страница: «== Параметры запуска == <pre> misii -x -c "rp in.dat";"source script.txt";"read_library user.lib";map;reset_name;print_stats;"print_gate -p";"prin…»)
 
 
(не показана одна промежуточная версия этого же участника)
Строка 1: Строка 1:
 
== Параметры запуска ==
 
== Параметры запуска ==
 
<pre>
 
<pre>
misii -x -c "rp in.dat";"source script.txt";"read_library user.lib";map;reset_name;print_stats;"print_gate -p";"print_level -l";print_level
+
misii -x -c "rp in.dat";"source script.txt";"read_library user.genlib";map;reset_name;print_stats;"print_gate -p";"print_level -l";print_level
 
</pre>
 
</pre>
  
Строка 21: Строка 21:
 
</pre>
 
</pre>
  
=== Описание библиотеки элементов (user.lib) ===
+
=== Описание библиотеки элементов (user.genlib) ===
 
<pre>
 
<pre>
 
GATE zero0 0 O=CONST0;
 
GATE zero0 0 O=CONST0;
Строка 37: Строка 37:
 
GATE nand2 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2
 
GATE nand2 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2
 
</pre>
 
</pre>
 +
* [http://www.ece.cmu.edu/~ee760/760docs/genlib.pdf Информация по формату файла .genlib]
  
 
=== Параметры запуска (script.txt) ===
 
=== Параметры запуска (script.txt) ===

Текущая версия на 08:55, 28 февраля 2013

Параметры запуска

misii -x -c "rp in.dat";"source script.txt";"read_library user.genlib";map;reset_name;print_stats;"print_gate -p";"print_level -l";print_level

Входные данные

Минимизированная таблица истинности (in.dat)

.i 4
.o 2
.ilb A0 A1 B0 B1
.ob X0 X1
.type fdr
1-1- 01
-1-1 10
00-1 01
-100 01
001- 10
1-00 10
.e

Описание библиотеки элементов (user.genlib)

GATE zero0	0	O=CONST0;
GATE one0	0	O=CONST1;
GATE inv1	1	O=!a;	PIN * INV 1 999 0.9 0.3 0.9 0.3
GATE exor2	5.5	O=!(a*b+!a*!b);	PIN * UNKNOWN 2 999 1.9 0.5 1.9 0.5
GATE or3	3	O=a+b+c;	PIN * INV 1 999 2.4 0.7 2.4 0.7
GATE or2	2	O=a+b;	PIN * INV 1 999 1.4 0.5 1.4 0.5
GATE and3	2	O=a*b*c;	PIN * INV 1 999 1.0 0.2 1.0 0.2
GATE and2	2	O=a*b;	PIN * INV 1 999 1.0 0.2 1.0 0.2
GATE exor2	5.5	O=a*!b+!a*b;	PIN * UNKNOWN 2 999 1.9 0.5 1.9 0.5
GATE nor3	3	O=!(a+b+c);	PIN * INV 1 999 2.4 0.7 2.4 0.7
GATE nor2	2	O=!(a+b);	PIN * INV 1 999 1.4 0.5 1.4 0.5
GATE nand3	3	O=!(a*b*c);	PIN * INV 1 999 1.1 0.3 1.1 0.3
GATE nand2	2	O=!(a*b);	PIN * INV 1 999 1.0 0.2 1.0 0.2

Параметры запуска (script.txt)

sweep; eliminate -1

simplify 
eliminate -1

sweep; eliminate 5
simplify 

resub -a

gkx -abt 30
resub -a; sweep
gcx -bt 30
resub -a; sweep

gkx -abt 10
resub -a; sweep
gcx -bt 10
resub -a; sweep

gkx -ab
resub -a; sweep
gcx -b
resub -a; sweep

eliminate 0
decomp -g *

eliminate -1; sweep

Выходные данные

minin.dat     	pi= 4	po= 2	nodes= 18	lits(sop)=  32
[0]        inv1       1.00  (a=A1)
[1]        inv1       1.00  (a=A0)
[2]        nand2      2.00  (a=[0] b=[1])
[3]        inv1       1.00  (a=B0)
[4]        nor2       2.00  (a=[2] b=[3])
[5]        nand2      2.00  (a=A0 b=[3])
[6]        nor2       2.00  (a=[5] b=B1)
[7]        nor2       2.00  (a=[4] b=[6])
[8]        nand2      2.00  (a=B1 b=A1)
{X0}       nand2      2.00  (a=[7] b=[8])
[10]       nand2      2.00  (a=[0] b=[1])
[11]       inv1       1.00  (a=B1)
[12]       nor2       2.00  (a=[10] b=[11])
[13]       nand2      2.00  (a=A1 b=[3])
[14]       nor2       2.00  (a=[13] b=B1)
[15]       nor2       2.00  (a=[12] b=[14])
[16]       nand2      2.00  (a=B0 b=A0)
{X1}       nand2      2.00  (a=[15] b=[16])
Total number of levels = 5
  0: A1 B0 A0 B1
  1: [3] [11] [1] [8] [0] [16]
  2: [2] [5] [13] [10]
  3: [12] [4] [14] [6]
  4: [7] [15]
  5: {X1} {X0}