OpenCores
URL https://opencores.org/ocsvn/spi_slave/spi_slave/trunk

Subversion Repositories spi_slave

[/] [spi_slave/] [trunk/] [pcore/] [opb_spi_slave_v1_00_a/] [hdl/] [vhdl/] [shift_register.vhd] - Diff between revs 2 and 19

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 19
Line 15... Line 15...
--*   @version: 1.1
--*   @version: 1.1
--* @date: 2007-11-11
--* @date: 2007-11-11
--/
--/
-- Version 1.0 Initial Release
-- Version 1.0 Initial Release
-- Version 1.1 rx_cnt/tx_cnt only increment if < C_SR_WIDTH
-- Version 1.1 rx_cnt/tx_cnt only increment if < C_SR_WIDTH
 
-- Version 1.2 removed delays for simulation
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_ARITH.all;
Line 82... Line 83...
  sclk_int <= sclk when (C_PHA = 0 and C_CPOL = 0) else
  sclk_int <= sclk when (C_PHA = 0 and C_CPOL = 0) else
              sclk when (C_PHA = 1 and C_CPOL = 1) else
              sclk when (C_PHA = 1 and C_CPOL = 1) else
              not sclk;
              not sclk;
 
 
 
 
  sr_rx_en <= transport sr_rx_en_int after 1 ns;
  sr_rx_en <= sr_rx_en_int;
  sr_tx_en <= transport sr_tx_en_int after 1 ns;
  sr_tx_en <= sr_tx_en_int;
 
 
  --* reorder received bits if not "MSB_First"
  --* reorder received bits if not "MSB_First"
  reorder_rx_bits : process(sr_rx_data_int)
  reorder_rx_bits : process(sr_rx_data_int)
  begin
  begin
    for i in 0 to C_SR_WIDTH-1 loop
    for i in 0 to C_SR_WIDTH-1 loop
      if C_MSB_FIRST then
      if C_MSB_FIRST then
        sr_rx_data(i) <= transport sr_rx_data_int(i) after 1 ns;
        sr_rx_data(i) <= sr_rx_data_int(i);
      else
      else
        sr_rx_data(C_SR_WIDTH-1-i) <= transport sr_rx_data_int(i)after 1 ns;
        sr_rx_data(C_SR_WIDTH-1-i) <= sr_rx_data_int(i);
      end if;
      end if;
    end loop;  -- i
    end loop;  -- i
  end process reorder_rx_bits;
  end process reorder_rx_bits;
 
 
  --* reorder transmit bits if not "MSB_First" 
  --* reorder transmit bits if not "MSB_First" 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.