148 lines
3.9 KiB
C++
148 lines
3.9 KiB
C++
/*
|
|
* Copyright (c) 2022, RPTU Kaiserslautern-Landau
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* 3. Neither the name of the copyright holder nor the names of its
|
|
* contributors may be used to endorse or promote products derived from
|
|
* this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
|
|
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* Authors:
|
|
* Iron Prando da Silva
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "../dramtimedependenciesbase.h"
|
|
#include "businessObjects/dramTimeDependencies/dbEntries/specialized/DDR5dbphaseentry.h"
|
|
|
|
class TimeDependenciesInfoDDR5 final : public DRAMTimeDependenciesBase {
|
|
public:
|
|
TimeDependenciesInfoDDR5(const QJsonObject& memspec, const uint clk);
|
|
|
|
static const std::vector<QString> getPossiblePhases();
|
|
|
|
void rankIDToRankIDs(size_t rankID, size_t& dimmRID, size_t& physRID, size_t& logRID) const;
|
|
void bankIDToBankInGroup(size_t logicalRankID, size_t bankID, size_t& bankInGroup) const;
|
|
|
|
protected:
|
|
void mInitializeValues() override;
|
|
DependencyMap mSpecializedGetDependencies() const override;
|
|
|
|
protected:
|
|
uint mNumOfRanks;
|
|
uint mNumOfDIMMRanks;
|
|
uint mNumLogicalRanksPerPhysicalRank;
|
|
uint mNumPhysicalRanksPerDIMMRank;
|
|
uint mNumBanksPerGroup;
|
|
|
|
uint burstLength;
|
|
uint dataRate;
|
|
uint refMode;
|
|
|
|
uint tRCD;
|
|
uint tPPD;
|
|
uint tRP;
|
|
uint tRAS;
|
|
uint tRC;
|
|
uint tRL;
|
|
uint RBL;
|
|
uint tRTP;
|
|
uint tRPRE;
|
|
uint tRPST;
|
|
uint tRDDQS;
|
|
uint tWL;
|
|
uint WBL;
|
|
uint tWPRE;
|
|
uint tWPST;
|
|
uint tWR;
|
|
uint tCCD_L_slr;
|
|
uint tCCD_L_WR_slr;
|
|
uint tCCD_L_WR2_slr;
|
|
uint tCCD_S_slr;
|
|
uint tCCD_S_WR_slr;
|
|
uint tCCD_dlr;
|
|
uint tCCD_WR_dlr;
|
|
uint tCCD_WR_dpr;
|
|
uint tRRD_S_slr;
|
|
uint tRRD_L_slr;
|
|
uint tRRD_dlr;
|
|
uint tFAW_slr;
|
|
uint tFAW_dlr;
|
|
uint tWTR_L;
|
|
uint tWTR_S;
|
|
uint tRFC_slr;
|
|
uint tRFC_dlr;
|
|
uint tRFC_dpr;
|
|
uint tRFCsb_slr;
|
|
uint tRFCsb_dlr;
|
|
uint tREFI;
|
|
uint tREFSBRD_slr;
|
|
uint tREFSBRD_dlr;
|
|
uint tRTRS;
|
|
uint UNKNOWN;
|
|
uint tCPDED;
|
|
uint tPD;
|
|
uint tXP;
|
|
uint tACTPDEN;
|
|
uint tPRPDEN;
|
|
uint tREFPDEN;
|
|
|
|
uint tRD_BURST;
|
|
uint tWR_BURST;
|
|
uint tWTRA;
|
|
uint tWRRDA;
|
|
uint tWRPRE;
|
|
uint tRDAACT;
|
|
uint tWRAACT;
|
|
uint tCCD_L_RTW_slr;
|
|
uint tCCD_S_RTW_slr;
|
|
uint tCCD_RTW_dlr;
|
|
uint tRDRD_dpr;
|
|
uint tRDRD_ddr;
|
|
uint tRDWR_dpr;
|
|
uint tRDWR_ddr;
|
|
uint tCCD_L_WTR_slr;
|
|
uint tCCD_S_WTR_slr;
|
|
uint tCCD_WTR_dlr;
|
|
uint tWRWR_dpr;
|
|
uint tWRWR_ddr;
|
|
uint tWRRD_dpr;
|
|
uint tWRRD_ddr;
|
|
uint tRDPDEN;
|
|
uint tWRPDEN;
|
|
uint tWRAPDEN;
|
|
|
|
uint cmdMode;
|
|
uint bitWidth;
|
|
uint cmdLengthDiff;
|
|
uint shortCmdOffset;
|
|
uint longCmdOffset;
|
|
|
|
uint tBURST16;
|
|
uint tBURST32;
|
|
|
|
};
|