DRAMCtrl.py (10210:793e5ff26e0b) | DRAMCtrl.py (10212:acc1131e01d6) |
---|---|
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 --- 121 unchanged lines hidden (view full) --- 130 tRP = Param.Latency("Row precharge time") 131 132 # minimum time between an activate and a precharge to the same row 133 tRAS = Param.Latency("ACT to PRE delay") 134 135 # minimum time between a write data transfer and a precharge 136 tWR = Param.Latency("Write recovery time") 137 | 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 --- 121 unchanged lines hidden (view full) --- 130 tRP = Param.Latency("Row precharge time") 131 132 # minimum time between an activate and a precharge to the same row 133 tRAS = Param.Latency("ACT to PRE delay") 134 135 # minimum time between a write data transfer and a precharge 136 tWR = Param.Latency("Write recovery time") 137 |
138 # minimum time between a read and precharge command 139 tRTP = Param.Latency("Read to precharge") 140 |
|
138 # time to complete a burst transfer, typically the burst length 139 # divided by two due to the DDR bus, but by making it a parameter 140 # it is easier to also evaluate SDR memories like WideIO. 141 # This parameter has to account for burst length. 142 # Read/Write requests with data size larger than one full burst are broken 143 # down into multiple requests in the controller 144 tBURST = Param.Latency("Burst duration (for DDR burst length / 2 cycles)") 145 --- 47 unchanged lines hidden (view full) --- 193 banks_per_rank = 8 194 195 # DDR3-1600 11-11-11-28 196 tRCD = '13.75ns' 197 tCL = '13.75ns' 198 tRP = '13.75ns' 199 tRAS = '35ns' 200 tWR = '15ns' | 141 # time to complete a burst transfer, typically the burst length 142 # divided by two due to the DDR bus, but by making it a parameter 143 # it is easier to also evaluate SDR memories like WideIO. 144 # This parameter has to account for burst length. 145 # Read/Write requests with data size larger than one full burst are broken 146 # down into multiple requests in the controller 147 tBURST = Param.Latency("Burst duration (for DDR burst length / 2 cycles)") 148 --- 47 unchanged lines hidden (view full) --- 196 banks_per_rank = 8 197 198 # DDR3-1600 11-11-11-28 199 tRCD = '13.75ns' 200 tCL = '13.75ns' 201 tRP = '13.75ns' 202 tRAS = '35ns' 203 tWR = '15ns' |
204 tRTP = '7.5ns' |
|
201 202 # 8 beats across an x64 interface translates to 4 clocks @ 800 MHz. 203 # Note this is a BL8 DDR device. 204 tBURST = '5ns' 205 206 # DDR3, 4 Gbit has a tRFC of 240 CK and tCK = 1.25 ns 207 tRFC = '300ns' 208 --- 43 unchanged lines hidden (view full) --- 252 # DDR3 has 8 banks in all configurations 253 banks_per_rank = 8 254 255 tRCD = '15ns' 256 tCL = '15ns' 257 tRP = '15ns' 258 tRAS = '36ns' 259 tWR = '15ns' | 205 206 # 8 beats across an x64 interface translates to 4 clocks @ 800 MHz. 207 # Note this is a BL8 DDR device. 208 tBURST = '5ns' 209 210 # DDR3, 4 Gbit has a tRFC of 240 CK and tCK = 1.25 ns 211 tRFC = '300ns' 212 --- 43 unchanged lines hidden (view full) --- 256 # DDR3 has 8 banks in all configurations 257 banks_per_rank = 8 258 259 tRCD = '15ns' 260 tCL = '15ns' 261 tRP = '15ns' 262 tRAS = '36ns' 263 tWR = '15ns' |
264 tRTP = '7.5ns' |
|
260 261 # 8 beats across an x64 interface translates to 4 clocks @ 666.66 MHz. 262 # Note this is a BL8 DDR device. 263 tBURST = '6ns' 264 265 tRFC = '160ns' 266 267 # DDR3, <=85C, half for >85C --- 41 unchanged lines hidden (view full) --- 309 tCL = '15ns' 310 311 # Pre-charge one bank 15 ns (all banks 18 ns) 312 tRP = '15ns' 313 314 tRAS = '42ns' 315 tWR = '15ns' 316 | 265 266 # 8 beats across an x64 interface translates to 4 clocks @ 666.66 MHz. 267 # Note this is a BL8 DDR device. 268 tBURST = '6ns' 269 270 tRFC = '160ns' 271 272 # DDR3, <=85C, half for >85C --- 41 unchanged lines hidden (view full) --- 314 tCL = '15ns' 315 316 # Pre-charge one bank 15 ns (all banks 18 ns) 317 tRP = '15ns' 318 319 tRAS = '42ns' 320 tWR = '15ns' 321 |
322 # 6 CK read to precharge delay 323 tRTP = '11.256ns' 324 |
|
317 # 8 beats across an x32 DDR interface translates to 4 clocks @ 533 MHz. 318 # Note this is a BL8 DDR device. 319 # Requests larger than 32 bytes are broken down into multiple requests 320 # in the controller 321 tBURST = '7.5ns' 322 323 # LPDDR2-S4, 4 Gbit 324 tRFC = '130ns' --- 35 unchanged lines hidden (view full) --- 360 banks_per_rank = 4 361 362 # WIO-200 363 tRCD = '18ns' 364 tCL = '18ns' 365 tRP = '18ns' 366 tRAS = '42ns' 367 tWR = '15ns' | 325 # 8 beats across an x32 DDR interface translates to 4 clocks @ 533 MHz. 326 # Note this is a BL8 DDR device. 327 # Requests larger than 32 bytes are broken down into multiple requests 328 # in the controller 329 tBURST = '7.5ns' 330 331 # LPDDR2-S4, 4 Gbit 332 tRFC = '130ns' --- 35 unchanged lines hidden (view full) --- 368 banks_per_rank = 4 369 370 # WIO-200 371 tRCD = '18ns' 372 tCL = '18ns' 373 tRP = '18ns' 374 tRAS = '42ns' 375 tWR = '15ns' |
376 # Read to precharge is same as the burst 377 tRTP = '20ns' |
|
368 369 # 4 beats across an x128 SDR interface translates to 4 clocks @ 200 MHz. 370 # Note this is a BL4 SDR device. 371 tBURST = '20ns' 372 373 # WIO 8 Gb 374 tRFC = '210ns' 375 --- 39 unchanged lines hidden (view full) --- 415 tRCD = '15ns' 416 417 # 12 CK read latency, 6 CK write latency @ 800 MHz, 1.25 ns cycle time 418 tCL = '15ns' 419 420 tRAS = '42ns' 421 tWR = '15ns' 422 | 378 379 # 4 beats across an x128 SDR interface translates to 4 clocks @ 200 MHz. 380 # Note this is a BL4 SDR device. 381 tBURST = '20ns' 382 383 # WIO 8 Gb 384 tRFC = '210ns' 385 --- 39 unchanged lines hidden (view full) --- 425 tRCD = '15ns' 426 427 # 12 CK read latency, 6 CK write latency @ 800 MHz, 1.25 ns cycle time 428 tCL = '15ns' 429 430 tRAS = '42ns' 431 tWR = '15ns' 432 |
433 # Greater of 4 CK or 7.5 ns, 4 CK @ 800 MHz = 5 ns 434 tRTP = '7.5ns' 435 |
|
423 # Pre-charge one bank 15 ns (all banks 18 ns) 424 tRP = '15ns' 425 426 # 8 beats across a x32 DDR interface translates to 4 clocks @ 800 MHz. 427 # Note this is a BL8 DDR device. 428 # Requests larger than 32 bytes are broken down into multiple requests 429 # in the controller 430 tBURST = '5ns' --- 17 unchanged lines hidden --- | 436 # Pre-charge one bank 15 ns (all banks 18 ns) 437 tRP = '15ns' 438 439 # 8 beats across a x32 DDR interface translates to 4 clocks @ 800 MHz. 440 # Note this is a BL8 DDR device. 441 # Requests larger than 32 bytes are broken down into multiple requests 442 # in the controller 443 tBURST = '5ns' --- 17 unchanged lines hidden --- |