summaryrefslogtreecommitdiff
path: root/src/mem
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2013-05-30 12:53:56 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2013-05-30 12:53:56 -0400
commitbf6291460d101a3051d7688b317800be6440208b (patch)
treef620f74280bb759349d5d43a0d14d8feb2baf118 /src/mem
parentce1ad84abd4ecefdb66b3d0b04b11310089e1578 (diff)
downloadgem5-bf6291460d101a3051d7688b317800be6440208b.tar.xz
mem: Add a LPDDR3-1600 configuration
This patch adds a typical (leaning towards fast) LPDDR3 configuration based on publically available data. As expected, it looks very similar to the LPDDR2-S4 configuration, only with a slightly lower burst time.
Diffstat (limited to 'src/mem')
-rw-r--r--src/mem/SimpleDRAM.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mem/SimpleDRAM.py b/src/mem/SimpleDRAM.py
index 4ca37a64d..9101de101 100644
--- a/src/mem/SimpleDRAM.py
+++ b/src/mem/SimpleDRAM.py
@@ -277,3 +277,41 @@ class SimpleWideIO(SimpleDRAM):
# Two instead of four activation window
tXAW = '50ns'
activation_limit = 2
+
+# High-level model of a single LPDDR3 x32 interface (one
+# command/address bus), with default timings based on a LPDDR3-1600 4
+# Gbit part
+class SimpleLPDDR3(SimpleDRAM):
+ # 4 Gb and 8 Gb devices use a 1 kByte page size, so ssuming 64 byte
+ # cache lines, that is 16 lines
+ lines_per_rowbuffer = 16
+
+ # Use a single rank
+ ranks_per_channel = 1
+
+ # LPDDR3 has 8 banks in all configurations
+ banks_per_rank = 8
+
+ # Fixed at 15 ns
+ tRCD = '15ns'
+
+ # 12 CK read latency, 6 CK write latency @ 800 MHz, 1.25 ns cycle time
+ tCL = '15ns'
+
+ # Pre-charge one bank 15 ns and all banks 18 ns
+ tRP = '18ns'
+
+ # Assuming 64 byte cache lines, across a x32 DDR interface
+ # translates to two bursts of BL8, 8 clocks @ 800 MHz
+ tBURST = '10ns'
+
+ # LPDDR3, 4 Gb
+ tRFC = '130ns'
+ tREFI = '3.9us'
+
+ # Irrespective of speed grade, tWTR is 7.5 ns
+ tWTR = '7.5ns'
+
+ # Irrespective of size, tFAW is 50 ns
+ tXAW = '50ns'
+ activation_limit = 4