You are on page 1of 10

El codigo fue escrito de forma jerarquica y consta de un bloque principal, seis bloques

secundarios conformados a su vez por partes mas pequeñas.
• Principal
o MaquinaEstados
o Enable
o Reloj
o Ent
o Salida
o Multi

MaquinaEstados

Es el encargado de realizar la cuenta de 0 a 31 que gobierna todos los procesos. Consta
de dos bloques, uno para la parte secuencial del circuito y el otro para la combinacional.
El circuito combinacional se encarga de hacer la cuenta, incrementando la señal de
entrada “entradasuma” en una unidad cada vez que esta ingresa al circuito. Cuando la
cuenta llega a 31, en el pulso siguiente vuelve a empezar en 0.
La parte secuencial es un flip-flop, el cual, cada vez que recibe un flanco ascendente del
clock “clk” , si “reset” es igual a cero y “enable” es igual a uno, pasa la cuenta que tiene
en su entrada a la salida. Esta salida se realimenta en la entrada del combinacional antes
descripto y también es usada en otros bloques del circuito principal.

Enable

Este bloque es el encargado de habilitar los conversores AD, DA y los flip flop de la
etapa de salida.
A la entrada ingresa la cuenta que se genero en el bloque MaquinaEstados.
La salida “ff” se pone en ‘1’ si la cuenta es igual a 20, caso contrario es ‘0’. La salida
“AD” se pone en ‘0’ si la cuenta es mayor o igual que 0 y menor a 17, siendo 0 si no se
cumplen las dos condiciones. Y por ultimo “DA” es ‘0’ cuando la cuenta es igual a 0 ó
cuando la cuenta es menor a 17.

1 Grispino, Alberto Sebastián
Petracca, Gabriel Oscar

a paralelo. Alberto Sebastián Petracca. 2 Grispino. Cuando la cuenta es 5. y una de ellas esta desfasada 180 grados. Sus nombres son “clocks” y “notclocks” respectivamente. a su salida aparece el bit mas significativo de la señal proveniente del ADC “SDATA”. Las dos salidas son señales a 5 MHz ya que en su interior se dividió la señal de entrada por 5. A continuación se muestra uno de los comparadores y el bloque ent completo. Gabriel Oscar . se activa el primer comparador y con el próximo flanco ascendente del “notclocks” generado en el bloque reloj. A su entrada tiene una señal de clock (MasterClock) a 25 MHz.Reloj Este bloque se realizo con un wizard. A medida que se incrementa la cuenta se van activando de a uno los comparadores. consiguiendo de esta forma convertir los datos de entrada que estaban en serie. Ent Esta compuesto por 12 comparadores que se activan de acuerdo al valor de la cuenta generada en MaquinaEstados.

Salida Este bloque esta compuesto por 12 flip-flops que se activan simultaneamente cuando “ff” (salida del bloque enable) se pone en ‘1’. Esto permite que los datos en su entrada pasen a la salida cuando llega el flanco ascendente de “notclocks”. Gabriel Oscar . Las salidas están conectadas a las entradas del bloque “multi”. A continuación se muestra uno de los flip-flop y el bloque completo: 3 Grispino. Alberto Sebastián Petracca.

Alberto Sebastián Petracca. Se encarga de pasar los datos que a su entrada están en paralelo a serie. La cuenta del bloque “MaquinaEstados” es la que selecciona cual de las entradas pasa a la salida.Multi Este bloque es un multiplexor. Gabriel Oscar . El bloque es el siguiente: 4 Grispino.

Principal En este bloque se unen todos los bloques anteriormente descriptos. El diagrama en bloques es el siguiente: 5 Grispino. Cuenta con 4 entradas del tipo standard logic y 5 salidas del mismo tipo. Alberto Sebastián Petracca. Gabriel Oscar .

A continuación se muestra una simulación del código completo en funcionamiento. A la entrada “SDAT” se introdujo una secuencia arbitraria de unos y ceros que luego de un periodo de cuenta aparecen en la salida “D_IN”. Gabriel Oscar . Alberto Sebastián Petracca. 6 Grispino.

por lo que se buscaron otras alternativas. 7 Grispino. Luego se prueba la respuesta en frecuencia de la implementación. Para grabar la placa FPGA se crea un archivo con extensión “bit”. se realizo la asignación de pines para cada señal de entrada y salida con lo que se genero un archivo con extensión “ucf”. Implementacion del filtro Una vez que se termino de programar el código.Diseño de un Filtro FIR Copiar lo d filtro Este modulo se inserto entre los bloques de entrada y salida. A continuación se muestra un grafico: Esta implementación no funciono de la manera esperada. Gabriel Oscar . En la banda de paso la señal de salida debería ser igual a la de entrada y en la banda de rechazo la señal de entrada debería ser atenuada. haciendo un barrido con el generador de señal. Alberto Sebastián Petracca.

Luego se implemento ese bloque en lugar del que se había programado (filtro_fir) en el proyecto principal. Alberto Sebastián Petracca. El toolbox utilizado es “filterbuilder”. Las características son: Frecuencia de muestreo 5 MHz.Se diseño el filtro con un toolbox de Matlab que también genera el código en VHDL. / 32 Frecuencia de corte 10 KHz Frecuencia de paso 1 KHz Orden del filtro 10 También se estableció que el formato debe ser punto fijo y con 12 bits de extensión 8 Grispino. Gabriel Oscar .

Alberto Sebastián Petracca. Gabriel Oscar .Y la respuesta del filtro se ve a continuación: Tambien se detallan los coeficientes obtenidos para el filto: 9 Grispino.

10 Grispino.Al igual que la anterior. Alberto Sebastián Petracca. esta implementacion tampoco funciono como se esperaba. Gabriel Oscar . Creemos que es debido a la gran perdida de información que significa recortar tantos bits a la salida del filtro.