Pull to refresh

Comments 6

> Изначально хотел её упростить при помощи ДНФ или КНФ, но решать карту Карно 8x8 желания пока не возникает.

У вас будет карта Карно 32х8, поскольку переменных 8.
Не совсем, но действительно ошибся. 16x16 была. Но спасибо за замечание. Сейчас исправлю.
Сделал для вас минимизацию булевой функции в форме ДНФ для следующего состояния клетки в зависимости от ее текущего состояния и состояния ее соседей. Результат этой функции надо инвертировать, Здесь X1 — предыдущее состояние клетки, X2 — X9 состояние соседних клеток:

__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X6 X7
__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X6 X8
__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X6 X9
__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X7 X8
__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X7 X9
__ __ __ __ __ __ __
X1 X2 X3 X4 X5 X8 X9

X6 X7 X8 X9
__ __ __ __ __ __ __
X1 X2 X3 X4 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X3 X4 X6 X7 X9
__ __ __ __ __ __ __
X1 X2 X3 X4 X6 X8 X9

X5 X7 X8 X9
__ __ __ __ __ __ __
X1 X2 X3 X4 X7 X8 X9

X5 X6 X8 X9

X5 X6 X7 X9

X5 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X3 X5 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X3 X5 X6 X7 X9
__ __ __ __ __ __ __
X1 X2 X3 X5 X6 X8 X9

X4 X7 X8 X9
__ __ __ __ __ __ __
X1 X2 X3 X5 X7 X8 X9

X4 X6 X8 X9

X4 X6 X7 X9

X4 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X3 X6 X7 X8 X9

X4 X5 X8 X9

X4 X5 X7 X9

X4 X5 X7 X8

X4 X5 X6 X9

X4 X5 X6 X8

X4 X5 X6 X7
__ __ __ __ __ __ __
X1 X2 X4 X5 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X4 X5 X6 X7 X9
__ __ __ __ __ __ __
X1 X2 X4 X5 X6 X8 X9

X3 X7 X8 X9
__ __ __ __ __ __ __
X1 X2 X4 X5 X7 X8 X9

X3 X6 X8 X9

X3 X6 X7 X9

X3 X6 X7 X8
__ __ __ __ __ __ __
X1 X2 X4 X6 X7 X8 X9

X3 X5 X8 X9

X3 X5 X7 X9

X3 X5 X7 X8

X3 X5 X6 X9

X3 X5 X6 X8

X3 X5 X6 X7
__ __ __ __ __ __ __
X1 X2 X5 X6 X7 X8 X9

X3 X4 X8 X9

X3 X4 X7 X9

X3 X4 X7 X8

X3 X4 X6 X9

X3 X4 X6 X8

X3 X4 X6 X7

X3 X4 X5 X9

X3 X4 X5 X8

X3 X4 X5 X7

X3 X4 X5 X6
__ __ __ __ __ __ __
X1 X3 X4 X5 X6 X7 X8
__ __ __ __ __ __ __
X1 X3 X4 X5 X6 X7 X9
__ __ __ __ __ __ __
X1 X3 X4 X5 X6 X8 X9

X2 X7 X8 X9
__ __ __ __ __ __ __
X1 X3 X4 X5 X7 X8 X9

X2 X6 X8 X9

X2 X6 X7 X9

X2 X6 X7 X8
__ __ __ __ __ __ __
X1 X3 X4 X6 X7 X8 X9

X2 X5 X8 X9

X2 X5 X7 X9

X2 X5 X7 X8

X2 X5 X6 X9

X2 X5 X6 X8

X2 X5 X6 X7
__ __ __ __ __ __ __
X1 X3 X5 X6 X7 X8 X9

X2 X4 X8 X9

X2 X4 X7 X9

X2 X4 X7 X8

X2 X4 X6 X9

X2 X4 X6 X8

X2 X4 X6 X7

X2 X4 X5 X9

X2 X4 X5 X8

X2 X4 X5 X7

X2 X4 X5 X6
__ __ __ __ __ __ __
X1 X4 X5 X6 X7 X8 X9

X2 X3 X8 X9

X2 X3 X7 X9

X2 X3 X7 X8

X2 X3 X6 X9

X2 X3 X6 X8

X2 X3 X6 X7

X2 X3 X5 X9

X2 X3 X5 X8

X2 X3 X5 X7

X2 X3 X5 X6

X2 X3 X4 X9

X2 X3 X4 X8

X2 X3 X4 X7

X2 X3 X4 X6

X2 X3 X4 X5
__ __ __ __ __ __ __
X2 X3 X4 X5 X6 X7 X8
__ __ __ __ __ __ __
X2 X3 X4 X5 X6 X7 X9
__ __ __ __ __ __ __
X2 X3 X4 X5 X6 X8 X9
__ __ __ __ __ __ __
X2 X3 X4 X5 X7 X8 X9
__ __ __ __ __ __ __
X2 X3 X4 X6 X7 X8 X9
__ __ __ __ __ __ __
X2 X3 X5 X6 X7 X8 X9
__ __ __ __ __ __ __
X2 X4 X5 X6 X7 X8 X9
__ __ __ __ __ __ __
X3 X4 X5 X6 X7 X8 X9

Спасибо конечно, но маленькой она явно не выглядит. В общей сумме в данном симуляторе получится 374 лог. компонента (106 AND, 252 NOT и 16 OR). Не думаю, что есть смысл её реализовывать. При этом, увы, теряется возможность настройки под другие правила.
Может быть, стоит какой-нибудь yosys/abc применить для этого? Всё-таки будет лучше этот кусок логики в многоуровневом виде представлять.
Корректность не проверял, но:
ABC RESULTS: AND cells: 6
ABC RESULTS: AOI3 cells: 3
ABC RESULTS: NAND cells: 6
ABC RESULTS: OR cells: 2
ABC RESULTS: XNOR cells: 1
ABC RESULTS: XOR cells: 10

После маппинга на простые ячейки:
ABC RESULTS: AND3 cells: 2
ABC RESULTS: NAND2 cells: 11
ABC RESULTS: NAND3 cells: 1
ABC RESULTS: NOT cells: 2
ABC RESULTS: OR3 cells: 1
ABC RESULTS: XNOR2 cells: 4
ABC RESULTS: XOR2 cells: 10
Sign up to leave a comment.

Articles

Change theme settings