Cómo utilizar Verilog y 3 Basys para hacer contador binario de 3 bits (5 / 11 paso)

Paso 5: Paso 5: crear el módulo superior

Siga el paso 4 para agregar un módulo superior. Entonces, necesitamos definir entradas y salidas que conectan con el ambiente externo. La única entrada es el reloj de 3 Basys. Hay tres tipos de salida, enable_Dx, cx y dp. El enable_Dx es el poder de cada dígito del display de 7 segmentos. Hay 4 total 3 Basys. Sin embargo, sólo necesitamos 3. El cx es la conexión de segmentos. En cada cifra, hay siete segmentos de ca a cg. La dp es el punto decimal en la pantalla. No necesitamos usar dp en el proyecto.

Entrada:

CLK / maestro reloj Basys 3

Salidas:

enable_D1, / / derecha dígito

enable_D2

enable_D3,

enable_D4, / / izquierda dígito

CA, cb, cc, cd, ce, cf, cg / / conexiones del segmento

DP / / punto decimal

También tenemos las siguientes variables para instanciar el divisor del reloj y controlar qué tan rápido el dígito es encendido y apagado. Todas ellas son variables de red.

clkout1; interno de señales para la salida de reloj dividida

clkout2; interno de señales para la salida de reloj dividida

clkOut; interno de señales para la salida de reloj dividida

Q0, Q1, Q2; interno de señales para la salida del contador

alambre de n, o, p; interno de señales para controlar el encendido / apagado de 3 dígitos

Luego, usamos la función nivel de gate control en y fuera de la unidad. La cifra es de ánodo común. El pin de la FPGA para el dígito está conectado como salida mientras que una constante de 3, 3V se suministra como entrada en el LED. Para encender la unidad, tenemos que conducir el perno bajo (activo bajo). Puede encontrar los detalles en el manual de referencia de 3 Basys. Nunca utilizamos la izquierda más dígitos enable_D4, así que asignamos al constante 1' b1. Luego, utilizamos la y y no función de puerta para hacer la cifra y basados en el clk generado a partir de clkdivider

asignar enable_D4 = 1' b1; Apague la izquierda el dígito que es D4

y U1 (n, clkout2, clkout1); Utilice la puerta y para encender y apagar los dígitos por lo sólo un dígito está en un momento

y U2 (o, clkout2, ~ clkout1); Utilice la puerta y para encender y apagar los dígitos por lo sólo un dígito está en un momento

y U3 (p, ~ clkout2, clkout1); Utilice la puerta y para encender y apagar los dígitos por lo sólo un dígito está en un momento

no (enable_D1, n); n = clkout2 & clkout1, enable_D1 es bajo (encendido) cuando es alta clkout2 y clkout1

no (enable_D2, o); o = clkout2 & ~ clkout1, enable_D2 es baja (encendido) cuando el clkouut2 es alto y clkcout1 bajo

no (enable_D3, p); p = ~ clkout2 & clkout1, enable_D3 es bajo (encendido) cuando es baja la clkout2 y clkout1 es alta

Después de eso, decidimos la lógica para el siete segmento en cada dígito. Igual que enable_Dx, cx es señal baja activa. Así que, para encender el segmento, tenemos que conducir la FPGA a la baja. Aquí están las tablas de verdad para el Qx (Q2, Q1, Q0) y ca-cg (ver tablas)

De la tabla de verdad, podemos tener la siguiente conclusión

BC y cc son siempre 0

CG es siempre 1

CA, cd, ce y cf siempre tienen la misma salida

valor de ca es evaluado por Qx

Por lo tanto, podemos tener la siguiente asignación. Para cb-cg, es bastante stragightforward. CA, usamos nido coniditional operador para evaluar la enable_Dx para decidir la salida de la ca. Si enable_D1 está activada, lo que significa la izquierda dígito (Q0) es, de la tabla de verdad, ca será Q0. De lo contrario, tenemos que evaluar la otra condición (enable_D2 está en). Si enable_D2 está activada, entonces ca es igual a Q2 y así sucesivamente.

