Hace muchos años que estaba en uso, existía una técnica manual llamada "El Método de Máquina Estatal de Algorthmic" (ASM). El Dr. D.H. Green, de la Universidad del Instituto de Ciencia y Tecnología de Manchester, escribió un libro sobre este tema. No estoy seguro de si el libro todavía está impreso, lo dudo.
La técnica se basó en el diseño de máquinas de estados finitos, pero una parte intrínseca de eso fue el diseño de funciones lógicas combinatorias (o combinatorias) que controlan las funciones de salida y las entradas a los biestables.
La técnica incluía un método de reducción / simplificación manual para reducir los circuitos lógicos. Recuerdo que en la universidad tuvimos que escribir un programa de computadora para lograr el mismo resultado. Lo siento, ya no tengo ese programa!
Técnicas automatizadas: lo que está buscando es lo que se conoce como una herramienta de síntesis, que puede tomar una descripción del comportamiento basada en texto y generar un circuito lógico a partir de él.
Una de las primeras (y caras) herramientas fue la de una empresa llamada Synopsys, creo que se llamó Synopsys Design Compiler. Solíamos usar esto en estaciones de trabajo Sun hace muchos años.
Cuando sintetiza lógica a partir de una descripción de comportamiento de texto (lenguajes: VHDL, Verilog) tiene varios parámetros que puede controlar que influyen en los procesos de síntesis.
Puede especificar restricciones de rendimiento y hacer que el software cree un diseño de circuito lógico diseñado para alta velocidad y, como resultado, utilice más puertas lógicas, o puede hacer que el software de síntesis produzca un diseño con la menor cantidad posible de puertas lógicas , lo que generalmente resulta en un diseño más lento.
Las herramientas profesionales como Synopsys incluyeron bibliotecas de puertas lógicas de los grandes fabricantes de ASIC con datos de rendimiento incluidos. Invariablemente, encontrará que la herramienta de síntesis está apuntando a una tecnología lógica particular cuando crea su diseño de salida. En el caso de los proveedores de ASIC, la salida a menudo serán simples puertas lógicas, en el caso de los proveedores de FPGA, la salida de la herramienta de síntesis es bastante diferente, ya que las arquitecturas de FPGA son considerablemente diferentes.
Así que realmente quieres buscar:
1) Una implementación de software del método ASM, o escribir un programa para hacerlo
2) Software de síntesis para dispositivos lógicos programables, pero tenga en cuenta lo que dije, la salida no será necesariamente una implementación de puerta lógica simple (usando puertas AND, OR, NAND, NOR, NOT, XOR) y dependerá de la tecnología de destino. : CPLD, FPGA, ASIC y qué funciones lógicas soportan estas tecnologías de los proveedores.