{"id":898,"date":"2021-05-25T13:41:43","date_gmt":"2021-05-25T13:41:43","guid":{"rendered":"https:\/\/dsd.webs.upv.es\/?page_id=898"},"modified":"2021-05-25T13:43:18","modified_gmt":"2021-05-25T13:43:18","slug":"maquinas-con-salidas-decodificadas-en-los-estados","status":"publish","type":"page","link":"https:\/\/dsd.webs.upv.es\/?page_id=898","title":{"rendered":"M\u00e1quinas con salidas decodificadas en los estados"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Uno de los casos m\u00e1s usuales en los cuales es necesario hacer una codificaci\u00f3n especifica&nbsp; es aquel en el que las salidas est\u00e1n codificados en los estados, con lo cual eliminamos el circuito combinacional3, y por tanto tenemos las salidas libres de \u201cglitches\u00bb y con el menor retardo posible. Estas m\u00e1quinas son conocidas como m\u00e1quinas Medvedev (ver&nbsp;<strong>Ilustraci\u00f3n 5<\/strong>)<\/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_medvedev.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ilustraci\u00f3n 5<\/strong>. Modelo Medvedev<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evidentemente es una variante del modelo MOORE con la particularidad de tener una codificaci\u00f3n en la cual algunas de las variables (bits) de estado asumen el valor de las salidas en cada uno de los estados. El precio de esta codificaci\u00f3n especial es la necesidad, en la mayor\u00eda de los casos, de un mayor n\u00famero de bits (flip-flops) que en una codificaci\u00f3n de los estados secuencial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Veamos esto con el ejemplo del detector de secuencia. Vamos a utilizar el tipo de datos&nbsp;<em>reg<\/em>&nbsp;por cuanto es el \u00fanico que expl\u00edcitamente nos puede permitir expresar esta codificaci\u00f3n de las salidas en los estados.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:verilog decode:true \">module medvedev (RELOJ, RESET_A, SALIDA,  ENTRADA);\n    input RELOJ,ENTRADA,RESET_A;\n    output SALIDA;\nparameter [2:0]  Q1=4'H0, Q2=4'H4, Q3=4'H2,Q4=4'H1 ;\nreg [2:0]  ESTADO, ESTADO_PROX;\n\nalways @(ESTADO or ENTRADA) \/\/combinacional1\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=Q4; else ESTADO_PROX=Q1;\n    Q4 : if (!ENTRADA) ESTADO_PROX=Q2;else ESTADO_PROX=Q3; endcase\n\nalways @(posedge RELOJ or negedge RESET_A) \/\/secuencial2\nif (!RESET_A) ESTADO &lt;= Q1;\nelse ESTADO &lt;=  ESTADO_PROX ;\n\nassign SALIDA=ESTADO[0];\nendmodule<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 3<\/strong>. Descripci\u00f3n Verilog del detector de secuencia Medvedev.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Como puede observarse en el&nbsp;<strong>Ejemplo 3<\/strong>&nbsp;la salida esta codificada en el bit menos significativo de la se\u00f1al de estado, con lo cual no es necesaria ninguna circuiter\u00eda combinacional adicional.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4.2.1. Realizando una m\u00e1quina Medvedev<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><em>A continuaci\u00f3n en el siguiente v\u00eddeo ver\u00e1s c\u00f3mo se describe una FSM Medvedev.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"FSM Medvedev con Verilog |  | UPV\" width=\"960\" height=\"720\" src=\"https:\/\/www.youtube.com\/embed\/eiFYhtrCQf4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Uno de los casos m\u00e1s usuales en los cuales es necesario hacer una codificaci\u00f3n especifica&nbsp; es aquel en el que las salidas est\u00e1n codificados en los estados, con lo cual eliminamos el circuito combinacional3, y por tanto tenemos las salidas libres de \u201cglitches\u00bb y con el menor retardo posible. Estas m\u00e1quinas son conocidas como m\u00e1quinas Medvedev (ver&nbsp;Ilustraci\u00f3n 5) Ilustraci\u00f3n 5. Modelo Medvedev &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evidentemente es una variante del modelo MOORE con la particularidad de tener una codificaci\u00f3n en la cual algunas de las variables (bits) de estado asumen el valor de las salidas en cada uno de los estados. El precio de esta codificaci\u00f3n especial es la necesidad, en la mayor\u00eda de los casos, de un mayor n\u00famero de bits (flip-flops) que en una codificaci\u00f3n de los estados secuencial. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Veamos esto con el ejemplo del detector de secuencia. Vamos a utilizar el tipo de datos&nbsp;reg&nbsp;por cuanto es el \u00fanico que expl\u00edcitamente nos puede permitir expresar esta codificaci\u00f3n de las salidas en los estados. Ejemplo 3. Descripci\u00f3n Verilog del detector de secuencia Medvedev. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Como puede observarse en el&nbsp;Ejemplo 3&nbsp;la salida esta codificada en el bit menos significativo de la se\u00f1al de estado, con lo cual no es necesaria ninguna circuiter\u00eda combinacional adicional. 4.2.1. Realizando una m\u00e1quina Medvedev A continuaci\u00f3n en el siguiente v\u00eddeo ver\u00e1s c\u00f3mo se describe una FSM Medvedev.<\/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-898","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\/898","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=898"}],"version-history":[{"count":3,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages\/898\/revisions"}],"predecessor-version":[{"id":902,"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=\/wp\/v2\/pages\/898\/revisions\/902"}],"wp:attachment":[{"href":"https:\/\/dsd.webs.upv.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}