Circuitos Digitales - Interfaz Avalon

 
Vista:
sin imagen de perfil
Val: 1
Ha mantenido su posición en Circuitos Digitales (en relación al último mes)
Gráfica de Circuitos Digitales

Interfaz Avalon

Publicado por Electronica71 (1 intervención) el 28/01/2020 19:35:43
Hola!

Alguien me podria brindar una ayuda para poder realizar una interface de lectuta y escritura en el bus avalon para despues instanciarlo en Qsys.
Tengo un proyecto ya realizado que funciona, es una lectura de medicion de distancia a traves de un sensor HC-SR05, los resultados de la medicion se visualizan en el display de 7 segmentos de la tarjeta DE10-Lite y tambien muestra diferentes colores en la pantalla VGA dependiendo de la distancia que mide.

Este es mi Entidad principal la cual se instancia con los otros componentes y es con esta entidad que debo crear la interfaz avalon para poder crear un componente IP en el Qsys, para despues por el lado del NIOS II lea este componente IP. Uso VHDL como descripcion de hardware.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
entity VGA_HW_IP is
   Port
      (
 
         CLOCK_50    : in  std_logic;
         RESET_N            : in  std_logic;
         ECHO        : in  std_logic;
         TRIGGER             : out std_logic;
         HUNDRATAL        : out std_logic_vector(6 downto 0);
         TIOTAL            : out std_logic_vector(6 downto 0);
         ENTAL       : out std_logic_vector(6 downto 0);
         VGA_HS            : out std_logic;
         VGA_VS            : out std_logic;
         VGA_R             : out std_logic_vector(3 downto 0);
         VGA_G             : out std_logic_vector(3 downto 0);
         VGA_B             : out std_logic_vector(3 downto 0)
   );
end VGA_HW_IP;


Les agradecere de antemano cualquier colaboracion que me puedan brindar.

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Diseño de interfaz Avalon para componente IP en Qsys

Publicado por Alejandro (117 intervenciones) el 29/08/2023 18:44:32
Para crear una interfaz Avalon para tu componente IP y luego instanciarlo en Qsys, debes definir los registros de control y datos que se comunicarán con el Nios II a través del bus Avalon. Aquí hay un enfoque general sobre cómo podrías hacerlo:

1. Definición de la interfaz Avalon:

Primero, debes definir los registros que el Nios II usará para controlar y comunicarse con tu componente IP. Estos registros permitirán al Nios II leer y escribir datos desde y hacia tu componente. Aquí hay un ejemplo de cómo podrías definir la interfaz Avalon:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
entity VGA_HW_IP is
   Port
   (
      -- Otras señales de la interfaz
 
      -- Avalon Slave Interface
      avalon_slave_clk : in std_logic;
      avalon_slave_rst_n : in std_logic;
      avalon_slave_read : in std_logic;
      avalon_slave_write : in std_logic;
      avalon_slave_address : in std_logic_vector(3 downto 0);
      avalon_slave_writedata : in std_logic_vector(31 downto 0);
      avalon_slave_readdata : out std_logic_vector(31 downto 0)
   );
end VGA_HW_IP;

2. Implementación de la lógica Avalon:

En la arquitectura de tu entidad `VGA_HW_IP`, implementa la lógica necesaria para interpretar las señales Avalon y realizar las operaciones correspondientes. Esto incluye la lectura y escritura de registros de control y datos.

3. Instanciación en Qsys:

Una vez que hayas definido tu componente IP con la interfaz Avalon, puedes instanciarlo en Qsys. Abre tu proyecto Qsys y agrega tu componente personalizado. Conecta las señales Avalon a las interfaces correspondientes de tu componente.

4. Acceso desde el Nios II:

En el Nios II, puedes acceder a tu componente IP utilizando las funciones de lectura y escritura de registros. Puedes utilizar las funciones `IORD` e `IOWR` para acceder a los registros definidos en tu interfaz Avalon.

Por ejemplo, si tienes un registro de control para configurar el funcionamiento de tu componente, puedes escribir en él desde el Nios II utilizando:

1
IOWR(VGA_HW_IP_BASE, CONTROL_REG_OFFSET, control_value);

Para leer un valor de un registro de datos, puedes usar:

1
data_value = IORD(VGA_HW_IP_BASE, DATA_REG_OFFSET);

5. Pruebas y depuración:

Una vez que hayas instanciado tu componente IP en Qsys y configurado la interfaz Avalon, puedes probar su funcionamiento en tu entorno de desarrollo y realizar cualquier depuración necesaria.

Este es un enfoque general para crear una interfaz Avalon para tu componente IP y usarlo con el Nios II en Qsys. Ten en cuenta que la implementación exacta puede variar según tu diseño específico y las herramientas que estés utilizando. Consulta la documentación relevante de Altera/Intel y las guías de usuario para obtener detalles más específicos sobre cómo crear y usar componentes IP en Qsys.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar