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"
|