Conversión de diagrama de estados a circuito secuencial - franciscaconcha/ProyectoLogisim GitHub Wiki

Se desea agregar una nueva funcionalidad a Logisim: la posibilidad de transformar diagramas de estado a circuitos secuenciales.

Alcances

Primero, se quiere implementar la generación de un circuito secuencial a partir de un diagrama de estados codificado en un archivo de texto. Así, el usuario podrá describir el diagrama de estados a convertir en un archivo, y luego importarlo a Logisim. A partir del archivo importado se construirá un circuito secuencial, con su parte combinatorial y de registro. Este es el principal objetivo de este proyecto.

Como idea adicional sería deseable agregar una interfaz gráfica donde el usuario pueda dibujar el diagrama de estados que desea. Esta interfaz debería tener las herramientas necesarias para especificar los estados y las transiciones entre ellos, junto con los símbolos que cada transición involucra. La realización de esta interfaz se evaluará según las dificultades que se encuentren en el desarrollo del proyecto y el tiempo disponible.

Metodologías

Se trabajará con el IDE Eclipse de Java. Se ocupará como referencia el código del programa JFLAP, un software en java para dibujar autómatas. Primero se explorarán los códigos de Logisim y JFLAP, para así determinar las clases a modificar y el impacto de los cambios que se quieren realizar. Luego, se entrará a una etapa iterativa de implementación y testing sucesivos.

Requerimientos

Requerimientos especificos del proyecto

Caso de Uso

Estos serían los pasos a seguir por un usuario al utilizar la nueva funcionalidad:

  1. En el menú project/proyecto, selecciona "Draw State Diagram"/"Definir Diagrama de Estados".

  2. Se abre una nueva ventana donde el usuario puede dibujar su diagrama de estados. Tiene herramientas para definir estados y transiciones. Las transiciones incluyen los strings de input y output. Es necesario que el diagrama cumpla varias condiciones para poder generar el circuito:

  • Los inputs y outputs sólo pueden ser de 1's, 0's y *'s.
  • Los largos de todos los inputs deben ser iguales, ídem para outputs.
  • No pueden haber dos transiciones provenientes del mismo estado con el mismo input.
  • Los inputs de las transiciones provenientes de un mismo estado deben cubrir todos los posibles inputs.
  1. Una vez que el usario termina de especificar las transiciones, aprieta el botón "Generate"/"Generar Circuito".

  2. El circuito aparece en el canvas principal de Logisim, con su parte combinacional y su registro.

Presentaciones de Avance

[Presentación 2] (https://github.com/franciscaconcha/ProyectoLogisim/wiki/Presentaci%C3%B3n-2:-Conversi%C3%B3n-de-Diagramas-de-Estado-a-Circuito-Secuencial)

[Presentación 3] (https://github.com/franciscaconcha/ProyectoLogisim/wiki/Presentaci%C3%B3n-3:-Conversi%C3%B3n-de-Diagramas-de-Estado-a-Circuito-Secuencial)

Video de Simulación

[Link a Youtube] (http://youtu.be/THr-fq_Y_OU)

Integrantes sub-grupo

Juan José Alegría

Camila Faúndez

Caterina Muñoz

Romina Romero

Francisca Concha