2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4 use ieee.std_logic_unsigned.all;
5 use ieee.numeric_std.all;
7 -- Calibration write register
8 -- Used to calibrate writing timing
10 entity calibration_write_register is
23 data_in : in std_logic_vector(31 downto 0);
24 data_out : out std_logic_vector(31 downto 0);
28 bls : in std_logic_vector(3 downto 0);
31 end calibration_write_register;
33 architecture Behavioral of calibration_write_register is
34 signal value : std_logic_vector(31 downto 0);
38 memory_bus_read: process(ce, rd, value)
43 data_out <= (others => 'X');
45 if ce = '0' and rd = '0' then
52 -- Write waits for clock
53 memory_bus_write: process(clk, reset)
57 value <= (others => '0');
60 if clk = '1' and clk'event then
64 if reset = '0' and bls /= "1111" then
67 value(7 downto 0) <= data_in(7 downto 0);
71 value(15 downto 8) <= data_in(15 downto 8);
75 value(23 downto 16) <= data_in(23 downto 16);
79 value(31 downto 24) <= data_in(31 downto 24);