- reworked PISO and SIPO

git-svn-id: http://moon:8086/svn/vhdl/trunk@1264 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2015-05-30 12:27:45 +00:00
parent 99b30ba0cc
commit 0e0a7e48a6
7 changed files with 185 additions and 142 deletions
+19 -19
View File
@@ -37,27 +37,27 @@ ARCHITECTURE behavior OF tb_serdes IS
signal RST : std_logic := '1';
signal piso_din_vld : std_logic := '0';
signal piso_din_rdy : std_logic;
signal piso_din_re : std_logic;
signal piso_din_be : unsigned(3 downto 0) := (others => '0');
signal piso_din : unsigned(31 downto 0) := (others => '-');
signal piso_dout_vld : std_logic;
signal piso_dout : unsigned(7 downto 0);
signal piso_dout_en : std_logic;
signal piso_shift_en : std_logic;
signal piso2_din_vld : std_logic := '0';
signal piso2_din_rdy : std_logic;
signal piso2_din_re : std_logic;
signal piso2_din_be : unsigned(1 downto 0) := (others => '1');
signal piso2_din : unsigned(7 downto 0) := (others => '-');
signal piso2_dout_vld : std_logic;
signal piso2_dout : unsigned(3 downto 0);
signal piso2_dout_en : std_logic;
signal piso2_shift_en : std_logic;
signal sipo_enable : std_logic := '0';
signal sipo_rst : std_logic := '0';
signal sipo_din_vld : std_logic := '0';
signal sipo_din : unsigned(7 downto 0) := (others => '-');
signal sipo_dout_vld : std_logic;
signal sipo_dout_en : std_logic;
signal sipo_shift_en : std_logic;
signal sipo_dout_be : unsigned(3 downto 0);
signal sipo_dout : unsigned(31 downto 0);
@@ -66,7 +66,7 @@ ARCHITECTURE behavior OF tb_serdes IS
signal sipo2_din_vld : std_logic := '0';
signal sipo2_din : unsigned(3 downto 0) := (others => '-');
signal sipo2_dout_vld : std_logic;
signal sipo2_dout_en : std_logic;
signal sipo2_shift_en : std_logic;
signal sipo2_dout_be : unsigned(1 downto 0);
signal sipo2_dout : unsigned(7 downto 0);
@@ -85,16 +85,16 @@ inst_piso : entity work.piso
rst => RST,
clk => CLK,
din_vld => piso_din_vld,
din_rdy => piso_din_rdy,
din_re => piso_din_re,
din_be => piso_din_be,
din => piso_din,
dout_vld => piso_dout_vld,
dout_en => piso_dout_en,
shift_en => piso_shift_en,
dout => piso_dout
);
piso_dout_en <= piso2_din_rdy;
piso_shift_en <= piso2_din_re;
inst_piso2 : entity work.piso
GENERIC MAP
@@ -108,17 +108,17 @@ inst_piso2 : entity work.piso
rst => RST,
clk => CLK,
din_vld => piso2_din_vld,
din_rdy => piso2_din_rdy,
din_re => piso2_din_re,
din_be => piso2_din_be,
din => piso2_din,
dout_vld => piso2_dout_vld,
dout_en => piso2_dout_en,
shift_en => piso2_shift_en,
dout => piso2_dout
);
piso2_din_vld <= piso_dout_vld;
piso2_dout_en <= '1';
piso2_shift_en <= '1';
piso2_din <= piso_dout;
inst_sipo : entity work.sipo
@@ -138,12 +138,12 @@ inst_sipo : entity work.sipo
dout_be => sipo_dout_be,
dout_vld => sipo_dout_vld,
dout => sipo_dout,
dout_en => sipo_dout_en
shift_en => sipo_shift_en
);
sipo_din <= sipo2_dout;
sipo_din_vld <= sipo2_dout_vld;
sipo_enable <= sipo2_dout_en;
sipo_enable <= sipo2_shift_en;
sipo_rst <= RST or not piso2_dout_vld;
inst_sipo2 : entity work.sipo
@@ -163,7 +163,7 @@ inst_sipo2 : entity work.sipo
dout_be => sipo2_dout_be,
dout_vld => sipo2_dout_vld,
dout => sipo2_dout,
dout_en => sipo2_dout_en
shift_en => sipo2_shift_en
);
sipo2_din <= piso2_dout;
@@ -194,16 +194,16 @@ STIMULUS: process
piso_din_vld <= '1';
piso_din <= X"12345678";
piso_din_be <= "1111";
wait until rising_edge(CLK) and piso_din_rdy = '1';
wait until rising_edge(CLK) and piso_din_re = '1';
piso_din <= piso_din + X"12345678";
piso_din_be <= "1111";
wait until rising_edge(CLK) and piso_din_rdy = '1';
wait until rising_edge(CLK) and piso_din_re = '1';
piso_din <= piso_din + X"12345678";
piso_din_be <= "1111";
wait until rising_edge(CLK) and piso_din_rdy = '1';
wait until rising_edge(CLK) and piso_din_re = '1';
piso_din <= piso_din + X"12345678";
piso_din_be <= "1100";
wait until rising_edge(CLK) and piso_din_rdy = '1';
wait until rising_edge(CLK) and piso_din_re = '1';
piso_din <= (others => '-');
piso_din_vld <= '0';