Top Banner
CU13 PROYECTO CU13 DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. --PERÍODO. --INTERVALO DE TIEMPO.
44

PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

May 27, 2018

Download

Documents

truongdien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

PROYECTO CU13

DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. --PERÍODO. --INTERVALO DE TIEMPO.

Page 2: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

Contador Universal

Canal A

Clock_50MHz

Reset

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Overflow End of Conversion

Mode

Canal B

Medidor de Frecuencias Medidor de Período Medidor de Intervalo de Tiempo

Contador Universal

Modos de funcionamiento

Salida de 4 dígitos BCD. Indicaciones de «overflow» y «fin de conversión». Base de tiempo programable. Adquisición «one shot» ó «free-running».

CU13

Page 3: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

Medidor de Frecuencia

Canal A

Out_ovf Out_eoc

Mode

Canal B

Contador BCD x4

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Out_ovf

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Canal A

Reloj 50MHz

Reset

Base de Tiempo

ena0

reloj

Reloj 50MHz

Mode

Reset

"xxxxxxxxxxx00xx"

bt

MEDICIÓN DE FRECUENCIA

CU13

Page 4: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

bt

latch_cnt

reset_cnt

t

t

t

t

chA

100 ms -- 1 s -- 10 s

mode_ucnt => "x x x x x x x x x x x M4 M3 M2 M1 M0

0 = one_shot 1 = free running

bt = 100 ms bt = 1 s bt = 10 s

00 = Modo Frec.

MEDICIÓN DE FRECUENCIA

CU13

Page 5: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

S0/0 S1/0

S3/0 S2/1

bt=0

bt=1

bt=0

bt=1

bt=0

bt=0 bt=1

bt=1

St0/0 St1/0

St3/0 St2/1

latch_cnt=0

1

0

1

0

0 1

1

latch_cnt rst_cnt

Máquinas de estado "Moore" para generar pulsos "latch" y "reset" a los contadores BCD

CU13

Page 6: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

Medidor de Período

Canal A

Out_ovf Out_eoc

Mode

Canal B

Contador BCD x4

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Out_ovf

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Canal A

Reloj 50MHz

Reset

% 2 ena0

reloj Reloj 50MHz

Reset

"xxxxxxxxxxx01xx"

bt

Divisor Mode

MEDICIÓN DE PERÍODO

CU13

Page 7: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

bt

latch_cnt

reset_cnt

t

t

t

t

10MHZ/1MHZ/ 100KHZ/10KHZ

mode_ucnt => "x x x x x x x x x x x M4 M3 M2 M1 M0

0 = one_shot 1 = free running

01 = Modo Período

MEDICIÓN DE PERÍODO

Período de chA Período de chA

00 = clk => 10 MHz 01 = clk => 1 MHz 10 = clk => 100 KHz 11 = clk => 10 KHz

CU13

Page 8: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

Medidor de Intervalo de Tiempo

Canal A

Out_ovf Out_eoc

Mode

Canal B

Contador BCD x4

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Out_ovf

Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0

Canal A

Reloj 50MHz

Reset

Base de Tiempo

ena0

reloj Reloj 50MHz

Reset

"xxxxxxxxxxx10xx"

bt

Divisor Mode

Canal B

Mode

MEDICIÓN DE INTERVALO DE TIEMPO

CU13

Page 9: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

bt

ChB

t

t

t

t

10MHZ/1MHZ/ 100KHZ/10KHZ

mode_ucnt => "x x x x x x x x x M6 M5 x M3 M2 M1 M0 00 = clk => 10 MHz 01 = clk => 1 MHz 10 = clk => 100 KHz 11 = clk => 10 KHz

10 = Modo Interv.

MEDICIÓN DE INTERVALO DE TIEMPO

ChA

Selección de flanco ChA

Selección de flanco ChB

clock

(Ejemplo con M6 M5 = 00 : ambos canales sensados en el flanco positivo)

CU13

Page 10: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Código del Contador Universal

Page 11: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 12: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 13: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 14: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 15: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 16: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 17: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 18: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 19: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 20: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 21: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 22: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Código del TestBench para el Contador Universal

Page 23: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 24: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 25: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Page 26: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13 Simulación del Contador Universal en modo Frecuencímetro

BT = 100 mseg Fin = 50 KHz

Período de la señal en Canal A

Page 27: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU13

Pulso de Fin de Conversión

Conteo Final en modo Frecuencímetro

Page 28: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

PROYECTO CU14

DISEÑO EN VHDL DE UN VOLTÍMETRO DIGITAL DE 4 DÍGITOS BCD INDEPENDIENTE, DE 8 CANALES AJUSTABLE POR DIP-SWITCHES. PERMITE MEDIR LA TENSIÓN DE ENTRADA CON RANGO DE 0 A 3.3 VDC DESDE LA PLACA DE0-NANO (CYCLONE IV), EMPLEANDO EL ADC SERIE PROVISTO EN LA MISMA.

Page 29: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CONTROLADOR DEL ADC

CONVERSOR BINARIO A

BCD 16 BITS

CONVERSOR BCD A

7 SEGMENTOS

CONVERSOR BCD A

7 SEGMENTOS

CONVERSOR BCD A

7 SEGMENTOS

CONVERSOR BCD A

7 SEGMENTOS

DIVISOR DE FRECUENCIA

XTAL 50 MHz

FPGA

ADC SERIE

GENERADOR 2,5 Hz

CU14 DIAGRAMA EN BLOQUES DEL VOLTÍMETRO

Page 30: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 31: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 32: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 33: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 34: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 35: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 36: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

EJEMPLO: Convertir el número 111111 (binario) = 63 (decimal) = 0110 0011 (BCD)

ALGORITMO DOUBLE DABBLE

Permite convertir un dato binario en formato BCD. El método consiste en desplazar los bits binarios hacia la izquierda de a uno por vez hasta que quede la grilla inicial vacía. Si en algún momento una columna BCD da como resultado un número mayor a 4, se debe sumar 3 a ese resultado. Luego se prosigue con el desplazamiento.

SUMO 3

SUMO 3

6 3

+

+

Page 37: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 38: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 39: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 40: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 41: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Se requiere adicionar un factor de corrección. La tensión de referencia del conversor ADC de 12 bits es de 3,32 V DC. Por lo tanto se debe multiplicar el valor adquirido por 3320/4095 = 0,8071. Se emplea en este caso un multiplicador dedicado “multiplicador.vhd” que multiplica la salida del conversor x13 y luego se realiza una división X16, desplazando el dato de salida del multiplicador 4 lugares hacia la derecha. Esto dá 0,8125 con un error aceptable.

DISCUSIÓN: QUÉ LE FALTA AL PROYECTO PARA CONVERTIRSE EN UN VOLTÍMETRO ?.

Page 42: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Multiplicador dataa x 13

Uso del IP Core

Page 43: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

Page 44: PROYECTO CU13 ·  · 2017-10-28DISEÑO EN VHDL DE UN CONTADOR UNIVERSAL INDEPENDIENTE PROGRAMABLE DE 4 DÍGITOS BCD. PERMITE TRES MODOS DIFERENTES DE MEDICIÓN: --FRECUENCIA. ...

CU14

División x 16