diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-05-09 18:58:48 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-05-09 18:58:48 -0400 |
commit | b8631d9ae8a1f9c478ad81c7cc23304b4a7ca919 (patch) | |
tree | 802f928c1e7a04b7ad9288d037ee455b595a7aef /src/mem/DRAMCtrl.py | |
parent | c735ef6cb08f109a614383e12f9f55148bcf0257 (diff) | |
download | gem5-b8631d9ae8a1f9c478ad81c7cc23304b4a7ca919.tar.xz |
mem: Add tWR to DRAM activate and precharge constraints
This patch adds the write recovery time to the DRAM timing
constraints, and changes the current tRASDoneAt to a more generic
preAllowedAt, capturing when a precharge is allowed to take place.
The part of the DRAM access code that accounts for the precharge and
activate constraints is updated accordingly.
Diffstat (limited to 'src/mem/DRAMCtrl.py')
-rw-r--r-- | src/mem/DRAMCtrl.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/DRAMCtrl.py b/src/mem/DRAMCtrl.py index 895b9624d..62d237cfb 100644 --- a/src/mem/DRAMCtrl.py +++ b/src/mem/DRAMCtrl.py @@ -132,6 +132,9 @@ class DRAMCtrl(AbstractMemory): # minimum time between an activate and a precharge to the same row tRAS = Param.Latency("ACT to PRE delay") + # minimum time between a write data transfer and a precharge + tWR = Param.Latency("Write recovery time") + # time to complete a burst transfer, typically the burst length # divided by two due to the DDR bus, but by making it a parameter # it is easier to also evaluate SDR memories like WideIO. @@ -194,6 +197,7 @@ class DDR3_1600_x64(DRAMCtrl): tCL = '13.75ns' tRP = '13.75ns' tRAS = '35ns' + tWR = '15ns' # 8 beats across an x64 interface translates to 4 clocks @ 800 MHz. # Note this is a BL8 DDR device. @@ -252,6 +256,7 @@ class DDR3_1333_x64_DRAMSim2(DRAMCtrl): tCL = '15ns' tRP = '15ns' tRAS = '36ns' + tWR = '15ns' # 8 beats across an x64 interface translates to 4 clocks @ 666.66 MHz. # Note this is a BL8 DDR device. @@ -307,6 +312,7 @@ class LPDDR2_S4_1066_x32(DRAMCtrl): tRP = '15ns' tRAS = '42ns' + tWR = '15ns' # 8 beats across an x32 DDR interface translates to 4 clocks @ 533 MHz. # Note this is a BL8 DDR device. @@ -358,6 +364,7 @@ class WideIO_200_x128(DRAMCtrl): tCL = '18ns' tRP = '18ns' tRAS = '42ns' + tWR = '15ns' # 4 beats across an x128 SDR interface translates to 4 clocks @ 200 MHz. # Note this is a BL4 SDR device. @@ -411,6 +418,7 @@ class LPDDR3_1600_x32(DRAMCtrl): tCL = '15ns' tRAS = '42ns' + tWR = '15ns' # Pre-charge one bank 15 ns (all banks 18 ns) tRP = '15ns' |