3 votos

Diseño basado en el estado frente a diseño sin estado (en verilog)

Recientemente, he estado llevando a cabo algunos diseños de nivel principiante a moderado, desde el inicio hasta la codificación HDL en verilog. He pensado que el diseño basado en FSM, ya sea Mealy o Moore es el única opción. Sin embargo, al traducir el diseño en verilog HDL, tuve muchos problemas. Muchas veces, el diseño no funcionaba como debía debido a problemas de sincronización. Además, me costó un buen esfuerzo de mecanografía.

A diferencia de este enfoque, me llevó bastante menos tiempo y esfuerzo seguir un enfoque sin estado para los mismos diseños, y , produjo resultados. Pero tal vez esto podría ser porque mis diseños no son demasiado grandes en esta etapa.

Entonces, ¿cómo se decide si se utiliza un modelo FSM basado en estados o un modelo sin estados en el diseño?

¿Existe algún patrón al seguir algún enfoque? ¿O tal vez algún grupo específico de problemas que deban resolverse únicamente con un enfoque basado en el estado?

Por diseño sin estado, me refiero a la creación / conexión de módulos ya diseñados, junto con algo más de lógica nueva. No se trata de una modelización estructural, sino de una combinación de modelización estructural y de comportamiento.

No estoy preguntando sobre los pros y los contras de Mealy vs Moore.

Gracias

6voto

Jonas Puntos 1764

Aunque un diseño se considere "sin estado" porque no hay una máquina de estado explícita, puedes estar codificando un tipo de mecanismo de estado sin llamarlo explícitamente así. Por ejemplo, se pueden utilizar banderas para indicar si una parte del código está ocupada o no. En tu ejemplo de "calculadora", puede que no tengas una máquina de estado, pero puedes tener una bandera que indique que los datos están disponibles y listos para ser procesados. Aunque esto no se llame máquina de estado, estás utilizando banderas u otras señales como mecanismo para asegurar que se realicen operaciones específicas en una determinada secuencia. Esencialmente estás haciendo una máquina de estado usando tus banderas.

Como resultado, una máquina de estado está bastante presente en la mayoría de las cosas. Una diseñada explícitamente es, en realidad, sólo una forma de que el programador detrás del teclado haga un seguimiento del proceso por el que pasa su sistema para asegurarse de que todo funciona como se espera. Cuando un sistema es más complicado, este es un mecanismo realmente útil porque sólo es posible hacer un seguimiento de tantas cosas a la vez. Si se trata de un diseño sencillo, puede que sólo sea necesario utilizar un par de banderas y acabar con ello. Todo depende de lo complicado que sea el problema.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X