Aprender Verilog: Una breve serie de tutoriales sobre diseño de electrónica Digital con FPGAs y Verilog HDL (11 / 21 paso)

Paso 11: VM 2.0: Puerto de Verilog y tipos de cable

En el último ejemplo, se vio la siguiente declaración del módulo:

hola_mundo () módulo
interruptor de entrada [0]
interruptor de entrada [1],
salida de led
);

¿Qué significan entrada y salida en este contexto? Estos son identificadores que Dile al compilador qué tipo de "puerto" que se está creando. En Verilog se ocupará de los siguientes identificadores en la declaración del módulo:

entrada : un puerto de entrada, tipo "alambre" se asume. Un puerto de entrada no se puede asignar cualquier valor dentro del módulo.

salida : un puerto de salida, tipo "alambre" se asume. Un cable de salida puede asignarse un valor utilizando una instrucción de asignación, o tener su valor determinado indirectamente por una instancia de otro módulo. Un cable de salida no explícitamente se puede asignar un valor en cualquier lógica condicional (por ejemplo, declaraciones de "if").

registro de salida : un puerto de salida de tipo "reg", abreviatura de "registro". Este tipo de puerto se puede dar un valor independiente de otras partes del circuito (por ejemplo, asignar una lógica "1") y mantener ese valor hasta que cambie. Si va a cambiar el valor de un puerto desde dentro de un bloque de "siempre" (un trozo de código que se ejecuta en cualquier cambio de sus parámetros) necesita utilizar un reg.

En definitiva, un alambre sirve como una forma de conector un punto a otro, como de una palabra verdadera fuente a una puerta AND y un reg puede crear su propia fuente va a algún destino.

Dentro de un módulo podemos crear los cables internos y reglas para usan dentro del módulo. Esto es útil cuando usted necesita para hacer la entrada de una instancia de un módulo igual a la salida de algún otro módulo instanciada. Ya que un cable no tiene su propio conductor puede hacer su fuente de la salida de un módulo y su destino la entrada de otro. Con esto en mente, ¿qué crees que declararía un alambre o reg para su uso dentro de un módulo?

my_wire de alambre ;
reg my_reg;

Tenga en cuenta que no tenemos que especificar si el alambre/reg es una entrada o salida de los cables internos y mas porque en orden para que pase correctamente en nuestro diseño finalmente daremos un origen y destino.

En Verilog podemos asignar un cable de salida igual a un reg interno o alambre. Esto nos permite cambiar el valor de una salida condicional ya que si cambiamos el reg también estamos cambiando la salida (Recuerde que está prohibido cambiar directamente el valor en una salida).
Aplicable a todos los puertos antes mencionados, los cables y mas son lo que llamamos autobuses o vectores (arrays). Podemos agrupar las señales similares mediante un bus. En el último ejemplo planteé la pregunta de "¿hay una manera de definir sólo 2 puertos para tres total entradas y salidas?" Usando un autobús podemos. En vez de declararlas "entrada switch0, switch1 entrada" podemos simplemente declarar "interruptor de entrada [1:0]". Esto crea un autobús de dos bits llamado "switch". Podemos referirnos a partes específicas del "interruptor" mediante el operador [] como en "switch [0]". Autobuses son muy útiles en Verilog ya que reduce la cantidad de código que tenemos que producir.

Declarar un autobús usando la siguiente sintaxis ("tipo" se refiere a la entrada, salida, alambre o reg):
tipo de < > [< máximo índice: < > min Índice >] < nombre de autobús >

Si usted declara un autobús dentro de un módulo, asegúrese de añadir un punto y coma al final. Si usted declara que un autobús en la declaración del módulo ser seguro coma delimitar las definiciones.

¿Qué implicaciones tiene un bus en el archivo UCF? Todos los componentes del bus le dará un nombre que comienza con el nombre común y es seguido por el índice en el autobús. Así "[1:0] interruptor" entrará en la UCF como dos entradas, "cambiar < 0 >" y "cambiar < 1 >". Recuerda usar los operadores de <> de la UCF.

En la foto es protoboard cables de puente; no necesita preocuparse acerca de los tableros de diseño FPGA más ya habrá construido en estímulos tales como interruptores.

Artículos Relacionados

Cómo reutilizar una lámpara fluorescente compacta muerto y obtener libre electrónica

Cómo reutilizar una lámpara fluorescente compacta muerto y obtener libre electrónica

cómo llegar a electrónica gratis este muerto "lámpara fluorescente compacta" hay tantos electrónica allíhay transistores, resistencias, transformador de audio, condensadores, diodos... etc.el objetivo de este proyecto fresco es reciclaje muerto
Cómo escribir una buena electrónica Instructable

Cómo escribir una buena electrónica Instructable

Este Instructable fue inspirado principalmente por mis aportes sobre en la clínica, que, si no han oído hablar de él, es un hilo del foro donde se puede ir a pedir ayuda a criticar sus proyectos. Por lo general ser voluntario ayudar con proyectos rel
Hacer una sudadera de protoboard (instantánea electrónica usable!) ¿

