2 use IEEE.std_logic_1164.
ALL;
3 use ieee.numeric_std.
all;
4 use ieee.std_logic_unsigned.
all;
6 ---------------------------------------------------------------------------------- 7 -- Company: University of Hawaii at Manoa 8 -- Engineer: Bostjan Macek 9 -- Create Date: 14:22:21 02/18/2014 10 ---------------------------------------------------------------------------------- 12 -- 2015/05/28 Isar Morstafanezhad for DAC in RHIC RevC- 13 -- 2018/12/24 Added simple clock divider inside module -- Vasily 14 -- 2020/07/28 Linting only (CK) 17 -- XST3210: output port 'clkdiv' of 'clock_div_i' is unconnected or connected to a loadless signal (CK) 21 ------------CLOCK----------------- 23 ------------DAC PARAMETERS-------- 24 dac_number : in (3 downto 0);
25 dac_addr : in (3 downto 0);
26 dac_value : in (7 downto 0);
29 ------------HW INTERFACE---------- 32 TDC_CS_DAC : out (9 downto 0) 34 end mppc_dacs_wrapper_dac088s085;
39 signal i_dac_number : (3 downto 0);
40 signal i_dac_addr : (3 downto 0);
41 signal i_dac_value : (7 downto 0);
42 signal i_dac_mask : (9 downto 0);
46 signal i_write_strobe : ;
62 sync_strb => i_write_strobe
68 if rising_edge(clk) then 69 i_dac_number <= dac_number;
70 i_dac_addr <= dac_addr;
71 i_dac_value <= dac_value;
80 dac_ch_addr => i_dac_addr,
81 dac_val => i_dac_value,
82 dac_update => i_write_strobe,
85 dac_sync_n => i_cs_dac,
89 i_dac_mask <= "1111111110" when i_dac_number = x"0" else 90 "1111111101" when i_dac_number = x"1" else 91 "1111111011" when i_dac_number = x"2" else 92 "1111110111" when i_dac_number = x"3" else 93 "1111101111" when i_dac_number = x"4" else 94 "1111011111" when i_dac_number = x"5" else 95 "1110111111" when i_dac_number = x"6" else 96 "1101111111" when i_dac_number = x"7" else 97 "1011111111" when i_dac_number = x"8" else 98 "0111111111" when i_dac_number = x"9" else 101 cs_bits: for i in 0 to 9 generate 102 TDC_CS_DAC(i) <= i_dac_mask(i) or i_cs_dac;