Estoy trabajando en la implementación de un divisor polinomial, la operación es la siguiente: Compruebe MSB del numerador: si 1 XOR con Denom entonces desplaza Denom a la derecha si 0 Num es el mismo y Denom también se desplaza a la derecha
Al hacer el siguiente cambio para el Denom, la nueva MSB del numerador para comparar es la antigua MSB-1 Por lo tanto, he implementado un contador de Down que comienza con M downto 0 en cada paso, el nuevo MSB es el valor leído en el contador
en la implementación de VHDL recibí un error en lo siguiente
if(numerator(ctr_reg)='1')
el error obtenido es: el identificador de tipo con "ctr_reg" no está de acuerdo con su uso como "tipo natural"
¿Cómo puedo resolver esto? ¿Debería hacerse con una variable dentro de mi proceso? ¿Y cuál es la traducción de hardware de una variable utilizada en tal caso
Gracias
Bibliotecas incluidas
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
use work.classic_multiplier_parameters.all;
Error de la declaración actualizada:
if(numerator(to_integer(unsigned(ctr_reg)))='1') then