77 lines
2.1 KiB
VHDL
77 lines
2.1 KiB
VHDL
-----------------------
|
|
-- AXI-Lite Interface
|
|
-----------------------
|
|
|
|
S_AXIL_AWREADY <= '1';
|
|
S_AXIL_WREADY <= '1';
|
|
S_AXIL_BRESP <= "00";
|
|
S_AXIL_ARREADY <= '1';
|
|
S_AXIL_RRESP <= "00";
|
|
|
|
process begin
|
|
wait until rising_edge (ACLK);
|
|
|
|
if ARESETN = '0' then
|
|
S_AXIL_BVALID <= '0';
|
|
S_AXIL_RVALID <= '0';
|
|
coeff_11 <= (others=>'0');
|
|
coeff_12 <= (others=>'0');
|
|
coeff_13 <= (others=>'0');
|
|
coeff_21 <= (others=>'0');
|
|
coeff_22 <= (0=>'1',others=>'0');
|
|
coeff_23 <= (others=>'0');
|
|
coeff_31 <= (others=>'0');
|
|
coeff_32 <= (others=>'0');
|
|
coeff_33 <= (others=>'0');
|
|
shiftAmount <= to_unsigned(0,wShift);
|
|
else
|
|
if S_AXIL_RREADY = '1' then
|
|
S_AXIL_RVALID <= '0';
|
|
end if;
|
|
|
|
if S_AXIL_ARVALID = '1' then
|
|
S_AXIL_RDATA <= (others=>'0');
|
|
case (to_integer(unsigned(S_AXIL_ARADDR(5 downto 0)))) is
|
|
when 0 =>
|
|
when 4 =>
|
|
when 8 =>
|
|
when 12 =>
|
|
when 16 =>
|
|
when 20 =>
|
|
when 24 =>
|
|
when 28 =>
|
|
when 32 =>
|
|
when 36 =>
|
|
when others => null;
|
|
end case;
|
|
S_AXIL_RVALID <= '1';
|
|
end if;
|
|
|
|
if S_AXIL_BREADY = '1' then
|
|
S_AXIL_BVALID <= '';
|
|
end if;
|
|
|
|
if S_AXIL_AWVALID = '1' and S_AXIL_WVALID = '1' then
|
|
S_AXIL_BVALID <= '';
|
|
S_AXIL_RDATA <= (others=>'0');
|
|
|
|
if S_AXIL_WSTRB(0) = '1' then
|
|
case (to_integer(unsigned(S_AXIL_AWADDR(5 downto 0)))) is
|
|
when 0 =>
|
|
when 4 =>
|
|
when 8 =>
|
|
when 12 =>
|
|
when 16 =>
|
|
when 20 =>
|
|
when 24 =>
|
|
when 28 =>
|
|
when 32 =>
|
|
when 36 =>
|
|
when others => null;
|
|
end case;
|
|
end if;
|
|
end if;
|
|
end if;
|
|
end process;
|
|
|