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

Paso 12: VM 3.0: diseño Modular

Por favor pago especial atención al diseño modular. Este es quizás el tema más grande solo en Verilog y también es quizá su característica más potente y útil.

Por ahora debería ser capaz de implementar funciones de simple lógica usando los operadores básicos de Verilog (| &,...) y a ejecutar correctamente en la placa de la FPGA. Si no estás absolutamente a esa etapa, por favor comience con VM 2.0.

En "VM: mi primer Verilog proyecto 2.0", introduje el concepto de "módulos" y "modular" código; Ahora hay unos cuantos matices de módulos que necesita saber para ser un dominio "diseño modular". Pero primero tenemos que hablar "¿Qué es el diseño Modular?

Si finalizado el ejercicio "hello_world", fueron introducidos a la palabra "módulo" del Verilog. Cada archivo Verilog de la fuente contiene una y sólo una definición de módulo. Entonces, ¿cómo podemos crear proyectos complejos que implican muchos módulos más pequeños? Vamos a tomar el ejemplo de la construcción de un contador de tiempo controlados circuito del LED. ¿Necesitamos en nuestro circuito para que un LED parpadee cada segundo si algún interruptor estaba una lógica uno y sólo un reloj de 50MHz?

Romper lo que tenemos en tres tipos: entradas, salidas y los componentes internos.

Entradas: fuentes de señal física como un oscilador ("reloj"), interruptores, botones, puertos de datos, etc....

Salidas: salidas de físicas que serán conducidos por el circuito como LEDs, puertos de datos, pantallas, etc....

Componentes internos: componentes que toman el estado de las entradas para generar una salida deseada; no todos estos tienen que ser conectados a los puertos de "nivel superior", pero finalmente todo debe "ruta".

Leer estas clasificaciones es de vital importancia que sabes las diferencias! Tenga en cuenta también, las palabras nuevas de vocabulario: "nivel superior" y "ruta".

Pensar en lo que podría significar estos términos... Formalmente, a definirlos en un minuto.

Comparan estos tres tipos de componentes de una ecuación algebraica, las entradas son las variables independientes, las salidas son las variables dependientes y los componentes internos representan la ecuación real. Recordando esta analogía le ayudará a decidir cuando se trabaja en proyectos de si un componente es un componente interno, entrada y salida.

En el caso del circuito de parpadeo de LED, aquí es lo que tenemos en un nivel muy alto:

Entradas: 50 MHz reloj, interruptor

Salidas: LED

Elementos internos: A 50 MHz a 1 Hz reloj divisor, una puerta y (porque el LED debe solamente encendido si tanto el reloj dividido y el interruptor de lógica uno)

¿Cómo, en un nivel muy alto (es decir, en su mayoría "cajas negras" para representar componentes en lugar de patrones de la puerta), bloque diagrama de este circuito? Recuerde que usted puede hacer un divisor de reloj por conectar una cantidad de D-Flip Flops (DFFs) juntos junto a algunos inversores.

Ver el esquema adjunto de la respuesta.

Reto: En realidad, tendríamos un botón físico que reiniciará todos los DFFs en el divisor del reloj. ¿Puede dibujar el origen y destino de un botón llamado "RST" en este diagrama de bloques?

Diagramas de bloques como este son el primer paso para ayudarle a que averiguar cómo escribir un programa de Verilog, como cada caja en el diagrama terminará como una instancia de un módulo de código. Aviso de que tenemos un gran bloque que contiene un número de bloques más pequeños; llamamos a esto el módulo de "top". El módulo de "top" es lo que se encarga de conectar todos los componentes internos del circuito para salidas y entradas físicas.

Dentro de este módulo superior particular son dos cosas: un divisor de reloj y una puerta y. Pero observe que el bloque divisor de reloj también contiene un número de bloques más pequeños (DFFs). NO tenemos que crear estos DFFs en nuestro módulo superior; podemos crear un módulo de divisor de reloj separada que contiene todos los DFFs y crear una instancia de ese divisor de reloj en nuestro módulo superior.

Como puede haber adivinado, también tenemos que hacer un módulo de facto que nos podemos crear una instancia de un número de veces en el divisor del reloj. Esto nos permite sólo definen el comportamiento de un D-Flip Flop una vez, luego crear una instancia de varias instancias de de facto. Todo lo que tenemos que hacer en nuestro Verilog código es conectarse cada instancia de la DFF los puertos apropiados (es decir, conectar sus entradas y salidas), pero más en la creación de instancias de módulo más adelante.

Nota: No intentar este proyecto LED parpadea el código todavía; hay unas cuantas cosas más que tenemos que cubrir.

El punto de este módulo es para exponerle a diseño modular; ¿ves por qué llamar estos tutoriales "módulos"? Esta idea debe arraigada en tu mente mientras continúas aprendiendo y utilizando Verilog.

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