Commit a29817e6 authored by Theodor-Adrian Stana's avatar Theodor-Adrian Stana Committed by Grzegorz Daniluk

SPI: Fixed non-clocked SPI outputs in wrc_periph

The outputs to the SPI interface from wrc_periph were not clocked,
which led to improper operation. This error was now fixed and everything
seems to work fine.
parent cc39f753
......@@ -247,27 +247,29 @@ begin
-------------------------------------
p_drive_spi: process(clk_sys_i)
begin
if rst_n_i = '0' then
spi_sclk_o <= '0';
spi_mosi_o <= '0';
spi_ncs_o <= '1';
else
if(sysc_regs_o.gpsr_spi_sclk_load_o = '1' and sysc_regs_o.gpsr_spi_sclk_o = '1') then
spi_sclk_o <= '1';
elsif(sysc_regs_o.gpcr_spi_sclk_o = '1') then
spi_sclk_o <= '0';
end if;
if rising_edge(clk_sys_i) then
if rst_n_i = '0' then
spi_sclk_o <= '0';
spi_mosi_o <= '0';
spi_ncs_o <= '1';
else
if(sysc_regs_o.gpsr_spi_sclk_load_o = '1' and sysc_regs_o.gpsr_spi_sclk_o = '1') then
spi_sclk_o <= '1';
elsif(sysc_regs_o.gpcr_spi_sclk_o = '1') then
spi_sclk_o <= '0';
end if;
if(sysc_regs_o.gpsr_spi_ncs_load_o = '1' and sysc_regs_o.gpsr_spi_ncs_o = '1') then
spi_ncs_o <= '1';
elsif(sysc_regs_o.gpcr_spi_cs_o = '1') then
spi_ncs_o <= '0';
end if;
if(sysc_regs_o.gpsr_spi_ncs_load_o = '1' and sysc_regs_o.gpsr_spi_ncs_o = '1') then
spi_ncs_o <= '1';
elsif(sysc_regs_o.gpcr_spi_cs_o = '1') then
spi_ncs_o <= '0';
end if;
if(sysc_regs_o.gpsr_spi_mosi_load_o = '1' and sysc_regs_o.gpsr_spi_mosi_o = '1') then
spi_mosi_o <= '1';
elsif(sysc_regs_o.gpcr_spi_mosi_o = '1') then
spi_mosi_o <= '0';
if(sysc_regs_o.gpsr_spi_mosi_load_o = '1' and sysc_regs_o.gpsr_spi_mosi_o = '1') then
spi_mosi_o <= '1';
elsif(sysc_regs_o.gpcr_spi_mosi_o = '1') then
spi_mosi_o <= '0';
end if;
end if;
end if;
end process;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment