litedram: Test bench
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 1 Jun 2020 22:32:17 +0000 (08:32 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 5 Jun 2020 00:33:27 +0000 (10:33 +1000)
The test bench test simple access forms for now, it's a starting point
but it already helped find/fix a bug.

Includes a litedram update to be able to operate the sim model without
inits.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Makefile
dram_tb.vhdl [new file with mode: 0644]
litedram/extras/wave_tb.gtkw [new file with mode: 0644]
litedram/generated/arty/litedram_core.init
litedram/generated/arty/litedram_core.v
litedram/generated/nexys-video/litedram_core.init
litedram/generated/nexys-video/litedram_core.v
litedram/generated/sim/litedram_core.init
litedram/generated/sim/litedram_core.v

index 9ed6ff870613915e4a1a2cda3d729b646d50d61b..298c7dafefefa38901f9d0eac1c135538f7f5487 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 GHDL ?= ghdl
-GHDLFLAGS=--std=08 --work=unisim
+GHDLFLAGS=--std=08 --work=unisim -frelaxed
 CFLAGS=-O3 -Wall
 
 GHDLSYNTH ?= ghdl.so
@@ -66,7 +66,7 @@ soc_sim_link=$(patsubst %,-Wl$(comma)%,$(soc_sim_obj_files))
 
 core_tbs = multiply_tb divider_tb rotator_tb countzero_tb
 soc_tbs = core_tb icache_tb dcache_tb dmi_dtm_tb wishbone_bram_tb
-soc_dram_tbs = core_dram_tb
+soc_dram_tbs = dram_tb core_dram_tb
 
 $(soc_tbs): %: $(core_files) $(soc_files) $(soc_sim_files) $(soc_sim_obj_files) %.vhdl
        $(GHDL) -c $(GHDLFLAGS) $(soc_sim_link) $(core_files) $(soc_files) $(soc_sim_files) $@.vhdl -e $@
diff --git a/dram_tb.vhdl b/dram_tb.vhdl
new file mode 100644 (file)
index 0000000..af0578e
--- /dev/null
@@ -0,0 +1,301 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library work;
+use work.common.all;
+use work.wishbone_types.all;
+
+entity dram_tb is
+    generic (
+        DRAM_INIT_FILE : string  := "";
+        DRAM_INIT_SIZE : natural := 0
+        );
+end dram_tb;
+
+architecture behave of dram_tb is
+    signal clk, rst: std_logic;
+    signal clk_in, soc_rst : std_ulogic;
+
+    -- testbench signals
+    constant clk_period : time := 10 ns;
+
+    -- Sim DRAM
+    signal wb_in : wishbone_master_out;
+    signal wb_out : wishbone_slave_out;
+    signal wb_ctrl_in : wb_io_master_out;
+
+    subtype addr_t is std_ulogic_vector(wb_in.adr'left downto 0);
+    subtype data_t is std_ulogic_vector(wb_in.dat'left downto 0);
+    subtype sel_t  is std_ulogic_vector(wb_in.sel'left downto 0);
+
+    -- Counter for acks
+    signal acks : integer := 0;
+    signal reset_acks : std_ulogic;
+
+    -- Read data fifo
+    signal rd_ready : std_ulogic := '0';
+    signal rd_valid : std_ulogic;
+    signal rd_data  : data_t;
+begin
+
+    dram: entity work.litedram_wrapper
+        generic map(
+            DRAM_ABITS => 24,
+            DRAM_ALINES => 1,
+            PAYLOAD_FILE => DRAM_INIT_FILE,
+            PAYLOAD_SIZE => DRAM_INIT_SIZE
+            )
+        port map(
+            clk_in              => clk_in,
+            rst                 => rst,
+            system_clk          => clk,
+            system_reset        => soc_rst,
+            core_alt_reset      => open,
+            pll_locked          => open,
+
+            wb_in               => wb_in,
+            wb_out              => wb_out,
+            wb_ctrl_in          => wb_ctrl_in,
+            wb_ctrl_out         => open,
+            wb_ctrl_is_csr      => '0',
+            wb_ctrl_is_init     => '0',
+
+            serial_tx           => open,
+            serial_rx           => '1',
+
+            init_done           => open,
+            init_error          => open,
+
+            ddram_a             => open,
+            ddram_ba    => open,
+            ddram_ras_n => open,
+            ddram_cas_n => open,
+            ddram_we_n  => open,
+            ddram_cs_n  => open,
+            ddram_dm    => open,
+            ddram_dq    => open,
+            ddram_dqs_p => open,
+            ddram_dqs_n => open,
+            ddram_clk_p => open,
+            ddram_clk_n => open,
+            ddram_cke   => open,
+            ddram_odt   => open,
+            ddram_reset_n       => open
+            );
+
+    clk_process: process
+    begin
+        clk_in <= '0';
+        wait for clk_period/2;
+        clk_in <= '1';
+        wait for clk_period/2;
+    end process;
+
+    rst_process: process
+    begin
+        rst <= '1';
+        wait for 10*clk_period;
+        rst <= '0';
+        wait;
+    end process;
+
+    wb_ctrl_in.cyc <= '0';
+    wb_ctrl_in.stb <= '0';
+
+    -- Read data receive queue
+    data_queue: entity work.sync_fifo
+       generic map (
+           DEPTH => 16,
+           WIDTH => rd_data'length
+           )
+        port map (
+            clk      => clk,
+            reset    => soc_rst or reset_acks,
+            rd_ready => rd_ready,
+            rd_valid => rd_valid,
+            rd_data  => rd_data,
+            wr_ready => open,
+            wr_valid => wb_out.ack,
+            wr_data  => wb_out.dat
+            );
+
+    recv_acks: process(clk)
+    begin
+        if rising_edge(clk) then
+            if rst = '1' or reset_acks = '1' then
+                acks <= 0;
+            elsif wb_out.ack = '1' then
+                acks <= acks + 1;
+--                report "WB ACK ! DATA=" & to_hstring(wb_out.dat);
+            end if;
+        end if;
+    end process;
+
+    sim: process
+        procedure wb_write(addr: addr_t; data: data_t; sel: sel_t) is
+        begin
+            wb_in.adr <= addr;
+            wb_in.sel <= sel;
+            wb_in.dat <= data;
+            wb_in.we  <= '1';
+            wb_in.stb <= '1';
+            wb_in.cyc <= '1';
+            loop
+                wait until rising_edge(clk);
+                if wb_out.stall = '0' then
+                    wb_in.stb <= '0';
+                    exit;
+                end if;
+            end loop;
+        end procedure;
+
+        procedure wb_read(addr: addr_t) is
+        begin
+            wb_in.adr <= addr;
+            wb_in.sel <= x"ff";
+            wb_in.we  <= '0';
+            wb_in.stb <= '1';
+            wb_in.cyc <= '1';
+            loop
+                wait until rising_edge(clk);
+                if wb_out.stall = '0' then
+                    wb_in.stb <= '0';
+                    exit;
+                end if;
+            end loop;
+        end procedure;
+
+        procedure wait_acks(count: integer) is
+        begin
+            wait until acks = count;
+            wait until rising_edge(clk);
+        end procedure;
+
+        procedure clr_acks is
+        begin
+            reset_acks <= '1';
+            wait until rising_edge(clk);
+            reset_acks <= '0';
+        end procedure;
+
+        procedure read_data(data: out data_t) is
+        begin
+            assert rd_valid = '1' report "No data to read" severity failure;
+            rd_ready <= '1';
+            wait until rising_edge(clk);
+            rd_ready <= '0';
+            data := rd_data;
+        end procedure;
+
+        function add_off(a: addr_t; off: integer) return addr_t is
+        begin
+            return addr_t(unsigned(a) + off);
+        end function;
+
+        function make_pattern(num : integer) return data_t is
+            variable r : data_t;
+            variable t,b : integer;
+        begin
+            for i in 0 to (data_t'length/8)-1 loop
+                t := (i+1)*8-1;
+                b := i*8;
+                r(t downto b) := std_ulogic_vector(to_unsigned(num+1, 8));
+            end loop;
+            return r;
+        end function;
+
+        procedure check_data(p: data_t) is
+            variable d : data_t;
+        begin
+            read_data(d);
+            assert d = p report "bad data, want " & to_hstring(p) &
+                    " got " & to_hstring(d) severity failure;
+        end procedure;
+
+        variable a : addr_t := (others => '0');
+        variable d : data_t := (others => '0');
+        variable d1 : data_t := (others => '0');
+    begin
+        reset_acks <= '0';
+        rst <= '1';
+        wait until rising_edge(clk_in);
+        wait until rising_edge(clk_in);
+        wait until rising_edge(clk_in);
+        wait until rising_edge(clk_in);
+        wait until rising_edge(clk_in);
+        rst <= '0';
+        wait until rising_edge(clk_in);
+        wait until soc_rst = '0';
+        wait until rising_edge(clk);
+
+        report "Simple write miss...";
+        clr_acks;
+        wb_write(a, x"0123456789abcdef", x"ff");
+        wait_acks(1);
+
+        report "Simple read miss...";
+        clr_acks;
+        wb_read(a);
+        wait_acks(1);
+        read_data(d);
+        assert d = x"0123456789abcdef" report "bad data" severity failure;
+
+        report "Simple read hit...";
+        clr_acks;
+        wb_read(a);
+        wait_acks(1);
+        read_data(d);
+        assert d = x"0123456789abcdef" report "bad data" severity failure;
+
+        report "Back to back 4 stores 4 reads on hit...";
+        clr_acks;
+        for i in 0 to 3 loop
+            wb_write(add_off(a, i*8), make_pattern(i), x"ff");
+        end loop;
+        for i in 0 to 3 loop
+            wb_read(add_off(a, i*8));
+        end loop;
+        wait_acks(8);
+        for i in 0 to 7 loop
+            if i < 4 then
+                read_data(d);
+            else
+                check_data(make_pattern(i-4));
+            end if;
+        end loop;
+
+        report "Back to back 4 stores 4 reads on miss...";
+        a(10) := '1';
+        clr_acks;
+        for i in 0 to 3 loop
+            wb_write(add_off(a, i*8), make_pattern(i), x"ff");
+        end loop;
+        for i in 0 to 3 loop
+            wb_read(add_off(a, i*8));
+        end loop;
+        wait_acks(8);
+        for i in 0 to 7 loop
+            if i < 4 then
+                read_data(d);
+            else
+                check_data(make_pattern(i-4));
+            end if;
+        end loop;
+
+        report "Back to back interleaved 4 stores 4 reads on hit...";
+        a(10) := '1';
+        clr_acks;
+        for i in 0 to 3 loop
+            wb_write(add_off(a, i*8), make_pattern(i), x"ff");
+            wb_read(add_off(a, i*8));
+        end loop;
+        wait_acks(8);
+        for i in 0 to 3 loop
+            read_data(d);
+            check_data(make_pattern(i));
+        end loop;
+
+        std.env.finish;
+    end process;
+end architecture;
diff --git a/litedram/extras/wave_tb.gtkw b/litedram/extras/wave_tb.gtkw
new file mode 100644 (file)
index 0000000..fcdf6a9
--- /dev/null
@@ -0,0 +1,80 @@
+[*]
+[*] GTKWave Analyzer v3.3.86 (w)1999-2017 BSI
+[*] Sun May 31 12:53:52 2020
+[*]
+[dumpfile] "/home/ANT.AMAZON.COM/benh/hackplace/microwatt/foo.ghw"
+[dumpfile_mtime] "Sun May 31 12:50:15 2020"
+[dumpfile_size] 1134118
+[savefile] "/home/ANT.AMAZON.COM/benh/hackplace/microwatt/litedram/extras/wave_tb.gtkw"
+[timestart] 1312950000
+[size] 2509 1371
+[pos] -1 -1
+*-24.248457 1386890000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+[treeopen] top.
+[treeopen] top.dram_tb.
+[sst_width] 301
+[signals_width] 433
+[sst_expanded] 1
+[sst_vpaned_height] 410
+@28
+top.dram_tb.reset_acks
+@420
+top.dram_tb.acks
+@28
+top.dram_tb.rst
+top.dram_tb.clk
+@22
+#{top.dram_tb.wb_in.dat[63:0]} top.dram_tb.wb_in.dat[63] top.dram_tb.wb_in.dat[62] top.dram_tb.wb_in.dat[61] top.dram_tb.wb_in.dat[60] top.dram_tb.wb_in.dat[59] top.dram_tb.wb_in.dat[58] top.dram_tb.wb_in.dat[57] top.dram_tb.wb_in.dat[56] top.dram_tb.wb_in.dat[55] top.dram_tb.wb_in.dat[54] top.dram_tb.wb_in.dat[53] top.dram_tb.wb_in.dat[52] top.dram_tb.wb_in.dat[51] top.dram_tb.wb_in.dat[50] top.dram_tb.wb_in.dat[49] top.dram_tb.wb_in.dat[48] top.dram_tb.wb_in.dat[47] top.dram_tb.wb_in.dat[46] top.dram_tb.wb_in.dat[45] top.dram_tb.wb_in.dat[44] top.dram_tb.wb_in.dat[43] top.dram_tb.wb_in.dat[42] top.dram_tb.wb_in.dat[41] top.dram_tb.wb_in.dat[40] top.dram_tb.wb_in.dat[39] top.dram_tb.wb_in.dat[38] top.dram_tb.wb_in.dat[37] top.dram_tb.wb_in.dat[36] top.dram_tb.wb_in.dat[35] top.dram_tb.wb_in.dat[34] top.dram_tb.wb_in.dat[33] top.dram_tb.wb_in.dat[32] top.dram_tb.wb_in.dat[31] top.dram_tb.wb_in.dat[30] top.dram_tb.wb_in.dat[29] top.dram_tb.wb_in.dat[28] top.dram_tb.wb_in.dat[27] top.dram_tb.wb_in.dat[26] top.dram_tb.wb_in.dat[25] top.dram_tb.wb_in.dat[24] top.dram_tb.wb_in.dat[23] top.dram_tb.wb_in.dat[22] top.dram_tb.wb_in.dat[21] top.dram_tb.wb_in.dat[20] top.dram_tb.wb_in.dat[19] top.dram_tb.wb_in.dat[18] top.dram_tb.wb_in.dat[17] top.dram_tb.wb_in.dat[16] top.dram_tb.wb_in.dat[15] top.dram_tb.wb_in.dat[14] top.dram_tb.wb_in.dat[13] top.dram_tb.wb_in.dat[12] top.dram_tb.wb_in.dat[11] top.dram_tb.wb_in.dat[10] top.dram_tb.wb_in.dat[9] top.dram_tb.wb_in.dat[8] top.dram_tb.wb_in.dat[7] top.dram_tb.wb_in.dat[6] top.dram_tb.wb_in.dat[5] top.dram_tb.wb_in.dat[4] top.dram_tb.wb_in.dat[3] top.dram_tb.wb_in.dat[2] top.dram_tb.wb_in.dat[1] top.dram_tb.wb_in.dat[0]
+#{top.dram_tb.wb_in.adr[31:0]} top.dram_tb.wb_in.adr[31] top.dram_tb.wb_in.adr[30] top.dram_tb.wb_in.adr[29] top.dram_tb.wb_in.adr[28] top.dram_tb.wb_in.adr[27] top.dram_tb.wb_in.adr[26] top.dram_tb.wb_in.adr[25] top.dram_tb.wb_in.adr[24] top.dram_tb.wb_in.adr[23] top.dram_tb.wb_in.adr[22] top.dram_tb.wb_in.adr[21] top.dram_tb.wb_in.adr[20] top.dram_tb.wb_in.adr[19] top.dram_tb.wb_in.adr[18] top.dram_tb.wb_in.adr[17] top.dram_tb.wb_in.adr[16] top.dram_tb.wb_in.adr[15] top.dram_tb.wb_in.adr[14] top.dram_tb.wb_in.adr[13] top.dram_tb.wb_in.adr[12] top.dram_tb.wb_in.adr[11] top.dram_tb.wb_in.adr[10] top.dram_tb.wb_in.adr[9] top.dram_tb.wb_in.adr[8] top.dram_tb.wb_in.adr[7] top.dram_tb.wb_in.adr[6] top.dram_tb.wb_in.adr[5] top.dram_tb.wb_in.adr[4] top.dram_tb.wb_in.adr[3] top.dram_tb.wb_in.adr[2] top.dram_tb.wb_in.adr[1] top.dram_tb.wb_in.adr[0]
+@23
+#{top.dram_tb.wb_in.sel[7:0]} top.dram_tb.wb_in.sel[7] top.dram_tb.wb_in.sel[6] top.dram_tb.wb_in.sel[5] top.dram_tb.wb_in.sel[4] top.dram_tb.wb_in.sel[3] top.dram_tb.wb_in.sel[2] top.dram_tb.wb_in.sel[1] top.dram_tb.wb_in.sel[0]
+@28
+top.dram_tb.wb_in.cyc
+top.dram_tb.wb_in.stb
+top.dram_tb.wb_in.we
+top.dram_tb.wb_out.ack
+top.dram_tb.wb_out.stall
+@22
+#{top.dram_tb.wb_out.dat[63:0]} top.dram_tb.wb_out.dat[63] top.dram_tb.wb_out.dat[62] top.dram_tb.wb_out.dat[61] top.dram_tb.wb_out.dat[60] top.dram_tb.wb_out.dat[59] top.dram_tb.wb_out.dat[58] top.dram_tb.wb_out.dat[57] top.dram_tb.wb_out.dat[56] top.dram_tb.wb_out.dat[55] top.dram_tb.wb_out.dat[54] top.dram_tb.wb_out.dat[53] top.dram_tb.wb_out.dat[52] top.dram_tb.wb_out.dat[51] top.dram_tb.wb_out.dat[50] top.dram_tb.wb_out.dat[49] top.dram_tb.wb_out.dat[48] top.dram_tb.wb_out.dat[47] top.dram_tb.wb_out.dat[46] top.dram_tb.wb_out.dat[45] top.dram_tb.wb_out.dat[44] top.dram_tb.wb_out.dat[43] top.dram_tb.wb_out.dat[42] top.dram_tb.wb_out.dat[41] top.dram_tb.wb_out.dat[40] top.dram_tb.wb_out.dat[39] top.dram_tb.wb_out.dat[38] top.dram_tb.wb_out.dat[37] top.dram_tb.wb_out.dat[36] top.dram_tb.wb_out.dat[35] top.dram_tb.wb_out.dat[34] top.dram_tb.wb_out.dat[33] top.dram_tb.wb_out.dat[32] top.dram_tb.wb_out.dat[31] top.dram_tb.wb_out.dat[30] top.dram_tb.wb_out.dat[29] top.dram_tb.wb_out.dat[28] top.dram_tb.wb_out.dat[27] top.dram_tb.wb_out.dat[26] top.dram_tb.wb_out.dat[25] top.dram_tb.wb_out.dat[24] top.dram_tb.wb_out.dat[23] top.dram_tb.wb_out.dat[22] top.dram_tb.wb_out.dat[21] top.dram_tb.wb_out.dat[20] top.dram_tb.wb_out.dat[19] top.dram_tb.wb_out.dat[18] top.dram_tb.wb_out.dat[17] top.dram_tb.wb_out.dat[16] top.dram_tb.wb_out.dat[15] top.dram_tb.wb_out.dat[14] top.dram_tb.wb_out.dat[13] top.dram_tb.wb_out.dat[12] top.dram_tb.wb_out.dat[11] top.dram_tb.wb_out.dat[10] top.dram_tb.wb_out.dat[9] top.dram_tb.wb_out.dat[8] top.dram_tb.wb_out.dat[7] top.dram_tb.wb_out.dat[6] top.dram_tb.wb_out.dat[5] top.dram_tb.wb_out.dat[4] top.dram_tb.wb_out.dat[3] top.dram_tb.wb_out.dat[2] top.dram_tb.wb_out.dat[1] top.dram_tb.wb_out.dat[0]
+@28
+top.dram_tb.rd_valid
+top.dram_tb.rd_ready
+@22
+#{top.dram_tb.rd_data[63:0]} top.dram_tb.rd_data[63] top.dram_tb.rd_data[62] top.dram_tb.rd_data[61] top.dram_tb.rd_data[60] top.dram_tb.rd_data[59] top.dram_tb.rd_data[58] top.dram_tb.rd_data[57] top.dram_tb.rd_data[56] top.dram_tb.rd_data[55] top.dram_tb.rd_data[54] top.dram_tb.rd_data[53] top.dram_tb.rd_data[52] top.dram_tb.rd_data[51] top.dram_tb.rd_data[50] top.dram_tb.rd_data[49] top.dram_tb.rd_data[48] top.dram_tb.rd_data[47] top.dram_tb.rd_data[46] top.dram_tb.rd_data[45] top.dram_tb.rd_data[44] top.dram_tb.rd_data[43] top.dram_tb.rd_data[42] top.dram_tb.rd_data[41] top.dram_tb.rd_data[40] top.dram_tb.rd_data[39] top.dram_tb.rd_data[38] top.dram_tb.rd_data[37] top.dram_tb.rd_data[36] top.dram_tb.rd_data[35] top.dram_tb.rd_data[34] top.dram_tb.rd_data[33] top.dram_tb.rd_data[32] top.dram_tb.rd_data[31] top.dram_tb.rd_data[30] top.dram_tb.rd_data[29] top.dram_tb.rd_data[28] top.dram_tb.rd_data[27] top.dram_tb.rd_data[26] top.dram_tb.rd_data[25] top.dram_tb.rd_data[24] top.dram_tb.rd_data[23] top.dram_tb.rd_data[22] top.dram_tb.rd_data[21] top.dram_tb.rd_data[20] top.dram_tb.rd_data[19] top.dram_tb.rd_data[18] top.dram_tb.rd_data[17] top.dram_tb.rd_data[16] top.dram_tb.rd_data[15] top.dram_tb.rd_data[14] top.dram_tb.rd_data[13] top.dram_tb.rd_data[12] top.dram_tb.rd_data[11] top.dram_tb.rd_data[10] top.dram_tb.rd_data[9] top.dram_tb.rd_data[8] top.dram_tb.rd_data[7] top.dram_tb.rd_data[6] top.dram_tb.rd_data[5] top.dram_tb.rd_data[4] top.dram_tb.rd_data[3] top.dram_tb.rd_data[2] top.dram_tb.rd_data[1] top.dram_tb.rd_data[0]
+@200
+-
+-
+-wrapper
+@28
+top.dram_tb.dram.accept_store
+@420
+top.dram_tb.dram.req_op
+top.dram_tb.dram.state
+@28
+top.dram_tb.dram.read_ack_1
+top.dram_tb.dram.read_ack_0
+top.dram_tb.dram.storeq_wr_valid
+top.dram_tb.dram.storeq_wr_ready
+top.dram_tb.dram.storeq_rd_valid
+top.dram_tb.dram.storeq_rd_ready
+top.dram_tb.dram.user_port0_rdata_ready
+top.dram_tb.dram.user_port0_rdata_valid
+top.dram_tb.dram.user_port0_wdata_ready
+top.dram_tb.dram.user_port0_wdata_valid
+top.dram_tb.dram.user_port0_cmd_we
+top.dram_tb.dram.user_port0_cmd_ready
+top.dram_tb.dram.user_port0_cmd_valid
+top.dram_tb.dram.refill_cmd_valid
+@420
+top.dram_tb.dram.req_index
+top.dram_tb.dram.req_hit_way
+@28
+top.dram_tb.dram.req_ad3
+@420
+top.dram_tb.dram.refill_row
+top.dram_tb.dram.refill_index
+top.dram_tb.dram.refill_way
+@28
+top.dram_tb.dram.system_clk
+[pattern_trace] 1
+[pattern_trace] 0
index e53fc044974d7e73ee3d8e9e9641bbe801ad1a0d..2325bba58db253d83730e9efe4f3156347d95789 100644 (file)
@@ -580,7 +580,7 @@ f92101c0f90101b8
 3c62ffff3c82ffff
 38847ce838a57cd8
 4bfffddd38637cf0
-6000000048000e99
+6000000048000e95
 3c62ffff41920020
 4bfffdc538637d20
 8181000838210070
@@ -902,161 +902,161 @@ f8010010794a0020
 0100000000000000
 3c4c000100000580
 7c0802a6384295cc
-f821fec1480010ed
-3bc000013fe0c010
-7bff002063ff0028
-386000004bfffbd9
-7c0004ac4bfff6bd
-3f80c0107fc0ff2a
-7b9c0020639c0040
-7fc0e72a7c0004ac
-7c0004ac3ba00000
-386000017fa0ff2a
-392000024bfff68d
-7d20ff2a7c0004ac
-7fc0e72a7c0004ac
+480010e938600000
+3fe0c010f821fec1
+63ff00283bc00001
+4bfff6c17bff0020
+7fc0ff2a7c0004ac
+639c00403f80c010
+7c0004ac7b9c0020
+3ba000007fc0e72a
 7fa0ff2a7c0004ac
-3b8100703c62ffff
-3e02ffff38637f48
-600000004bfff349
-fb8100803d22ffff
-39297f583de2ffff
-3e42ffff3dc2ffff
-f92100983ae10063
-3be000003ac10061
-39ef7f683a107ee8
-3a527f2839ce7f70
-3b20000139210064
-3ea0c0103e80c010
-39210068f9210088
-629408187f39f830
-7b33002062b50820
-f92100903bc00000
-3ba000003b000000
-7ab500207a940020
-7fbeeb7848000054
-419e029c2f9d000f
-612900283d20c010
+4bfff69138600001
+7c0004ac39200002
+7c0004ac7d20ff2a
+7c0004ac7fc0e72a
+3c62ffff7fa0ff2a
+38637f483b810070
+4bfff34d3e02ffff
+3d22ffff60000000
+3de2fffffb810080
+3dc2ffff39297f58
+3ae100633e42ffff
+3ac10061f9210098
+3a107ee83be00000
+39ce7f7039ef7f68
+392100643a527f28
+3e80c0103b200001
+f92100883ea0c010
+7f39f83039210068
+62b5082062940818
+3bc000007b330020
+3b000000f9210090
+7a9400203ba00000
+480000547ab50020
+2f9d000f7fbeeb78
+3d20c010419e029c
+7929002061290028
+7e604f2a7c0004ac
+394000013d00c010
+7908002061080048
+7d40472a7c0004ac
+7c0004ac39400000
+3bbd00017d404f2a
+7fbd07b47f78db78
+3900000439410060
+7d5a53783920002a
+38c0000038e00004
+3ca080207ce903a6
+60a500037927f842
+7d2900d0792907e0
+7d29283878a50020
+78e900207d273a78
+38c600017cea31ae
+3908ffff4200ffd4
+79080021394a0004
+3b6000004082ffb8
+7f60a72a7c0004ac
+7f60af2a7c0004ac
+4bfff4b538600009
+4bfff4e93860000f
+7f44d3783c60c010
+7863002060630828
+e88100884bfff5d5
+606308583c60c010
+4bfff5c178630020
+3c60c010e8810090
+7863002060630888
+3c60c0104bfff5ad
+606308b83881006c
+4bfff59978630020
+612908a83d20c010
 7c0004ac79290020
-3d00c0107e604f2a
-6108004839400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-7f78db783bbd0001
-394100607fbd07b4
-3920002a39000004
-38e000047d5a5378
-7ce903a638c00000
-7927f8423ca08020
-792907e060a50003
-78a500207d2900d0
-7d273a787d292838
-7cea31ae78e90020
-4200ffd438c60001
-394a00043908ffff
-4082ffb879080021
-7c0004ac3b600000
-7c0004ac7f60a72a
-386000097f60af2a
-3860000f4bfff4b1
-3c60c0104bfff4e5
-606308287f44d378
-4bfff5d178630020
-3c60c010e8810088
-7863002060630858
-e88100904bfff5bd
-606308883c60c010
-4bfff5a978630020
-3881006c3c60c010
-78630020606308b8
-3d20c0104bfff595
-79290020612908a8
+3d20c0107f604f2a
+79290020612908b0
 7f604f2a7c0004ac
-612908b03d20c010
+392000173d40c010
+794a0020614a0898
+7d20572a7c0004ac
+392000013d40c010
+794a0020614a08a0
+7d20572a7c0004ac
+612908783d20c010
 7c0004ac79290020
-3d40c0107f604f2a
-614a089839200017
-7c0004ac794a0020
-3d40c0107d20572a
-614a08a039200001
-7c0004ac794a0020
-3d20c0107d20572a
-7929002061290878
+3d20c0107f604f2a
+7929002061290880
 7f604f2a7c0004ac
-612908803d20c010
-7c0004ac79290020
-e86100987f604f2a
-7fe4fb787fa5eb78
-3b6000003b400020
-600000004bfff111
-4bfff4197fe3fb78
-3860000f4bfff4ad
-4bfff3e13a200001
-79480fa439400000
-f94100a0e8810080
-4bfff5157c70402a
-88fc0001e94100a0
-7f8838007d1650ae
-7d1750ae409e00a0
-7f88380088fc0003
-394a0004409e0090
-409effc02baa0010
-7de37b787e248b78
-600000004bfff0a1
-7fe3fb783b5affff
-7b5a00214bfff3f1
-7f7b07b47f7b8a14
-7dc373784082ff80
-600000004bfff079
-7c0004ac39200000
-7c0004ac7d20a72a
-3860000b7d20af2a
-3860000f4bfff309
-7fe3fb784bfff33d
-7e4393784bfff4c1
-600000004bfff041
-419cfd707f98d800
-4bfffd6c7f1bc378
-4bffff703a200000
-7fc5f3783c62ffff
-38637f787fe4fb78
-600000004bfff011
-612900283d20c010
-7c0004ac79290020
-3d00c0107f204f2a
-6108004039400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-3d00c0107bde0020
-6108004838de0001
-394000017cc903a6
-38e0000079080020
-7fe3fb7842000034
-4bfff41d3af7ffff
-3b9cffff7e439378
-600000004bffef99
-3ad6ffff2f9f0001
-3be00001419e0028
-7c0004ac4bfffc78
-7c0004ac7e604f2a
-7c0004ac7d40472a
-4bffffb47ce04f2a
-3860000138210140
-0000000048000ccc
-0000128001000000
-384291403c4c0001
-3c62ffff7c0802a6
-48000c8938637f30
-3f60c010f821ff71
-637b10003be00000
-4bffef1d7b7b0020
-7c0004ac60000000
-3f40c0107fe0df2a
-7b5a0020635a1008
-7fe0d72a7c0004ac
-63bd08183fa0c010
+7fa5eb78e8610098
+3b4000207fe4fb78
+4bfff1153b600000
+7fe3fb7860000000
+4bfff4b14bfff41d
+3a2000013860000f
+394000004bfff3e5
+e881008079480fa4
+7c70402af94100a0
+e94100a04bfff519
+7d1650ae88fc0001
+409e00a07f883800
+88fc00037d1750ae
+409e00907f883800
+2baa0010394a0004
+7e248b78409effc0
+4bfff0a57de37b78
+3b5affff60000000
+4bfff3f57fe3fb78
+7f7b8a147b5a0021
+4082ff807f7b07b4
+4bfff07d7dc37378
+3920000060000000
+7d20a72a7c0004ac
+7d20af2a7c0004ac
+4bfff30d3860000b
+4bfff3413860000f
+4bfff4c57fe3fb78
+4bfff0457e439378
+7f98d80060000000
+7f1bc378419cfd70
+3a2000004bfffd6c
+3c62ffff4bffff70
+7fe4fb787fc5f378
+4bfff01538637f78
+3d20c01060000000
+7929002061290028
+7f204f2a7c0004ac
+394000013d00c010
+7908002061080040
+7d40472a7c0004ac
+7c0004ac39400000
+7bde00207d404f2a
+38de00013d00c010
+7cc903a661080048
+7908002039400001
+4200003438e00000
+3af7ffff7fe3fb78
+7e4393784bfff421
+4bffef9d3b9cffff
+2f9f000160000000
+419e00283ad6ffff
+4bfffc783be00001
+7e604f2a7c0004ac
+7d40472a7c0004ac
+7ce04f2a7c0004ac
+382101404bffffb4
+48000cd038600001
+0100000000000000
+3c4c000100001280
+7c0802a638429144
+38637f303c62ffff
+f821ff7148000c8d
+3be000003f60c010
+7b7b0020637b1000
+600000004bffef21
+7fe0df2a7c0004ac
+635a10083f40c010
+7c0004ac7b5a0020
+3fa0c0107fe0d72a
+63bd08184bfff721
 7c0004ac7bbd0020
 3fc0c0107fe0ef2a
 7bde002063de0820
index ec4273698c1cbe587fccaf4f464022e3470bd41b..780ce879685fdd51189316ac06af2850497f92f3 100644 (file)
@@ -1,5 +1,5 @@
 //--------------------------------------------------------------------------------
-// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-30 20:25:53
+// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-31 17:48:50
 //--------------------------------------------------------------------------------
 module litedram_core(
        input wire clk,
@@ -540,7 +540,7 @@ reg [3:0] litedramcore_master_p3_wrdata_mask = 4'd0;
 reg litedramcore_master_p3_rddata_en = 1'd0;
 wire [31:0] litedramcore_master_p3_rddata;
 wire litedramcore_master_p3_rddata_valid;
-reg [3:0] litedramcore_storage = 4'd0;
+reg [3:0] litedramcore_storage = 4'd1;
 reg litedramcore_re = 1'd0;
 reg [5:0] litedramcore_phaseinjector0_command_storage = 6'd0;
 reg litedramcore_phaseinjector0_command_re = 1'd0;
@@ -14691,7 +14691,7 @@ always @(posedge sys_clk) begin
                a7ddrphy_bitslip15_value <= 4'd0;
                a7ddrphy_rddata_en_last <= 8'd0;
                a7ddrphy_wrdata_en_last <= 4'd0;
-               litedramcore_storage <= 4'd0;
+               litedramcore_storage <= 4'd1;
                litedramcore_re <= 1'd0;
                litedramcore_phaseinjector0_command_storage <= 6'd0;
                litedramcore_phaseinjector0_command_re <= 1'd0;
index e53fc044974d7e73ee3d8e9e9641bbe801ad1a0d..2325bba58db253d83730e9efe4f3156347d95789 100644 (file)
@@ -580,7 +580,7 @@ f92101c0f90101b8
 3c62ffff3c82ffff
 38847ce838a57cd8
 4bfffddd38637cf0
-6000000048000e99
+6000000048000e95
 3c62ffff41920020
 4bfffdc538637d20
 8181000838210070
@@ -902,161 +902,161 @@ f8010010794a0020
 0100000000000000
 3c4c000100000580
 7c0802a6384295cc
-f821fec1480010ed
-3bc000013fe0c010
-7bff002063ff0028
-386000004bfffbd9
-7c0004ac4bfff6bd
-3f80c0107fc0ff2a
-7b9c0020639c0040
-7fc0e72a7c0004ac
-7c0004ac3ba00000
-386000017fa0ff2a
-392000024bfff68d
-7d20ff2a7c0004ac
-7fc0e72a7c0004ac
+480010e938600000
+3fe0c010f821fec1
+63ff00283bc00001
+4bfff6c17bff0020
+7fc0ff2a7c0004ac
+639c00403f80c010
+7c0004ac7b9c0020
+3ba000007fc0e72a
 7fa0ff2a7c0004ac
-3b8100703c62ffff
-3e02ffff38637f48
-600000004bfff349
-fb8100803d22ffff
-39297f583de2ffff
-3e42ffff3dc2ffff
-f92100983ae10063
-3be000003ac10061
-39ef7f683a107ee8
-3a527f2839ce7f70
-3b20000139210064
-3ea0c0103e80c010
-39210068f9210088
-629408187f39f830
-7b33002062b50820
-f92100903bc00000
-3ba000003b000000
-7ab500207a940020
-7fbeeb7848000054
-419e029c2f9d000f
-612900283d20c010
+4bfff69138600001
+7c0004ac39200002
+7c0004ac7d20ff2a
+7c0004ac7fc0e72a
+3c62ffff7fa0ff2a
+38637f483b810070
+4bfff34d3e02ffff
+3d22ffff60000000
+3de2fffffb810080
+3dc2ffff39297f58
+3ae100633e42ffff
+3ac10061f9210098
+3a107ee83be00000
+39ce7f7039ef7f68
+392100643a527f28
+3e80c0103b200001
+f92100883ea0c010
+7f39f83039210068
+62b5082062940818
+3bc000007b330020
+3b000000f9210090
+7a9400203ba00000
+480000547ab50020
+2f9d000f7fbeeb78
+3d20c010419e029c
+7929002061290028
+7e604f2a7c0004ac
+394000013d00c010
+7908002061080048
+7d40472a7c0004ac
+7c0004ac39400000
+3bbd00017d404f2a
+7fbd07b47f78db78
+3900000439410060
+7d5a53783920002a
+38c0000038e00004
+3ca080207ce903a6
+60a500037927f842
+7d2900d0792907e0
+7d29283878a50020
+78e900207d273a78
+38c600017cea31ae
+3908ffff4200ffd4
+79080021394a0004
+3b6000004082ffb8
+7f60a72a7c0004ac
+7f60af2a7c0004ac
+4bfff4b538600009
+4bfff4e93860000f
+7f44d3783c60c010
+7863002060630828
+e88100884bfff5d5
+606308583c60c010
+4bfff5c178630020
+3c60c010e8810090
+7863002060630888
+3c60c0104bfff5ad
+606308b83881006c
+4bfff59978630020
+612908a83d20c010
 7c0004ac79290020
-3d00c0107e604f2a
-6108004839400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-7f78db783bbd0001
-394100607fbd07b4
-3920002a39000004
-38e000047d5a5378
-7ce903a638c00000
-7927f8423ca08020
-792907e060a50003
-78a500207d2900d0
-7d273a787d292838
-7cea31ae78e90020
-4200ffd438c60001
-394a00043908ffff
-4082ffb879080021
-7c0004ac3b600000
-7c0004ac7f60a72a
-386000097f60af2a
-3860000f4bfff4b1
-3c60c0104bfff4e5
-606308287f44d378
-4bfff5d178630020
-3c60c010e8810088
-7863002060630858
-e88100904bfff5bd
-606308883c60c010
-4bfff5a978630020
-3881006c3c60c010
-78630020606308b8
-3d20c0104bfff595
-79290020612908a8
+3d20c0107f604f2a
+79290020612908b0
 7f604f2a7c0004ac
-612908b03d20c010
+392000173d40c010
+794a0020614a0898
+7d20572a7c0004ac
+392000013d40c010
+794a0020614a08a0
+7d20572a7c0004ac
+612908783d20c010
 7c0004ac79290020
-3d40c0107f604f2a
-614a089839200017
-7c0004ac794a0020
-3d40c0107d20572a
-614a08a039200001
-7c0004ac794a0020
-3d20c0107d20572a
-7929002061290878
+3d20c0107f604f2a
+7929002061290880
 7f604f2a7c0004ac
-612908803d20c010
-7c0004ac79290020
-e86100987f604f2a
-7fe4fb787fa5eb78
-3b6000003b400020
-600000004bfff111
-4bfff4197fe3fb78
-3860000f4bfff4ad
-4bfff3e13a200001
-79480fa439400000
-f94100a0e8810080
-4bfff5157c70402a
-88fc0001e94100a0
-7f8838007d1650ae
-7d1750ae409e00a0
-7f88380088fc0003
-394a0004409e0090
-409effc02baa0010
-7de37b787e248b78
-600000004bfff0a1
-7fe3fb783b5affff
-7b5a00214bfff3f1
-7f7b07b47f7b8a14
-7dc373784082ff80
-600000004bfff079
-7c0004ac39200000
-7c0004ac7d20a72a
-3860000b7d20af2a
-3860000f4bfff309
-7fe3fb784bfff33d
-7e4393784bfff4c1
-600000004bfff041
-419cfd707f98d800
-4bfffd6c7f1bc378
-4bffff703a200000
-7fc5f3783c62ffff
-38637f787fe4fb78
-600000004bfff011
-612900283d20c010
-7c0004ac79290020
-3d00c0107f204f2a
-6108004039400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-3d00c0107bde0020
-6108004838de0001
-394000017cc903a6
-38e0000079080020
-7fe3fb7842000034
-4bfff41d3af7ffff
-3b9cffff7e439378
-600000004bffef99
-3ad6ffff2f9f0001
-3be00001419e0028
-7c0004ac4bfffc78
-7c0004ac7e604f2a
-7c0004ac7d40472a
-4bffffb47ce04f2a
-3860000138210140
-0000000048000ccc
-0000128001000000
-384291403c4c0001
-3c62ffff7c0802a6
-48000c8938637f30
-3f60c010f821ff71
-637b10003be00000
-4bffef1d7b7b0020
-7c0004ac60000000
-3f40c0107fe0df2a
-7b5a0020635a1008
-7fe0d72a7c0004ac
-63bd08183fa0c010
+7fa5eb78e8610098
+3b4000207fe4fb78
+4bfff1153b600000
+7fe3fb7860000000
+4bfff4b14bfff41d
+3a2000013860000f
+394000004bfff3e5
+e881008079480fa4
+7c70402af94100a0
+e94100a04bfff519
+7d1650ae88fc0001
+409e00a07f883800
+88fc00037d1750ae
+409e00907f883800
+2baa0010394a0004
+7e248b78409effc0
+4bfff0a57de37b78
+3b5affff60000000
+4bfff3f57fe3fb78
+7f7b8a147b5a0021
+4082ff807f7b07b4
+4bfff07d7dc37378
+3920000060000000
+7d20a72a7c0004ac
+7d20af2a7c0004ac
+4bfff30d3860000b
+4bfff3413860000f
+4bfff4c57fe3fb78
+4bfff0457e439378
+7f98d80060000000
+7f1bc378419cfd70
+3a2000004bfffd6c
+3c62ffff4bffff70
+7fe4fb787fc5f378
+4bfff01538637f78
+3d20c01060000000
+7929002061290028
+7f204f2a7c0004ac
+394000013d00c010
+7908002061080040
+7d40472a7c0004ac
+7c0004ac39400000
+7bde00207d404f2a
+38de00013d00c010
+7cc903a661080048
+7908002039400001
+4200003438e00000
+3af7ffff7fe3fb78
+7e4393784bfff421
+4bffef9d3b9cffff
+2f9f000160000000
+419e00283ad6ffff
+4bfffc783be00001
+7e604f2a7c0004ac
+7d40472a7c0004ac
+7ce04f2a7c0004ac
+382101404bffffb4
+48000cd038600001
+0100000000000000
+3c4c000100001280
+7c0802a638429144
+38637f303c62ffff
+f821ff7148000c8d
+3be000003f60c010
+7b7b0020637b1000
+600000004bffef21
+7fe0df2a7c0004ac
+635a10083f40c010
+7c0004ac7b5a0020
+3fa0c0107fe0d72a
+63bd08184bfff721
 7c0004ac7bbd0020
 3fc0c0107fe0ef2a
 7bde002063de0820
index 5be02b629916b842c9f065584d75cd4a9222fa58..687067ee11a743ecd39b382fc5b14ae30e938c18 100644 (file)
@@ -1,5 +1,5 @@
 //--------------------------------------------------------------------------------
-// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-30 20:25:55
+// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-31 17:48:52
 //--------------------------------------------------------------------------------
 module litedram_core(
        input wire clk,
@@ -540,7 +540,7 @@ reg [3:0] litedramcore_master_p3_wrdata_mask = 4'd0;
 reg litedramcore_master_p3_rddata_en = 1'd0;
 wire [31:0] litedramcore_master_p3_rddata;
 wire litedramcore_master_p3_rddata_valid;
-reg [3:0] litedramcore_storage = 4'd0;
+reg [3:0] litedramcore_storage = 4'd1;
 reg litedramcore_re = 1'd0;
 reg [5:0] litedramcore_phaseinjector0_command_storage = 6'd0;
 reg litedramcore_phaseinjector0_command_re = 1'd0;
@@ -14691,7 +14691,7 @@ always @(posedge sys_clk) begin
                a7ddrphy_bitslip15_value <= 4'd0;
                a7ddrphy_rddata_en_last <= 8'd0;
                a7ddrphy_wrdata_en_last <= 4'd0;
-               litedramcore_storage <= 4'd0;
+               litedramcore_storage <= 4'd1;
                litedramcore_re <= 1'd0;
                litedramcore_phaseinjector0_command_storage <= 6'd0;
                litedramcore_phaseinjector0_command_re <= 1'd0;
index e257d322dddd47475c75898cf4fcb006e78df618..bb13c9dc255834af0e7966ef6cd5e54f3892c867 100644 (file)
@@ -519,11 +519,11 @@ f8c101a838800140
 38c101987c651b78
 7fe3fb78f8e101b0
 f92101c0f90101b8
-48000d65f94101c8
+48000dc1f94101c8
 7c7e1b7860000000
-4800087d7fe3fb78
+480008d97fe3fb78
 3821017060000000
-480013247fc3f378
+480013807fc3f378
 0100000000000000
 4e80002000000280
 0000000000000000
@@ -534,64 +534,64 @@ f92101c0f90101b8
 7c0802a63842965c
 7d800026fbe1fff8
 91810008f8010010
-48000771f821ff91
+480007cdf821ff91
 3c62ffff60000000
-4bffff3538637ca8
+4bffff3538637d00
 548400023880ffff
 7c8026ea7c0004ac
 3fe0c0003c62ffff
-63ff000838637cc8
+63ff000838637d20
 3c62ffff4bffff11
-38637ce87bff0020
+38637d407bff0020
 7c0004ac4bffff01
 73e900017fe0feea
 3c62ffff41820010
-4bfffee538637d00
+4bfffee538637d58
 4d80000073e90002
 3c62ffff41820010
-4bfffecd38637d08
+4bfffecd38637d60
 4e00000073e90004
 3c62ffff41820010
-4bfffeb538637d10
-3bff7fa03fe2ffff
+4bfffeb538637d68
+3bff7ff83fe2ffff
 4bfffea57fe3fb78
 3c80c00041920028
 7884002060840010
 7c8026ea7c0004ac
 7884b2823c62ffff
-4bfffe7d38637d18
+4bfffe7d38637d70
 3c80c000418e004c
 7884002060840018
 7c8026ea7c0004ac
 788465023c62ffff
-4bfffe5538637d38
+4bfffe5538637d90
 608400303c80c000
 7c0004ac78840020
 3c62ffff7c8026ea
-38637d587884b282
+38637db07884b282
 3d20c0004bfffe31
 7929002061290020
 7d204eea7c0004ac
 3c62ffff3c80000f
-38637d7860844240
+38637dd060844240
 4bfffe057c892392
 4bfffdfd7fe3fb78
 3ca2ffff418e0028
 3c62ffff3c82ffff
-38847da838a57d98
-4bfffddd38637db0
-6000000048000481
+38847e0038a57df0
+4bfffddd38637e08
+60000000480004d9
 3c62ffff41920020
-4bfffdc538637de0
+4bfffdc538637e38
 8181000838210070
-480011407d818120
-38637df83c62ffff
+4800119c7d818120
+38637e503c62ffff
 3c80f0004bfffda9
 6084400038a0ffff
 7884002054a50422
-480008153c604000
+480008713c604000
 3c62ffff60000000
-4bfffd7d38637e18
+4bfffd7d38637e70
 e801001038210070
 ebe1fff881810008
 7d8181207c0803a6
@@ -607,64 +607,75 @@ ebe1fff881810008
 3c4c000100000000
 7c0802a63842940c
 614a08003d40c010
-794a002039200001
+794a00203920000e
 f821ffa1f8010010
 7d20572a7c0004ac
-38637f803c62ffff
+3862801860000000
 600000004bfffce1
 e801001038210060
 4e8000207c0803a6
 0100000000000000
 3c4c000100000080
 7c0802a6384293b4
-38637e303c62ffff
-f821ff7148000fc1
-600000004bfffca1
+614a08003d40c010
+794a002039200001
+f821ffa1f8010010
+7d20572a7c0004ac
+38637fd83c62ffff
+600000004bfffc89
+e801001038210060
+4e8000207c0803a6
+0100000000000000
+3c4c000100000080
+7c0802a63842935c
+38637e883c62ffff
+f821ff7148000fc5
+600000004bfffc49
 3d40aaaa39000080
 3d2040007d0903a6
 91490000614aaaaa
 4200fff839290004
-4bfffce93f60aaaa
+4bfffc913f60aaaa
 3fa0aaaa60000000
 637baaaa3f82ffff
 3be000003bc00000
-3b9c7e4063bdaaaa
+3b9c7e9863bdaaaa
 3d3e10007b7b0020
 792917647fc407b4
 7f85e80080a90000
 3bff0001419e001c
 7f83e3787f66db78
-4bfffc257fff07b4
+4bfffbcd7fff07b4
 3bde000160000000
 409effc82bbe0080
 3d40555539000080
 3d2040007d0903a6
 91490000614a5555
 4200fff839290004
-600000004bfffc65
+600000004bfffc0d
 3f82ffff3fa05555
 3bc000003f605555
-3b9c7e6063bd5555
+3b9c7eb863bd5555
 3d3e1000637b5555
 792917647fc407b4
 7f85e80080a90000
 3bff0001419e001c
 7f83e3787f66db78
-4bfffba57fff07b4
+4bfffb4d7fff07b4
 3bde000160000000
 409effc82bbe0080
 419e001c2fbf0000
 38a001003c62ffff
-38637e807fe4fb78
-600000004bfffb79
+38637ed87fe4fb78
+600000004bfffb21
 3fc2ffff3c62ffff
-3bde7ec038637ea8
-600000004bfffb61
+3bde7f1838637f00
+600000004bfffb09
 3d20400039400100
 390000017d4903a6
 3929000439480001
 9149fffc79480020
-4bfffba94200fff0
+4bfffb514200fff0
 3940010060000000
 7d4903a639200000
 3d09100038c00001
@@ -672,35 +683,35 @@ f821ff7148000fc1
 794600207d2407b4
 7f8a284080a80000
 7fc3f378419e0014
-600000004bfffaf9
+600000004bfffaa1
 392900014bffff98
 3c62ffff4200ffcc
-4bfffadd38637ee0
+4bfffa8538637f38
 3920002060000000
 7d2903a639400000
 794800203d2a1000
 394a000139290002
 9109000079291764
-4bfffb214200ffe8
+4bfffac94200ffe8
 3f82ffff60000000
 3bc000003ba00000
-3d3d10003b9c7ef8
+3d3d10003b9c7f50
 792917647fa607b4
 5529043e81290008
 7d2507b47f893000
 3bde0001419e001c
 7f83e3787cc43378
-4bfffa657fde07b4
+4bfffa0d7fde07b4
 3bbd000160000000
 409effc02bbd0020
 419e001c2fbe0000
 38a000203c62ffff
-38637f187fc4f378
-600000004bfffa39
+38637f707fc4f378
+600000004bfff9e1
 386000007ffff214
 409e00b02f9f0000
-38637f403c62ffff
-600000004bfffa19
+38637f983c62ffff
+600000004bfff9c1
 394001007c9602a6
 7d4903a678840020
 3d49100039200000
@@ -709,7 +720,7 @@ f821ff7148000fc1
 7ff602a64200ffec
 3fe0000c7c9f2050
 7fff239663ff8000
-600000004bfffa45
+600000004bfff9ed
 7d3602a67bff0020
 7929002039000100
 3d4040007d0903a6
@@ -718,427 +729,427 @@ f821ff7148000fc1
 3ca0000c7d254850
 3c62ffff60a58000
 7fe4fb787ca54b96
-78a5032038637f50
-600000004bfff981
+78a5032038637fa8
+600000004bfff929
 3821009038600001
-0000000048000cd8
+0000000048000cdc
 0000058001000000
-384290583c4c0001
-3c62ffff7c0802a6
-48000c6138637fa8
+384290003c4c0001
+600000007c0802a6
+48000c6538628000
 3f60c010f821ff71
 637b10003be00000
-4bfff9357b7b0020
+4bfff8dd7b7b0020
 7c0004ac60000000
 3f40c0107fe0df2a
 7b5a0020635a1008
 7fe0d72a7c0004ac
-63bd08183fa0c010
-7c0004ac7bbd0020
-3fc0c0107fe0ef2a
-7bde002063de0820
-7fe0f72a7c0004ac
-3940000c3d20c010
-7929002061290800
+4bfffba93fa0c010
+7bbd002063bd0818
+7fe0ef2a7c0004ac
+63de08203fc0c010
+7c0004ac7bde0020
+3d20c0107fe0f72a
+612908003940000c
+7c0004ac79290020
+7c0004ac7d404f2a
+7c0004ac7fe0ef2a
+3940000e7fe0f72a
 7d404f2a7c0004ac
+7c0004ac39200200
+392000027d20ef2a
+7d20f72a7c0004ac
+4bfffaed3860000f
 7fe0ef2a7c0004ac
-7fe0f72a7c0004ac
-7c0004ac3940000e
-392002007d404f2a
-7d20ef2a7c0004ac
-7c0004ac39200002
+7c0004ac39200003
 3860000f7d20f72a
-7c0004ac4bfffb49
-392000037fe0ef2a
-7d20f72a7c0004ac
-4bfffb2d3860000f
-7c0004ac39200006
-3b8000017d20ef2a
-7f80f72a7c0004ac
-4bfffb0d3860000f
-7c0004ac39200920
-7c0004ac7d20ef2a
-3860000f7fe0f72a
-392004004bfffaf1
+392000064bfffad1
+7d20ef2a7c0004ac
+7c0004ac3b800001
+3860000f7f80f72a
+392009204bfffab1
 7d20ef2a7c0004ac
 7fe0f72a7c0004ac
-4bfffad538600003
-4bfffb694bfffb15
-4082001c2c230000
-7f80df2a7c0004ac
-7f80d72a7c0004ac
-48000b6038210090
-7f80df2a7c0004ac
-4bffffec38600001
-0100000000000000
-3c4c000100000680
-3d20c00038428ed4
-6129200060000000
-f922801079290020
-612900203d20c000
-7c0004ac79290020
-3d40001c7d204eea
-7d295392614a2000
-394a0018e9428010
-7c0004ac3929ffff
-4e8000207d2057ea
-0000000000000000
-3c4c000100000000
-6000000038428e74
-39290010e9228010
+4bfffa953860000f
+7c0004ac39200400
+7c0004ac7d20ef2a
+386000037fe0f72a
+4bfffb114bfffa79
+2c2300004bfffb65
+7c0004ac4082001c
+7c0004ac7f80df2a
+382100907f80d72a
+7c0004ac48000b60
+386000017f80df2a
+000000004bffffec
+0000068001000000
+38428e783c4c0001
+600000003d20c000
+7929002061292000
+3d20c000f9228090
+7929002061290020
 7d204eea7c0004ac
-4082ffe871290008
-e94280105469063e
+614a20003d40001c
+e94280907d295392
+3929ffff394a0018
 7d2057ea7c0004ac
 000000004e800020
 0000000000000000
-38428e303c4c0001
-fbc1fff07c0802a6
-3bc3fffffbe1fff8
-f821ffd1f8010010
-2fbf00008ffe0001
-38210030409e0010
-48000a8c38600000
-409e000c2b9f000a
-4bffff813860000d
-4bffff797fe3fb78
-000000004bffffd0
-0000028001000000
-408200082c240000
-2b8500243881fff0
-38600000f8640000
-3cc000014d9d0020
-60c6260078c683e4
-89490000e9240000
-419d002c2b8a0020
-70e800017cc75436
-2fa5000040820014
-38a0000a409e0054
-392900014800005c
-4bffffccf9240000
-409e00382fa50000
-38a0000a2b8a0030
-89490001409e003c
-409e00302f8a0078
-38a0001089490001
-409e00202f8a0078
-f924000039290002
-2f85001048000014
-2b8a0030409e000c
-38600000419effd8
-38c9ffd048000030
-2b8a000954ca063e
-7cc90734419d0034
-4c9c00207f892800
-7c6519d238e70001
-7c691a14f8e40000
-89270000e8e40000
-409effc82fa90000
-3949ff9f4e800020
+38428e183c4c0001
+e922809060000000
+7c0004ac39290010
+712900087d204eea
+5469063e4082ffe8
+7c0004ace9428090
+4e8000207d2057ea
+0000000000000000
+3c4c000100000000
+7c0802a638428dd4
+fbe1fff8fbc1fff0
+f80100103bc3ffff
+8ffe0001f821ffd1
+409e00102fbf0000
+3860000038210030
+2b9f000a48000a8c
+3860000d409e000c
+7fe3fb784bffff81
+4bffffd04bffff79
+0100000000000000
+2c24000000000280
+3881fff040820008
+f86400002b850024
+4d9d002038600000
+78c683e43cc00001
+e924000060c62600
+2b8a002089490000
+7cc75436419d002c
+4082001470e80001
+409e00542fa50000
+4800005c38a0000a
+f924000039290001
+2fa500004bffffcc
+2b8a0030409e0038
+409e003c38a0000a
+2f8a007889490001
+89490001409e0030
+2f8a007838a00010
+39290002409e0020
+48000014f9240000
+409e000c2f850010
+419effd82b8a0030
+4800003038600000
+54ca063e38c9ffd0
+419d00342b8a0009
+7f8928007cc90734
+38e700014c9c0020
+f8e400007c6519d2
+e8e400007c691a14
+2fa9000089270000
+4e800020409effc8
+554a063e3949ff9f
+419d00102b8a0019
+7d2907343929ffa9
+3949ffbf4bffffbc
 2b8a0019554a063e
-3929ffa9419d0010
-4bffffbc7d290734
-554a063e3949ffbf
-4d9d00202b8a0019
-4bffffe43929ffc9
-0000000000000000
-3920000000000000
-2f8a00007d4348ae
-7d234b78409e000c
-392900014e800020
-000000004bffffe8
-0000000000000000
-3900000078aae8c2
-7d2903a6392a0001
-78a9e8c242000030
-1d29fff8792a1f24
-7c8452147d035214
-392000007ca92a14
-7d4903a639450001
-4e80002042000018
-7d23412a7d24402a
-4bffffc439080008
-7d4849ae7d4448ae
-4bffffdc39290001
-0000000000000000
-3923ff9f00000000
-4d9d00202b890019
-7c6307b43863ffe0
-000000004e800020
+3929ffc94d9d0020
+000000004bffffe4
+0000000000000000
+7d4348ae39200000
+409e000c2f8a0000
+4e8000207d234b78
+4bffffe839290001
+0000000000000000
+78aae8c200000000
+392a000139000000
+420000307d2903a6
+792a1f2478a9e8c2
+7d0352141d29fff8
+7ca92a147c845214
+3945000139200000
+420000187d4903a6
+7d24402a4e800020
+390800087d23412a
+7d4448ae4bffffc4
+392900017d4849ae
+000000004bffffdc
+0000000000000000
+2b8900193923ff9f
+3863ffe04d9d0020
+4e8000207c6307b4
 0000000000000000
-38428be03c4c0001
-3d2037367c0802a6
-612935347d908026
-65293332792907c6
-6129313091810008
-f821ffa1480007d9
-7cde33787c7d1b78
-f92100203be00000
-612964633d206665
-65296261792907c6
-f921002861293938
-2fa900007ca92b78
-2fbf0000409e0080
-3be00001409e0008
-386000007fbf2040
-2e270000419d0058
-7f65f3923b9fffff
-7ca928507d3bf1d2
-886500207ca12a14
-4bffff4141920010
-5463063e60000000
-e93d00002fbb0000
-7c69e1ae7f65db78
-409effc83b9cffff
-38600001e93d0000
-fbfd00007fe9fa14
-8181000838210060
-480007747d908120
-409e00142b9e0010
-3bff00017929e102
-4bffff687fff07b4
-4bfffff07d29f392
-0300000000000000
-3c4c000100000580
-7c0802a638428ad4
-f821ffb1480006e9
-7c7f1b78eb630000
-7cbd2b787c9c2378
-7fa3eb783bc00000
-600000004bfffe0d
-409d00147fa3f040
-7d3b5050e95f0000
-419c00107fa9e040
-3860000138210050
-7d3df0ae480006f0
-992a00003bde0001
-39290001e93f0000
-4bffffb8f93f0000
+3c4c000100000000
+7c0802a638428b84
+7d9080263d203736
+792907c661293534
+9181000865293332
+480007d961293130
+7c7d1b78f821ffa1
+3be000007cde3378
+3d206665f9210020
+792907c661296463
+6129393865296261
+7ca92b78f9210028
+409e00802fa90000
+409e00082fbf0000
+7fbf20403be00001
+419d005838600000
+3b9fffff2e270000
+7d3bf1d27f65f392
+7ca12a147ca92850
+4192001088650020
+600000004bffff41
+2fbb00005463063e
+7f65db78e93d0000
+3b9cffff7c69e1ae
+e93d0000409effc8
+7fe9fa1438600001
+38210060fbfd0000
+7d90812081810008
+2b9e001048000774
+7929e102409e0014
+7fff07b43bff0001
+7d29f3924bffff68
+000000004bfffff0
+0000058003000000
+38428a783c4c0001
+480006e97c0802a6
+eb630000f821ffb1
+7c9c23787c7f1b78
+3bc000007cbd2b78
+4bfffe0d7fa3eb78
+7fa3f04060000000
+e95f0000409d0014
+7fa9e0407d3b5050
+38210050419c0010
+480006f038600001
+3bde00017d3df0ae
+e93f0000992a0000
+f93f000039290001
+000000004bffffb8
+0000058001000000
+384289f83c4c0001
+480006617c0802a6
+7c7d1b78f821ffa1
+7ca32b787c9b2378
+38a0000a38800000
+eb5d00007cde3378
+7d1943787cfc3b78
+4bfffc497d3f4b78
+3940000060000000
+2fbe00007c6307b4
+2faa0000409e006c
+39400001409e0008
+7f8348007d3f5214
+409d00447d2a07b4
+2f8300007c6a1850
+3929000178690020
+3d408000419c0010
+409e00087f835000
+2c29000139200001
+418200143929ffff
+7d5a3850e8fd0000
+419c00307faad840
+3860000038210060
+2b9c001048000604
+7bdee102409e0014
+7d4a07b4394a0001
+7fdee3924bffff7c
+9b2700004bfffff0
+394a0001e95d0000
+4bffffa8f95d0000
 0100000000000000
-3c4c000100000580
-7c0802a638428a54
-f821ffa148000661
-7c9b23787c7d1b78
-388000007ca32b78
-7cde337838a0000a
-7cfc3b78eb5d0000
-7d3f4b787d194378
-600000004bfffc49
-7c6307b439400000
-409e006c2fbe0000
-409e00082faa0000
-7d3f521439400001
-7d2a07b47f834800
-7c6a1850409d0044
-786900202f830000
-419c001039290001
-7f8350003d408000
-39200001409e0008
-3929ffff2c290001
-e8fd000041820014
-7faad8407d5a3850
-38210060419c0030
-4800060438600000
-409e00142b9c0010
-394a00017bdee102
-4bffff7c7d4a07b4
-4bfffff07fdee392
-e95d00009b270000
-f95d0000394a0001
-000000004bffffa8
-0000078001000000
-384289583c4c0001
-480005397c0802a6
-7c741b79f821fed1
-38600000f8610060
-2fa4000041820068
-39210040419e0060
-3ac4ffff3e42ffff
-f92100703b410020
-3ae0000060000000
-3a527fc039228008
-f92100783ba10060
-ebc1006089250000
+3c4c000100000780
+7c0802a6384288fc
+f821fed148000539
+f86100607c741b79
+4182006838600000
+419e00602fa40000
+6000000039210040
+3b4100203ac4ffff
+60000000f9210070
+392280883ae00000
+3ba100603a428040
+89250000f9210078
+2fa90000ebc10060
+7ff4f050419e0010
+419c00207fbfb040
+993e000039200000
+7e941850e8610060
+382101307e8307b4
+2b89002548000508
+409e048839450001
+8925000038e00000
+f8a10068e9010070
+7d2741ae7cea07b4
+8d25000139070001
+2b8900647d0807b4
+2b890069419e0058
+2b890075419e0050
+2b890078419e0048
+2b890058419e0040
+2b890070419e0038
+2b890063419e0030
+2b890073419e0028
+2b890025419e0020
+2b89004f419e0018
+2b89006f419e0010
+409eff8838e70001
+2b890025394a0002
+7d1a42147d4a07b4
+992800207d5a5214
+409e00209aea0020
+f9210060393e0001
+993e000039200025
+38a90002e9210068
+892100414bffff04
+3a2600087fffb050
+3a600030eb660000
+3929ffd23b010042
+4082039c712900fd
+3b2000043aa00000
+3a0000013b800000
+7ddb00d039e0002d
+2b89006c48000108
+88f8000138d80001
+419d0118419e033c
+419e02402b890063
+2b89004f419d0038
+2b890058419e01e8
+3949ffd0419e0188
+2b8a0009554a063e
+395c0001419d00c4
+993c00207f81e214
+480000b0795c0020
+419e03042b890068
+419e000c2b890069
+409effc82b890064
+7d41e2142b890075
+7f6adb789aea0020
+57291838419e0034
+7e0948363929ffff
+418200207f694839
+e921006099e80000
+f921006039290001
+7d52482a7b291f24
+e88100607dca5038
+38e0000a7d465378
+7f45d378f9410080
+7e689b7839200000
+7c9e20507fa3eb78
+4bfffc9d7c84f850
+e9410080e8810060
+38c0000a7ea7ab78
+7d4553787c9e2050
+7fa3eb787c84f850
+3b1800014bfffaed
+e901006089380000
 419e00102fa90000
-7fbfb0407ff4f050
-39200000419c0020
-e8610060993e0000
-7e8307b47e941850
-4800050838210130
-394500012b890025
-38e00000409e0488
-e901007089250000
-7cea07b4f8a10068
-390700017d2741ae
-7d0807b48d250001
-419e00582b890064
-419e00502b890069
-419e00482b890075
-419e00402b890078
-419e00382b890058
-419e00302b890070
-419e00282b890063
-419e00202b890073
-419e00182b890025
-419e00102b89004f
-38e700012b89006f
-394a0002409eff88
-7d4a07b42b890025
-7d5a52147d1a4214
-9aea002099280020
-393e0001409e0020
-39200025f9210060
-e9210068993e0000
-4bffff0438a90002
-7fffb05089210041
-eb6600003a260008
-3b0100423a600030
-712900fd3929ffd2
-3aa000004082039c
-3b8000003b200004
-39e0002d3a000001
-480001087ddb00d0
-38d800012b89006c
-419e033c88f80001
-2b890063419d0118
-419d0038419e0240
-419e01e82b89004f
-419e01882b890058
-554a063e3949ffd0
-419d00c42b8a0009
-7f81e214395c0001
-795c0020993c0020
-2b890068480000b0
-2b890069419e0304
-2b890064419e000c
-2b890075409effc8
-9aea00207d41e214
-419e00347f6adb78
-3929ffff57291838
-7f6948397e094836
-99e8000041820020
-39290001e9210060
-7b291f24f9210060
-7dca50387d52482a
-7d465378e8810060
-f941008038e0000a
-392000007f45d378
-7fa3eb787e689b78
-7c84f8507c9e2050
-e88100604bfffc9d
-7ea7ab78e9410080
-7c9e205038c0000a
-7c84f8507d455378
-4bfffaed7fa3eb78
-893800003b180001
-2fa90000e9010060
-7d5e4050419e0010
-419dfee47fbf5040
-4bfffe907e268b78
-419e016c2b890073
-2b89006f419d006c
-2b890070419e00d4
-7d21e214409efef0
-7f66db7838e00010
-9ae900207c8af850
-3920000239000020
-7fa3eb787f45d378
-e88100604bfffc0d
-7fa3eb78e8a10078
-7c84f8507c9e2050
-e88100604bfffb75
-38c000107ea7ab78
-7c9e20507f65db78
-2b8900784bffff5c
-2b89007a419e0018
-2b890075419e01cc
-3aa000014bfffeb8
+7fbf50407d5e4050
+7e268b78419dfee4
+2b8900734bfffe90
+419d006c419e016c
+419e00d42b89006f
+409efef02b890070
 38e000107d21e214
-7e689b787c8af850
-7b291f249ae90020
-7fa3eb787f45d378
-392000007d72482a
-7d665b787f6b5838
-4bfffb89f9610080
+7c8af8507f66db78
+390000209ae90020
+7f45d37839200002
+4bfffc0d7fa3eb78
+e8a10078e8810060
+7c9e20507fa3eb78
+4bfffb757c84f850
 7ea7ab78e8810060
-7c9e205038c00010
-7d655b78e9610080
-7d21e2144bfffeec
-7c8af85038e00008
+7f65db7838c00010
+4bffff5c7c9e2050
+419e00182b890078
+419e01cc2b89007a
+4bfffeb82b890075
+7d21e2143aa00001
+7c8af85038e00010
 9ae900207e689b78
 7f45d3787b291f24
 7d72482a7fa3eb78
 7f6b583839200000
 f96100807d665b78
-e88100604bfffb35
-38c000087ea7ab78
-4bffffac7c9e2050
-390000207d21e214
-38c0000138e0000a
-7f45d3789ae90020
-7c8af85039200000
-4bfffaf97fa3eb78
-9b690000e9210060
-39290001e9210060
-4bfffe6cf9210060
-38a0000a7d21e214
-f9410088f9010090
-7f43d37838800000
-4bfff73d9ae90020
-f861008060000000
-4bfff8617f63db78
-e921008060000000
-409d00407fa91840
-e94100887c634850
-2fa30000e9010090
-7d4af85039230001
-39200001409e0008
-e8c100602c290001
-418200103929ffff
-7faa38407ce83050
-e8810060419d0020
-7fa3eb787f65db78
-7c84f8507c9e2050
-4bfffdd44bfff9cd
-98e6000038e00020
-38e70001e8e10060
-4bffffb4f8e10060
-3b2000082b87006c
-7cd83378409efdb0
-2b8700684bfffda8
-409efd9c3b200002
-3b2000017cd83378
-3b2000084bfffd90
-3a6000204bfffd88
-4bfffc603b010041
-7d455378993e0000
-39290001e9210060
-4bfffb24f9210060
-0100000000000000
-f9c1ff7000001280
-fa01ff80f9e1ff78
-fa41ff90fa21ff88
-fa81ffa0fa61ff98
-fac1ffb0faa1ffa8
-fb01ffc0fae1ffb8
-fb41ffd0fb21ffc8
-fb81ffe0fb61ffd8
-fbc1fff0fba1ffe8
-f8010010fbe1fff8
-e9c1ff704e800020
-ea01ff80e9e1ff78
-ea41ff90ea21ff88
-ea81ffa0ea61ff98
-eac1ffb0eaa1ffa8
-eb01ffc0eae1ffb8
-eb41ffd0eb21ffc8
-eb81ffe0eb61ffd8
-eba1ffe8e8010010
-ebc1fff07c0803a6
-4e800020ebe1fff8
-e8010010ebc1fff0
-7c0803a6ebe1fff8
-000000004e800020
+e88100604bfffb89
+38c000107ea7ab78
+e96100807c9e2050
+4bfffeec7d655b78
+38e000087d21e214
+7e689b787c8af850
+7b291f249ae90020
+7fa3eb787f45d378
+392000007d72482a
+7d665b787f6b5838
+4bfffb35f9610080
+7ea7ab78e8810060
+7c9e205038c00008
+7d21e2144bffffac
+38e0000a39000020
+9ae9002038c00001
+392000007f45d378
+7fa3eb787c8af850
+e92100604bfffaf9
+e92100609b690000
+f921006039290001
+7d21e2144bfffe6c
+f901009038a0000a
+38800000f9410088
+9ae900207f43d378
+600000004bfff73d
+7f63db78f8610080
+600000004bfff861
+7fa91840e9210080
+7c634850409d0040
+e9010090e9410088
+392300012fa30000
+409e00087d4af850
+2c29000139200001
+3929ffffe8c10060
+7ce8305041820010
+419d00207faa3840
+7f65db78e8810060
+7c9e20507fa3eb78
+4bfff9cd7c84f850
+38e000204bfffdd4
+e8e1006098e60000
+f8e1006038e70001
+2b87006c4bffffb4
+409efdb03b200008
+4bfffda87cd83378
+3b2000022b870068
+7cd83378409efd9c
+4bfffd903b200001
+4bfffd883b200008
+3b0100413a600020
+993e00004bfffc60
+e92100607d455378
+f921006039290001
+000000004bfffb24
+0000128001000000
+f9e1ff78f9c1ff70
+fa21ff88fa01ff80
+fa61ff98fa41ff90
+faa1ffa8fa81ffa0
+fae1ffb8fac1ffb0
+fb21ffc8fb01ffc0
+fb61ffd8fb41ffd0
+fba1ffe8fb81ffe0
+fbe1fff8fbc1fff0
+4e800020f8010010
+e9e1ff78e9c1ff70
+ea21ff88ea01ff80
+ea61ff98ea41ff90
+eaa1ffa8ea81ffa0
+eae1ffb8eac1ffb0
+eb21ffc8eb01ffc0
+eb61ffd8eb41ffd0
+e8010010eb81ffe0
+7c0803a6eba1ffe8
+ebe1fff8ebc1fff0
+ebc1fff04e800020
+ebe1fff8e8010010
+4e8000207c0803a6
 6d6f636c65570a0a
 63694d206f742065
 2120747461776f72
@@ -1238,6 +1249,11 @@ e8010010ebc1fff0
 696c616974696e49
 52445320676e697a
 00000a2e2e2e4d41
+6f6e204d41524453
+207265646e752077
+6572617774666f73
+6c6f72746e6f6320
+000000000000000a
 0000000000000000
 00000000000000ff
 000000000000ffff
index bdb7dff6249615da14a9f2d7e73be597132411c3..e44b5260db034f43e0dd5b88609f57dda55c91cf 100644 (file)
@@ -1,5 +1,5 @@
 //--------------------------------------------------------------------------------
-// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-30 20:25:57
+// Auto-generated by Migen (0d16e03) & LiteX (564d731a) on 2020-05-31 17:48:54
 //--------------------------------------------------------------------------------
 module litedram_core(
        input wire clk,
@@ -886,7 +886,7 @@ reg [3:0] litedramcore_master_p3_wrdata_mask = 4'd0;
 reg litedramcore_master_p3_rddata_en = 1'd0;
 wire [31:0] litedramcore_master_p3_rddata;
 wire litedramcore_master_p3_rddata_valid;
-reg [3:0] litedramcore_storage = 4'd0;
+reg [3:0] litedramcore_storage = 4'd1;
 reg litedramcore_re = 1'd0;
 reg [5:0] litedramcore_phaseinjector0_command_storage = 6'd0;
 reg litedramcore_phaseinjector0_command_re = 1'd0;
@@ -17563,7 +17563,7 @@ always @(posedge sys_clk) begin
                ddrphy_new_banks_read_data7 <= 128'd0;
                ddrphy_new_banks_read8 <= 1'd0;
                ddrphy_new_banks_read_data8 <= 128'd0;
-               litedramcore_storage <= 4'd0;
+               litedramcore_storage <= 4'd1;
                litedramcore_re <= 1'd0;
                litedramcore_phaseinjector0_command_storage <= 6'd0;
                litedramcore_phaseinjector0_command_re <= 1'd0;