Hacer una sudadera de protoboard (instantánea electrónica usable!) ¿

Son vestibles electrónica el futuro? ¡Eso creo! Aquí es el proyecto de electrónica usable más rápido, más versátil, la sudadera de la protoboard.En su mayoría, wearables involucran hilo conductor para el cableado. Pero ese tipo de cosas atasca mi máq
12V-180kV: una batería generador Marx (e Introducción a la electrónica)

12V-180kV: una batería generador Marx (e Introducción a la electrónica)

Si estás leyendo este Instructable, una cosa es probablemente cierta: estás interesado en alto voltaje! Si es así, has venido al lugar correcto; Generadores de Marx puede satisfacer su sed de chispas, explosiones y emoción. Hice este generador Marx v
RC barco hecha de una taza de deli y reciclado de piezas del aeroplano de RC (con mod de bonus al final)

RC barco hecha de una taza de deli y reciclado de piezas del aeroplano de RC (con mod de bonus al final)

Este barco es un asequible, fácil de hacer remoto controlado barco hecha de una taza de deli de 36 o 24 onzas, una pequeña hélice, pegamento caliente, cinta adhesiva, un gran palo de paleta de helado/del arte, una pequeña caja de plástico y algunos e
Una breve historia del tiempo

Una breve historia del tiempo

"La gente no entiende a tiempo. Es no lo que crees que es. - La gente asume que el tiempo es una progresión estricta de causa a efecto... pero en realidad, desde una perspectiva no lineal, no subjetiva, es más como una bola grande de wibbly-wobbly...
Cómo dar una breve clase de presentación competente

Cómo dar una breve clase de presentación competente

este instructivo se compone de puntos con un montón de palabras fijadas a ellos. Sé que palabras pueden ser intimidantes, pero leyendo estas palabras particular le ayudará a evitar errores comunes al dar una presentación de clase. No importa qué tema
Una breve historia de viaje y algunas Ideas que puedan o puede no ayudar a que mantenga su cordura mientras tomar viajes con su descendencia

Una breve historia de viaje y algunas Ideas que puedan o puede no ayudar a que mantenga su cordura mientras tomar viajes con su descendencia

viaja, especialmente con los niños, puede sacar el demonio en casi todo el mundo. Encanta ver lugares nuevos y te encanta sus little tikes su rugrats, pinzas cortantes de su tobillo, su hijo prepubescent, púber adolescente con sus hormonas furiosas,
Una breve introducción a la síntesis

Una breve introducción a la síntesis

¿se ha preguntado como ven las ondas que salen de un sintetizador?  O ¿qué pasa con una forma de onda cuando se agrega la resonancia?Este video ofrece una breve descripción audiovisual de técnicas y terminología básica de la síntesis.  Todas las lect
Programa de una cadena de luces de Navidad a parpadear el código morse con Arduino y Snap circuitos

Programa de una cadena de luces de Navidad a parpadear el código morse con Arduino y Snap circuitos

esto es un proyecto de mi hijo Dylan (9) y pongo usando una placa de circuito de Arduino, un conjunto de broche de presión del circuito y una cadena de luces de Navidad.Lo que usted necesita:Un Arduino: Un Arduino es un equipo en una sola placa de ci
Diseño de joyería digital: Una moda Introducción a Inventor

Diseño de joyería digital: Una moda Introducción a Inventor

mayoría decente de las personas en este planeta, en un momento u otro, entraron en una joyería en busca de algún tipo de accesorio, ya sea para nosotros mismos, o eso especial alguien. Aunque los minoristas a menudo tienen una amplia selección de dis
Un alambre de laberinto con una electrónica giro

Un alambre de laberinto con una electrónica giro

aquí es un SIMPLE y realmente proyecto de diversión electrónica usted puede hacer en casa. No necesitas hacer un tablero de circuito impreso que lo hace todo mucho más fácil!Estoy seguro que has jugado "laberinto de alambre"... (también llamado
CÓMO HACER UNA BATERÍA ELECTRÓNICA. (no un dechado de MIDI) aka KIDU

CÓMO HACER UNA BATERÍA ELECTRÓNICA. (no un dechado de MIDI) aka KIDU

Este instructable va a sersobre la construcción de una batería electrónica (no un MIDI sampler.), utilizando un Arduino UNO R3.,similares a una V-DRUM. Es código denominado KIDU.(Kompact inteligente unidad tamborileo). Algunos de los artículos usados
Convertir una báscula de baño electrónica en una escala de envío para

Convertir una báscula de baño electrónica en una escala de envío para <>

,En mi pequeño negocio necesitaba peso medio para artículos grandes y cajas a escala de planta para el envío. En lugar de la manera de pagar demasiado por un modelo industrial, usé una báscula de baño digital. Me pareció estar lo suficientemente cerc