Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Digital Ejercicios Resueltos
Digital Ejercicios Resueltos
tmp = CIC(x) ;
tmp = CFIR(tmp);
return(tmp);
}
Para los dos casos calcular el throughtput máximo en ciclos de reloj, indicar el
número de multiplicadores y el ancho de banda necesario en bits por ciclo.
Indicar las directrices necesarias para alcanzar el throughtput máximo.
#include "fir.h"
#define N 100
void fir ( data_t *y, coef_t c[N], data_t x)
{
static data_t shift_reg[N];
acc_t acc;
data_t data;
int i;
acc=0;
Shift_Accum_Loop: for (i=N-1;i>=0;i--) {
if (i==0) {
shift_reg[0]=x;
data = x;
} else {
shift_reg[i]=shift_reg[i-1];
data = shift_reg[i];
}
acc+=data*c[i];
}
*y=acc;
}
#include "fir.h"
#define N 100
void fir ( data_t *y, data_t x)
{
static data_t shift_reg[N];
constant static coef_t c[N] = #include “coeff.h” ;
acc_t acc;
data_t data;
int i;
acc=0;
Shift_Accum_Loop: for (i=N-1;i>=0;i--) {
if (i==0) {
shift_reg[0]=x;
data = x;
} else {
shift_reg[i]=shift_reg[i-1];
data = shift_reg[i];
}
acc+=data*c[i];
}
*y=acc;
}
Se pide:
1) Calcular el número de bits de Y y la escala para que se utilicen todos los bits de
la entra en el cálculo de la salida.
2) Codificar en VHDL sintetizable el filtro con una frecuencia de muestreo igual a
la mitad de la frecuencia de reloj.
Problema III 3 puntos.
B3 B1
GB3 GB1
A3 A2
FIGURA 1.
La frecuencia de muestreo es la cuarta parte de la frecuencia de reloj.
La Tabla 1 muestra el número de bits requerido para codificar los
coeficientes y las unidades de retardo. Los coeficientes B1,B3,A2,A3 están
codificados en complemento a dos con escala de 2**-12.
El valor numérico máximo alcanzable en los registro es [-0.33,0.33)
B1 B3 A2 A3 UD0_REG UD1_REG UD2_REG
3 bits 5 bits 12 bits 11 bits 20 bits 20 bits 20 bits
TABLA 1 Número de bits necesarios para codificar los coeficientes y las
unidades de retardo
Entradas: DATO,LOAD,RESET,CLK
Salidas : unos(3 downto 0) , ceros(3 downto 0).
Se pide:
Nombre y número de bits de los flipflop utilizados.
Codificar en VHDL sintetizable el circuito utilizando procesos diferentes
para la parte secuencial y combinatoria. Se recomienda leer primero todos
los datos y procesar la información cuando se disponga de todos los datos en
un ciclo.
Tenemos un circuito que recibe una serie de palabras en modo serie.por 4
entradas Los datos llegan de forma síncrona con el reloj por la entrada
DATO. Cada vez que la entrada LOAD vale 1, la entrada DATO(3:0) tiene
4 nuevos bits validos. La entrada FIN valdrá ‘1’ cuando se reciba la última
palabra, el circuito actualizara la nueva salida en el ciclo de reloj siguiente
y volverá a procesar la nueva serie.
Los bits recibidos representan un número positivo codificado en BCD. El
primer digito recibido es el LSB. Queremos codificar el número recibido en
binario con una longitud de 128 bits, no nos preocuparemos de un posible
overflow.
Entradas : DATO(3 downto 0), LOAD, FIN, RESET, CLK
Salidas : BINARIO(127 downto 0)
Codificar en VHDL sintetizable el circuito utilizando procesos diferentes
para la parte secuencial y combinatoria.
Indicar nombre y número de bits de los flipflop utilizados.