Soy nuevo en FPGA y VHDL. Estoy trabajando en prácticas de laboratorio y para la práctica ya nos dieron un archivo que tiene un códec I2C y ya se hicieron los conceptos básicos para los registros de códecs, pero encontré que los archivos dados eran demasiado complicados y no pude entenderlo; Eran cosas como esclavos y amos. Así que decidí seguir un tutorial en línea.
Estoy usando una placa DE0-Nano. Quiero hacer tres ondas diferentes (sonido), así que seguí un tutorial en línea para hacer una onda sinusoidal, pero cuando lo probé en mi tablero no sucedió nada y no obtuve ningún sonido. ¿Falta algo en mi código o lo asigné a los pines incorrectos? Aquí es la documentación de la pizarra en caso de que la necesite.
También agradecería que me informaras sobre cualquier fuente que me ayude a entender I2C y el esclavo / maestro.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity sinewave is
port (
clk :in std_logic; -- I tried connecting it to PIN_B14 & PIN_R8
dataout : out integer range -128 to 127 -- connect to PIN_A9
);
end sinewave;
architecture Audio of sinewave is
signal i : integer range 0 to 30:=0;
type memory_type is array (0 to 29) of integer range -128 to 127;
signal sine : memory_type := (0,16,31,45,58,67,74,77,77,74,67,58,45,31,16,0,
-16,-31,-45,-58,-67,-74,-77,-77,-74,-67,-58,-45,-31,-16);
begin
process(clk)
begin
if(rising_edge(clk)) then
dataout <= sine(i);
i <= i+ 1;
if(i = 29) then
i <= 0;
end if;
end if;
end process;
end Audio;