1# Copyright (c) 2012-2014 ARM Limited 2# All rights reserved. 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license --- 161 unchanged lines hidden (view full) --- 170 tXAW = Param.Latency("X activation window") 171 activation_limit = Param.Unsigned("Max number of activates in window") 172 173 # Currently rolled into other params 174 ###################################################################### 175 176 # tRC - assumed to be tRAS + tRP 177 |
178# A single DDR3-1600 x64 channel (one command and address bus), with 179# timings based on a DDR3-1600 4 Gbit datasheet (Micron MT41J512M8) in 180# an 8x8 configuration, amounting to 4 Gbyte of memory. |
181class DDR3_1600_x64(DRAMCtrl): 182 # 8x8 configuration, 8 devices each with an 8-bit interface 183 device_bus_width = 8 184 185 # DDR3 is a BL8 device 186 burst_length = 8 187 |
188 # Each device has a page (row buffer) size of 1 Kbyte (1K columns x8) |
189 device_rowbuffer_size = '1kB' 190 191 # 8x8 configuration, so 8 devices 192 devices_per_rank = 8 193 194 # Use two ranks 195 ranks_per_channel = 2 196 197 # DDR3 has 8 banks in all configurations 198 banks_per_rank = 8 199 200 # 800 MHz 201 tCK = '1.25ns' 202 |
203 # 8 beats across an x64 interface translates to 4 clocks @ 800 MHz 204 tBURST = '5ns' 205 206 # DDR3-1600 11-11-11 |
207 tRCD = '13.75ns' 208 tCL = '13.75ns' 209 tRP = '13.75ns' 210 tRAS = '35ns' |
211 tRRD = '6ns' 212 tXAW = '30ns' 213 activation_limit = 4 214 tRFC = '260ns' 215 |
216 tWR = '15ns' |
217 |
218 # Greater of 4 CK or 7.5 ns 219 tWTR = '7.5ns' |
220 |
221 # Greater of 4 CK or 7.5 ns 222 tRTP = '7.5ns' |
223 |
224 # Default read-to-write bus around to 2 CK, @800 MHz = 2.5 ns 225 tRTW = '2.5ns' 226 227 # <=85C, half for >85C |
228 tREFI = '7.8us' 229 |
230# A single DDR3-2133 x64 channel refining a selected subset of the 231# options for the DDR-1600 configuration, based on the same DDR3-1600 232# 4 Gbit datasheet (Micron MT41J512M8). Most parameters are kept 233# consistent across the two configurations. 234class DDR3_2133_x64(DDR3_1600_x64): 235 # 1066 MHz 236 tCK = '0.938ns' |
237 |
238 # 8 beats across an x64 interface translates to 4 clocks @ 1066 MHz 239 tBURST = '3.752ns' |
240 |
241 # DDR3-2133 14-14-14 242 tRCD = '13.09ns' 243 tCL = '13.09ns' 244 tRP = '13.09ns' 245 tRAS = '33ns' 246 tRRD = '5ns' 247 tXAW = '25ns' |
248 |
249# A single DDR4-2400 x64 channel (one command and address bus), with 250# timings based on a DDR4-2400 4 Gbit datasheet (Samsung K4A4G085WD) 251# in an 8x8 configuration, amounting to 4 Gbyte of memory. 252class DDR4_2400_x64(DRAMCtrl): 253 # 8x8 configuration, 8 devices each with an 8-bit interface 254 device_bus_width = 8 255 256 # DDR4 is a BL8 device 257 burst_length = 8 258 259 # Each device has a page (row buffer) size of 1 Kbyte (1K columns x8) 260 device_rowbuffer_size = '1kB' 261 262 # 8x8 configuration, so 8 devices 263 devices_per_rank = 8 264 265 # Use a single rank 266 ranks_per_channel = 1 267 268 # DDR4 has 16 banks (4 bank groups) in all 269 # configurations. Currently we do not capture the additional 270 # constraints incurred by the bank groups 271 banks_per_rank = 16 272 273 # 1200 MHz 274 tCK = '0.833ns' 275 276 # 8 beats across an x64 interface translates to 4 clocks @ 1200 MHz 277 tBURST = '3.333ns' 278 279 # DDR4-2400 17-17-17 280 tRCD = '14.16ns' 281 tCL = '14.16ns' 282 tRP = '14.16ns' 283 tRAS = '32ns' 284 285 # Here using the average of RRD_S and RRD_L 286 tRRD = '4.1ns' 287 tXAW = '21ns' |
288 activation_limit = 4 |
289 tRFC = '260ns' |
290 |
291 tWR = '15ns' |
292 |
293 # Here using the average of WTR_S and WTR_L 294 tWTR = '5ns' 295 296 # Greater of 4 CK or 7.5 ns 297 tRTP = '7.5ns' 298 299 # Default read-to-write bus around to 2 CK, @1200 MHz = 1.666 ns 300 tRTW = '1.666ns' 301 302 # <=85C, half for >85C 303 tREFI = '7.8us' 304 |
305# A single DDR3 x64 interface (one command and address bus), with 306# default timings based on DDR3-1333 4 Gbit parts in an 8x8 307# configuration, which would amount to 4 GByte of memory. This 308# configuration is primarily for comparing with DRAMSim2, and all the 309# parameters except ranks_per_channel are based on the DRAMSim2 config 310# file DDR3_micron_32M_8B_x8_sg15.ini. Note that ranks_per_channel has 311# to be manually set, depending on size of the memory to be 312# simulated. By default DRAMSim2 has 2048MB of memory with a single --- 235 unchanged lines hidden --- |