{"id":905,"date":"2021-05-25T14:05:53","date_gmt":"2021-05-25T14:05:53","guid":{"rendered":"https:\/\/dsd.webs.upv.es\/?page_id=905"},"modified":"2025-08-06T16:44:54","modified_gmt":"2025-08-06T16:44:54","slug":"maquinas-con-salidas-registradas","status":"publish","type":"page","link":"https:\/\/dsd.webs.upv.es\/?page_id=905","title":{"rendered":"M\u00e1quinas con salidas registradas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Con el fin de tener unas salidas libres de \u201cglitches\u201d y lo m\u00e1s r\u00e1pidas posibles con respecto al flanco activo de reloj, suelen necesitarse m\u00e1quinas de estados finitos con las salidas registradas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En t\u00e9rminos generales registrar una salida implica directamente retrasar el funcionamiento de dichas salidas un ciclo de reloj y as\u00ed veremos que ser\u00e1 absolutamente cierto e inevitable en las M\u00e1quinas Mealy; pero no as\u00ed en las m\u00e1quinas Moore como ahora veremos<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pautas generales<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Veamos que ocurre con los modelos b\u00e1sicos de m\u00e1quinas de estados (FSM) &nbsp;cuando queremos registrar las salidas:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.&nbsp;&nbsp;&nbsp;&nbsp; En realidad el modelo Medvedev visto anteriormente puede contemplarse como una m\u00e1quina con salidas registradas. No requiere transformaci\u00f3n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.&nbsp;&nbsp;&nbsp;&nbsp; Las m\u00e1quinas Mealy son f\u00e1cilmente transformables, aunque esta transformaci\u00f3n va a tener el coste de retrasar un ciclo las salidas. El modelo funcional quedar\u00eda de la siguiente forma:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/poliformat.upv.es\/access\/content\/group\/GRA_12412_2017\/Ocultos\/Imagenes\/Diagrama%20bloques_mealy_registrado.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Figura&nbsp;<strong>Ilustraci\u00f3n 6<\/strong>&nbsp;.Modelo Mealy registrado<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evidentemente podr\u00edamos adoptar un estilo de descripci\u00f3n con cuatro procesos que modelizaran cada uno de los bloques del modelo funcional. Sin embargo podemos como antes reunir los dos circuitos secuenciales en uno solo, con lo cual tendr\u00edamos \u00fanicamente tres procesos como podemos ver en el&nbsp;<strong>Ejemplo 6<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: systemverilog; title: ; notranslate\" title=\"\">\nmodule mealy_reg (RELOJ, RESET_A, SALIDA_REG,  ENTRADA);\n    input RELOJ,ENTRADA,RESET_A;\n    output SALIDA;\nparameter &#x5B;1:0] \/*synopsys enum hola*\/ Q1=2&#039;H0, Q2=2&#039;H1, Q3=2&#039;H2 ;\nreg SALIDA,SALIDA_REG;\nreg &#x5B;1:0] \/*synopsys enum hola*\/ ESTADO, ESTADO_PROX; \nalways @(ESTADO or ENTRADA) \ncase (ESTADO) \/\/synopsys full_case\n    Q1 : if (!ENTRADA) ESTADO_PROX=Q2;else ESTADO_PROX=Q1;\n    Q2 : if (ENTRADA) ESTADO_PROX=Q3; else ESTADO_PROX=Q2;\n    Q3 : if (!ENTRADA) ESTADO_PROX=Q2;else ESTADO_PROX=Q1;\nendcase\nalways @(posedge RELOJ or negedge RESET_A)\nif (!RESET_A) begin\n    ESTADO &amp;lt;= Q1;\n    SALIDA_REG&amp;lt;=1&#039;b0;\n    end \nelse    begin\n    ESTADO&amp;lt;=ESTADO_PROX ;\n    SALIDA_REG&amp;lt;=SALIDA;\n    end\n always @(ESTADO or ENTRADA) \ncase (ESTADO) \n    Q1 : SALIDA=1&#039;b0;\n    Q2 : SALIDA=1&#039;b0;\n    Q3 : if (!ENTRADA) SALIDA=1&#039;b1;else SALIDA=1&#039;b0;\n      default:  SALIDA=1&#039;bx;\nendcase\nendmodule\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 6<\/strong>: M\u00e1quina Mealy registrada con tres procesos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con el fin de tener unas salidas libres de \u201cglitches\u201d y lo m\u00e1s r\u00e1pidas posibles con respecto al flanco activo de reloj, suelen necesitarse m\u00e1quinas de estados finitos con las salidas registradas. En t\u00e9rminos generales registrar una salida implica directamente retrasar el funcionamiento de dichas salidas un ciclo de reloj y as\u00ed veremos que ser\u00e1 absolutamente cierto e inevitable en las M\u00e1quinas Mealy; pero no as\u00ed en las m\u00e1quinas Moore como ahora veremos Pautas generales Veamos que ocurre con los modelos b\u00e1sicos de m\u00e1quinas de estados (FSM) &nbsp;cuando queremos registrar las salidas: 1.&nbsp;&nbsp;&nbsp;&nbsp; En realidad el modelo Medvedev visto anteriormente puede contemplarse como una m\u00e1quina con salidas registradas. No requiere transformaci\u00f3n 2.&nbsp;&nbsp;&nbsp;&nbsp; Las m\u00e1quinas Mealy son f\u00e1cilmente transformables, aunque esta transformaci\u00f3n va a tener el coste de retrasar un ciclo las salidas. El modelo funcional quedar\u00eda de la siguiente forma: Figura&nbsp;Ilustraci\u00f3n 6&nbsp;.Modelo Mealy registrado &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evidentemente podr\u00edamos adoptar un estilo de descripci\u00f3n con cuatro procesos que modelizaran cada uno de los bloques del modelo funcional. Sin embargo podemos como antes reunir los dos circuitos secuenciales en uno solo, con lo cual tendr\u00edamos \u00fanicamente tres procesos como podemos ver en el&nbsp;Ejemplo 6 Ejemplo 6: M\u00e1quina Mealy registrada con tres procesos.<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","ub_ctt_via":"","footnotes":""},"class_list":["post-905","page","type-page","status-publish","hentry"],"featured_image_src":null,"_links":{"self":[{"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages\/905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=905"}],"version-history":[{"count":3,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages\/905\/revisions"}],"predecessor-version":[{"id":1853,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages\/905\/revisions\/1853"}],"wp:attachment":[{"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}