/* * Copyright (c) 2022, Technische Universität Kaiserslautern * 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" class TimeDependenciesInfoDDR4 final : public DRAMTimeDependenciesBase { public: TimeDependenciesInfoDDR4(const QJsonObject& memspec, const uint clk); static const std::vector getPossiblePhases(); protected: void mInitializeValues() override; DependencyMap mSpecializedGetDependencies() const override; protected: uint burstLength; uint dataRate; uint tRCD; uint tRP; uint tRAS; uint tRC; uint tCL; uint tCWL; uint tAL; uint tRL; uint tRPRE; uint tWPRE; uint tWL; uint tCCD_S; uint tCCD_L; uint tRRD_S; uint tRRD_L; uint tFAW; uint tWTR_S; uint tWTR_L; uint tRTP; uint tWR; uint tRFC; uint tXS; uint tXSDLL; uint tXP; uint tCKE; uint tCKESR; uint tPD; uint tACTPDEN; uint tPRPDEN; uint tREFPDEN; uint tRTRS; uint tBURST; uint tRDWR; uint tRDWR_R; uint tWRRD_S; uint tWRRD_L; uint tWRRD_R; uint tRDAACT; uint tWRPRE; uint tWRAACT; uint tRDPDEN; uint tWRPDEN; uint tWRAPDEN; };