{"id":248,"date":"2020-03-11T20:57:02","date_gmt":"2020-03-11T20:57:02","guid":{"rendered":"https:\/\/labsland.com\/blog\/es\/?p=248"},"modified":"2020-03-29T17:43:01","modified_gmt":"2020-03-29T17:43:01","slug":"como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga","status":"publish","type":"post","link":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/","title":{"rendered":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA"},"content":{"rendered":"\n<p>El laboratorio <a href=\"https:\/\/labsland.com\/labs\/fpga-llstd1\">LabsLand FPGA<\/a> permite experimentar con lenguajes de descripci\u00f3n de hardware, como VHDL o Verilog, de forma muy sencilla. Es posible aplicarlo al momento a hardware real, y puede empezarse muy r\u00e1pidamente, sin necesidad de ning\u00fan equipamiento ni instalaci\u00f3n m\u00e1s all\u00e1 de un navegador com\u00fan de Internet. <\/p>\n\n\n\n<p>Muchas veces, para comenzar, el profesor o el estudiante querr\u00e1 adaptar pr\u00e1cticas VHDL que ya tiene dise\u00f1adas para tarjetas FPGA espec\u00edficas, o procedentes de fuentes diversas. Esto en general resulta muy sencillo, siempre que los componentes hardware o perif\u00e9ricos  involucrados en la pr\u00e1ctica original est\u00e9n soportados por <a href=\"https:\/\/labsland.com\">LabsLand<\/a>, y siempre que se tengan unas pocas cosas en cuenta. En este art\u00edculo explicamos c\u00f3mo hacerlo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El proceso cl\u00e1sico para aprender VHDL o Verilog<\/h2>\n\n\n\n<p>Para aprender lenguajes de descripci\u00f3n de hardware, como VHDL o Verilog, normalmente el estudiante tendr\u00e1 que comprar o tener acceso a una placa FPGA educativa de alg\u00fan fabricante. Por ejemplo, las placas <a href=\"https:\/\/www.terasic.com.tw\/cgi-bin\/page\/archive.pl?Language=English&amp;No=502\">Altera DE2-115<\/a> de Terasic, Altera DE1-SoC (con FPGAs de Altera), o la <a href=\"https:\/\/www.xilinx.com\/products\/boards-and-kits\/1-54wqge.html\">Digilent Basys-3 Artix-7<\/a> (con FPGA de <a href=\"https:\/\/xilinx.com\">Xilinx<\/a>). Despu\u00e9s, si quiere ser capaz de utilizarla con su propio ordenador, tendr\u00e1 que instalar las diversas herramientas del fabricante. En el caso de las placas Altera, por ejemplo, normalmente instalar\u00eda versiones de <a href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/software\/programmable\/quartus-prime\/overview.html\">Quartus<\/a>, mientras que en el caso de Basys-3 por ejemplo, instalar\u00eda <a href=\"https:\/\/www.xilinx.com\/products\/design-tools\/vivado.html\">Vivado<\/a> de Xilinx. Estas herramientas son muy completas, pero al mismo tiempo muy complejas. En ocasiones requieren licencias, y casi invariablemente tienen notables requsitos de hardware. No es raro que sobrepasen los 15-20 gigabytes de disco, ni que no est\u00e9n disponibles en ciertos sistemas operativos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algunas ventajas del laboratorio LabsLand FPGA<\/h2>\n\n\n\n<p>El laboratorio remoto de LabsLand FPGA aporta varias ventajas. La m\u00e1s evidente, por supuesto, es que el alumno no tendr\u00e1 restricciones de lugar ni de momento. No tendr\u00e1 ya que acudir a un laboratorio s\u00f3lo abierto a ciertas horas, ni requerir\u00e1 a alguien que supervise dicho laboratorio. Podr\u00e1 practicar con FPGAs reales cuando y d\u00f3nde quiera. Muchas veces no sustituir\u00e1 de esta forma al laboratorio presencial tradicional, sino que simplemente lo complementar\u00e1, usando ambas herramientas para obtener una educaci\u00f3n pr\u00e1ctica de calidad de forma m\u00e1s efectiva.<\/p>\n\n\n\n<p>Otra de las grandes ventajas es que el proceso de aprendizaje de FPGAs y VHDL o Verilog pasa a ser potencialmente mucho m\u00e1s sencillo. El estudiante no necesita adquirir ya una FPGA, o esperar a que su universidad le preste una. No tiene que esperar a recibirlo. No necesitar\u00e1 instalar un software de fabricante complicado, que muchas veces su ordenador personal no podr\u00e1 soportar; o para el que no dispondr\u00e1 de licencias. En vez de eso, podr\u00e1 dise\u00f1ar su l\u00f3gica y probarla en una FPGA real en cuesti\u00f3n de minutos. Utilizando simplemente una plataforma web, sin ninguna instalaci\u00f3n, y siendo el hardware remoto, pero absolutamente real. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Utilizando un archivo de restricciones (e.g. QSF) prefijado<\/h2>\n\n\n\n<p>Una de las peculiaridades del laboratorio LabsLand FPGA es que en vez de forzar al estudiante a definir un archivo de restricciones (tal como los <a href=\"https:\/\/www.intel.com\/content\/dam\/www\/programmable\/us\/en\/pdfs\/literature\/manual\/mnl_qsf_reference.pdf\">QSF<\/a> de Altera), utiliza un archivo de restricciones prefijado. El laboratorio LabsLand FPGA cuenta con diversos perif\u00e9ricos de entrada \/ salida, y no est\u00e1 pensado para que el hardware en s\u00ed se modifique. Por eso, este enfoque tiene sentido. Esto implica, sin embargo, que el estudiante deber\u00e1 tener en cuenta en sus dise\u00f1os qu\u00e9 hardware est\u00e1 disponible y c\u00f3mo se llaman y declaran en el archivo de restricciones las diferentes se\u00f1ales.<\/p>\n\n\n\n<p>En las diversas configuraciones del laboratorio, el archivo de restricciones a utilizar est\u00e1 siempre disponible en el apartado de <strong>Documentaci\u00f3n<\/strong>, en la esquina inferior izquierda, accesible desde el propio IDE. Lo mostramos en la imagen siguiente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"671\" height=\"434\" src=\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/documentacion.png\" alt=\"\" class=\"wp-image-250\"\/><\/figure>\n\n\n\n<p>Este archivo de restricciones, al igual que siempre, define las correspondencias entre las se\u00f1ales (y sus nombres) con los pines f\u00edsicos de la placa FPGA. Aqu\u00ed se definen, por ejemplo, qu\u00e9 nombres reciben los LEDs o los interruptores, y a qu\u00e9 pines f\u00edsicos est\u00e1n conectados. <\/p>\n\n\n\n<p>La mayor parte de placas FPGA educativas, como la Altera DE2-115 o la DE1-SoC o la Basys 3, por ejemplo, disponen de LEDs. T\u00edpicamente, un nombre con el que en nuestro archivo de restricciones se declaran las se\u00f1ales correspondientes a los LEDs, por ejemplo, ser\u00e1 el vector G_LED de tipo std_logic_vector. La \u00abG\u00bb proviene de \u00abgen\u00e9rico\u00bb, ya que tendemos a utilizar el mismo nombre para diversas placas diferentes que incluyan LED, por uniformidad.<\/p>\n\n\n\n<p>Otro ejemplo son los interruptores, que normalmente ser\u00e1n V_SW de tipo std_logic_vector. En este caso la V proviene de \u00abvirtual\u00bb, para enfatizar el hecho de que no se trata normalmente de los interruptores f\u00edsicos de los que varias placas disponen, sino de una abstracci\u00f3n: interruptores virtuales controlables mediante la interfaz web, pero que se reciben por las entradas GPIO reales de la placa como si fueran interruptores normales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Adaptando las pr\u00e1cticas y c\u00f3digos pre-existentes<\/h2>\n\n\n\n<p>Los c\u00f3digos VHDL o Verilog que puedan encontrarse en diferentes sitios, tales como en los diferentes manuales de los fabricantes, o en repositorios de c\u00f3digo abierto, tendr\u00e1n normalmente una entidad principal que utilizar\u00e1 un nombres no particularmente est\u00e1ndar. Por ejemplo, una pr\u00e1ctica sobre una M\u00e1quina de Estados Finitos probablemente tenga como entrada un reloj y un interruptor de reset, y quien desarrolle el c\u00f3digo original probablemente haya declarado esas entradas con cualquier tipo de nombre. Por ejemplo, \u00abclk\u00bb para el reloj, o \u00abrst\u00bb para el reset. Pero lo mismo puede haber utilizado \u00abclk50mhz\u00bb, o \u00abreset\u00bb. Si se tratase de una pr\u00e1ctica presencial tradicional con el software est\u00e1ndar de los fabricantes, se esperar\u00eda que la persona que quisiese probar este c\u00f3digo crease un archivo de restricciones adecuado a estas entradas y con estos nombres para que el c\u00f3digo funcionase.<\/p>\n\n\n\n<p>En el caso de LabsLand el archivo de restricciones es fijo. Tiene la ventaja de que por tanto, no ser\u00e1 necesario crearlo. Tiene la desventaja de que los nombres tendr\u00e1n que corresponderse. Por tanto, para que el c\u00f3digo externo funcione, se deber\u00e1n cambiar los nombres, o los tipos en su caso, de las se\u00f1ales de la entidad principal para que se correspondan con las de LabsLand. Esto no suele resultar complicado, ya que s\u00f3lo es necesario para la entidad principal, y suele ser sencillo incluso utilizando el \u00abbuscar y remplazar\u00bb autom\u00e1tico utilizando CTRL+F en el editor web online. Normalmente, el tiempo que lleva adaptar el c\u00f3digo es menor al tiempo que llevar\u00eda crear un archivo de restricciones adecuado. Pero s\u00ed que es necesario tener cierto cuidado.<\/p>\n\n\n\n<p>En la imagen siguiente se muestra como ejemplo el diagrama de una de las FPGA gen\u00e9ricas disponibles en LabsLand, y los nombres de las entradas y salidas que est\u00e1n definidas en el archivo de restricciones m\u00e1s frecuente. El archivo completo y espec\u00edfico est\u00e1 tambi\u00e9n disponible en cada laboratorio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/fpga-llstd1-vhdl.ide.labsland.com\/static\/img\/llstd_diagram.png\" alt=\"\"\/><figcaption>Diagrama de la FPGA gen\u00e9rica tipo LL_STD_1<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplo con m\u00e1quina de estados finitos<\/h2>\n\n\n\n<p>Vamos a ilustrar esto con un ejemplo relativo a una m\u00e1quina de estados finitos. Imaginemos que hemos encontrado en un manual cualquiera de un fabricante un ejemplo interesante de FSM, y que queremos probarlo en la placa Altera DE-1 utilizando LabsLand FPGA.<\/p>\n\n\n\n<p>Observamos, por ejemplo, que en la entidad principal del c\u00f3digo inicial existen las siguientes se\u00f1ales de entrada:<\/p>\n\n\n\n<ul><li>clk (std_logic)<\/li><li>reset (std_logic)<\/li><li>start (std_logic)<\/li><\/ul>\n\n\n\n<p>Como hemos mencionado, normalmente tendr\u00edamos que crear un archivo de restricciones QSF que se correspondiese. En el caso de LabsLand FPGA el archivo de restricciones es fijo, por lo que simplemente tendremos que adaptar los nombres de las se\u00f1ales, y en ocasiones su tipo.<\/p>\n\n\n\n<p>Para ello en este caso, cambiaremos los nombres y se\u00f1ales por las siguientes:<\/p>\n\n\n\n<ul><li>Cambiaremos el nombre de la se\u00f1al de \u00abclk\u00bb por \u00abG_CLOCK_50\u00bb. En reloj en el laboratorio Altera DE-1 de LabsLand (y en la mayor\u00eda de laboratorios semejantes) se llama as\u00ed; y est\u00e1 conectado a un reloj de 50 MHz. <\/li><li>Para las se\u00f1ales de reset y de start queremos utilizar el primer y segundo interruptor de la placa, respectivamente. As\u00ed que cambiaremos esas se\u00f1ales por V_SW, que se corresponde con las entradas de LabsLand FPGA. Es un std_logic_vector, con lo que en vez de utilizar \u00abreset\u00bb, sustituiremos por \u00abV_SW(0)\u00bb, y en vez de \u00abstart\u00bb, utilizaremos \u00abV_SW(1)\u00bb. De este modo, cuando probemos el c\u00f3digo, s\u00f3lo tendremos que utilizar el interruptor primero y segundo de la interfaz para que funcione todo de la forma esperada.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-gallery columns-2 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"350\" src=\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Screenshot-2020-03-11-18.47.53.png\" alt=\"\" data-id=\"253\" data-link=\"https:\/\/labsland.com\/blog\/es\/?attachment_id=253\" class=\"wp-image-253\"\/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1032\" height=\"304\" src=\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Screenshot-2020-03-11-18.49.13.png\" alt=\"\" data-id=\"254\" data-link=\"https:\/\/labsland.com\/blog\/es\/?attachment_id=254\" class=\"wp-image-254\"\/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Ejemplo de declaraciones de entidad principal antes de adaptar y despu\u00e9s.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusiones<\/h2>\n\n\n\n<p>Como puede verse, es relativamente sencillo adaptar cualquier c\u00f3digo VHDL o Verilog, siempre, claro, que el hardware soportado por los laboratorios sea el suficiente. Basta con adaptar las se\u00f1ales de la entidad principal a las se\u00f1ales predefinidas. En cualquier caso, si est\u00e1s leyendo estas instrucciones y tuvieses cualquier duda o dificultad adaptando tu c\u00f3digo o tus pr\u00e1cticas, \u00a1no dudes en contactar con nosotros!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El laboratorio LabsLand FPGA permite experimentar con lenguajes de descripci\u00f3n de hardware, como VHDL o Verilog, de forma muy sencilla. Es posible aplicarlo al momento a hardware real, y puede empezarse muy r\u00e1pidamente, sin necesidad de ning\u00fan equipamiento ni instalaci\u00f3n m\u00e1s all\u00e1 de un navegador com\u00fan de Internet. Muchas veces, para comenzar, el profesor o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":288,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[]},"categories":[111,53,3],"tags":[50,29,4,113,114,8,112],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand\" \/>\n<meta property=\"og:description\" content=\"El laboratorio LabsLand FPGA permite experimentar con lenguajes de descripci\u00f3n de hardware, como VHDL o Verilog, de forma muy sencilla. Es posible aplicarlo al momento a hardware real, y puede empezarse muy r\u00e1pidamente, sin necesidad de ning\u00fan equipamiento ni instalaci\u00f3n m\u00e1s all\u00e1 de un navegador com\u00fan de Internet. Muchas veces, para comenzar, el profesor o [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog de LabsLand\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/LabsLand\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-11T20:57:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-29T17:43:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1175\" \/>\n\t<meta property=\"og:image:height\" content=\"722\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Luis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@labslandes\" \/>\n<meta name=\"twitter:site\" content=\"@labslandes\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\"},\"author\":{\"name\":\"Luis\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/c620efcd93e38661a9b4c9f459e04906\"},\"headline\":\"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA\",\"datePublished\":\"2020-03-11T20:57:02+00:00\",\"dateModified\":\"2020-03-29T17:43:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\"},\"wordCount\":1563,\"publisher\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png\",\"keywords\":[\"actividad\",\"altera\",\"fpga\",\"pr\u00e1cticas\",\"verilog\",\"vhdl\",\"xilinx\"],\"articleSection\":[\"Documentaci\u00f3n y gu\u00edas\",\"Laboratorios\",\"Labsland\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\",\"url\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\",\"name\":\"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand\",\"isPartOf\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png\",\"datePublished\":\"2020-03-11T20:57:02+00:00\",\"dateModified\":\"2020-03-29T17:43:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage\",\"url\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png\",\"contentUrl\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png\",\"width\":1175,\"height\":722},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/labsland.com\/blog\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#website\",\"url\":\"https:\/\/labsland.com\/blog\/es\/\",\"name\":\"Blog de LabsLand\",\"description\":\"Blog de LabsLand\",\"publisher\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/labsland.com\/blog\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#organization\",\"name\":\"LabsLand\",\"url\":\"https:\/\/labsland.com\/blog\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2019\/04\/logo_white_long.png\",\"contentUrl\":\"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2019\/04\/logo_white_long.png\",\"width\":2434,\"height\":700,\"caption\":\"LabsLand\"},\"image\":{\"@id\":\"https:\/\/labsland.com\/blog\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/LabsLand\/\",\"https:\/\/twitter.com\/labslandes\",\"https:\/\/www.linkedin.com\/company\/labsland\",\"https:\/\/www.youtube.com\/channel\/UCWGMa_53uFKfHFS6Gpm7lgQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/c620efcd93e38661a9b4c9f459e04906\",\"name\":\"Luis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9ee6d6696bf8fbd0377acf4bab445d59?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9ee6d6696bf8fbd0377acf4bab445d59?s=96&d=mm&r=g\",\"caption\":\"Luis\"},\"description\":\"Luis Rodr\u00edguez Gil is CTO of LabsLand and one of its co-founders. He has been taking part for over 8 years in remote labs research. Now he works in LabsLand to ensure that this innovative technology reaches its full potential for education.\",\"url\":\"https:\/\/labsland.com\/blog\/es\/author\/lrg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand","og_description":"El laboratorio LabsLand FPGA permite experimentar con lenguajes de descripci\u00f3n de hardware, como VHDL o Verilog, de forma muy sencilla. Es posible aplicarlo al momento a hardware real, y puede empezarse muy r\u00e1pidamente, sin necesidad de ning\u00fan equipamiento ni instalaci\u00f3n m\u00e1s all\u00e1 de un navegador com\u00fan de Internet. Muchas veces, para comenzar, el profesor o [&hellip;]","og_url":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/","og_site_name":"Blog de LabsLand","article_publisher":"https:\/\/www.facebook.com\/LabsLand\/","article_published_time":"2020-03-11T20:57:02+00:00","article_modified_time":"2020-03-29T17:43:01+00:00","og_image":[{"width":1175,"height":722,"url":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png","type":"image\/png"}],"author":"Luis","twitter_card":"summary_large_image","twitter_creator":"@labslandes","twitter_site":"@labslandes","twitter_misc":{"Escrito por":"Luis","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#article","isPartOf":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/"},"author":{"name":"Luis","@id":"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/c620efcd93e38661a9b4c9f459e04906"},"headline":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA","datePublished":"2020-03-11T20:57:02+00:00","dateModified":"2020-03-29T17:43:01+00:00","mainEntityOfPage":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/"},"wordCount":1563,"publisher":{"@id":"https:\/\/labsland.com\/blog\/es\/#organization"},"image":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage"},"thumbnailUrl":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png","keywords":["actividad","altera","fpga","pr\u00e1cticas","verilog","vhdl","xilinx"],"articleSection":["Documentaci\u00f3n y gu\u00edas","Laboratorios","Labsland"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/","url":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/","name":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA - Blog de LabsLand","isPartOf":{"@id":"https:\/\/labsland.com\/blog\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage"},"image":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage"},"thumbnailUrl":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png","datePublished":"2020-03-11T20:57:02+00:00","dateModified":"2020-03-29T17:43:01+00:00","breadcrumb":{"@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#primaryimage","url":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png","contentUrl":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2020\/03\/Diagrama-LL-STD-1-5.png","width":1175,"height":722},{"@type":"BreadcrumbList","@id":"https:\/\/labsland.com\/blog\/es\/2020\/03\/11\/como-adaptar-codigos-vhdl-o-verilog-y-practicas-externas-al-laboratorio-labsland-fpga\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/labsland.com\/blog\/es\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo adaptar c\u00f3digos VHDL o Verilog y pr\u00e1cticas externas al laboratorio LabsLand FPGA"}]},{"@type":"WebSite","@id":"https:\/\/labsland.com\/blog\/es\/#website","url":"https:\/\/labsland.com\/blog\/es\/","name":"Blog de LabsLand","description":"Blog de LabsLand","publisher":{"@id":"https:\/\/labsland.com\/blog\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/labsland.com\/blog\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/labsland.com\/blog\/es\/#organization","name":"LabsLand","url":"https:\/\/labsland.com\/blog\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/labsland.com\/blog\/es\/#\/schema\/logo\/image\/","url":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2019\/04\/logo_white_long.png","contentUrl":"https:\/\/labsland.com\/blog\/es\/wp-content\/uploads\/sites\/3\/2019\/04\/logo_white_long.png","width":2434,"height":700,"caption":"LabsLand"},"image":{"@id":"https:\/\/labsland.com\/blog\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/LabsLand\/","https:\/\/twitter.com\/labslandes","https:\/\/www.linkedin.com\/company\/labsland","https:\/\/www.youtube.com\/channel\/UCWGMa_53uFKfHFS6Gpm7lgQ"]},{"@type":"Person","@id":"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/c620efcd93e38661a9b4c9f459e04906","name":"Luis","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/labsland.com\/blog\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9ee6d6696bf8fbd0377acf4bab445d59?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9ee6d6696bf8fbd0377acf4bab445d59?s=96&d=mm&r=g","caption":"Luis"},"description":"Luis Rodr\u00edguez Gil is CTO of LabsLand and one of its co-founders. He has been taking part for over 8 years in remote labs research. Now he works in LabsLand to ensure that this innovative technology reaches its full potential for education.","url":"https:\/\/labsland.com\/blog\/es\/author\/lrg\/"}]}},"_links":{"self":[{"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/posts\/248"}],"collection":[{"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=248"}],"version-history":[{"count":7,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/posts\/248\/revisions"}],"predecessor-version":[{"id":266,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/posts\/248\/revisions\/266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/media\/288"}],"wp:attachment":[{"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labsland.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}