Line 43... |
Line 43... |
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
--
|
--
|
-- CVS Revision History
|
-- CVS Revision History
|
--
|
--
|
-- $Log: not supported by cvs2svn $
|
-- $Log: not supported by cvs2svn $
|
|
-- Revision 1.4 2004/07/12 17:06:41 gedra
|
|
-- Fixed bug with lock event generation.
|
|
--
|
-- Revision 1.3 2004/07/11 16:19:50 gedra
|
-- Revision 1.3 2004/07/11 16:19:50 gedra
|
-- Bug-fix.
|
-- Bug-fix.
|
--
|
--
|
-- Revision 1.2 2004/06/27 16:16:55 gedra
|
-- Revision 1.2 2004/06/27 16:16:55 gedra
|
-- Signal renaming and bug fix.
|
-- Signal renaming and bug fix.
|
Line 59... |
Line 62... |
library IEEE;
|
library IEEE;
|
use IEEE.std_logic_1164.all;
|
use IEEE.std_logic_1164.all;
|
use work.rx_package.all;
|
use work.rx_package.all;
|
|
|
entity rx_spdif is
|
entity rx_spdif is
|
generic (DATA_WIDTH: integer range 16 to 32 := 16;
|
generic (DATA_WIDTH: integer range 16 to 32;
|
ADDR_WIDTH: integer range 8 to 64 := 8;
|
ADDR_WIDTH: integer range 8 to 64;
|
CH_ST_CAPTURE: integer range 0 to 8 := 0;
|
CH_ST_CAPTURE: integer range 0 to 8;
|
WISHBONE_FREQ: natural:= 33);
|
WISHBONE_FREQ: natural);
|
port (
|
port (
|
-- Wishbone interface
|
-- Wishbone interface
|
wb_clk_i: in std_logic;
|
wb_clk_i: in std_logic;
|
wb_rst_i: in std_logic;
|
wb_rst_i: in std_logic;
|
wb_sel_i: in std_logic;
|
wb_sel_i: in std_logic;
|
Line 120... |
Line 123... |
when wb_adr_i(ADDR_WIDTH - 1) = '0' else sample_dout;
|
when wb_adr_i(ADDR_WIDTH - 1) = '0' else sample_dout;
|
end generate DB16;
|
end generate DB16;
|
DB32: if DATA_WIDTH = 32 generate
|
DB32: if DATA_WIDTH = 32 generate
|
data_out <= ver_dout or conf_dout or stat_dout or imask_dout or istat_dout or
|
data_out <= ver_dout or conf_dout or stat_dout or imask_dout or istat_dout or
|
cap_dout(1) or cap_dout(2) or cap_dout(3) or cap_dout(4) or
|
cap_dout(1) or cap_dout(2) or cap_dout(3) or cap_dout(4) or
|
cap_dout(5) or cap_dout(6) or cap_dout(7) when
|
cap_dout(5) or cap_dout(6) or cap_dout(7) or cap_dout(0) when
|
wb_adr_i(ADDR_WIDTH - 1) = '0' else sample_dout;
|
wb_adr_i(ADDR_WIDTH - 1) = '0' else sample_dout;
|
end generate DB32;
|
end generate DB32;
|
|
|
-- Wishbone bus cycle decoder
|
-- Wishbone bus cycle decoder
|
WB: rx_wb_decoder
|
WB: rx_wb_decoder
|
Line 274... |
Line 277... |
istat_events(3) <= istat_paritya;
|
istat_events(3) <= istat_paritya;
|
istat_events(4) <= istat_parityb;
|
istat_events(4) <= istat_parityb;
|
istat_events(15 downto 5) <= (others => '0');
|
istat_events(15 downto 5) <= (others => '0');
|
IS32: if DATA_WIDTH = 32 generate
|
IS32: if DATA_WIDTH = 32 generate
|
istat_events(23 downto 16) <= istat_cap(7 downto 0);
|
istat_events(23 downto 16) <= istat_cap(7 downto 0);
|
istat_events(32 downto 24) <= (others => '0');
|
istat_events(31 downto 24) <= (others => '0');
|
end generate IS32;
|
end generate IS32;
|
|
|
-- capture registers
|
-- capture registers
|
GCAP: if DATA_WIDTH = 32 and CH_ST_CAPTURE > 0 generate
|
GCAP: if DATA_WIDTH = 32 and CH_ST_CAPTURE > 0 generate
|
CAPR: for k in 0 to CH_ST_CAPTURE - 1 generate
|
CAPR: for k in 0 to CH_ST_CAPTURE - 1 generate
|
Line 299... |
Line 302... |
cs_a_en => cs_a_en,
|
cs_a_en => cs_a_en,
|
cs_b_en => cs_b_en);
|
cs_b_en => cs_b_en);
|
end generate CAPR;
|
end generate CAPR;
|
-- unused capture registers set to zero
|
-- unused capture registers set to zero
|
UCAPR: if CH_ST_CAPTURE < 8 generate
|
UCAPR: if CH_ST_CAPTURE < 8 generate
|
UC: for k in CH_ST_CAPTURE - 1 to 7 generate
|
UC: for k in CH_ST_CAPTURE to 7 generate
|
cap_dout(k) <= (others => '0');
|
cap_dout(k) <= (others => '0');
|
end generate UC;
|
end generate UC;
|
end generate UCAPR;
|
end generate UCAPR;
|
end generate GCAP;
|
end generate GCAP;
|
|
|