Added DDS Interface

This commit is contained in:
2026-06-29 13:23:36 -04:00
parent 9c752152e5
commit 293d03c178
36 changed files with 38033 additions and 2371 deletions
+16 -16
View File
@@ -16,13 +16,13 @@ entity axis_mux_chan_sel is
port (
aselect_in : in std_logic_vector( 1 downto 0);
cmac_0_tdata_in : in std_logic_vector(127 downto 0);
cmac_0_tvalid_in : in std_logic;
cmac_0_tready_out : out std_logic;
chan_0_tdata_in : in std_logic_vector(127 downto 0);
chan_0_tvalid_in : in std_logic;
chan_0_tready_out : out std_logic;
cmac_4_tdata_in : in std_logic_vector(127 downto 0);
cmac_4_tvalid_in : in std_logic;
cmac_4_tready_out : out std_logic;
chan_1_tdata_in : in std_logic_vector(127 downto 0);
chan_1_tvalid_in : in std_logic;
chan_1_tready_out : out std_logic;
m_axis_tdata_out : out std_logic_vector(255 downto 0);
m_axis_tvalid_out : out std_logic;
@@ -35,21 +35,21 @@ architecture imp of axis_mux_chan_sel is
begin
-- adc_chan1_s3 adc_chan0_s3 adc_chan1_s2 adc_chan0_s2 adc_chan1_s1 adc_chan0_s1 adc_chan1_s0 adc_chan0_s0
m_axis_tdata_out <= cmac_4_tdata_in(127 downto 96) & cmac_0_tdata_in(127 downto 96) & cmac_4_tdata_in(95 downto 64) & cmac_0_tdata_in(95 downto 64) & cmac_4_tdata_in(63 downto 32) & cmac_0_tdata_in(63 downto 32) & cmac_4_tdata_in(31 downto 0) & cmac_0_tdata_in(31 downto 0) when aselect_in = "00" else
x"FFFF_0000" & cmac_0_tdata_in(127 downto 96) & x"FFFF_0000" & cmac_0_tdata_in(95 downto 64) & x"FFFF_0000" & cmac_0_tdata_in(63 downto 32) & x"FFFF_0000" & cmac_0_tdata_in(31 downto 0) when aselect_in = "01" else
cmac_4_tdata_in(127 downto 96) & x"FFFF_0000" & cmac_4_tdata_in(95 downto 64) & x"FFFF_0000" & cmac_4_tdata_in(63 downto 32) & x"FFFF_0000" & cmac_4_tdata_in(31 downto 0) & x"FFFF_0000";
m_axis_tdata_out <= chan_1_tdata_in(127 downto 96) & chan_0_tdata_in(127 downto 96) & chan_1_tdata_in(95 downto 64) & chan_0_tdata_in(95 downto 64) & chan_1_tdata_in(63 downto 32) & chan_0_tdata_in(63 downto 32) & chan_1_tdata_in(31 downto 0) & chan_0_tdata_in(31 downto 0) when aselect_in = "00" else
x"FFFF_0000" & chan_0_tdata_in(127 downto 96) & x"FFFF_0000" & chan_0_tdata_in(95 downto 64) & x"FFFF_0000" & chan_0_tdata_in(63 downto 32) & x"FFFF_0000" & chan_0_tdata_in(31 downto 0) when aselect_in = "01" else
chan_1_tdata_in(127 downto 96) & x"FFFF_0000" & chan_1_tdata_in(95 downto 64) & x"FFFF_0000" & chan_1_tdata_in(63 downto 32) & x"FFFF_0000" & chan_1_tdata_in(31 downto 0) & x"FFFF_0000";
m_axis_tvalid_out <= cmac_0_tvalid_in and cmac_4_tvalid_in when aselect_in = "00" else
cmac_0_tvalid_in when aselect_in = "01" else
cmac_4_tvalid_in when aselect_in = "10" else
m_axis_tvalid_out <= chan_0_tvalid_in and chan_1_tvalid_in when aselect_in = "00" else
chan_0_tvalid_in when aselect_in = "01" else
chan_1_tvalid_in when aselect_in = "10" else
'0';
cmac_0_tready_out <= m_axis_tready_in and cmac_0_tvalid_in and cmac_4_tvalid_in when aselect_in = "00" else
m_axis_tready_in and cmac_0_tvalid_in when aselect_in = "01" else '0';
chan_0_tready_out <= m_axis_tready_in and chan_0_tvalid_in and chan_1_tvalid_in when aselect_in = "00" else
m_axis_tready_in and chan_0_tvalid_in when aselect_in = "01" else '0';
cmac_4_tready_out <= m_axis_tready_in and cmac_0_tvalid_in and cmac_4_tvalid_in when aselect_in = "00" else
m_axis_tready_in and cmac_4_tvalid_in when aselect_in = "10" else '0';
chan_1_tready_out <= m_axis_tready_in and chan_0_tvalid_in and chan_1_tvalid_in when aselect_in = "00" else
m_axis_tready_in and chan_1_tvalid_in when aselect_in = "10" else '0';
end imp;