diff --git a/libraries/technology/ip_arria10/ddr4_4g_1600/doc/DDR4_Parameters_v1.pdf b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/DDR4_Parameters_v1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..338e1ac3c400ab699e6a4804cfa80ea9c85af5c7
Binary files /dev/null and b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/DDR4_Parameters_v1.pdf differ
diff --git a/libraries/technology/ip_arria10/ddr4_4g_1600/doc/README_ddr4.txt b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/README_ddr4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4a32ab051e4d8f7a034b8ff8bdd4177ee8060e41
--- /dev/null
+++ b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/README_ddr4.txt
@@ -0,0 +1,180 @@
+Tue Jul 21 18:00:02 CEST 2015
+
+Instructions of how to set the fields in the IP catalog for ddr4.qsys
+
+(see the datasheets in the subdir datasheet/micron/* )
+
+All settings are based on the Micron DDR4 module: MTA18ASF1G72HZ-2G1A1ZJ
+This is a 8GB SODIMM dual rank 
+-2G1 stands for: PC4-2133 with CAS latency CL=15
+
+pagesize is 1KB (page 2)
+
+The IC's on the module: MT40A512M8 (4Gb)
+The IC marking is (photo): D9RGQ but should be -093E 
+
+
+Quartus IP catalog "Arria10 External Memory Interface" fill in:
+(the page numbers are of the MT40A512M8 datasheet)
+
+
+1. Preset selection from library: DDR4-2133P CL15 1CS 4Gb (512Mb x 8)
+   This means a single rank DDR4
+   The ES of Arria10 does not support dual rank (see Errata document)
+   After setting the ddr4.qsys IP the CS1, CKE1 and ODT1 lines to the module should be manually disabled,
+   then the module acts as a single rank
+
+2. Tab "General"
+   For the Memory clock frequency select 800.0 MHz or 700 MHz instead of 1066.667 MHz because the ES of Arria does not 
+   support higher Memory frequencies.
+   Set the PLL reference clock frequency to 200 MHz
+   PLL reference clock jitter=10.0 ps
+
+
+3. Tab "I/O"
+   Address/Command:
+     I/O standard=SSTL-12
+     Output mode: 40 ohm without calibration
+     Slew rate=fast
+
+   Memory clock:
+     I/O standard=SSTL-12
+     Output mode: 40 ohm without calibration
+     Slew rate=fast
+
+   Data bus
+     I/O standard=1.2V POD
+     Output mode: 34 ohm with calibration
+     Input mode: 60 ohm with calibration
+     Starting Vrefin=60.0
+
+   RZQ=240 ohm
+
+4. Tab "Memory Topology"
+   Memory format=SODIMM
+   DQ width=72
+
+   unselect: Data mask
+   unselect: Enable ALERT
+
+   In the section "Mode Register Settings"
+   CAS latency: See page 312 table 138 (column 15-15-15)
+   for 700MHz set it to 12 (mode register 0)
+   Memory write CAS latency also to 9 (mode register 2)
+
+   Output drive strength setting=RZQ/7 (mode register 1)
+   ODT Rtt nominal value=RZQ/5 (mode register 1)
+
+   Dynamic ODT (Rtt_WR)= OFF (mode register 2)
+
+   ODT Activation Settings to Default
+
+
+5. Tab "Memory Timing"
+   Speed bin=-2133 
+
+   (timings are recalculated for 800MHz Memory clock)
+
+   tIS (base) = 80 ps          (table 143, page 321)
+   tIS (base) AC level = 100mV (table 80, page 254)
+   tIH (base) = 105 ps         (table 143, page 321)
+   tIH (base) DC level = 75mV  (table 800, page 254)
+   tdIVW_dj = 0.1 UI   (table 82, page 257) Max=0.2UI but 0.1UI is default
+   VdiVW_total = 136mV (table 82, page 257)
+ * tDQSQ = 114ps (page 319) (0.16*UId. UI=tCK/2.  tCK=1/700e6)
+ * tQH = 0.38    (page 319) (0.76*UId)/tCK 
+   tDQSCK = 170  (page 320) (within -180 and 180)
+   tDQSS = 0.27  (page 320)
+   tQSH = 0.38   (page 320)
+   tDSH = 0.18   (page 320)
+   tDSS = 0.18   (page 320)
+ * tWLS = 185.7  (page 328) 0.13*CK (CK=1/700e6)
+ * tWLH = 185.7  (page 328) 0.13*CK (CK=1/700e6)
+   tINIT = 500us (page 29)
+   tMRD = 8      (page 323)
+   tRAS = 33     (page 312)
+   tRCD = 14.06  (page 312)
+   tRP  = 14.06  (page 312)
+   tWR  = 15     (page 322)
+
+ * tRRD_S = 3     (page 176,321) should be 3.7ns. Using 3*CK=3.75ns (CK=1/700e6)
+ * tRRD_L = 4     (page 176,321) should be 5.3ns. Using 4*CK=5ns
+ * tFAW   = 21 ns (page 322)
+   tCCD_S = 4     (page 176,321)
+ * tCCD_L = 4     (page 176,321) should be 5.355ns. Using 4*CK=5ns
+ * tWTR_S = 2     (page 177,321) should be 2.5ns. Using 2*CK=2.5ns
+ * tWTR_L = 6     (page 177,321) should be 7.5ns. Using 6*CK=7.5ns
+
+   tRFC = 260 ns  (see page 325) 
+   tREFI = 7.8 us (see page 325)
+
+   (* marked lines have to be recalculated when using different Memory clock frequency)
+
+6. Tab "Board Timing"
+   Slew Rates (numbers from simulation):
+     CK              2.43
+     A4              1.16
+     DQS0 FPGA->DIMM 3.7
+     DQ0  FPGA->DIMM 2.16
+     DQS0 DIMM->FPGA 3.7
+     DQ0  DIMM->FPGA 2.2
+
+   Crosstalk: use default values
+
+   Board/Package skews
+     2x radiobuttons "Package deskewed..."        = OFF
+     Maximum board skew within DQS group          = 0.03 ns
+     Maximum board skew within addr/command group = 0.146 ns
+   
+     Avg delay difference between DQS and CK      = -0.21 ns
+     Max delay difference between DIMMs           = 0.0 ns
+     Max skew between DQS groups                  = 0.133 ns
+     Avg delay difference between addr/cmd and CK = 0.013 ns
+
+     Max CK delay to DIMM  = 0.252 ns
+     Max DQS delay to DIMM = 0.323 ns
+
+10. compile steps
+
+  click save ddr4.qsys
+  click "generate HDL"
+  click "generate Example Design"
+  close IP catalog GUI
+
+  run:
+  cd emif_0_example_design
+  . ${RADIOHDL}/tools/quartus/set_quartus unb2 && quartus_sh -t make_qii_design.tcl
+
+  add to qii/ed_synth.qsf:
+  source ../../unb2_pins_ed_synth.tcl
+
+  edit qii/synth/ed_synth.v:
+  add to module ed_synth the wires:
+
+    output  wire [8:0]  emif_0_example_design_mem_mem_dbi_n,
+    output wire cs1_export,
+    output wire cke1_export,
+    output wire odt1_export,
+    input  wire testio1
+
+  add below local wires:
+
+    assign cs1_export = testio1;
+    assign cke1_export = ~testio1;
+    assign odt1_export = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[0] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[1] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[2] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[3] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[4] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[5] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[6] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[7] = ~testio1;
+    assign emif_0_example_design_mem_mem_dbi_n[8] = ~testio1;
+
+  (assuming testio1 is pulled up to VCC)
+
+
+
+
+
diff --git a/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/4Gb_DDR4_SDRAM.pdf b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/4Gb_DDR4_SDRAM.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ad2accf5c0bfabda07c4e89347d0643a16413471
Binary files /dev/null and b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/4Gb_DDR4_SDRAM.pdf differ
diff --git a/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/asf18c1gx72hz.pdf b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/asf18c1gx72hz.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..cd77f9a1741f6857d98c3d658ba0585b066ac857
Binary files /dev/null and b/libraries/technology/ip_arria10/ddr4_4g_1600/doc/datasheet/micron/asf18c1gx72hz.pdf differ