1 ------------------------------------------------------------------------------- 2 -- File : AxiAd5780Core.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2014-04-18 5 -- Last update: 2014-05-18 6 ------------------------------------------------------------------------------- 7 -- Description: AXI-Lite interface to AD5780 DAC IC 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC Firmware Standard Library'. 10 -- It is subject to the license terms in the LICENSE.txt file found in the 11 -- top-level directory of this distribution and at: 12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 13 -- No part of 'SLAC Firmware Standard Library', including this file, 14 -- may be copied, modified, propagated, or distributed except according to 15 -- the terms contained in the LICENSE.txt file. 16 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
26 --! @ingroup devices_AnalogDevices_ad5780 31 USE_DSP48_G : := "no";
-- "no" for no DSP48 implementation, "yes" to use DSP48 slices 39 -- DAC Data Interface (axiClk domain) 40 dacData : in slv(17 downto 0);
-- 2's complement by default 41 -- AXI-Lite Register Interface (axiClk domain) 57 signal dacDataMux : slv(17 downto 0);
72 -- AXI-Lite Register Interface 77 -- Register Inputs/Outputs 87 if rising_edge(axiClk) then 104 -- DAC Data Interface (axiClk domain) 109 opGnd => config.opGnd,
out dacOutAxiAd5780OutType
out axiReadSlaveAxiLiteReadSlaveType
out axiWriteSlaveAxiLiteWriteSlaveType
in axiWriteMasterAxiLiteWriteMasterType
SPI_CLK_FREQ_Greal := 25.0E+6
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
out axiWriteSlaveAxiLiteWriteSlaveType
in axiReadMasterAxiLiteReadMasterType
STATUS_CNT_WIDTH_Gnatural range 1 to 32:= 32
in statusAxiAd5780StatusType
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
slv( 17 downto 0) debugData
out configAxiAd5780ConfigType
USE_DSP48_Gstring := "no"
SPI_CLK_FREQ_Greal := 25.0E+6
out axiReadSlaveAxiLiteReadSlaveType
in dacDataslv( 17 downto 0)
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
in halfSckPeriodslv( 31 downto 0)
AXI_CLK_FREQ_Greal := 200.0E+6
out dacOutAxiAd5780OutType
AXI_CLK_FREQ_Greal := 200.0E+6
USE_DSP48_Gstring := "no"
STATUS_CNT_WIDTH_Gnatural range 1 to 32:= 32
AXI_CLK_FREQ_Greal := 200.0E+6
in axiWriteMasterAxiLiteWriteMasterType
in axiReadMasterAxiLiteReadMasterType
in dacDataslv( 17 downto 0)