Núcleos IP aritméticos enteros de FPGA
Guía del usuario de Intel FPGA Integer Arithmetic IP Cores
Actualizado para Intel® Quartus® Prime Design Suite: 20.3
Versión en línea Enviar comentarios
UG-01063
Identificación: 683490 Versión: 2020.10.05
Contenido
Contenido
1. Intel FPGA Integer Arithmetic IP Cores…………………………………………………………………….. 5
2. LPM_COUNTER (Contador) IP Core………………………………………………………………………….. 7 2.1. Características……………………………………………………………………………………………………7 2.2. Prototipo Verilog HDL…………………………………………………………………………………….. 8 2.3. Declaración de componentes VHDL………………………………………………………………………….8 2.4. VHDL LIBRARY_USE Declaración………………………………………………………………………… 9 2.5. Puertos…………………………………………………………………………………………………………..9 2.6. Parámetros…………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divisor) Intel FPGA IP Core……………………………………………………………….. 12 3.1. Características………………………………………………………………………………………………. 12 3.2. Prototipo Verilog HDL…………………………………………………………………………………… 12 3.3. Declaración de componentes VHDL…………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE Declaración……………………………………………………………………. 13 3.5. Puertos………………………………………………………………………………………………………… 13 3.6. Parámetros…………………………………………………………………………………………………… 14
4. Núcleo IP LPM_MULT (Multiplicador)………………………………………………………………………………. 16 4.1. Características………………………………………………………………………………………………. 16 4.2. Prototipo Verilog HDL…………………………………………………………………………………… 17 4.3. Declaración de componentes VHDL…………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE Declaración……………………………………………………………………. 17 4.5. Señales………………………………………………………………………………………………………… 18 4.6. Parámetros para dispositivos Stratix V, Arria V, Cyclone V e Intel Cyclone 10 LP……………… 18 4.6.1. Pestaña General…………………………………………………………………………………………18 4.6.2. Ficha General 2…………………………………………………………………………………… 19 4.6.3. Pestaña Pipelines…………………………………………………………………………………… 19 4.7. Parámetros para dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX………….. 20 4.7.1. Ficha General…………………………………………………………………………………………20 4.7.2. Ficha General 2…………………………………………………………………………………… 20 4.7.3. Canalización…………………………………………………………………………………………21
5. LPM_ADD_SUB (Sumador/Restante)………………………………………………………………………… 22 5.1. Características………………………………………………………………………………………………. 22 5.2. Prototipo Verilog HDL…………………………………………………………………………………… 23 5.3. Declaración de componentes VHDL…………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE Declaración……………………………………………………………………. 23 5.5. Puertos………………………………………………………………………………………………………… 23 5.6. Parámetros…………………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparador)……………………………………………………………………………… 26 6.1. Características………………………………………………………………………………………………. 26 6.2. Prototipo Verilog HDL…………………………………………………………………………………… 27 6.3. Declaración de componentes VHDL…………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE Declaración……………………………………………………………………. 27 6.5. Puertos………………………………………………………………………………………………………… 27 6.6. Parámetros…………………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 2
Enviar comentarios
Contenido
7. ALTECC (Código de corrección de errores: Codificador/Decodificador) IP Core…………………………………… 30
7.1. Funciones del codificador ALTECC…………………………………………………………………………..31 7.2. Prototipo Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototipo Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Declaración de componentes VHDL (ALTECC_ENCODER)………………………………………………33 7.5. Declaración de componentes VHDL (ALTECC_DECODER)………………………………………………33 7.6. VHDL LIBRARY_USE Declaración……………………………………………………………………. 33 7.7. Puertos del codificador……………………………………………………………………………………………… 33 7.8. Puertos del Decodificador………………………………………………………………………………………………34 7.9. Parámetros del codificador…………………………………………………………………………………… 34 7.10. Parámetros del decodificador ………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………. 36
8.1. Características………………………………………………………………………………………………. 37 8.1.1. Pre-sumador………………………………………………………………………………………….. 38 8.1.2. Registro de Retraso Sistólico…………………………………………………………………….. 40 8.1.3. Constante de precarga……………………………………………………………………………… 43 8.1.4. Acumulador Doble……………………………………………………………………………… 43
8.2. Prototipo Verilog HDL…………………………………………………………………………………… 44 8.3. Declaración de componentes VHDL…………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE Declaración……………………………………………………………………. 44 8.5. Señales………………………………………………………………………………………………………… 44 8.6. Parámetros…………………………………………………………………………………………………… 47
8.6.1. Pestaña General…………………………………………………………………………………………47 8.6.2. Pestaña Modos extra………………………………………………………………………….. 47 8.6.3. Pestaña Multiplicadores……………………………………………………………………………….. 49 8.6.4. Pestaña de precomprador……………………………………………………………………………………. 51 8.6.5. Pestaña Acumulador………………………………………………………………………….. 53 8.6.6. Pestaña Sistólica/Chainout…………………………………………………………………………. 55 8.6.7. Pestaña Canalización…………………………………………………………………………………… 56
9. ALTMEMMULT (multiplicador de coeficiente constante basado en memoria) IP Core…………………… 57
9.1. Características………………………………………………………………………………………………. 57 9.2. Prototipo Verilog HDL…………………………………………………………………………………… 58 9.3. Declaración de componentes VHDL…………………………………………………………………….. 58 9.4. Puertos………………………………………………………………………………………………………… 59 9.5. Parámetros…………………………………………………………………………………………………… 59
10. Núcleo IP ALTMULT_ACCUM (multiplicación-acumulación)……………………………………………… 61
10.1. Características……………………………………………………………………………………………….. 62 10.2. Prototipo Verilog HDL……………………………………………………………………………………..62 10.3. Declaración de componentes VHDL…………………………………………………………………… 63 10.4. VHDL LIBRARY_USE Declaración……………………………………………………………………63 10.5. Puertos…………………………………………………………………………………………………………. 63 10.6. Parámetros………………………………………………………………………………………………. 64
11. Núcleo IP ALTMULT_ADD (sumador múltiple)…………………………………………………………..69
11.1. Características……………………………………………………………………………………………….. 71 11.2. Prototipo Verilog HDL……………………………………………………………………………………..72 11.3. Declaración de componentes VHDL…………………………………………………………………… 72 11.4. VHDL LIBRARY_USE Declaración……………………………………………………………………72
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 3
Contenido
11.5. Puertos…………………………………………………………………………………………………………. 72 11.6. Parámetros………………………………………………………………………………………………. 73
12. Núcleo IP ALTMULT_COMPLEX (multiplicador complejo)……………………………………………… 86 12.1. Multiplicación compleja………………………………………………………………………………. 86 12.2. Representación Canónica……………………………………………………………………………… 87 12.3. Representación Convencional…………………………………………………………………………. 87 12.4. Características……………………………………………………………………………………………….. 88 12.5. Prototipo Verilog HDL……………………………………………………………………………………..88 12.6. Declaración de componentes VHDL…………………………………………………………………… 89 12.7. VHDL LIBRARY_USE Declaración……………………………………………………………………89 12.8. Señales……………………………………………………………………………………………………. 89 12.9. Parámetros………………………………………………………………………………………………. 90
13. Núcleo IP ALTSQRT (raíz cuadrada entera)………………………………………………………………92 13.1. Características……………………………………………………………………………………………….. 92 13.2. Prototipo Verilog HDL……………………………………………………………………………………..92 13.3. Declaración de componentes VHDL…………………………………………………………………… 93 13.4. VHDL LIBRARY_USE Declaración……………………………………………………………………93 13.5. Puertos…………………………………………………………………………………………………………. 93 13.6. Parámetros………………………………………………………………………………………………. 94
14. Núcleo IP PARALLEL_ADD (sumador paralelo)………………………………………………………….. 95 14.1. Característica……………………………………………………………………………………………….95 14.2. Prototipo Verilog HDL……………………………………………………………………………………..95 14.3. Declaración de componentes VHDL…………………………………………………………………… 96 14.4. VHDL LIBRARY_USE Declaración……………………………………………………………………96 14.5. Puertos…………………………………………………………………………………………………………. 96 14.6. Parámetros………………………………………………………………………………………………. 97
15. Archivos de documentos de la guía del usuario de IP Cores de aritmética de enteros 98
16. Historial de revisión de documentos para Intel FPGA Integer Arithmetic IP Cores User Guide…. 99
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 4
Enviar comentarios
683490 | 2020.10.05 Enviar comentarios
1. Núcleos de IP aritméticos enteros Intel FPGA
Puede utilizar los núcleos IP enteros Intel® FPGA para realizar operaciones matemáticas en su diseño.
Estas funciones ofrecen una síntesis lógica y una implementación de dispositivos más eficientes que codificar sus propias funciones. Puede personalizar los núcleos de IP para adaptarse a sus requisitos de diseño.
Los núcleos IP aritméticos de enteros de Intel se dividen en las siguientes dos categorías: · Biblioteca de módulos parametrizados (LPM) Núcleos IP · Núcleos IP específicos de Intel (ALT)
La siguiente tabla enumera los núcleos IP aritméticos enteros.
Tabla 1.
Lista de núcleos IP
Núcleos IP
Núcleos IP LPM
LPM_CONTADOR
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Núcleos IP específicos de Intel (ALT) ALTECC
Función sobreview Contador divisor multiplicador
Comparador sumador o restador
Codificador/decodificador ECC
Dispositivo compatible
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel ciclón 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, ciclón IV E, ciclón IV GX,
Ciclón V, Intel Ciclón 10 LP, Intel Ciclón 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, ciclón IV E, ciclón IV GX,
Ciclón V, Intel Ciclón 10 LP, Intel Ciclón 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, ciclón IV E, ciclón IV GX, ciclón V, Intel ciclón 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, ciclón IV E, ciclón IV GX, ciclón V, Intel ciclón 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, ciclón IV E, ciclón IV GX,
Ciclón V, Intel ciclón 10 LP, Intel ciclón 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V continuación...
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
1. Núcleos IP aritméticos enteros Intel FPGA 683490 | 2020.10.05
Núcleos IP Intel FPGA Multiply Adder o ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALELO_ADD
Función sobreview multiplicador-sumador
Multiplicador de coeficiente constante basado en memoria
Multiplicador-Acumulador Multiplicador-Sumador
Multiplicador complejo
Raíz cuadrada entera
sumador paralelo
Dispositivo compatible
Arria V, Stratix V, ciclón V, Intel Stratix 10, Intel Arria 10, Intel ciclón
10 GX
Arria II GX, Arria II GZ, Arria V, Intel Arria 10 (Intel Quartus® Prime Standard Edition), Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Ciclón 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, ciclón IV E, ciclón IV GX, Intel ciclón 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, ciclón IV E, ciclón IV GX, Intel ciclón 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, ciclón IV E, ciclón IV GX, ciclón V, Intel
Ciclón 10 GX, Intel Ciclón 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, ciclón IV E, ciclón IV GX,
Ciclón V, Intel Ciclón 10 LP, Intel Ciclón 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, ciclón IV E, ciclón IV GX,
Ciclón V, Intel Ciclón 10 LP, Intel Ciclón 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Información relacionada
· Notas de la versión de Intel FPGA y dispositivos programables
· Introducción a Intel FPGA IP Cores Proporciona más información sobre Intel FPGA IP Cores.
· Guía del usuario de núcleos IP de punto flotante Brinda más información sobre los núcleos IP de punto flotante Intel FPGA.
· Introducción a los núcleos IP de Intel FPGA Brinda información general sobre todos los núcleos IP de Intel FPGA, incluida la parametrización, generación, actualización y simulación de núcleos IP.
· Creación de secuencias de comandos de simulación Qsys e IP independientes de la versión Cree secuencias de comandos de simulación que no requieran actualizaciones manuales para actualizaciones de versión de software o IP.
· Directrices de mejores prácticas de gestión de proyectos para una gestión y portabilidad eficientes de su proyecto y propiedad intelectual files.
· Integer Arithmetic IP Cores User Guide Archivos de documentos en la página 98 Proporciona una lista de guías de usuario para versiones anteriores de Integer Arithmetic IP cores.
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 6
Enviar comentarios
683490 | 2020.10.05 Enviar comentarios
2. Núcleo IP LPM_COUNTER (Contador)
Figura 1.
El núcleo IP LPM_COUNTER es un contador binario que crea contadores ascendentes, descendentes y contadores ascendentes o descendentes con salidas de hasta 256 bits de ancho.
La siguiente figura muestra los puertos para el núcleo IP LPM_COUNTER.
Puertos LPM_COUNTER
LPM_CONTADOR
ssclr cargar datos del conjunto[]
q[]
arriba abajo
Contar
aclr cargar activo
clk_es cnt_es cin
Inst.
2.1. Características
El núcleo IP LPM_COUNTER ofrece las siguientes funciones: · Genera contadores ascendentes, descendentes y ascendentes/descendentes · Genera los siguientes tipos de contadores:
— Binario simple: el contador aumenta a partir de cero o disminuye a partir de 255
— Módulo: el contador aumenta o disminuye desde el valor del módulo especificado por el usuario y se repite
· Admite puertos de entrada de borrado, carga y ajuste sincrónicos opcionales · Admite puertos de entrada de borrado, carga y ajuste asincrónicos opcionales · Admite puertos de entrada de activación de conteo y activación de reloj opcionales · Admite puertos de entrada y salida opcionales
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
2. Núcleo IP LPM_COUNTER (Contador)
683490 | 2020.10.05
2.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo lpm_counter (q, datos, reloj, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq); parámetro lpm_type = “lpm_counter”; parámetro lpm_width = 1; parámetro lpm_modulus = 0; parámetro lpm_direction = “SIN UTILIZAR”; parámetro lpm_avalue = “SIN UTILIZAR”; parámetro lpm_svalue = “SIN UTILIZAR”; parámetro lpm_pvalue = “SIN UTILIZAR”; parámetro lpm_port_updown = “PORT_CONECTIVIDAD”; parámetro lpm_hint = "SIN UTILIZAR"; salida [lpm_width-1:0] q; cout de salida; salida [15:0] equivalente; entrada cin; datos de entrada [lpm_width-1:0]; reloj de entrada, clk_en, cnt_en, updown; entrada aset, aclr, aload; entrada sset, sclr, sload; módulo final
2.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) LPM_PACK.vhd en el directorio bibliotecasvhdllpm.
componente LPM_COUNTER genérico ( LPM_WIDTH : natural; LPM_MODULUS : natural := 0; LPM_DIRECTION : string := “UNUSED”; LPM_AVALUE : string := “UNUSED”; LPM_SVALUE : string := “UNUSED”; LPM_PORT_UPDOWN : string := “PORT_CONNECTIVITY” ; LPM_PVALUE : cadena := “SIN UTILIZAR”; LPM_TYPE : cadena := L_COUNTER; LPM_HINT : cadena := “SIN UTILIZAR”); puerto (DATOS: en std_logic_vector (LPM_WIDTH-1 hasta 0): = (OTROS =>
'0'); RELOJ: en std_logic; CLK_EN : en std_logic := '1'; CNT_EN : en std_logic := '1'; ARRIBA: en std_logic: = '1'; SLOAD : en std_logic := '0'; SSET: en std_logic: = '0'; SCLR: en std_logic: = '0'; A CARGAR: en std_logic: = '0'; ASET: en std_logic: = '0'; ACLR: en std_logic: = '0'; CIN: en std_logic: = '1'; COUT : fuera std_logic := '0'; P: Fuera std_logic_vector (LPM_WIDTH-1 hasta 0); EQ: fuera std_logic_vector (15 hasta 0));
componente final;
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 8
Enviar comentarios
2. LPM_COUNTER (Contador) IP Core 683490 | 2020.10.05
2.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA lpm; USAR lpm.lpm_components.all;
2.5. Puertos
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo de IP LPM_COUNTER.
Tabla 2.
Puertos de entrada LPM_COUNTER
Nombre del puerto
Requerido
Descripción
datos[]
No
Entrada de datos en paralelo al contador. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTH.
reloj
Sí
Entrada de reloj activada por flanco positivo.
clk_es
No
Entrada de habilitación de reloj para habilitar todas las actividades sincrónicas. Si se omite, el valor predeterminado es 1.
cnt_es
No
Entrada de habilitación de conteo para deshabilitar el conteo cuando se afirma bajo sin afectar sload, sset o sclr. Si se omite, el valor predeterminado es 1.
arriba abajo
No
Controla la dirección del conteo. Cuando se afirma en alto (1), la dirección de conteo es hacia arriba y cuando se afirma en bajo (0), la dirección de conteo es hacia abajo. Si se utiliza el parámetro LPM_DIRECTION, el puerto updown no se puede conectar. Si no se utiliza LPM_DIRECTION, el puerto updown es opcional. Si se omite, el valor predeterminado es arriba (1).
Cintura
No
Acarreo al bit de orden inferior. Para contadores ascendentes, el comportamiento de la entrada cin es
idéntico al comportamiento de la entrada cnt_en. Si se omite, el valor predeterminado es 1
(CCV).
aclr
No
Entrada clara asíncrona. Si tanto aset como aclr se usan y afirman, aclr anula aset. Si se omite, el valor predeterminado es 0 (deshabilitado).
un activo
No
Entrada de conjunto asíncrono. Especifica las salidas q[] como todos 1 o el valor especificado por el parámetro LPM_AVALUE. Si se usan y afirman los puertos aset y aclr, el valor del puerto aclr anula el valor del puerto aset. Si se omite, el valor predeterminado es 0, deshabilitado.
Una carga
No
Entrada de carga asíncrona que carga asíncronamente el contador con el valor de la entrada de datos. Cuando se usa el puerto de carga, el puerto de datos [] debe estar conectado. Si se omite, el valor predeterminado es 0, deshabilitado.
desclr
No
Entrada de borrado síncrono que borra el contador en el siguiente flanco de reloj activo. Si se usan y afirman los puertos sset y sclr, el valor del puerto sclr anula el valor del puerto sset. Si se omite, el valor predeterminado es 0, deshabilitado.
conjunto
No
Entrada de conjunto síncrono que configura el contador en el siguiente flanco de reloj activo. Especifica el valor de las salidas q como todos 1 o el valor especificado por el parámetro LPM_SVALUE. Si se usan y afirman los puertos sset y sclr,
el valor del puerto sclr anula el valor del puerto sset. Si se omite, el valor predeterminado es 0 (deshabilitado).
descargar
No
Entrada de carga síncrona que carga el contador con datos[] en el siguiente borde de reloj activo. Cuando se usa el puerto de carga, el puerto de datos [] debe estar conectado. Si se omite, el valor predeterminado es 0 (deshabilitado).
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 9
2. LPM_COUNTER (Contador) IP Core 683490 | 2020.10.05
Tabla 3.
Puertos de salida LPM_COUNTER
Nombre del puerto
Requerido
Descripción
q[]
No
Salida de datos del contador. El tamaño del puerto de salida depende del
Valor del parámetro LPM_WIDTH. Ya sea q[] o al menos uno de los puertos eq[15..0]
debe estar conectado.
ecuación[15..0]
No
Salida de decodificación de contador. No se puede acceder al puerto eq[15..0] en el editor de parámetros porque el parámetro solo admite AHDL.
Debe estar conectado el puerto q[] o el puerto eq[]. Se pueden utilizar hasta c puertos eq (0 <= c <= 15). Solo se decodifican los 16 valores de recuento más bajos. Cuando el valor de conteo es c, la salida de eqc se declara alta (1). por ejemploample, cuando el conteo es 0, eq0 = 1, cuando el conteo es 1, eq1 = 1, y cuando el conteo es 15, eq 15 = 1. La salida decodificada para valores de conteo de 16 o más requiere decodificación externa. Las salidas eq[15..0] son asíncronas a la salida q[].
Contar
No
Puerto de salida del bit MSB del contador. Se puede usar para conectarse a otro mostrador para crear un mostrador más grande.
2.6 Parámetros
La siguiente tabla enumera los parámetros para el núcleo de IP LPM_COUNTER.
Tabla 4.
Parámetros LPM_COUNTER
Nombre del parámetro
Tipo
LPM_ANCHO
Entero
LPM_DIRECCIÓN
Cadena
LPM_MODULUS LPM_AVALUE
Entero
Entero/ Cadena
LPM_SVALUE LPM_HINT
Entero/ Cadena
Cadena
LPM_TYPE
Cadena
Obligatorio Sí No No No
No, no.
No
Descripción
Especifica los anchos de los puertos data[] y q[], si se utilizan.
Los valores son ARRIBA, ABAJO y NO UTILIZADO. Si se utiliza el parámetro LPM_DIRECTION, el puerto updown no se puede conectar. Cuando el puerto updown no está conectado, el valor predeterminado del parámetro LPM_DIRECTION es UP.
El recuento máximo, más uno. Número de estados únicos en el ciclo del contador. Si el valor de carga es mayor que el parámetro LPM_MODULUS, no se especifica el comportamiento del contador.
Valor constante que se carga cuando un valor se declara alto. Si el valor especificado es mayor o igual que , el comportamiento del contador es un nivel lógico indefinido (X), donde es LPM_MODULUS, si está presente, o 2 ^ LPM_WIDTH. Intel recomienda que especifique este valor como un número decimal para los diseños AHDL.
Valor constante que se carga en el flanco ascendente del puerto de reloj cuando el puerto sset se afirma alto. Intel recomienda que especifique este valor como un número decimal para los diseños AHDL.
Cuando crea una instancia de una función de biblioteca de módulos parametrizados (LPM) en un diseño VHDL File (.vhd), debe usar el parámetro LPM_HINT para especificar un parámetro específico de Intel. por ejemploample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = SÍ"
El valor predeterminado es NO UTILIZADO.
Identifica el nombre de entidad de la biblioteca de módulos parametrizados (LPM) en el diseño de VHDL files.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 10
Enviar comentarios
2. LPM_COUNTER (Contador) IP Core 683490 | 2020.10.05
Nombre del parámetro INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Tipo Cadena Cadena
Cadena
Cadena
Requerido No No
No
No
Descripción
Este parámetro se utiliza con fines de modelado y simulación de comportamiento. Este parámetro se utiliza con fines de modelado y simulación de comportamiento. El editor de parámetros calcula el valor de este parámetro.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro CARRY_CNT_EN en el diseño de VHDL files. Los valores son SMART, ON, OFF y UNUSED. Habilita la función LPM_COUNTER para propagar la señal cnt_en a través de la cadena de transporte. En algunos casos, la configuración del parámetro CARRY_CNT_EN puede tener un ligero impacto en la velocidad, por lo que es posible que desee desactivarlo. El valor predeterminado es SMART, que proporciona el mejor equilibrio entre tamaño y velocidad.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro LABWIDE_SCLR en el diseño de VHDL files. Los valores son ACTIVADO, DESACTIVADO o SIN UTILIZAR. El valor predeterminado es ENCENDIDO. Le permite deshabilitar el uso de la función LABwide sclr que se encuentra en las familias de dispositivos obsoletos. Desactivar esta opción aumenta las posibilidades de usar completamente los LAB parcialmente llenos y, por lo tanto, puede permitir una mayor densidad lógica cuando SCLR no se aplica a un LAB completo. Este parámetro está disponible para la compatibilidad con versiones anteriores e Intel recomienda que no lo use.
Especifica el uso del puerto de entrada updown. Si se omite, el valor predeterminado es PORT_CONNECTIVITY. Cuando el valor del puerto se establece en PORT_USED, el puerto se trata como usado. Cuando el valor del puerto se establece en PORT_UNUSED, el puerto se trata como no utilizado. Cuando el valor del puerto se establece en PORT_CONNECTIVITY, el uso del puerto se determina comprobando la conectividad del puerto.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 11
683490 | 2020.10.05 Enviar comentarios
3. LPM_DIVIDE (divisor) Intel FPGA IP Core
Figura 2.
El núcleo LPM_DIVIDE Intel FPGA IP implementa un divisor para dividir un valor de entrada de numerador por un valor de entrada de denominador para producir un cociente y un resto.
La siguiente figura muestra los puertos para el núcleo IP LPM_DIVIDE.
Puertos LPM_DIVIDE
LPM_DIVIDE
número[] denominación[] reloj
cociente[] restante[]
clken aclr
Inst.
3.1. Características
El núcleo IP LPM_DIVIDE ofrece las siguientes características: · Genera un divisor que divide un valor de entrada de numerador por una entrada de denominador
valor para producir un cociente y un resto. · Admite ancho de datos de 1 bits. · Admite el formato de representación de datos firmados y no firmados tanto para el numerador
y valores del denominador. · Admite optimización de área o velocidad. · Proporciona una opción para especificar una salida de resto positivo. · Admite latencia de salida configurable de canalización. · Admite puertos de habilitación de reloj y claro asíncrono opcionales.
3.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo lpm_divide ( cociente, restante, número, denominador, reloj, clken, aclr); parámetro lpm_type = “lpm_divide”; parámetro lpm_widthn = 1; parámetro lpm_widthd = 1; parámetro lpm_nrepresentation = “SIN FIRMAR”; parámetro lpm_drepresentation = "SIN FIRMAR"; parámetro lpm_remainderpositive = “VERDADERO”; parámetro lpm_pipeline = 0;
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
3. LPM_DIVIDE (Divisor) Intel FPGA IP Core 683490 | 2020.10.05
parámetro lpm_hint = "SIN UTILIZAR"; reloj de entrada; entrada clken; entrada aclr; entrada [lpm_widthn-1:0] número; entrada [lpm_widthd-1:0] denominación; salida [lpm_widthn-1:0] cociente; la salida [lpm_widthd-1:0] permanece; módulo final
3.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) LPM_PACK.vhd en el directorio bibliotecasvhdllpm.
componente LPM_DIVIDE genérico (LPM_WIDTHN : natural; LPM_WIDTHD : natural;
LPM_NREPRESENTATION: cadena: = "SIN FIRMAR"; LPM_DREPRESENTATION: cadena: = "SIN FIRMAR"; LPM_PIPELINE : natural := 0; LPM_TYPE : cadena := L_DIVIDE; LPM_HINT: cadena: = "SIN UTILIZAR"); puerto (NUMER: en std_logic_vector (LPM_WIDTHN-1 hasta 0); DENOM: en std_logic_vector (LPM_WIDTHD-1 hasta 0); ACLR: en std_logic: = '0'; CLOCK: en std_logic: = '0'; CLKEN: en std_logic := '1';COCIENTE: fuera std_logic_vector (LPM_WIDTHN-1 hasta 0); REMAIN: fuera std_logic_vector (LPM_WIDTHD-1 hasta 0)); componente final;
3.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA lpm; USAR lpm.lpm_components.all;
3.5. Puertos
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo IP LPM_DIVIDE.
Tabla 5.
Puertos de entrada LPM_DIVIDE
Nombre del puerto
Requerido
numero[]
Sí
denominación[]
Sí
Descripción
Entrada de datos del numerador. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTHN.
Entrada de datos del denominador. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTHD.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 13
3. LPM_DIVIDE (Divisor) Intel FPGA IP Core 683490 | 2020.10.05
Reloj de nombre de puerto clken
aclr
Requerido No No
No
Descripción
Entrada de reloj para uso canalizado. Para valores de LPM_PIPELINE distintos de 0 (predeterminado), el puerto de reloj debe estar habilitado.
El reloj habilita el uso canalizado. Cuando el puerto clken se afirma alto, se lleva a cabo la operación de división. Cuando la señal es baja, no se produce ninguna operación. Si se omite, el valor predeterminado es 1.
Puerto claro asíncrono utilizado en cualquier momento para restablecer la canalización a todos los '0' de forma asíncrona con la entrada del reloj.
Tabla 6.
Puertos de salida LPM_DIVIDE
Nombre del puerto
Requerido
Descripción
cociente[]
Sí
Salida de datos. El tamaño del puerto de salida depende del LPM_WIDTHN
valor del parámetro.
permanecer[]
Sí
Salida de datos. El tamaño del puerto de salida depende del LPM_WIDTHD
valor del parámetro.
3.6 Parámetros
La siguiente tabla enumera los parámetros para el núcleo IP de FPGA de Intel LPM_DIVIDE.
Nombre del parámetro
Tipo
Requerido
Descripción
LPM_ANCHON
Entero
Sí
Especifica los anchos de numer[] y
cociente[] puertos. Los valores son de 1 a 64.
LPM_WIDHD
Entero
Sí
Especifica los anchos del denominador[] y
permanecen [] puertos. Los valores son de 1 a 64.
LPM_NREPRESENTACIÓN LPM_DREPRESENTACIÓN
cadena cadena
No
Representación de signo de la entrada del numerador.
Los valores son FIRMADOS y SIN FIRMAR. Cuando esto
parámetro se establece en SIGNED, el divisor
interpreta la entrada numer[] como dos con signo
complementar.
No
Representación de signo de la entrada del denominador.
Los valores son FIRMADOS y SIN FIRMAR. Cuando esto
parámetro se establece en SIGNED, el divisor
interpreta la entrada denom[] como dos con signo
complementar.
LPM_TYPE
Cadena
No
Identifica la biblioteca de parametrizados
nombre de entidad de módulos (LPM) en diseño VHDL
files (.vhd).
LPM_SUGERENCIA
Cadena
No
Cuando instancias una biblioteca de
Los módulos parametrizados (LPM) funcionan en un
Diseño VHDL File (.vhd), debe usar el
parámetro LPM_HINT para especificar un Intel-
parámetro específico. por ejemploamparchivo: LPM_HINT
= “TAMAÑO_CADENA = 8,
ONE_INPUT_IS_CONSTANT = SÍ” El
el valor predeterminado es NO UTILIZADO.
LPM_REMAINDERPOSITIVO
Cadena
No
Parámetro específico de Intel. Debes usar el
parámetro LPM_HINT para especificar el
Parámetro LPM_REMAINDERPOSITIVE en
diseño VHDL files. Los valores son VERDADERO o FALSO.
Si este parámetro se establece en VERDADERO, entonces el
el valor del puerto restante [] debe ser mayor
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 14
Enviar comentarios
3. LPM_DIVIDE (Divisor) Intel FPGA IP Core 683490 | 2020.10.05
Nombre del parámetro
Tipo
MAXIMIZAR_VELOCIDAD
Entero
LPM_PIPELINE
Entero
INTENDED_DEVICE_FAMILY SALTAR_BITS
Entero de cadena
Requerido No
No, no, no.
Descripción
que o igual a cero. Si este parámetro se establece en TRUE, el valor del puerto de permanecer[] es cero o el valor tiene el mismo signo, ya sea positivo o negativo, que el valor del puerto numérico. Para reducir el área y mejorar la velocidad, Intel recomienda establecer este parámetro en TRUE en operaciones donde el resto debe ser positivo o donde el resto no es importante.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro MAXIMIZE_SPEED en el diseño de VHDL files. Los valores son [0..9]. Si se utiliza, el software Intel Quartus Prime intenta optimizar una instancia específica de la función LPM_DIVIDE para la velocidad en lugar de la capacidad de enrutamiento y anula la configuración de la opción lógica Técnica de optimización. Si no se utiliza MAXIMIZE_SPEED, se utiliza en su lugar el valor de la opción Técnica de optimización. Si el valor de MAXIMIZE_SPEED es 6 o superior, el Compilador optimiza el núcleo de IP LPM_DIVIDE para una mayor velocidad mediante el uso de cadenas de transporte; si el valor es 5 o menos, el compilador implementa el diseño sin cadenas de transporte.
Especifica el número de ciclos de reloj de latencia asociados con las salidas cociente[] y restante[]. Un valor de cero (0) indica que no existe latencia y que se instancia una función puramente combinatoria. Si se omite, el valor predeterminado es 0 (no canalizado). No puede especificar un valor para el parámetro LPM_PIPELINE que sea superior a LPM_WIDTHN.
Este parámetro se utiliza con fines de modelado y simulación de comportamiento. El editor de parámetros calcula el valor de este parámetro.
Permite una división de bits fraccional más eficiente para optimizar la lógica en los bits principales al proporcionar el número de GND principales al núcleo IP LPM_DIVIDE. Especifique el número de GND inicial en la salida del cociente para este parámetro.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 15
683490 | 2020.10.05 Enviar comentarios
4. Núcleo IP LPM_MULT (multiplicador)
Figura 3.
El núcleo IP LPM_MULT implementa un multiplicador para multiplicar dos valores de datos de entrada para generar un producto como salida.
La siguiente figura muestra los puertos para el núcleo IP LPM_MULT.
LPM_Mult Puertos
LPM_MULT reloj datosa[] resultado[] datosb[] aclr/sclr clken
Inst.
Funciones de información relacionada en la página 71
4.1. Características
El núcleo IP LPM_MULT ofrece las siguientes características: · Genera un multiplicador que multiplica dos valores de datos de entrada · Admite ancho de datos de 1 bits · Admite formato de representación de datos firmados y sin firmar · Admite optimización de área o velocidad · Admite canalización con latencia de salida configurable · Proporciona un opción para implementación en procesamiento de señal digital dedicado (DSP)
Bloquear circuitos o elementos lógicos (LE) Nota: Al crear multiplicadores más grandes que el tamaño admitido de forma nativa,
habrá un impacto en el rendimiento como resultado de la cascada de los bloques DSP. · Admite puertos de entrada de activación de reloj y borrado asíncrono opcionales · Compatible con borrado síncrono opcional para dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
4. LPM_MULT (Multiplicador) IP Core 683490 | 2020.10.05
4.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo lpm_mult (resultado, datosa, datosb, suma, reloj, clken, aclr) parámetro lpm_type = “lpm_mult”; parámetro lpm_widtha = 1; parámetro lpm_widthb = 1; parámetro lpm_widths = 1; parámetro lpm_widthp = 1; parámetro lpm_representation = “SIN FIRMAR”; parámetro lpm_pipeline = 0; parámetro lpm_hint = "SIN UTILIZAR"; reloj de entrada; entrada clken; entrada aclr; entrada [lpm_widtha-1:0] datosa; entrada [lpm_widthb-1:0] datosb; entrada [lpm_widths-1:0] suma; salida [lpm_widthp-1:0] resultado; módulo final
4.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) LPM_PACK.vhd en el directorio bibliotecasvhdllpm.
componente LPM_MULT genérico ( LPM_WIDTHA : natural; LPM_WIDTHB : natural; LPM_WIDTHS : natural := 1; LPM_WIDTHP : natural;
LPM_REPRESENTATION : cadena := “SIN FIRMAR”; LPM_PIPELINE : natural := 0; LPM_TYPE: cadena := L_MULT; LPM_HINT: cadena: = "SIN UTILIZAR"); puerto ( DATAA : en std_logic_vector(LPM_WIDTHA-1 hasta 0); DATAB : en std_logic_vector(LPM_WIDTHB-1 hasta 0); ACLR : en std_logic := '0'; CLOCK : en std_logic := '0'; CLKEN : en std_logic := '1'; SUM : in std_logic_vector(LPM_WIDTHS-1 hasta 0) := (OTROS => '0'); RESULTADO : out std_logic_vector(LPM_WIDTHS-1 hasta 0)); componente final;
4.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA lpm; USAR lpm.lpm_components.all;
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 17
4. LPM_MULT (Multiplicador) IP Core 683490 | 2020.10.05
4.5. Señales
Tabla 7.
Señales de entrada LPM_MULT
Nombre de la señal
Requerido
Descripción
datos[]
Sí
Entrada de datos.
Para los dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, el tamaño de la señal de entrada depende del valor del parámetro Ancho de datos.
Para dispositivos Intel Cyclone 10 LP más antiguos, el tamaño de la señal de entrada depende del valor del parámetro LPM_WIDTHA.
datosb[]
Sí
Entrada de datos.
Para los dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, el tamaño de la señal de entrada depende del valor del parámetro de ancho de Datab.
Para dispositivos más antiguos e Intel Cyclone 10 LP, el tamaño de la señal de entrada depende
en el valor del parámetro LPM_WIDTHB.
reloj
No
Entrada de reloj para uso canalizado.
Para dispositivos Intel Cyclone 10 LP más antiguos, la señal de reloj debe estar habilitada para valores LPM_PIPELINE distintos de 0 (predeterminado).
Para los dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, la señal de reloj debe estar habilitada si el valor de latencia es distinto de 1 (predeterminado).
clken
No
Habilitación de reloj para uso canalizado. Cuando la señal clken se afirma alta, el
se lleva a cabo la operación sumador/restador. Cuando la señal es baja, no hay operación
ocurre. Si se omite, el valor predeterminado es 1.
aclr-sclr
No
Señal clara asíncrona utilizada en cualquier momento para restablecer la tubería a todos 0,
asincrónicamente a la señal del reloj. La tubería se inicializa a un indefinido (X)
nivel lógico. Las salidas son un valor consistente, pero distinto de cero.
No
Señal clara síncrona utilizada en cualquier momento para restablecer la tubería a todos 0,
sincrónicamente a la señal del reloj. La tubería se inicializa a un indefinido (X)
nivel lógico. Las salidas son un valor consistente, pero distinto de cero.
Tabla 8.
LPM_MULT Señales de salida
nombre de la señal
Requerido
Descripción
resultado[]
Sí
Salida de datos.
Para dispositivos Intel Cyclone 10 LP más antiguos, el tamaño de la señal de salida depende del valor del parámetro LPM_WIDTHP. Si LPM_WIDTHP < máx. (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) o (LPM_WIDTHA + LPM_WIDTHS), solo están presentes los MSB LPM_WIDTHP.
Para Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, el tamaño de las señales de salida depende del parámetro Ancho del resultado.
4.6. Parámetros para dispositivos Stratix V, Arria V, Cyclone V e Intel Cyclone 10 LP
4.6.1. Pestaña General
Tabla 9.
Pestaña General
Parámetro
Valor
Configuración del multiplicador
Multiplique la entrada 'dataa' por la entrada 'datab'
Valor predeterminado
Descripción
Multiplique la entrada 'dataa' por la entrada 'datab'
Seleccione la configuración deseada para el multiplicador.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 18
Enviar comentarios
4. LPM_MULT (Multiplicador) IP Core 683490 | 2020.10.05
Parámetro
¿Qué ancho debe tener la entrada 'dataa'? ¿Qué ancho debe tener la entrada 'datab'? ¿Cómo se debe determinar el ancho de la salida 'resultado'? Restringir el ancho
Valor
Multiplique la entrada 'dataa' por sí misma (operación de cuadratura)
1 – 256 bits
Valor predeterminado
Descripción
8 bits
Especifique el ancho del puerto dataa[].
1 – 256 bits
8 bits
Especifique el ancho del puerto datab[].
Calcular automáticamente el ancho Restringir el ancho
1 – 512 bits
Calcula automáticamente el ancho
Seleccione el método deseado para determinar el ancho del puerto result[].
16 bits
Especifique el ancho del puerto result[].
Este valor solo será efectivo si selecciona Restringir el ancho en el parámetro Tipo.
4.6.2. Pestaña General 2
Tabla 10. Pestaña General 2
Parámetro
Valor
Entrada de datos
¿El bus de entrada 'datab' tiene un valor constante?
No Sí
Tipo de multiplicación
¿Qué tipo de?
No firmado
¿quieres multiplicar? firmado
Implementación
¿Qué implementación de multiplicador se debe usar?
Usar la implementación predeterminada
Use el circuito multiplicador dedicado (no disponible para todas las familias)
Usa elementos lógicos
Valor predeterminado
Descripción
No
Seleccione Sí para especificar el valor constante de la
bus de entrada `datab', si lo hay.
No firmado
Especifique el formato de representación para las entradas dataa[] y datab[].
Usar la implementación predeterminada
Seleccione el método deseado para determinar el ancho del puerto result[].
4.6.3. Pestaña Canalización
Tabla 11. Pestaña Canalización
Parámetro
¿Quieres canalizar el No
¿función?
Sí
Valor
Crear un 'aclr'
—
puerto claro asíncrono
Valor predeterminado
Descripción
No
Seleccione Sí para habilitar el registro de tubería en el
la salida del multiplicador y especifique el deseado
latencia de salida en ciclo de reloj. Habilitando el
El registro de tubería agrega latencia adicional al
producción.
Desenfrenado
Seleccione esta opción para permitir que el puerto aclr use borrado asíncrono para el registro de canalización.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 19
4. LPM_MULT (Multiplicador) IP Core 683490 | 2020.10.05
Parámetro
Crear un reloj de habilitación de reloj 'clken'
Mejoramiento
¿Qué tipo de optimización quieres?
Valor -
Área de velocidad predeterminada
Valor predeterminado
Descripción
Desenfrenado
Especifica la habilitación activa de reloj alto para el puerto de reloj del registro de canalización
Por defecto
Especifique la optimización deseada para el núcleo de IP.
Seleccione Predeterminado para permitir que el software Intel Quartus Prime determine la mejor optimización para el núcleo de IP.
4.7. Parámetros para dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX
4.7.1. Pestaña General
Tabla 12. Pestaña General
Parámetro
Valor
Valor predeterminado
Descripción
Tipo de configuración del multiplicador
Anchos de puerto de datos
Multiplique la entrada 'dataa' por la entrada 'datab'
Multiplique la entrada 'dataa' por sí misma (operación de cuadratura)
Multiplique la entrada 'dataa' por la entrada 'datab'
Seleccione la configuración deseada para el multiplicador.
Ancho de datos
1 – 256 bits
8 bits
Especifique el ancho del puerto dataa[].
Ancho de la base de datos
1 – 256 bits
8 bits
Especifique el ancho del puerto datab[].
¿Cómo se debe determinar el ancho de la salida 'resultado'?
Tipo
Calcular automáticamente el ancho
Restringir el ancho
Calcula automáticamente el ancho
Seleccione el método deseado para determinar el ancho del puerto result[].
Valor
1 – 512 bits
16 bits
Especifique el ancho del puerto result[].
Este valor solo será efectivo si selecciona Restringir el ancho en el parámetro Tipo.
Ancho del resultado
1 – 512 bits
—
Muestra el ancho efectivo del puerto result[].
4.7.2. Pestaña General 2
Tabla 13. Pestaña General 2
Parámetro
Entrada de datos
¿El bus de entrada 'datab' tiene un valor constante?
No Sí
Valor
Valor predeterminado
Descripción
No
Seleccione Sí para especificar el valor constante de la
bus de entrada `datab', si lo hay.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 20
Enviar comentarios
4. LPM_MULT (Multiplicador) IP Core 683490 | 2020.10.05
Parámetro
Valor
Valor
Cualquier valor mayor que 0
Tipo de multiplicación
¿Qué tipo de?
No firmado
¿quieres multiplicar? firmado
Estilo de implementación
¿Qué implementación de multiplicador se debe usar?
Usar la implementación predeterminada
Utilice el circuito multiplicador dedicado
Usa elementos lógicos
Valor predeterminado
Descripción
0
Especifique el valor constante del puerto datab[].
No firmado
Especifique el formato de representación para las entradas dataa[] y datab[].
Usar la implementación predeterminada
Seleccione el método deseado para determinar el ancho del puerto result[].
4.7.3. Canalización
Tabla 14. Pestaña Canalización
Parámetro
Valor
¿Quieres canalizar la función?
Tubería
No Sí
Tipo de señal clara de latencia
Cualquier valor mayor que 0.
NINGUNO ACLR SCLR
Crear un reloj 'clken'
—
habilitar reloj
¿Qué tipo de optimización quieres?
Tipo
Área de velocidad predeterminada
Valor predeterminado
Descripción
Nº 1 NINGUNO
—
Seleccione Sí para habilitar el registro de tubería en la salida del multiplicador. Habilitar el registro de canalización agrega latencia adicional a la salida.
Especifique la latencia de salida deseada en el ciclo del reloj.
Especifique el tipo de reinicio para el registro de tubería. Seleccione NINGUNO si no utiliza ningún registro de tubería. Seleccione ACLR para usar borrado asíncrono para el registro de canalización. Esto generará un puerto ACLR. Seleccione SCLR para usar borrado síncrono para el registro de tubería. Esto generará un puerto SCLR.
Especifica la habilitación activa de reloj alto para el puerto de reloj del registro de canalización
Por defecto
Especifique la optimización deseada para el núcleo de IP.
Seleccione Predeterminado para permitir que el software Intel Quartus Prime determine la mejor optimización para el núcleo de IP.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 21
683490 | 2020.10.05 Enviar comentarios
5. LPM_ADD_SUB (Sumador/Restante)
Figura 4.
El núcleo IP LPM_ADD_SUB le permite implementar un sumador o un restador para sumar o restar conjuntos de datos para producir una salida que contenga la suma o la diferencia de los valores de entrada.
La siguiente figura muestra los puertos para el núcleo IP LPM_ADD_SUB.
Puertos LPM_ADD_SUB
LPM_ADD_SUB agregar_sub cin
datos[]
reloj clken datab[] aclr
resultado[] desbordamiento cout
Inst.
5.1. Características
El núcleo de IP LPM_ADD_SUB ofrece las siguientes características: · Genera sumador, restador y sumador/restador configurable dinámicamente.
funciones · Admite ancho de datos de 1 bits. · Admite el formato de representación de datos, como firmado y sin firmar. · Admite transferencia opcional (préstamo), borrado asíncrono y habilitación de reloj
puertos de entrada · Admite puertos de salida opcionales para llevar a cabo (préstamo) y desbordamiento. · Asigna cualquiera de los buses de datos de entrada a una constante. · Admite canalización con latencia de salida configurable.
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
5. LPM_ADD_SUB (Sumador/Restante) 683490 | 2020.10.05
5.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo lpm_add_sub ( resultado, cout, overflow,add_sub, cin, dataa, datab, clock, clken, aclr ); parámetro lpm_type = “lpm_add_sub”; parámetro lpm_width = 1; parámetro lpm_direction = “SIN UTILIZAR”; parámetro lpm_representation = “FIRMADO”; parámetro lpm_pipeline = 0; parámetro lpm_hint = "SIN UTILIZAR"; entrada [lpm_width-1:0] datosa, datosb; entrada add_sub, cin; reloj de entrada; entrada clken; entrada aclr; salida [lpm_width-1:0] resultado; salida cout, desbordamiento; módulo final
5.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) LPM_PACK.vhd en el directorio bibliotecasvhdllpm.
componente LPM_ADD_SUB genérico (LPM_WIDTH : natural;
LPM_DIRECTION: cadena: = "SIN UTILIZAR"; LPM_REPRESENTATION: cadena := “FIRMADO”; LPM_PIPELINE : natural := 0; LPM_TYPE : cadena := L_ADD_SUB; LPM_HINT: cadena: = "SIN UTILIZAR"); puerto (DATAA : en std_logic_vector(LPM_WIDTH-1 hasta 0); DATAB : en std_logic_vector(LPM_WIDTH-1 hasta 0); ACLR : en std_logic := '0'; CLOCK : en std_logic := '0'; CLKEN : en std_logic := '1'; CIN: en std_logic:= 'Z'; ADD_SUB: en std_logic:= '1'; RESULTADO: fuera std_logic_vector(LPM_WIDTH-1 hasta 0); COUT: fuera std_logic; OVERFLOW: fuera std_logic); componente final;
5.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA lpm; USAR lpm.lpm_components.all;
5.5. Puertos
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo de IP LPM_ADD_SUB.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 23
5. LPM_ADD_SUB (Sumador/Restante) 683490 | 2020.10.05
Tabla 15. Puertos de entrada de núcleo IP LPM_ADD_SUB
Nombre del puerto
Requerido
Descripción
Cintura
No
Acarreo al bit de orden inferior. Para operaciones de suma, el valor predeterminado es 0. Para
operaciones de resta, el valor predeterminado es 1.
datos[]
Sí
Entrada de datos. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTH.
datosb[]
Sí
Entrada de datos. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTH.
añadir_sub
No
Puerto de entrada opcional para habilitar el cambio dinámico entre el sumador y el restador
funciones Si se usa el parámetro LPM_DIRECTION, no se puede usar add_sub. Si
omitido, el valor predeterminado es ADD. Intel recomienda que utilice el
Parámetro LPM_DIRECTION para especificar el funcionamiento de la función LPM_ADD_SUB,
en lugar de asignar una constante al puerto add_sub.
reloj
No
Entrada para uso canalizado. El puerto de reloj proporciona la entrada de reloj para un canalizado
operación. Para valores de LPM_PIPELINE distintos de 0 (predeterminado), el puerto de reloj debe estar
activado.
clken
No
Habilitación de reloj para uso canalizado. Cuando el puerto clken se afirma alto, el sumador/
se lleva a cabo la operación sustractor. Cuando la señal es baja, no se produce ninguna operación. Si
omitido, el valor predeterminado es 1.
aclr
No
Borrado asíncrono para uso canalizado. La tubería se inicializa a un indefinido (X)
nivel lógico. El puerto aclr se puede usar en cualquier momento para restablecer la canalización a todos 0,
asincrónicamente a la señal del reloj.
Tabla 16. Puertos de salida del núcleo IP LPM_ADD_SUB
Nombre del puerto
Requerido
Descripción
resultado[]
Sí
Salida de datos. El tamaño del puerto de salida depende del parámetro LPM_WIDTH
valor.
Contar
No
Carry-out (préstamo) del bit más significativo (MSB). El puerto cout tiene un físico
interpretación como el carry-out (préstamo) del MSB. El puerto cout detecta
desbordamiento en operaciones UNSIGNED. El puerto cout opera de la misma manera para
Operaciones FIRMADA y NO FIRMADA.
rebosar
No
Salida de excepción de desbordamiento opcional. El puerto de desbordamiento tiene una interpretación física como
el XOR del carry-in al MSB con el carry-out del MSB. El puerto de desbordamiento
afirma cuando los resultados superan la precisión disponible, y se utiliza sólo cuando el
El valor del parámetro LPM_REPRESENTATION está FIRMADO.
5.6 Parámetros
La siguiente tabla enumera los parámetros básicos de IP de LPM_ADD_SUB.
Tabla 17. Parámetros principales de IP de LPM_ADD_SUB
Nombre de parámetro LPM_WIDTH
Tipo entero
Obligatorio Sí
Descripción
Especifica los anchos de los puertos dataa[], datab[] y result[].
LPM_DIRECCIÓN
Cadena
No
Los valores son AGREGAR, SUB y NO UTILIZADO. Si se omite, el valor predeterminado es DEFAULT, que indica al parámetro que tome su valor del puerto add_sub. El puerto add_sub no se puede usar si se usa LPM_DIRECTION. Intel recomienda utilizar el parámetro LPM_DIRECTION para especificar el funcionamiento de la función LPM_ADD_SUB, en lugar de asignar una constante al puerto add_sub.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 24
Enviar comentarios
5. LPM_ADD_SUB (Sumador/Restante) 683490 | 2020.10.05
Nombre del parámetro LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
DISPOSITIVO_INTENDIDO_FAMILIA
Tipo Cadena Entero Cadena Cadena Cadena Entero
Cadena
Obligatorio No No No No No No
No
Descripción
Especifica el tipo de adición realizada. Los valores son FIRMADOS y SIN FIRMAR. Si se omite, el valor predeterminado es FIRMADO. Cuando este parámetro se establece en SIGNED, el sumador/restador interpreta la entrada de datos como complemento a dos con signo.
Especifica el número de ciclos de reloj de latencia asociados con la salida result[]. Un valor de cero (0) indica que no existe latencia y que se instanciará una función puramente combinatoria. Si se omite, el valor predeterminado es 0 (no canalizado).
Le permite especificar parámetros específicos de Intel en el diseño de VHDL files (.vhd). El valor predeterminado es NO UTILIZADO.
Identifica el nombre de entidad de la biblioteca de módulos parametrizados (LPM) en el diseño de VHDL files.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro ONE_INPUT_IS_CONSTANT en el diseño de VHDL files. Los valores son SÍ, NO y NO UTILIZADO. Proporciona una mayor optimización si una entrada es constante. Si se omite, el valor predeterminado es NO.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro MAXIMIZE_SPEED en el diseño de VHDL files. Puede especificar un valor entre 0 y 10. Si se utiliza, el software Intel Quartus Prime intenta optimizar una instancia específica de la función LPM_ADD_SUB para la velocidad en lugar de la capacidad de enrutamiento y anula la configuración de la opción lógica Técnica de optimización. Si no se utiliza MAXIMIZE_SPEED, se utiliza en su lugar el valor de la opción Técnica de optimización. Si la configuración de MAXIMIZE_SPEED es 6 o superior, el Compilador optimiza el núcleo IP LPM_ADD_SUB para una mayor velocidad mediante cadenas de transporte; si la configuración es 5 o menos, el compilador implementa el diseño sin cadenas de transporte. Este parámetro debe especificarse para los dispositivos Cyclone, Stratix y Stratix GX solo cuando no se usa el puerto add_sub.
Este parámetro se utiliza con fines de modelado y simulación de comportamiento. El editor de parámetros calcula el valor de este parámetro.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 25
683490 | 2020.10.05 Enviar comentarios
6. LPM_COMPARE (Comparador)
Figura 5.
El núcleo LPM_COMPARE IP compara el valor de dos conjuntos de datos para determinar la relación entre ellos. En su forma más simple, puede usar una puerta OR exclusiva para determinar si dos bits de datos son iguales.
La siguiente figura muestra los puertos para el núcleo IP LPM_COMPARE.
Puertos LPM_COMPARE
LPM_COMPARE
clken
alba
aeb
datos[]
agb
datosb[]
edadb
reloj
o
aclr
aleb
Inst.
6.1. Características
El núcleo IP LPM_COMPARE ofrece las siguientes características: · Genera una función de comparación para comparar dos conjuntos de datos · Admite un ancho de datos de 1 bits · Admite formatos de representación de datos como firmados y sin firmar · Produce los siguientes tipos de salida:
— alb (la entrada A es menor que la entrada B) — aeb (la entrada A es igual a la entrada B) — agb (la entrada A es mayor que la entrada B) — ageb (la entrada A es mayor o igual que la entrada B) — aneb ( la entrada A no es igual a la entrada B) — aleb (la entrada A es menor o igual que la entrada B) · Admite puertos de entrada de activación de reloj y borrado asíncrono opcionales · Asigna la entrada datab[] a una constante · Admite canalización con latencia de salida configurable
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
6. LPM_COMPARE (Comparador) 683490 | 2020.10.05
6.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr); parámetro lpm_type = “lpm_compare”; parámetro lpm_width = 1; parámetro lpm_representation = “SIN FIRMAR”; parámetro lpm_pipeline = 0; parámetro lpm_hint = "SIN UTILIZAR"; entrada [lpm_width-1:0] datosa, datosb; reloj de entrada; entrada clken; entrada aclr; salida alb, aeb, agb, aleb, aneb, ageb; módulo final
6.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) LPM_PACK.vhd en el directorio bibliotecasvhdllpm.
componente LPM_COMPARE genérico (LPM_WIDTH : natural;
LPM_REPRESENTATION : cadena := “SIN FIRMAR”; LPM_PIPELINE : natural := 0; LPM_TYPE: cadena := L_COMPARE; LPM_HINT: cadena: = "SIN UTILIZAR"); puerto (DATAA : en std_logic_vector(LPM_WIDTH-1 hasta 0); DATAB : en std_logic_vector(LPM_WIDTH-1 hasta 0); ACLR : en std_logic := '0'; CLOCK : en std_logic := '0'; CLKEN : en std_logic := '1'; AGB: fuera std_logic; AGEB: fuera std_logic; AEB: fuera std_logic; ANEB: fuera std_logic; ALB: fuera std_logic; ALEB: fuera std_logic); componente final;
6.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA lpm; USAR lpm.lpm_components.all;
6.5. Puertos
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo IP LMP_COMPARE.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 27
6. LPM_COMPARE (Comparador) 683490 | 2020.10.05
Tabla 18. Puertos de entrada de LPM_COMPARE IP core
Nombre del puerto
Requerido
Descripción
datos[]
Sí
Entrada de datos. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTH.
datosb[]
Sí
Entrada de datos. El tamaño del puerto de entrada depende del valor del parámetro LPM_WIDTH.
reloj
No
Entrada de reloj para uso canalizado. El puerto de reloj proporciona la entrada de reloj para un canalizado
operación. Para valores de LPM_PIPELINE distintos de 0 (predeterminado), el puerto de reloj debe estar
activado.
clken
No
Habilitación de reloj para uso canalizado. Cuando el puerto clken se afirma alto, el
tiene lugar la operación de comparación. Cuando la señal es baja, no se produce ninguna operación. Si
omitido, el valor predeterminado es 1.
aclr
No
Borrado asíncrono para uso canalizado. La canalización se inicializa en una lógica indefinida (X)
nivel. El puerto aclr se puede usar en cualquier momento para restablecer la canalización a todos 0,
asincrónicamente a la señal del reloj.
Tabla 19. Puertos de salida de LPM_COMPARE IP core
Nombre del puerto
Requerido
Descripción
alba
No
Puerto de salida para el comparador. Se afirma si la entrada A es menor que la entrada B.
aeb
No
Puerto de salida para el comparador. Afirmado si la entrada A es igual a la entrada B.
agb
No
Puerto de salida para el comparador. Se afirma si la entrada A es mayor que la entrada B.
edadb
No
Puerto de salida para el comparador. Afirmado si la entrada A es mayor o igual que la entrada
B.
o
No
Puerto de salida para el comparador. Se afirma si la entrada A no es igual a la entrada B.
aleb
No
Puerto de salida para el comparador. Se afirma si la entrada A es menor o igual que la entrada B.
6.6 Parámetros
La siguiente tabla enumera los parámetros para el núcleo de IP LPM_COMPARE.
Tabla 20. Parámetros de LPM_COMPARE IP core
Nombre del parámetro
Tipo
Requerido
LPM_ANCHO
Entero Sí
LPM_REPRESENTACIÓN
Cadena
No
LPM_PIPELINE
número entero
LPM_SUGERENCIA
Cadena
No
Descripción
Especifica los anchos de los puertos dataa[] y datab[].
Especifica el tipo de comparación realizada. Los valores son FIRMADOS y SIN FIRMAR. Si se omite, el valor predeterminado es SIN FIRMA. Cuando el valor de este parámetro se establece en SIGNED, el comparador interpreta la entrada de datos como complemento a dos con signo.
Especifica el número de ciclos de reloj de latencia asociados con la salida alb, aeb, agb, ageb, aleb o aneb. Un valor de cero (0) indica que no existe latencia y que se instanciará una función puramente combinatoria. Si se omite, el valor predeterminado es 0 (no canalizado).
Le permite especificar parámetros específicos de Intel en el diseño de VHDL files (.vhd). El valor predeterminado es NO UTILIZADO.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 28
Enviar comentarios
6. LPM_COMPARE (Comparador) 683490 | 2020.10.05
Nombre de parámetro LPM_TYPE INTENDED_DEVICE_FAMILY
UNA_ENTRADA_ES_CONSTANTE
Tipo Cadena Cadena
Cadena
Requerido No No
No
Descripción
Identifica el nombre de entidad de la biblioteca de módulos parametrizados (LPM) en el diseño de VHDL files.
Este parámetro se utiliza con fines de modelado y simulación de comportamiento. El editor de parámetros calcula el valor de este parámetro.
Parámetro específico de Intel. Debe usar el parámetro LPM_HINT para especificar el parámetro ONE_INPUT_IS_CONSTANT en el diseño de VHDL files. Los valores son SÍ, NO o SIN UTILIZAR. Proporciona una mayor optimización si una entrada es constante. Si se omite, el valor predeterminado es NO.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 29
683490 | 2020.10.05 Enviar comentarios
7. Núcleo IP ALTECC (Código de corrección de errores: codificador/descodificador)
Figura 6.
Intel proporciona el núcleo IP ALTECC para implementar la funcionalidad ECC. ECC detecta datos corruptos que ocurren en el lado del receptor durante la transmisión de datos. Este método de corrección de errores es más adecuado para situaciones en las que los errores ocurren al azar en lugar de en ráfagas.
El ECC detecta errores a través del proceso de codificación y decodificación de datos. por ejemploampes decir, cuando se aplica el ECC en una aplicación de transmisión, los datos leídos de la fuente se codifican antes de enviarse al receptor. La salida (palabra de código) del codificador consta de los datos sin procesar a los que se añade el número de bits de paridad. El número exacto de bits de paridad añadidos depende del número de bits en los datos de entrada. La palabra de código generada se transmite luego al destino.
El receptor recibe la palabra clave y la decodifica. La información obtenida por el decodificador determina si se detecta un error. El decodificador detecta errores de un solo bit y de doble bit, pero solo puede corregir errores de un solo bit en los datos corruptos. Este tipo de ECC es detección de doble error de corrección de error simple (SECDED).
Puede configurar las funciones de codificador y decodificador del núcleo IP de ALTECC. La entrada de datos al codificador se codifica para generar una palabra de código que es una combinación de la entrada de datos y los bits de paridad generados. La palabra de código generada se transmite al módulo decodificador para su decodificación justo antes de llegar a su bloque de destino. El decodificador genera un vector de síndrome para determinar si hay algún error en la palabra de código recibida. El decodificador corrige los datos solo si el error de un solo bit proviene de los bits de datos. No se marca ninguna señal si el error de un solo bit proviene de los bits de paridad. El decodificador también tiene señales indicadoras para mostrar el estado de los datos recibidos y la acción realizada por el decodificador, si corresponde.
Las siguientes figuras muestran los puertos para el núcleo IP de ALTECC.
Puertos de codificador ALTECC
ALTCC_ENCODER
datos[]
q[]
reloj
Reloj
aclr
Inst.
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
7. ALTECC (Código de corrección de errores: codificador/descodificador) IP Core 683490 | 2020.10.05
Figura 7. Puertos del decodificador ALTECC
ALTECC_DECODIFICADOR
datos[] reloj clocken
q[] err_detectado err_corregido
error_fatal
aclr
Inst.
7.1. Características del codificador ALTECC
El núcleo IP del codificador ALTECC ofrece las siguientes características: · Realiza la codificación de datos mediante el esquema de codificación de Hamming · Admite un ancho de datos de 2 bits · Admite formato de representación de datos firmados y sin firmar · Admite canalización con latencia de salida de uno o dos ciclos de reloj · Admite opcional puertos asíncronos claros y de habilitación de reloj
El núcleo IP del codificador ALTECC toma y codifica los datos utilizando el esquema de codificación Hamming. El esquema de codificación de Hamming deriva los bits de paridad y los agrega a los datos originales para producir la palabra de código de salida. El número de bits de paridad añadidos depende del ancho de los datos.
La siguiente tabla enumera la cantidad de bits de paridad agregados para diferentes rangos de anchos de datos. La columna Bits totales representa el número total de bits de datos de entrada y bits de paridad adjuntos.
Tabla 21.
Número de bits de paridad y palabra de código según el ancho de datos
Ancho de datos
Número de bits de paridad
Bits totales (palabra de código)
2-4
3+1
6-8
5-11
4+1
10-16
12-26
5+1
18-32
27-57
6+1
34-64
58-64
7+1
66-72
La derivación de bits de paridad utiliza una comprobación de paridad par. El 1 bit adicional (que se muestra en la tabla como +1) se agrega a los bits de paridad como el MSB de la palabra de código. Esto asegura que la palabra clave tenga un número par de unos. por ejemploampes decir, si el ancho de los datos es de 4 bits, se añaden 4 bits de paridad a los datos para convertirse en una palabra de código con un total de 8 bits. Si 7 bits del LSB de la palabra de código de 8 bits tienen un número impar de 1, el octavo bit (MSB) de la palabra de código es 8, lo que hace que el número total de 1 en la palabra de código sea par.
La siguiente figura muestra la palabra de código generada y la disposición de los bits de paridad y los bits de datos en una entrada de datos de 8 bits.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 31
7. ALTECC (Código de corrección de errores: codificador/descodificador) IP Core 683490 | 2020.10.05
Figura 8.
Disposición de bits de paridad y bits de datos en una palabra de código generada de 8 bits
MSB
LSB
4 bits de paridad
4 bits de datos
8
1
El núcleo IP del codificador ALTECC solo acepta anchos de entrada de 2 a 64 bits a la vez. Los anchos de entrada de 12 bits, 29 bits y 64 bits, que son ideales para dispositivos Intel, generan salidas de 18 bits, 36 bits y 72 bits respectivamente. Puede controlar la limitación de selección de bits en el editor de parámetros.
7.2. Prototipo Verilog HDL (ALTECC_ENCODER)
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo altecc_encoder #( parámetro added_device_family = “no utilizado”, parámetro lpm_pipeline = 0, parámetro width_codeword = 8, parámetro width_dataword = 8, parámetro lpm_type = “altecc_encoder”, parámetro lpm_hint = “no utilizado”) (cable de entrada aclr, reloj de cable de entrada, entrada reloj de cable, cable de entrada [width_dataword-1:0] datos, cable de salida [width_codeword-1:0] q); módulo final
7.3. Prototipo Verilog HDL (ALTECC_DECODER)
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) lpm.v en el directorio edasíntesis.
módulo altecc_decoder #( parámetro added_device_family = “no utilizado”, parámetro lpm_pipeline = 0, parámetro width_codeword = 8, parámetro width_dataword = 8, parámetro lpm_type = “altecc_decoder”, parámetro lpm_hint = “no utilizado”) (cable de entrada aclr, reloj de cable de entrada, entrada reloj de cable, cable de entrada [width_codeword-1:0] datos, cable de salida err_corregido, cable de salida err_detected, cable de salida err_fatal, cable de salida [width_dataword-1:0] q); módulo final
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 32
Enviar comentarios
7. ALTECC (Código de corrección de errores: codificador/descodificador) IP Core 683490 | 2020.10.05
7.4. Declaración de componente VHDL (ALTECC_ENCODER)
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) altera_mf_components.vhd en el directorio libraryvhdlaltera_mf.
componente altecc_encoder genérico ( familia_dispositivo_destinado:cadena := “sin usar”; lpm_pipeline:natural := 0; palabra_código_anchura:natural := 8; palabra_datos_anchura:natural := 8; lpm_hint:cadena := “SIN UTILIZAR”; lpm_type:cadena := “altecc_encoder ”); port( aclr:en std_logic := '0'; clock:en std_logic := '0'; clocken:en std_logic := '1'; data:en std_logic_vector(width_dataword-1 hasta 0); q:out std_logic_vector(width_codeword -1 hasta 0)); componente final;
7.5. Declaración de componente VHDL (ALTECC_DECODER)
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) altera_mf_components.vhd en el directorio libraryvhdlaltera_mf.
componente altecc_decoder genérico ( familia_dispositivo_destinado:cadena := “no utilizado”; lpm_pipeline:natural := 0; palabra_código_anchura:natural := 8; palabra_datos_anchura:natural := 8; lpm_hint:cadena := “NO UTILIZADO”; lpm_type:cadena := “decodificador_altecc ”); port( aclr:en std_logic := '0'; clock:en std_logic := '0'; clocken:en std_logic := '1'; data:en std_logic_vector(width_codeword-1 hasta 0); err_corrected : out std_logic; err_detected : fuera std_logic; q: fuera std_logic_vector(width_dataword-1 hasta 0); syn_e: fuera std_logic); componente final;
7.6. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA altera_mf; UTILIZAR altera_mf.altera_mf_components.all;
7.7. Puertos de codificador
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo IP del codificador ALTECC.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 33
7. ALTECC (Código de corrección de errores: codificador/descodificador) IP Core 683490 | 2020.10.05
Tabla 22. Puertos de entrada del codificador ALTECC
Nombre del puerto
Requerido
Descripción
datos[]
Sí
Puerto de entrada de datos. El tamaño del puerto de entrada depende de WIDTH_DATAWORD
valor del parámetro. El puerto data[] contiene los datos sin procesar que se codificarán.
reloj
Sí
Puerto de entrada de reloj que proporciona la señal de reloj para sincronizar la operación de codificación.
El puerto de reloj es necesario cuando el valor de LPM_PIPELINE es mayor que 0.
Reloj
No
Habilitar reloj. Si se omite, el valor predeterminado es 1.
aclr
No
Entrada clara asíncrona. La señal activa de alto aclr se puede utilizar en cualquier momento para
Borrar asincrónicamente los registros.
Tabla 23. Puertos de salida del codificador ALTECC
Nombre de puerto q[]
Obligatorio Sí
Descripción
Puerto de salida de datos codificados. El tamaño del puerto de salida depende del valor del parámetro WIDTH_CODEWORD.
7.8. Puertos de decodificador
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo IP del decodificador ALTECC.
Tabla 24. Puertos de entrada del decodificador ALTECC
Nombre del puerto
Requerido
Descripción
datos[]
Sí
Puerto de entrada de datos. El tamaño del puerto de entrada depende del valor del parámetro WIDTH_CODEWORD.
reloj
Sí
Puerto de entrada de reloj que proporciona la señal de reloj para sincronizar la operación de codificación. El puerto de reloj es necesario cuando el valor de LPM_PIPELINE es mayor que 0.
Reloj
No
Habilitar reloj. Si se omite, el valor predeterminado es 1.
aclr
No
Entrada clara asíncrona. La señal activa de aclr alto se puede utilizar en cualquier momento para borrar los registros de forma asíncrona.
Tabla 25. Puertos de salida del decodificador ALTECC
Nombre de puerto q[]
Obligatorio Sí
Descripción
Puerto de salida de datos decodificados. El tamaño del puerto de salida depende del valor del parámetro WIDTH_DATAWORD.
err_detected Sí
Marca la señal para reflejar el estado de los datos recibidos y especifica cualquier error encontrado.
err_correcte Sí d
Señal de bandera para reflejar el estado de los datos recibidos. Denota un error de un solo bit encontrado y corregido. Puede utilizar los datos porque ya se han corregido.
error_fatal
Sí
Señal de bandera para reflejar el estado de los datos recibidos. Indica que se encontró un error de doble bit, pero no se corrigió. No debe utilizar los datos si se afirma esta señal.
sintetizar
No
Una señal de salida que aumentará cuando se detecte un error de un solo bit en la paridad
Pedazos.
7.9. Parámetros del codificador
La siguiente tabla enumera los parámetros para el núcleo IP del codificador ALTECC.
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 34
Enviar comentarios
7. ALTECC (Código de corrección de errores: codificador/descodificador) IP Core 683490 | 2020.10.05
Tabla 26. Parámetros del codificador ALTECC
Nombre del parámetro
Tipo
Requerido
Descripción
WIDTH_DATAWORD
Entero Sí
Especifica el ancho de los datos sin procesar. Los valores son de 2 a 64. Si se omite, el valor predeterminado es 8.
WIDTH_CODEWORD
Entero Sí
Especifica el ancho de la palabra de código correspondiente. Los valores válidos son de 6 a 72, excepto 9, 17, 33 y 65. Si se omite, el valor predeterminado es 13.
LPM_PIPELINE
número entero
Especifica la tubería para el circuito. Los valores son de 0 a 2. Si el valor es 0, los puertos no están registrados. Si el valor es 1, los puertos de salida están registrados. Si el valor es 2, se registran los puertos de entrada y salida. Si se omite, el valor predeterminado es 0.
7.10. Parámetros del decodificador
La siguiente tabla enumera los parámetros principales de IP del decodificador ALTECC.
Tabla 27. Parámetros del decodificador ALTECC
Nombre de parámetro WIDTH_DATAWORD
Tipo entero
Requerido
Descripción
Sí
Especifica el ancho de los datos sin procesar. Los valores son de 2 a 64. El
el valor predeterminado es 8.
WIDTH_CODEWORD
Entero
Sí
Especifica el ancho de la palabra de código correspondiente. Los valores son 6
a 72, excluyendo 9, 17, 33 y 65. Si se omite, el valor predeterminado
Tiene 13 años.
LPM_PIPELINE
Entero
No
Especifica el registro del circuito. Los valores son de 0 a 2. Si el
el valor es 0, no se implementa ningún registro. Si el valor es 1, el
se registra la salida. Si el valor es 2, tanto la entrada como el
se registra la salida. Si el valor es mayor que 2, adicional
los registros se implementan en la salida para el adicional
latencias. Si se omite, el valor predeterminado es 0.
Crear un puerto 'syn_e'
Entero
No
Active este parámetro para crear un puerto syn_e.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 35
683490 | 2020.10.05 Enviar comentarios
8. Núcleo IP sumador multiplicador Intel FPGA
Figura 9.
El núcleo IP Intel FPGA Multiply Adder (dispositivos Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX) o ALTERA_MULT_ADD (dispositivos Arria V, Stratix V y Cyclone V) le permite implementar un multiplicador-sumador.
La siguiente figura muestra los puertos para Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP core.
Puertos Intel FPGA Multiply Adder o ALTERA_MULT_ADD
Intel FPGA Multiply Adder o ALTERA_MULT_ADD
dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] reloj0 reloj1 reloj2 ena0 ena1 ena2 sload_accum
cadena accum_sload[]
scanouta[] resultado[]
aclr0 aclr1
Inst.
Un sumador-multiplicador acepta pares de entradas, multiplica los valores y luego suma o resta de los productos de todos los demás pares.
Si todos los anchos de datos de entrada son de 9 bits o menos, la función utiliza la configuración del multiplicador de entrada de 9 x 9 bits en el bloque DSP para dispositivos que admiten la configuración de 9 x 9. De lo contrario, el bloque DSP utiliza multiplicadores de entrada de 18 × 18 bits para procesar datos con anchos entre 10 bits y 18 bits. Si se producen varios núcleos Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP en un diseño, las funciones se distribuyen como
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
tantos bloques DSP diferentes como sea posible para que el enrutamiento a estos bloques sea más flexible. Menos multiplicadores por bloque DSP permiten más opciones de enrutamiento en el bloque al minimizar las rutas al resto del dispositivo.
Los registros y los registros de tubería adicionales para las siguientes señales también se colocan dentro del bloque DSP: · Entrada de datos · Selección con o sin signo · Selección de suma o resta · Productos de multiplicadores
En el caso del resultado de salida, el primer registro se coloca en el bloque DSP. Sin embargo, los registros de latencia adicionales se colocan en elementos lógicos fuera del bloque. Los periféricos del bloque DSP, incluidas las entradas de datos al multiplicador, las entradas de señal de control y las salidas del sumador, utilizan el enrutamiento regular para comunicarse con el resto del dispositivo. Todas las conexiones en la función usan enrutamiento dedicado dentro del bloque DSP. Este enrutamiento dedicado incluye las cadenas de registros de desplazamiento cuando selecciona la opción de desplazar los datos de entrada registrados de un multiplicador de un multiplicador a un multiplicador adyacente.
Para obtener más información sobre los bloques DSP en cualquiera de las series de dispositivos Stratix V y Arria V, consulte el capítulo Bloques DSP de los manuales respectivos en la página Literatura y documentación técnica.
Información relacionada AN 306: Implementación de multiplicadores en dispositivos FPGA
Proporciona más información sobre la implementación de multiplicadores mediante DSP y bloques de memoria en dispositivos Intel FPGA.
8.1. Características
El núcleo Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP ofrece las siguientes características: · Genera un multiplicador para realizar operaciones de multiplicación de dos complejos
números Nota: Al crear multiplicadores más grandes que el tamaño compatible de forma nativa, es posible que/
habrá un impacto en el rendimiento como resultado de la cascada de los bloques DSP. · Admite anchos de datos de 1 256 bits · Admite formato de representación de datos firmados y sin firmar · Admite canalización con latencia de entrada configurable · Proporciona una opción para cambiar dinámicamente entre soporte de datos firmados y sin firmar · Proporciona una opción para cambiar dinámicamente entre operaciones de suma y resta · Admite Puertos de entrada de activación de reloj y borrado asíncrono y síncrono opcionales · Admite el modo de registro de retardo sistólico · Admite presumador con 8 coeficientes de precarga por multiplicador · Admite constante de precarga para complementar la retroalimentación del acumulador
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 37
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
8.1.1. pre-sumador
Con el sumador previo, las sumas o restas se realizan antes de alimentar el multiplicador.
Hay cinco modos de sumador previo: · Modo simple · Modo de coeficiente · Modo de entrada · Modo cuadrado · Modo constante
Nota:
Cuando se usa el sumador previo (coeficiente/entrada/cuadrado de sumador previo), todas las entradas de datos al multiplicador deben tener la misma configuración de reloj.
8.1.1.1. Modo simple previo al sumador
En este modo, ambos operandos se derivan de los puertos de entrada y el sumador previo no se usa ni se omite. Este es el modo por defecto.
Figura 10. Modo simple previo al sumador
a0b0
Multi0
resultado
8.1.1.2. Modo Coeficiente Pre-sumador
En este modo, un operando multiplicador se deriva del sumador previo y el otro operando se deriva del almacenamiento interno de coeficientes. El almacenamiento de coeficientes permite hasta 8 constantes preestablecidas. Las señales de selección de coeficientes son coefsel[0..3].
Este modo se expresa en la siguiente ecuación.
A continuación se muestra el modo de coeficiente presumador de un multiplicador.
Figura 11. Modo Coeficiente Pre-sumador
predicador
a0
Multi0
+/-
resultado
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 38
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
8.1.1.3. Modo de entrada de sumador previo En este modo, un operando multiplicador se deriva del sumador previo y el otro operando se deriva del puerto de entrada datac[]. Este modo se expresa en la siguiente ecuación.
A continuación se muestra el modo de entrada del presumador de un multiplicador.
Figura 12. Modo de entrada de presumador
a0b0
Multi0
+/-
resultado
c0
8.1.1.4. Modo Pre-sumador Cuadrado Este modo se expresa en la siguiente ecuación.
A continuación se muestra el modo cuadrado presumador de dos multiplicadores.
Figura 13. Modo cuadrado previo al sumador
a0b0
Multi0
+/-
resultado
8.1.1.5. Modo constante previo al sumador
En este modo, un operando multiplicador se deriva del puerto de entrada y el otro operando se deriva del almacenamiento interno de coeficientes. El almacenamiento de coeficientes permite hasta 8 constantes preestablecidas. Las señales de selección de coeficientes son coefsel[0..3].
Este modo se expresa en la siguiente ecuación.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 39
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
La siguiente figura muestra el modo de constante presumador de un multiplicador.
Figura 14. Modo Constante Pre-sumador
a0
Multi0
resultado
coefsel0
coeficiente
8.1.2. Registro de retraso sistólico
En una arquitectura sistólica, los datos de entrada se introducen en una cascada de registros que actúan como un búfer de datos. Cada registro entrega una entrada sample a un multiplicador donde se multiplica por el respectivo coeficiente. El sumador de cadena almacena los resultados combinados gradualmente del multiplicador y el resultado previamente registrado del puerto de entrada chainin[] para formar el resultado final. Cada elemento de multiplicación y suma debe retrasarse un solo ciclo para que los resultados se sincronicen adecuadamente cuando se suman. Cada retardo sucesivo se utiliza para dirigirse tanto a la memoria de coeficientes como al búfer de datos de sus respectivos elementos de multiplicación y suma. por ejemploample, un único retardo para el segundo elemento de multiplicación y suma, dos retardos para el tercer elemento de multiplicación y suma, y así sucesivamente.
Figura 15. Registros sistólicos
registros sistólicos
x(t)c(0)
S-1
S-1
c(1)
S-1
S-1
c(2)
S-1
S-1
c(N-1)
S-1
S-1
S-1
S -1 año(t)
x(t) representa los resultados de un flujo continuo de entrada samples y y(t)
representa la suma de un conjunto de entradas samples, y en el tiempo, multiplicado por su
respectivos coeficientes. Tanto los resultados de entrada como de salida fluyen de izquierda a derecha. El c(0) a c(N-1) denota los coeficientes. Los registros de retraso sistólico se indican con S-1, mientras que el 1 representa un solo retraso de reloj. Los registros de retardo sistólico se agregan en
las entradas y salidas para canalizar de una manera que asegure los resultados de la
operando multiplicador y las sumas acumuladas permanecen sincronizadas. Este elemento de procesamiento
se replica para formar un circuito que calcula la función de filtrado. Esta función es
expresada en la siguiente ecuación.
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 40
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
N representa el número de ciclos de datos que han ingresado al acumulador, y(t) representa la salida en el tiempo t, A(t) representa la entrada en el tiempo t y B(i) son los coeficientes. La t y la i en la ecuación corresponden a un instante particular en el tiempo, por lo que para calcular la salida sample y(t) en el tiempo t, un grupo de entrada samparchivos en N puntos diferentes en el tiempo, o A(n), A(n-1), A(n-2), … Se requiere A(n-N+1). El grupo de N entradasampLos archivos se multiplican por N coeficientes y se suman para formar el resultado final y.
La arquitectura de registro sistólico está disponible solo para los modos suma de 2 y suma de 4. Para ambos modos de arquitectura de registro sistólico, la primera señal de entrada en cadena debe vincularse a 0.
La siguiente figura muestra la implementación del registro de retraso sistólico de 2 multiplicadores.
Figura 16. Implementación del Registro de Retraso Sistólico de 2 Multiplicadores
encadenando
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
resultado
La suma de dos multiplicadores se expresa en la siguiente ecuación.
La siguiente figura muestra la implementación del registro de retraso sistólico de 4 multiplicadores.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 41
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Figura 17. Implementación del Registro de Retraso Sistólico de 4 Multiplicadores
encadenando
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
a2
Multi2
+/-
b2
a3
Multi3
+/-
b3
resultado
La suma de cuatro multiplicadores se expresa en la siguiente ecuación. Figura 18. Suma de 4 multiplicadores
A continuación se enumeran las ventajastagEs de implementación del registro sistólico: · Reduce el uso de recursos DSP · Permite un mapeo eficiente en el bloque DSP usando la estructura de sumador de cadena
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 42
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
8.1.3. Constante de precarga
La constante de precarga controla el operando del acumulador y complementa la retroalimentación del acumulador. El LOADCONST_VALUE válido varía de 0. El valor constante es igual a 64N, donde N = LOADCONST_VALUE. Cuando LOADCONST_VALUE se establece en 2, el valor constante es igual a 64. Esta función se puede utilizar como redondeo sesgado.
La siguiente figura muestra la implementación de la constante de precarga.
Figura 19. Constante de precarga
Retroalimentación del acumulador
constante
a0
Multi0
+/-
b0
a1
Multi1
+/b1
resultado
carga_acumulación carga_acumulación
Consulte los siguientes núcleos de IP para otras implementaciones de multiplicadores: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Acumulador doble
La función de doble acumulador agrega un registro adicional en la ruta de retroalimentación del acumulador. El registro del acumulador doble sigue al registro de salida, que incluye el reloj, la habilitación del reloj y el aclr. El registro acumulador adicional devuelve el resultado con un retraso de un ciclo. Esta función le permite tener dos canales acumuladores con el mismo número de recursos.
La siguiente figura muestra la implementación del doble acumulador.
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 43
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Figura 20. Acumulador doble
Registro de acumulador doble
Realimentación del acumulador
a0
Multi0
+/-
b0
a1
Multi1
+/b1
Resultado de salida Registro de salida
8.2. Prototipo Verilog HDL
Puede encontrar el prototipo Intel FPGA Multiply Adder o ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) en el directorio de megafunciones de bibliotecas.
8.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en altera_lnsim_components.vhd en el bibliotecasvhdl altera_lnsim directorio.
8.4. Declaración VHDL LIBRARY_USE
La declaración VHDL LIBRARY-USE no es necesaria si utiliza la Declaración de componentes VHDL.
BIBLIOTECA altera_mf; UTILIZAR altera_mf.altera_mf_components.all;
8.5. Señales
Las siguientes tablas enumeran las señales de entrada y salida del núcleo IP Multiply Adder Intel FPGA IPor ALTERA_MULT_ADD.
Tabla 28. Señales de entrada Multiply Adder Intel FPGA IPor ALTERA_MULT_ADD
Señal
Requerido
Descripción
datosa_0[]/datosa_1[]/
Sí
datosa_2[]/datosa_3[]
Entrada de datos al multiplicador. Puerto de entrada [NÚMERO_DE_MULTIPLICADORES * ANCHO_A – 1 … 0] de ancho
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 44
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Señal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] señal
signob
scanina[] accum_sload
Obligatorio Sí No
No no no no no
No
No, no.
Descripción
El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Entrada de datos al multiplicador. Señal de entrada [NÚMERO_DE_MULTIPLICADORES * ANCHO_B – 1 … 0] de ancho El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Entrada de datos al multiplicador. Señal de entrada [NÚMERO_DE_MULTIPLICADORES * ANCHO_C – 1, … 0] de ancho Seleccione INPUT para Seleccione el parámetro del modo presumador para habilitar estas señales. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Puerto de entrada de reloj al registro correspondiente. Esta señal puede ser utilizada por cualquier registro en el núcleo de IP. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Entrada clara asíncrona al registro correspondiente. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Entrada clara síncrona al registro correspondiente. El modelo de simulación para esta IP admite un valor de entrada X indeterminado para estas señales. Cuando proporciona valor X a estas señales, el valor X se propaga en las señales de salida
Habilita la entrada de señal al registro correspondiente. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para estas señales. Cuando proporciona un valor X a estas señales, el valor X se propaga en las señales de salida.
Especifica la representación numérica de la entrada A del multiplicador. Si la señal de la señal es alta, el multiplicador trata la señal de la entrada A del multiplicador como un número con signo. Si la señal de señal es baja, el multiplicador trata la señal de entrada A del multiplicador como un número sin signo. Seleccione VARIABLE para ¿Cuál es el formato de representación de los multiplicadores? Un parámetro de entradas para habilitar esta señal. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Especifica la representación numérica de la señal de entrada B del multiplicador. Si la señal signb es alta, el multiplicador trata la señal de entrada B del multiplicador como un número de complemento a dos con signo. Si la señal signb es baja, el multiplicador trata la señal de entrada B del multiplicador como un número sin signo. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Entrada para la cadena de exploración A. Señal de entrada [WIDTH_A – 1, … 0] ancho. Cuando el parámetro INPUT_SOURCE_A tiene un valor SCANA, se requiere la señal scanina[].
Especifica dinámicamente si el valor del acumulador es constante. Si la señal accum_sload es baja, la salida del multiplicador se carga en el acumulador. No use accum_sload y sload_accum simultáneamente.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 45
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Señal sload_accum
cadena en [] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Requerido No
No, no.
No
No no no no
Descripción
El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Especifica dinámicamente si el valor del acumulador es constante. Si la señal sload_accum es alta, la salida del multiplicador se carga en el acumulador. No use accum_sload y sload_accum simultáneamente. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Bus de entrada de resultado de sumador de los s anteriorestagmi. Señal de entrada [WIDTH_CHAININ – 1, … 0] de ancho.
Realiza sumas o restas a las salidas del primer par de multiplicadores. Entrada 1 a la señal addnsub1 para sumar las salidas del primer par de multiplicadores. Ingrese 0 a la señal addnsub1 para restar las salidas del primer par de multiplicadores. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Realiza sumas o restas a las salidas del primer par de multiplicadores. Entrada 1 a la señal addnsub3 para sumar las salidas del segundo par de multiplicadores. Ingrese 0 a la señal addnsub3 para restar las salidas del primer par de multiplicadores. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Coeficiente de señal de entrada[0:3] al primer multiplicador. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Coeficiente de señal de entrada[0:3] al segundo multiplicador. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Coeficiente de señal de entrada[0:3] al tercer multiplicador. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Coeficiente de señal de entrada [0:3] al cuarto multiplicador. El modelo de simulación para esta IP admite un valor de entrada indeterminado (X) para esta señal. Cuando proporciona un valor X a esta entrada, el valor X se propaga en las señales de salida.
Tabla 29. Señales de salida IP de Intel FPGA de sumador múltiple
Señal
Requerido
Descripción
resultado []
Sí
Señal de salida del multiplicador. Señal de salida [WIDTH_RESULT – 1 … 0] ancho
El modelo de simulación para esta IP admite un valor de salida indeterminado (X). Cuando proporciona el valor X como entrada, el valor X se propaga en esta señal.
escaneo []
No
Salida de la cadena de exploración A. Señal de salida [WIDTH_A – 1..0] ancho.
Seleccione más de 2 para el número de multiplicadores y elija Escanear entrada de cadena para ¿Cuál es la entrada A del multiplicador conectado al parámetro para habilitar esta señal?
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 46
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
8.6 Parámetros
8.6.1. Pestaña General
Tabla 30. Pestaña General
Parámetro
Parámetro generado por IP
Valor
¿Cuál es el número de multiplicadores?
number_of_m 1 – 4 multiplicadores
¿Qué ancho deben tener los buses de entrada A width_a?
1 – 256
¿Qué ancho deben tener los buses de entrada B width_b?
1 – 256
¿Qué tan ancho debe ser el bus de salida de 'resultado'?
ancho_resultado
1 – 256
Crear una habilitación de reloj asociada para cada reloj
gui_associate Activado d_clock_enabl Desactivado e
8.6.2. Pestaña Modos adicionales
Tabla 31. Ficha Modos adicionales
Parámetro
Parámetro generado por IP
Valor
Configuración de Salidas
Registro de salida de la unidad sumadora
gui_output_re activado
registro
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_output_re registro_reloj
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_output_re gister_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_output_re gister_sclr
NINGUNO SCLR0 SCLR1
Operación sumador
¿Qué operación se debe realizar en las salidas del primer par de multiplicadores?
gui_multiplicador 1_dirección
AGREGAR, SUB, VARIABLE
Valor predeterminado 1
16
Descripción
Número de multiplicadores a sumar. Los valores van del 1 al 4. Especifique el ancho del puerto dataa[].
16
Especifique el ancho del puerto datab[].
32
Especifique el ancho del puerto result[].
Apagado
Seleccione esta opción para habilitar el reloj
para cada reloj.
Valor predeterminado
Descripción
Fuera de reloj0
NINGUNO NINGUNO
Seleccione esta opción para habilitar el registro de salida del módulo sumador.
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la fuente de reloj para los registros de salida. Debe seleccionar Registrar salida de la unidad sumadora para habilitar este parámetro.
Especifica la fuente clara asíncrona para el registro de salida del sumador. Debe seleccionar Registrar salida de la unidad sumadora para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro de salida del sumador. Debe seleccionar Registrar salida de la unidad sumadora para habilitar este parámetro.
AGREGAR
Seleccione la operación de suma o resta para realizar para las salidas entre el primer y el segundo multiplicador.
· Seleccione AGREGAR para realizar la operación de adición.
· Seleccione SUB para realizar la operación de resta.
· Seleccione VARIABLE para usar el puerto addnsub1 para el control dinámico de sumas/restas.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 47
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Parámetro generado por IP
Valor
Registre la entrada 'addnsub1'
gui_addnsub_ Activado multiplicador_reg Desactivado1
¿Cuál es la fuente de entrada del reloj?
gui_addnsub_ multiplicador_registro1_reloj
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_addnsub_ multiplicador_aclr 1
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_addnsub_ multiplicador_sclr 1
NINGUNO SCLR0 SCLR1
¿Qué operación se debe realizar en las salidas del segundo par de multiplicadores?
gui_multiplicador 3_dirección
AGREGAR, SUB, VARIABLE
Registre la entrada 'addnsub3'
gui_addnsub_ Activado multiplicador_reg Desactivado3
¿Cuál es la fuente de entrada del reloj?
gui_addnsub_ multiplicador_registro3_reloj
Reloj0 Reloj1 Reloj2
Valor predeterminado
Off Clock0 NINGUNO NINGUNO AÑADIR
Fuera de reloj0
Descripción
Cuando se selecciona el valor VARIABLE: · Lleva la señal addnsub1 a alta para
operación de suma. · Conduce la señal addnsub1 a baja para
operación de resta Debe seleccionar más de dos multiplicadores para habilitar este parámetro.
Seleccione esta opción para habilitar el registro de entrada para el puerto addnsub1. Debe seleccionar VARIABLE para qué operación se debe realizar en las salidas del primer par de multiplicadores para habilitar este parámetro.
Seleccione Clock0 , Clock1 o Clock2 para especificar la señal de reloj de entrada para el registro addnsub1. Debe seleccionar la entrada Registrar 'addnsub1' para habilitar este parámetro.
Especifica la fuente clara asíncrona para el registro addnsub1. Debe seleccionar la entrada Registrar 'addnsub1' para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro addnsub1. Debe seleccionar la entrada Registrar 'addnsub1' para habilitar este parámetro.
Seleccione la operación de suma o resta para realizar para las salidas entre el tercer y cuarto multiplicador. · Seleccione AGREGAR para realizar la suma
operación. · Seleccione SUB para realizar la resta
operación. · Seleccione VARIABLE para usar addnsub1
puerto para control dinámico de sumas/restas. Cuando se selecciona el valor VARIABLE: · Conduzca la señal addnsub1 a alta para la operación de suma. · Conduzca la señal addnsub1 a baja para la operación de resta. Debe seleccionar el valor 4 para ¿Cuál es el número de multiplicadores? para habilitar este parámetro.
Seleccione esta opción para habilitar el registro de entrada para la señal addnsub3. Debe seleccionar VARIABLE para qué operación se debe realizar en las salidas del segundo par de multiplicadores para habilitar este parámetro.
Seleccione Clock0 , Clock1 o Clock2 para especificar la señal de reloj de entrada para el registro addnsub3. Debe seleccionar la entrada Registrar 'addnsub3' para habilitar este parámetro.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 48
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
¿Cuál es la fuente para la entrada clara asíncrona?
Parámetro generado por IP
Valor
gui_addnsub_ multiplicador_aclr 3
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_addnsub_ multiplicador_sclr 3
NINGUNO SCLR0 SCLR1
Activar polaridad `use_subadd'
gui_use_subn activado
agregar
Apagado
8.6.3. Pestaña Multiplicadores
Tabla 32. Ficha Multiplicadores
Parámetro
Parámetro generado por IP
Valor
¿Qué es el?
representación_gui
formato de representación ation_a
para las entradas de los multiplicadores A?
FIRMADO, SIN FIRMA, VARIABLE
Registrar entrada `signa'
gui_register_s activado
Igna
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_register_s igna_clock
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_register_s igna_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_register_signa_sclr
NINGUNO SCLR0 SCLR1
¿Qué es el?
representación_gui
formato de representación ation_b
para las entradas de los multiplicadores B?
FIRMADO, SIN FIRMA, VARIABLE
Registrar la entrada `signb'
gui_register_s activado
ignb
Apagado
Valor predeterminado NINGUNO
NINGUNO
Descripción
Especifica la fuente clara asíncrona para el registro addnsub3. Debe seleccionar la entrada Registrar 'addnsub3' para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro addnsub3. Debe seleccionar la entrada Registrar 'addnsub3' para habilitar este parámetro.
Apagado
Seleccione esta opción para invertir la función
del puerto de entrada addnsub.
Conduzca addnsub a alto para la operación de resta.
Conduzca addnsub a bajo para la operación de adición.
Valor predeterminado
Descripción
UNSIGNED Especifique el formato de representación para la entrada del multiplicador A.
Apagado
Seleccione esta opción para habilitar signa
registro.
Debe seleccionar el valor VARIABLE para ¿Cuál es el formato de representación para las entradas de los Multiplicadores A? parámetro para habilitar esta opción.
Reloj0
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada para el registro de señal.
Debe seleccionar Registrar entrada `signa' para habilitar este parámetro.
NINGUNO
Especifica la fuente clara asíncrona para el registro signa.
Debe seleccionar Registrar entrada `signa' para habilitar este parámetro.
NINGUNO
Especifica la fuente clara síncrona para el registro signa.
Debe seleccionar Registrar entrada `signa' para habilitar este parámetro.
UNSIGNED Especifique el formato de representación para la entrada del multiplicador B.
Apagado
Seleccione esta opción para habilitar signb
registro.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 49
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Parámetro generado por IP
Valor
Valor predeterminado
¿Cuál es la fuente de entrada del reloj?
gui_register_s ignb_clock
Reloj0 Reloj1 Reloj2
Reloj0
¿Cuál es la fuente para la entrada clara asíncrona?
gui_register_s ignb_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_register_s ignb_sclr
NINGUNO SCLR0 SCLR1
Configuración de entrada
Registrar la entrada A del multiplicador
¿Cuál es la fuente de entrada del reloj?
gui_input_reg activado
hermana_a
Apagado
gui_input_reg ister_a_clock
Reloj0 Reloj1 Reloj2
NINGUNO NINGUNO
Fuera de reloj0
¿Cuál es la fuente para la entrada clara asíncrona?
gui_input_reg ister_a_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_input_register_a_sclr
NINGUNO SCLR0 SCLR1
Registrar la entrada B del multiplicador
¿Cuál es la fuente de entrada del reloj?
gui_input_reg activado
hermana_b
Apagado
gui_input_reg ister_b_clock
Reloj0 Reloj1 Reloj2
NINGUNO NINGUNO Desactivado0
¿Cuál es la fuente para la entrada clara asíncrona?
gui_input_reg ister_b_aclr
NINGUNO ACLR0 ACLR1
NINGUNO
¿Cuál es la fuente para la entrada clara síncrona?
gui_input_register_b_sclr
NINGUNO SCLR0 SCLR1
NINGUNO
¿A qué está conectada la entrada A del multiplicador?
gui_multiplier Multiplicador de entrada Multiplicador
_a_entrada
Entrada de entrada de cadena de escaneo
Descripción
Debe seleccionar el valor VARIABLE para ¿Cuál es el formato de representación para las entradas de los Multiplicadores B? parámetro para habilitar esta opción.
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada para el registro signb. Debe seleccionar la entrada Registrar `signb' para habilitar este parámetro.
Especifica la fuente clara asíncrona para el registro signb. Debe seleccionar la entrada Registrar `signb' para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro signb. Debe seleccionar la entrada Registrar `signb' para habilitar este parámetro.
Seleccione esta opción para habilitar el registro de entrada para el bus de entrada de datos.
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada de registro para el bus de entrada de datos. Debe seleccionar Registrar entrada A del multiplicador para habilitar este parámetro.
Especifica la fuente clara asíncrona de registro para el bus de entrada de datos. Debe seleccionar Registrar entrada A del multiplicador para habilitar este parámetro.
Especifica la fuente clara síncrona de registros para el bus de entrada de datos. Debe seleccionar Registrar entrada A del multiplicador para habilitar este parámetro.
Seleccione esta opción para habilitar el registro de entrada para el bus de entrada de datos.
Seleccione Clock0, Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada de registro para el bus de entrada de datosb. Debe seleccionar Registrar entrada B del multiplicador para habilitar este parámetro.
Especifica la fuente clara asíncrona de registros para el bus de entrada de datos. Debe seleccionar Registrar entrada B del multiplicador para habilitar este parámetro.
Especifica la fuente de borrado síncrono de registros para el bus de entrada de datos. Debe seleccionar Registrar entrada B del multiplicador para habilitar este parámetro.
Seleccione la fuente de entrada para la entrada A del multiplicador.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 50
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Parámetro generado por IP
Valor
Explorar una configuración de registro
Registro de salida de la cadena de exploración
gui_scanouta En
_registro
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_scanouta _register_clock
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_scanouta _register_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_scanouta_register_sclr
NINGUNO SCLR0 SCLR1
8.6.4. Pestaña de precomprador
Tabla 33. Pestaña de precomprador
Parámetro
Parámetro generado por IP
Valor
Seleccione el modo de predicador
preadder_mo de
SIMPLE, COEF, ENTRADA, CUADRADO, CONSTANTE
Valor predeterminado
Descripción
Seleccione Entrada de multiplicador para usar un bus de entrada de datos como fuente para el multiplicador. Seleccione Entrada de cadena de escaneo para usar el bus de entrada de escaneo como fuente para el multiplicador y habilite el bus de salida de escaneo. Este parámetro está disponible cuando selecciona 2, 3 o 4 para ¿Cuál es el número de multiplicadores? parámetro.
Desactivado0 NINGUNO NINGUNO
Seleccione esta opción para habilitar el registro de salida para el bus de salida scanouta.
Debe seleccionar Scan chain input para ¿A qué está conectada la entrada A del multiplicador? parámetro para habilitar esta opción.
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada de registro para el bus de salida scanouta.
Debe activar la salida de registro del parámetro de la cadena de exploración para habilitar esta opción.
Especifica la fuente clara asíncrona de registro para el bus de salida scanouta.
Debe activar la salida de registro del parámetro de la cadena de exploración para habilitar esta opción.
Especifica la fuente clara síncrona de registros para el bus de salida scanouta.
Debe seleccionar Registrar salida del parámetro de la cadena de escaneo para habilitar esta opción.
Valor predeterminado
SIMPLE
Descripción
Especifica el modo de operación para el módulo presumidor. SIMPLE: Este modo pasa por alto el preadder. Este es el modo por defecto. COEF: este modo utiliza la salida del presumador y el bus de entrada coefsel como entradas al multiplicador. INPUT: este modo utiliza la salida del presumador y el bus de entrada datac como entradas al multiplicador. CUADRADO: Este modo usa la salida del presumador como ambas entradas al multiplicador.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 51
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Parámetro generado por IP
Valor
Seleccione la dirección del presumido
gui_preadder AGREGAR,
_dirección
SUB
¿Qué ancho deben tener los buses de entrada C width_c?
1 – 256
Configuración del registro de entrada de datos C
Registrar entrada de datos
gui_datac_inp activado
registro_ut
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_datac_input_register_clock
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_datac_input_register_a clr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_datac_input_register_sc lr
NINGUNO SCLR0 SCLR1
Coeficientes
¿Qué tan ancho debe ser el ancho del coef?
ancho_coef
1 – 27
Configuración de registro de Coef
Registrar la entrada de coefsel
gui_coef_regi activado
estrella
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_coef_registro_reloj
Reloj0 Reloj1 Reloj2
Valor predeterminado
AGREGAR
16
Descripción
CONSTANTE: este modo utiliza un bus de entrada de datos con el presumador omitido y el bus de entrada de coefsel como entradas al multiplicador.
Especifica el funcionamiento del preadder. Para habilitar este parámetro, seleccione lo siguiente para Seleccionar modo presumador: · COEF · INPUT · SQUARE o · CONSTANT
Especifica el número de bits para el bus de entrada C. Debe seleccionar ENTRADA para Seleccionar el modo presumador para habilitar este parámetro.
En el reloj0 NINGUNO NINGUNO
Seleccione esta opción para habilitar el registro de entrada para el bus de entrada datac. Debe configurar INPUT para seleccionar el parámetro de modo presumador para habilitar esta opción.
Seleccione Clock0 , Clock1 o Clock2 para especificar la señal de reloj de entrada para el registro de entrada de datos. Debe seleccionar Registrar entrada de datos para habilitar este parámetro.
Especifica la fuente clara asíncrona para el registro de entrada datac. Debe seleccionar Registrar entrada de datos para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro de entrada datac. Debe seleccionar Registrar entrada de datos para habilitar este parámetro.
18
Especifica el número de bits para
bus de entrada coefsel.
Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
en reloj0
Seleccione esta opción para habilitar el registro de entrada para el bus de entrada coefsel. Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
Seleccione Clock0 , Clock1 o Clock2 para especificar la señal de reloj de entrada para el registro de entrada coefsel. Debe seleccionar Registrar la entrada de coefsel para habilitar este parámetro.
continuado…
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 52
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
¿Cuál es la fuente para la entrada clara asíncrona?
Parámetro generado por IP
Valor
gui_coef_regi ster_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_coef_regi ster_sclr
NINGUNO SCLR0 SCLR1
Coeficiente_0 Configuración
coef0_0 a coef0_7
0x00000 0xFFFFFFF
Coeficiente_1 Configuración
coef1_0 a coef1_7
0x00000 0xFFFFFFF
Coeficiente_2 Configuración
coef2_0 a coef2_7
0x00000 0xFFFFFFF
Coeficiente_3 Configuración
coef3_0 a coef3_7
0x00000 0xFFFFFFF
8.6.5. Pestaña Acumulador
Tabla 34. Ficha Acumulador
Parámetro
Parámetro generado por IP
Valor
¿Habilitar acumulador?
acumulador
SI NO
¿Cuál es el tipo de funcionamiento del acumulador?
accum_directi AÑADIR,
on
SUB
Valor predeterminado NINGUNO
NINGUNO
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Descripción
Especifica la fuente clara asíncrona para el registro de entrada coefsel. Debe seleccionar Registrar la entrada de coefsel para habilitar este parámetro.
Especifica la fuente clara síncrona para el registro de entrada coefsel. Debe seleccionar Registrar la entrada de coefsel para habilitar este parámetro.
Especifica los valores del coeficiente para este primer multiplicador. El número de bits debe ser el mismo que se especifica en ¿Qué ancho debe tener el ancho del coef? parámetro. Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
Especifica los valores del coeficiente para este segundo multiplicador. El número de bits debe ser el mismo que se especifica en ¿Qué ancho debe tener el ancho del coef? parámetro. Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
Especifica los valores del coeficiente para este tercer multiplicador. El número de bits debe ser el mismo que se especifica en ¿Qué ancho debe tener el ancho del coef? parámetro. Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
Especifica los valores del coeficiente para este cuarto multiplicador. El número de bits debe ser el mismo que se especifica en ¿Qué ancho debe tener el ancho del coef? parámetro. Debe seleccionar COEF o CONSTANTE para el modo presumador para habilitar este parámetro.
Valor por defecto NO
AGREGAR
Descripción
Seleccione SÍ para habilitar el acumulador. Debe seleccionar Registrar la salida de la unidad sumadora cuando utilice la función de acumulador.
Especifica la operación del acumulador: · ADD para operación de suma · SUB para operación de resta. Debe seleccionar SÍ para Habilitar acumulador? parámetro para habilitar esta opción.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 53
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Constante de precarga Activar constante de precarga
Parámetro generado por IP
Valor
gui_ena_prelo En
anuncio_const
Apagado
¿A qué está conectada la entrada del puerto de acumulación?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Seleccionar valor para precarga loadconst_val 0 – 64
constante
ue
¿Cuál es la fuente de entrada del reloj?
gui_accum_sl oad_register_ reloj
Reloj0 Reloj1 Reloj2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_accum_sl oad_register_ aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_accum_sl oad_register_ sclr
NINGUNO SCLR0 SCLR1
Habilitar acumulador doble
gui_double_a activado
cum
Apagado
Valor predeterminado
Descripción
Apagado
Habilite accum_sload o
Señales sload_accum y registro de entrada
para seleccionar dinámicamente la entrada al
acumulador.
Cuando accum_sload es bajo o sload_accum, la salida del multiplicador se alimenta al acumulador.
Cuando accum_sload es alto o sload_accum, una constante de precarga especificada por el usuario se alimenta al acumulador.
Debe seleccionar SÍ para Habilitar acumulador? parámetro para habilitar esta opción.
ACCUM_SL OAD
Especifica el comportamiento de la señal accum_sload/ sload_accum.
ACCUM_SLOAD: maneje accum_sload bajo para cargar la salida del multiplicador al acumulador.
SLOAD_ACCUM: Conduzca sload_accum alto para cargar la salida del multiplicador al acumulador.
Debe seleccionar la opción Habilitar constante de precarga para habilitar este parámetro.
64
Especifique el valor constante preestablecido.
Este valor puede ser 2N donde N es el valor constante predeterminado.
Cuando N=64, representa un cero constante.
Debe seleccionar la opción Habilitar constante de precarga para habilitar este parámetro.
Reloj0
Seleccione Clock0 , Clock1 o Clock2 para especificar la señal de reloj de entrada para el registro accum_sload/sload_accum.
Debe seleccionar la opción Habilitar constante de precarga para habilitar este parámetro.
NINGUNO
Especifica la fuente clara asíncrona para el registro accum_sload/sload_accum.
Debe seleccionar la opción Habilitar constante de precarga para habilitar este parámetro.
NINGUNO
Especifica la fuente clara síncrona para el registro accum_sload/sload_accum.
Debe seleccionar la opción Habilitar constante de precarga para habilitar este parámetro.
Apagado
Habilita el registro de doble acumulador.
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 54
Enviar comentarios
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
8.6.6. Pestaña de sistólica/chainout
Tabla 35. Pestaña Sumador de sistólica/chainout
Parámetro Habilitar sumador de cadena
Parámetro generado por IP
Valor
chainout_add SÍ,
er
NO
¿Cuál es el tipo de operación sumador chainout?
chainout_add AÑADIR,
er_dirección
SUB
¿Habilitar la entrada 'negar' para el sumador de cadena?
Port_negate
PUERTO_USADO, PUERTO_SIN UTILIZAR
¿Registrar entrada 'negada'? negar_registrar
NO REGISTRADO, RELOJ0, RELOJ1, RELOJ2, RELOJ3
¿Cuál es la fuente para la entrada clara asíncrona?
negar_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
negar_sclr
NINGUNO SCLR0 SCLR1
Retraso sistólico
Habilitar registros de retraso sistólico
gui_systolic_d activado
Elay
Apagado
¿Cuál es la fuente de entrada del reloj?
gui_systolic_d RELOJ0,
elay_reloj
RELOJ1,
Valor predeterminado
NO
Descripción
Seleccione SÍ para habilitar el módulo sumador de cadena.
AGREGAR
Especifica la operación del sumador de cadena.
Para la operación de resta, se debe seleccionar SIGNED para ¿Cuál es el formato de representación para las entradas de los multiplicadores A? y ¿Cuál es el formato de representación para las entradas de los Multiplicadores B? en la pestaña Multiplicadores.
PUERTO_UN UTILIZADO
Seleccione PORT_USED para habilitar la señal de entrada negativa.
Este parámetro no es válido cuando el sumador de encadenamiento está deshabilitado.
RED NO REGISTRADA
Para habilitar el registro de entrada para la señal de entrada negativa y especifica la señal de reloj de entrada para el registro negativo.
Seleccione NO REGISTRADO si no se necesita el registro de entrada de negación
Este parámetro no es válido cuando selecciona:
· NO para Habilitar sumador de encadenamiento o
· ¿PORT_UNUSED para habilitar la entrada 'negada' para el sumador de cadena? parámetro o
NINGUNO
Especifica la fuente clara asíncrona para el registro de negación.
Este parámetro no es válido cuando selecciona:
· NO para Habilitar sumador de encadenamiento o
· ¿PORT_UNUSED para habilitar la entrada 'negada' para el sumador de cadena? parámetro o
NINGUNO
Especifica la fuente clara síncrona para el registro de negación.
Este parámetro no es válido cuando selecciona:
· NO para Habilitar sumador de encadenamiento o
· ¿PORT_UNUSED para habilitar la entrada 'negada' para el sumador de cadena? parámetro o
Desactivado RELOJ0
Seleccione esta opción para habilitar el modo sistólico. Este parámetro está disponible cuando selecciona 2 o 4 para ¿Cuál es el número de multiplicadores? parámetro. Debe habilitar la salida de registro de la unidad sumadora para usar los registros de retraso sistólico.
Especifica la señal de reloj de entrada para el registro de retraso sistólico.
continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 55
8. Intel FPGA sumador multiplicador IP Core 683490 | 2020.10.05
Parámetro
Parámetro generado por IP
Valor
RELOJ2,
¿Cuál es la fuente para la entrada clara asíncrona?
gui_systolic_d elay_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_systolic_d elay_sclr
NINGUNO SCLR0 SCLR1
Valor predeterminado
NINGUNO
NINGUNO
Descripción
Debe seleccionar habilitar registros de retraso sistólico para habilitar esta opción.
Especifica la fuente clara asincrónica para el registro de retraso sistólico. Debe seleccionar habilitar registros de retraso sistólico para habilitar esta opción.
Especifica la fuente clara síncrona para el registro de retraso sistólico. Debe seleccionar habilitar registros de retraso sistólico para habilitar esta opción.
8.6.7. Pestaña Canalización
Tabla 36. Pestaña Canalización
Configuración de canalización de parámetros
Parámetro generado por IP
Valor
¿Desea agregar un registro de canalización a la entrada?
gui_pipelining No, Sí
Valor predeterminado
No
Por favor especifique el
estado latente
número de reloj de latencia
ciclos
Cualquier valor mayor de 0 que 0
¿Cuál es la fuente de entrada del reloj?
gui_input_late ncy_clock
RELOJ0, RELOJ1, RELOJ2
¿Cuál es la fuente para la entrada clara asíncrona?
gui_input_late ncy_aclr
NINGUNO ACLR0 ACLR1
¿Cuál es la fuente para la entrada clara síncrona?
gui_input_late ncy_sclr
NINGUNO SCLR0 SCLR1
RELOJ0 NINGUNO NINGUNO
Descripción
Seleccione Sí para habilitar un nivel adicional de registro de tubería para las señales de entrada. Debe especificar un valor mayor que 0 para el parámetro Especifique el número de ciclos de reloj de latencia.
Especifica la latencia deseada en ciclos de reloj. Un nivel de registro de tubería = 1 latencia en ciclo de reloj. Debe seleccionar SÍ para ¿Desea agregar un registro de tubería a la entrada? para habilitar esta opción.
Seleccione Clock0 , Clock1 o Clock2 para habilitar y especificar la señal de reloj de entrada del registro de tubería. Debe seleccionar SÍ para ¿Desea agregar un registro de tubería a la entrada? para habilitar esta opción.
Especifica el origen claro asincrónico del registro para el registro de canalización adicional. Debe seleccionar SÍ para ¿Desea agregar un registro de tubería a la entrada? para habilitar esta opción.
Especifica la fuente clara síncrona de registro para el registro de canalización adicional. Debe seleccionar SÍ para ¿Desea agregar un registro de tubería a la entrada? para habilitar esta opción.
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 56
Enviar comentarios
683490 | 2020.10.05 Enviar comentarios
9. Núcleo IP ALTMEMMULT (multiplicador de coeficiente constante basado en memoria)
Atención:
Intel ha eliminado el soporte de esta IP en Intel Quartus Prime Pro Edition versión 20.3. Si el núcleo de IP en su diseño apunta a dispositivos en Intel Quartus Prime Pro Edition, puede reemplazar la IP con LPM_MULT Intel FPGA IP o volver a generar la IP y compilar su diseño usando el software Intel Quartus Prime Standard Edition.
El núcleo IP ALTMEMMULT se usa para crear multiplicadores basados en memoria utilizando los bloques de memoria en chip que se encuentran en los FPGA de Intel (con bloques de memoria M512, M4K, M9K y MLAB). Este núcleo de IP es útil si no tiene suficientes recursos para implementar los multiplicadores en elementos lógicos (LE) o recursos de multiplicadores dedicados.
El núcleo IP ALTMEMMULT es una función síncrona que requiere un reloj. El núcleo IP de ALTMEMMULT implementa un multiplicador con el menor rendimiento y latencia posible para un conjunto determinado de parámetros y especificaciones.
La siguiente figura muestra los puertos para el núcleo IP ALTMEMMULT.
Figura 21. Puertos ALTMEMMULT
ALTERNATIVO
data_in[] sload_data coeff_in[]
resultado[] result_valid load_done
sload_coeff
reloj sclr
Inst.
Funciones de información relacionada en la página 71
9.1. Características
El núcleo IP de ALTMEMMULT ofrece las siguientes características: · Crea solo multiplicadores basados en memoria utilizando bloques de memoria en chip que se encuentran en
Intel FPGA · Admite ancho de datos de 1 bits · Admite formato de representación de datos firmados y sin firmar · Admite canalización con latencia de salida fija
Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.
ISO 9001: 2015 registrado
9. ALTMEMMULT (multiplicador de coeficiente constante basado en memoria) IP Core 683490 | 2020.10.05
· Almacena múltiples constantes en la memoria de acceso aleatorio (RAM)
· Proporciona una opción para seleccionar el tipo de bloque de RAM
· Admite puertos de entrada de control de carga y claro síncrono opcionales
9.2. Prototipo Verilog HDL
El siguiente prototipo Verilog HDL se encuentra en Verilog Design File (.v) altera_mf.v en el directorio de síntesis eda.
módulo altmemmult #( parámetro coeff_representation = “FIRMADO”, parámetro coeficiente0 = “SIN UTILIZAR”, parámetro data_representation = “FIRMADO”, parámetro intented_device_family = “no utilizado”, parámetro max_clock_cycles_per_result = 1, parámetro número_de_coeficientes = 1, parámetro ram_block_type = “AUTO”, parámetro total_latency = 1, parámetro width_c = 1, parámetro width_d = 1, parámetro width_r = 1, parámetro width_s = 1, parámetro lpm_type = “altmemmult”, parámetro lpm_hint = “no utilizado”) (reloj de cable de entrada, cable de entrada [width_c-1: 0]coeff_in, cable de entrada [width_d-1:0] data_in, cable de salida load_done, cable de salida [width_r-1:0] resultado, cable de salida result_valid, cable de entrada sclr, cable de entrada [ancho_s-1:0] sel, entrada cable sload_coeff, cable de entrada sload_data)/* síntesis syn_black_box=1 */; módulo final
9.3. Declaración de componente VHDL
La declaración del componente VHDL se encuentra en el Diseño VHDL File (.vhd) altera_mf_components.vhd en el directorio libraryvhdlaltera_mf.
componente altmemmult generic ( coeff_representation:string := “FIRMADO”; coeficiente0:string := “NO UTILIZADO”; data_representation:string := “FIRMADO”; := 1; ram_block_type:string := “AUTO”; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := “UNUSED”; lpm_type:string := “altmemmult”); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 1) := (otros => '0'); data_in:in std_logic_vector(width_d-0 downto 1);
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 58
Enviar comentarios
9. ALTMEMMULT (multiplicador de coeficiente constante basado en memoria) IP Core 683490 | 2020.10.05
load_done:fuera std_logic; resultado: fuera std_logic_vector (ancho_r-1 hasta 0); result_valid:fuera std_logic; sclr: en std_logic: = '0'; sel:in std_logic_vector(width_s-1 downto 0) := (otros => '0'); sload_coeff: en std_logic: = '0'; sload_data:en std_logic := '0'); componente final;
9.4. Puertos
Las siguientes tablas enumeran los puertos de entrada y salida para el núcleo IP de ALTMEMMULT.
Tabla 37. Puertos de entrada ALTMEMMULT
Nombre del puerto
Requerido
Descripción
reloj
Sí
Entrada de reloj al multiplicador.
coeff_in[]
No
Puerto de entrada de coeficiente para el multiplicador. El tamaño del puerto de entrada depende del valor del parámetro WIDTH_C.
datos_en[]
Sí
Puerto de entrada de datos al multiplicador. El tamaño del puerto de entrada depende del valor del parámetro WIDTH_D.
desclr
No
Entrada clara síncrona. Si no se utiliza, el valor predeterminado es activo alto.
vender[]
No
Selección de coeficiente fijo. El tamaño del puerto de entrada depende del WIDTH_S
valor del parámetro.
sload_coeff
No
Puerto de entrada de coeficiente de carga síncrona. Reemplaza el valor del coeficiente seleccionado actual con el valor especificado en la entrada coeff_in.
carga_datos
No
Puerto de entrada de datos de carga síncrona. Señal que especifica una nueva operación de multiplicación y cancela cualquier operación de multiplicación existente. Si el parámetro MAX_CLOCK_CYCLES_PER_RESULT tiene un valor de 1, el puerto de entrada sload_data se ignora.
Tabla 38. Puertos de salida ALTMEMMULT
Nombre del puerto
Requerido
Descripción
resultado[]
Sí
Puerto de salida del multiplicador. El tamaño del puerto de entrada depende del valor del parámetro WIDTH_R.
resultado_valido
Sí
Indica cuando la salida es el resultado válido de una multiplicación completa. Si el parámetro MAX_CLOCK_CYCLES_PER_RESULT tiene un valor de 1, no se utiliza el puerto de salida result_valid.
carga_terminada
No
Indica cuando el nuevo coeficiente ha terminado de cargarse. La señal load_done se afirma cuando un nuevo coeficiente ha terminado de cargarse. A menos que la señal load_done sea alta, no se puede cargar ningún otro valor de coeficiente en la memoria.
9.5 Parámetros
La siguiente tabla enumera los parámetros para el núcleo IP ALTMEMMULT.
Tabla 39.
ANCHO_D ANCHO_C
Parámetros de ALTMEMMULT
Nombre del parámetro
Tipo requerido
Descripción
Entero Sí
Especifica el ancho del puerto data_in[].
Entero Sí
Especifica el ancho del puerto coeff_in[]. continuado…
Enviar comentarios
Intel FPGA Integer Arithmetic IP Cores Guía del usuario 59
9. ALTMEMMULT (multiplicador de coeficiente constante basado en memoria) IP Core 683490 | 2020.10.05
Nombre del parámetro ANCHO_R ANCHO
Documentos / Recursos
![]() |
Intel FPGA Integer Arithmetic IP Cores [pdf] Guía del usuario FPGA Núcleos IP aritméticos enteros, Núcleos IP aritméticos enteros, Núcleos IP aritméticos, Núcleos IP |