Uso de VHDL Quiero tener algunos registros que almacenan 16 bits en cada uno. Entonces, encontré que VHDL tiene una matriz integrada, y quiero usarla para almacenar 16 bits en cada elemento en iy, por lo que quiero saber si VHDL asigna esta matriz a registros reales o no.Representación de hardware para matrices en VHDL
Respuesta
La respuesta corta es no; el tipo de matriz no se correlaciona con un registro.
La respuesta larga:
El tipo de matriz en VHDL es solo una colección indexada de elementos del mismo tipo. En su caso, probablemente use una matriz como resultado de un banco de registros.
Por lo tanto, supongamos que tiene un banco de 8 registros con 16 bits cada uno. La salida de este banco sería una matriz (de tamaño 8) de vectores de 16 bits. La declaración de componentes para este banco de registros sería algo como esto:
component reg8x16 port( clock: in std_logic; reset: in std_logic; enable: in std_logic; rout : out r_array(0 to 7) ); end component;
rout
es su gama de productos registrados desde el banco de registros. Por lo tanto, puede desviar la salida del registro 0 del banco usando rout(0)
, que es del tipo std_logic_vector(15 downto 0)
.
Además, no olvide declarar el tipo de matriz en algún lugar (generalmente en un archivo de paquete). Se vería algo como:
type r_array is array (integer range <>) of std_logic_vector(15 downto 0);
La declaración (integer range <>)
es una especie de marcador de posición para el rango de índice de matriz - se llenará más tarde cuando se utiliza el tipo de matriz (por ejemplo, en nuestra declaración de componentes más arriba) .
No estoy seguro de si esto responde su pregunta o no. No entraré en los detalles de cómo crear el componente reg8x16. Básicamente, usted acaba de crear un registro de 16 bits cuya salida es del tipo std_logic_vector(15 downto 0);
(puede buscar cómo hacerlo en línea ... es VHDL bastante básico). Luego solo crea una instancia de 8 de esos registros, y los pone en el componente llamado reg8x16
.
Una matriz es como cualquier otra variable o señal: si describe un comportamiento que significa que debe recordar su estado de una marca de reloj a otra, entonces se inventarán flipflops (o bloques de memoria, si las condiciones son correctas) por el sintetizador.
Cualquier matriz con un rango válido se asignaría a los cables en netlist generada. Esto es bastante obvio: el hardware contiene solo puertas y cables. Algo así como un (3 downto 0) (1 a 0) haría un cable de tamaño 4x2 u 8 bits. Ahora asigna accesos individuales como a (3) (1) a índices en esta matriz de 1 dimensión. Entonces a (3) (1) es básicamente un (7).
- 1. VHDL/Verilog related programming forums?
- 2. Programando VHDL en Linux?
- 3. Bits de concatenación en VHDL
- 4. Programa para dibujar diagramas de bloques VHDL?
- 5. ¿Crear un backend VHDL para LLVM?
- 6. Herramienta para encontrar el código VHDL comentado
- 7. VHDL STD_LOGIC_VECTOR Valores comodín
- 8. Professional VHDL IDE?
- 9. Android clipPath equivalente para hardware acelerado Ver
- 10. numpy en hardware multinúcleo
- 11. Ideas para un decodificador flexible/genérico en VHDL
- 12. QGL ¿Aceleración de hardware y hardware?
- 13. ¿Cómo "cortar" un std_logic_vector en VHDL?
- 14. Hardware para .NET Micro Framework
- 15. ¿Conocimiento de hardware en informática?
- 16. Tamaño de texto diferente para hardware diferente
- 17. Se define el desbordamiento para VHDL numeric_std signed/unsigned
- 18. ¿Puede recomendar un sitio web para los códigos fuente vhdl?
- 19. Hardware Simulation
- 20. unique() para matrices en javascript
- 21. operador + para matrices en C++
- 22. ¿Es posible escribir entidades de tipo genérico en VHDL?
- 23. Lona en SurfaceView - aceleración por hardware
- 24. Caso VHDL/Cuando: varios casos, sola cláusula
- 25. Uso de mono en Linux integrado para hardware
- 26. Compatibilidad con .NET Framework para hardware multinúcleo
- 27. CUDA Interrupciones de multiplicación de matrices para matrices grandes
- 28. Programación con hardware en python
- 29. para con múltiples matrices
- 30. array_map para matrices multidimensionales