¿asignar ca = (enable_D1 == 0)? ¿Q0: ((enable_D2==0)? ¿Q1: ((enable_D3==0)? Q2:1'b1)); Use el operador condicional

asignar cb = 1' b0; CB es siempre en

asignar cc = 1' b0; CC está siempre en

asignar cd = ca; salida de CD es igual que el ca

asignar ce = ca; salida de CE es igual que el ca

asignar cf = ca; salida de CF es igual que el ca

asignar cg = 1' b1; como sólo tenemos que tener cero o uno, así que cg es de todos los tiempos

asignar dp = 1' b1; Apagar el punto decimal

Finalmente, necesitamos crear una instancia del módulo de clkdivider y contador.

Puede encontrar el código con comentarios en el archivo de proyecto.

Artículos Relacionados

Cómo utilizar Verilog y 3 Basys para dejar de ver

Cómo utilizar Verilog y 3 Basys para dejar de ver

He realizado este proyecto para una clase en línea. El proyecto está escrito en Verilog. El generador de reloj, enable_sr (habilitar dígito) y módulos ssd (exhibición de segmento siete) fueron proporcionados. Mi tarea era escribir los módulos de cont
Cómo utilizar el grabador del Laser para hacer Morris de un hombre 9 (un juego de mesa medieval)

Cómo utilizar el grabador del Laser para hacer Morris de un hombre 9 (un juego de mesa medieval)

cómo utilizar el cortador del Laser para hacer Morris de un juego de mesa medieval nueve hombreLa hice en Techshop.Esto va a ser muy corto y sencillo, estoy Armando una serie de juegos medievales para reinactors y aficionados a la historia, que prese
Cómo utilizar el grabador del Laser para hacer un juego de zorro y gansos (un juego de mesa medieval)

Cómo utilizar el grabador del Laser para hacer un juego de zorro y gansos (un juego de mesa medieval)

cómo utilizar el cortador del Laser para hacer un juego de mesa medieval zorro y gansosLa hice en Techshop.Esto va a ser muy corto y sencillo, estoy Armando una serie de juegos medievales para rein-actores y aficionados a la historia, que presento es
Cómo utilizar el Top-O-Matic para hacer un cigarrillo

Cómo utilizar el Top-O-Matic para hacer un cigarrillo

¿Por qué utilizar un inyector?Usando una máquina de inyector de tabaco reduce el costo de fumar. Costo de tubos de filtro de cigarrillo entre $2-$5 por caja, que viene con suficientes tubos para hacer un cartón 's digno de cigarrillos. Tabaco los pre
Cómo utilizar un zumbador piezoeléctrico para hacer ruido con Arduino

Cómo utilizar un zumbador piezoeléctrico para hacer ruido con Arduino

Si tienes un Arduino, se corra en un proyecto que requiere la Junta para hacer sonidos. Una de las maneras más baratas y más fácil de lograr esto es utilizar un zumbador piezoeléctrico.Zumbadores piezoeléctricos son extremadamente simples de alambre
Cómo volver a utilizar un calendario de Adviento para hacer chocolates más!

Cómo volver a utilizar un calendario de Adviento para hacer chocolates más!

Helloooo! Esta es una guía simple a una forma cobarde de usar viejos calendarios de Adviento. Necesitarás:1. acerca de 180-250 gramos de chocolate Cadbury es mejor utilizar (DUH!).2. un viejo calendario de Adviento (cartón).Paso 1: Derretir el chocol
Cómo utilizar: barato Arduino Mp3 Shield para hacer Robot hablar

Cómo utilizar: barato Arduino Mp3 Shield para hacer Robot hablar

Este video va a mostrarle cómo dar tu robot una voz para tan barato como sea posible. Por alguna razón he tenido problemas, no sólo encontrar un escudo mp3 barato, sino entender la documentación así. Pensé en que compartir mi código aquí para salvar
Fácil para hacer Bat colgantes

Fácil para hacer Bat colgantes

te amo joyerías bat y buho. Siempre he pensado de hacer un colgante de buho yo mismo, pero no han hecho todavía.de todos modos, me surgió esta idea de hacer un colgante de murciélago usando papeles gruesos y no podía esperar para probarlo, además de
Utiliza tu iPod para hacer trampa en cualquier prueba!

Utiliza tu iPod para hacer trampa en cualquier prueba!

Estamos en el año 2015, hay un montón de smartwatches en el mercado. Pero ¿qué pasa si sólo podría utilizar tu iPod nano 6g para hacer trampa en cualquier prueba de? ¡ Descubre cómo!---Atención: no aprobar hacer trampas de cualquier tipo, sino porque
Cómo utilizar MDX-20 para hacer los moldes

Cómo utilizar MDX-20 para hacer los moldes

Hola todo el mundo,Esta es una recopilacion de consejos básicos e instrucciones sobre cómo utilizar MDX-20. Aunque es una vieja máquina en desuso pero todavía tiene muchas capacidades, una de ellas es hacer moldes.¿Cómo funciona la máquina de moldeo?
Utilizar sensores y actuadores para hacer un laberinto laberinto mecánico

Utilizar sensores y actuadores para hacer un laberinto laberinto mecánico

Un acelerómetro de tres ejes captura la inclinación de la crear Kinoma. Kinoma crear procesa los datos de la inclinación en el software para controlar la rotación de dos servomotores conectados al laberinto. El resultado es intuitivo movimiento del l
Utilizar RPi, Azure y Cortana para automatizar su hogar!

Utilizar RPi, Azure y Cortana para automatizar su hogar!

IntroducciónHay nueva tecnología alrededor de nosotros y solamente más que todos los días. Los micro controladores son cada vez más rápido, son teléfonos que más inteligente, y la nube es cada vez más fuerte. Con esta nueva tecnología todos se pregun
Cómo utilizar Sugru para hacer pared de goma ARO

Cómo utilizar Sugru para hacer pared de goma ARO

Siga los pasos para hacer pared de goma ARO de SugruPaso 1: Lo que necesitaVer imagenPaso 2: Aplicar el desmoldante Podemos utilizar jabónAplicar una gran cantidad de jabón en el molde baseAplicar el jabón sólo en la zona del canalPaso 3: Añadir el r
Cómo utilizar el rodillo de losa y bajar moldes para hacer un tazón de fuente

Cómo utilizar el rodillo de losa y bajar moldes para hacer un tazón de fuente

esto le mostrará cómo utilizar mi otros dos instructables (rodillo de la losa y el molde de la depresión) para mano-construye un tazón de fuente.Paso 1: Materiales necesarios Se necesita:Arcilla,Rodillo de la losa,Perno de balanceo,Molde de la depres