110428Sandreas.hansson@arm.com/*
210428Sandreas.hansson@arm.com * Copyright (c) 2012-2014, TU Delft
310428Sandreas.hansson@arm.com * Copyright (c) 2012-2014, TU Eindhoven
410428Sandreas.hansson@arm.com * Copyright (c) 2012-2014, TU Kaiserslautern
510428Sandreas.hansson@arm.com * All rights reserved.
610428Sandreas.hansson@arm.com *
710428Sandreas.hansson@arm.com * Redistribution and use in source and binary forms, with or without
810428Sandreas.hansson@arm.com * modification, are permitted provided that the following conditions are
910428Sandreas.hansson@arm.com * met:
1010428Sandreas.hansson@arm.com *
1110428Sandreas.hansson@arm.com * 1. Redistributions of source code must retain the above copyright
1210428Sandreas.hansson@arm.com * notice, this list of conditions and the following disclaimer.
1310428Sandreas.hansson@arm.com *
1410428Sandreas.hansson@arm.com * 2. Redistributions in binary form must reproduce the above copyright
1510428Sandreas.hansson@arm.com * notice, this list of conditions and the following disclaimer in the
1610428Sandreas.hansson@arm.com * documentation and/or other materials provided with the distribution.
1710428Sandreas.hansson@arm.com *
1810428Sandreas.hansson@arm.com * 3. Neither the name of the copyright holder nor the names of its
1910428Sandreas.hansson@arm.com * contributors may be used to endorse or promote products derived from
2010428Sandreas.hansson@arm.com * this software without specific prior written permission.
2110428Sandreas.hansson@arm.com *
2210428Sandreas.hansson@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2310428Sandreas.hansson@arm.com * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2410428Sandreas.hansson@arm.com * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2510428Sandreas.hansson@arm.com * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2610428Sandreas.hansson@arm.com * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2710428Sandreas.hansson@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
2810428Sandreas.hansson@arm.com * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2910428Sandreas.hansson@arm.com * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
3010428Sandreas.hansson@arm.com * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
3110428Sandreas.hansson@arm.com * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3210428Sandreas.hansson@arm.com * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3310428Sandreas.hansson@arm.com *
3410428Sandreas.hansson@arm.com * Authors: Karthik Chandrasekar
3510428Sandreas.hansson@arm.com *
3610428Sandreas.hansson@arm.com */
3710428Sandreas.hansson@arm.com
3810428Sandreas.hansson@arm.com#include "MemTimingSpec.h"
3910428Sandreas.hansson@arm.com
4010428Sandreas.hansson@arm.comusing namespace Data;
4110428Sandreas.hansson@arm.com
4210428Sandreas.hansson@arm.comMemTimingSpec::MemTimingSpec() :
4310428Sandreas.hansson@arm.com  clkMhz(0.0),
4410428Sandreas.hansson@arm.com  RC(0),
4510428Sandreas.hansson@arm.com  RCD(0),
4610428Sandreas.hansson@arm.com  CCD(0),
4710428Sandreas.hansson@arm.com  CCD_S(0),
4810428Sandreas.hansson@arm.com  CCD_L(0),
4910428Sandreas.hansson@arm.com  RRD(0),
5010428Sandreas.hansson@arm.com  RRD_S(0),
5110428Sandreas.hansson@arm.com  RRD_L(0),
5210428Sandreas.hansson@arm.com  FAW(0),
5310428Sandreas.hansson@arm.com  TAW(0),
5410428Sandreas.hansson@arm.com  WTR(0),
5510428Sandreas.hansson@arm.com  WTR_S(0),
5610428Sandreas.hansson@arm.com  WTR_L(0),
5710428Sandreas.hansson@arm.com  REFI(0),
5810428Sandreas.hansson@arm.com  RL(0),
5910428Sandreas.hansson@arm.com  RP(0),
6010428Sandreas.hansson@arm.com  RFC(0),
6112266Sradhika.jagtap@arm.com  REFB(0),
6210428Sandreas.hansson@arm.com  RAS(0),
6310428Sandreas.hansson@arm.com  WL(0),
6410428Sandreas.hansson@arm.com  AL(0),
6510428Sandreas.hansson@arm.com  DQSCK(0),
6610428Sandreas.hansson@arm.com  RTP(0),
6710428Sandreas.hansson@arm.com  WR(0),
6810428Sandreas.hansson@arm.com  XP(0),
6910428Sandreas.hansson@arm.com  XPDLL(0),
7010428Sandreas.hansson@arm.com  XS(0),
7110428Sandreas.hansson@arm.com  XSDLL(0),
7210428Sandreas.hansson@arm.com  CKE(0),
7310428Sandreas.hansson@arm.com  CKESR(0),
7410428Sandreas.hansson@arm.com  clkPeriod(0.0)
7510428Sandreas.hansson@arm.com{
7610428Sandreas.hansson@arm.com}
7710428Sandreas.hansson@arm.com
7810428Sandreas.hansson@arm.comvoid MemTimingSpec::processParameters()
7910428Sandreas.hansson@arm.com{
8010428Sandreas.hansson@arm.com  clkMhz    = getParamValWithDefault("clkMhz", 0.0);
8110428Sandreas.hansson@arm.com  RC        = getParamValWithDefault("RC", 0);
8210428Sandreas.hansson@arm.com  RCD       = getParamValWithDefault("RCD", 0);
8310428Sandreas.hansson@arm.com  CCD       = getParamValWithDefault("CCD", 0);
8410428Sandreas.hansson@arm.com  RRD       = getParamValWithDefault("RRD", 0);
8510428Sandreas.hansson@arm.com  WTR       = getParamValWithDefault("WTR", 0);
8610428Sandreas.hansson@arm.com  CCD_S     = getParamValWithDefault("CCD_S", 0);
8710428Sandreas.hansson@arm.com  CCD_L     = getParamValWithDefault("CCD_L", 0);
8810428Sandreas.hansson@arm.com  RRD_S     = getParamValWithDefault("RRD_S", 0);
8910428Sandreas.hansson@arm.com  RRD_L     = getParamValWithDefault("RRD_L", 0);
9010428Sandreas.hansson@arm.com  WTR_S     = getParamValWithDefault("WTR_S", 0);
9110428Sandreas.hansson@arm.com  WTR_L     = getParamValWithDefault("WTR_L", 0);
9210428Sandreas.hansson@arm.com  TAW       = getParamValWithDefault("TAW", 0);
9310428Sandreas.hansson@arm.com  FAW       = getParamValWithDefault("FAW", 0);
9410428Sandreas.hansson@arm.com  REFI      = getParamValWithDefault("REFI", 0);
9510428Sandreas.hansson@arm.com  RL        = getParamValWithDefault("RL", 0);
9610428Sandreas.hansson@arm.com  RP        = getParamValWithDefault("RP", 0);
9710428Sandreas.hansson@arm.com  RFC       = getParamValWithDefault("RFC", 0);
9812266Sradhika.jagtap@arm.com  REFB      = getParamValWithDefault("REFB", 0);
9910428Sandreas.hansson@arm.com  RAS       = getParamValWithDefault("RAS", 0);
10010428Sandreas.hansson@arm.com  WL        = getParamValWithDefault("WL", 0);
10110428Sandreas.hansson@arm.com  AL        = getParamValWithDefault("AL", 0);
10210428Sandreas.hansson@arm.com  DQSCK     = getParamValWithDefault("DQSCK", 0);
10310428Sandreas.hansson@arm.com  RTP       = getParamValWithDefault("RTP", 0);
10410428Sandreas.hansson@arm.com  WR        = getParamValWithDefault("WR", 0);
10510428Sandreas.hansson@arm.com  XP        = getParamValWithDefault("XP", 0);
10610428Sandreas.hansson@arm.com  XPDLL     = getParamValWithDefault("XPDLL", 0);
10710428Sandreas.hansson@arm.com  XS        = getParamValWithDefault("XS", 0);
10810428Sandreas.hansson@arm.com  XSDLL     = getParamValWithDefault("XSDLL", 0);
10910428Sandreas.hansson@arm.com  CKE       = getParamValWithDefault("CKE", 0);
11010428Sandreas.hansson@arm.com  CKESR     = getParamValWithDefault("CKESR", 0);
11110428Sandreas.hansson@arm.com  clkPeriod = 1000.0 / clkMhz;
11210428Sandreas.hansson@arm.com} // MemTimingSpec::processParameters
113