|
Message
From: cvs at opencores.org<cvs@o...>
Date: Mon Mar 24 20:37:34 CET 2008
Subject: [cvs-checkins] MODIFIED: spi_slave ...
Date: 00/08/03 24:20:37 Modified: spi_slave/rtl/vhdl opb_if.vhd Log: added Register C_ADR_RX_CRC. C_ADR_TX_CRC Revision Changes Path 1.3 spi_slave/rtl/vhdl/opb_if.vhd http://www.opencores.org/cvsweb.shtml/spi_slave/rtl/vhdl/opb_if.vhd.diff?r1=1.2&r2=1.3 (In the diff below, changes in quantity of whitespace are not shown.) Index: opb_if.vhd =================================================================== RCS file: /cvsroot/dkoethe/spi_slave/rtl/vhdl/opb_if.vhd,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- opb_if.vhd 28 Nov 2007 22:04:47 -0000 1.2 +++ opb_if.vhd 24 Mar 2008 19:37:34 -0000 1.3 @@ -30,7 +30,8 @@ C_FAMILY : string := "virtex-4"; C_SR_WIDTH : integer := 8; C_FIFO_SIZE_WIDTH : integer := 4; - C_DMA_EN : boolean := true); + C_DMA_EN : boolean := false; + C_CRC_EN : boolean := false); port ( -- OPB-Bus Signals OPB_ABus : in std_logic_vector(0 to C_OPB_AWIDTH-1); @@ -68,7 +69,10 @@ opb_tx_dma_num : out std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0); opb_rx_dma_addr : out std_logic_vector(C_OPB_DWIDTH-1 downto 0); opb_rx_dma_ctl : out std_logic_vector(0 downto 0); - opb_rx_dma_num : out std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0)); + opb_rx_dma_num : out std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0); + -- rx crc + opb_rx_crc_value : in std_logic_vector(C_SR_WIDTH-1 downto 0); + opb_tx_crc_value : in std_logic_vector(C_SR_WIDTH-1 downto 0)); end opb_if; architecture behavior of opb_if is @@ -127,7 +131,7 @@ Sln_toutSup <= '0'; --* convert Sln_DBus_big_end to little mode - conv_big_Sln_DBus_proc: process(Sln_DBus_big_end) + conv_big_Sln_DBus_proc : process(Sln_DBus_big_end) begin for i in 0 to 31 loop Sln_DBus(31-i) <= Sln_DBus_big_end(i); @@ -135,7 +139,7 @@ end process conv_big_Sln_DBus_proc; --* convert OPB_ABus to big endian - conv_big_OPB_ABus_proc: process(OPB_ABus) + conv_big_OPB_ABus_proc : process(OPB_ABus) begin for i in 0 to 31 loop OPB_ABus_big_end(31-i) <= OPB_ABus(i); @@ -143,7 +147,7 @@ end process conv_big_OPB_ABus_proc; --* convert OPB_DBus to little mode - conv_big_OPB_DBus_proc: process(OPB_DBus) + conv_big_OPB_DBus_proc : process(OPB_DBus) begin for i in 0 to 31 loop OPB_DBus_big_end(31-i) <= OPB_DBus(i); @@ -153,7 +157,7 @@ --* control OPB requests --* --* handles OPB-read and -write request - opb_slave_proc: process (OPB_Rst, OPB_Clk) + opb_slave_proc : process (OPB_Rst, OPB_Clk) begin if (OPB_Rst = '1') then -- OPB @@ -249,8 +253,17 @@ Sln_DBus_big_end(C_WIDTH_DMA_NUM-1 downto 0) <= opb_rx_dma_num_int; end if; + when C_ADR_RX_CRC => + if C_CRC_EN then + Sln_DBus_big_end(C_OPB_DWIDTH-1 downto C_SR_WIDTH) <= (others => '0'); + Sln_DBus_big_end(C_SR_WIDTH-1 downto 0) <= opb_rx_crc_value; + end if; - + when C_ADR_TX_CRC => + if C_CRC_EN then + Sln_DBus_big_end(C_OPB_DWIDTH-1 downto C_SR_WIDTH) <= (others => '0'); + Sln_DBus_big_end(C_SR_WIDTH-1 downto 0) <= opb_tx_crc_value; + end if; when others => null; end case;
|
 |