GDDR6 Palladium Memory Model Guide
GDDR6 Palladium Memory Model Guide
GDDR6
Palladium Memory Model
User Guide
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. contained in this
document are attributed to Cadence with the appropriate symbol. For queries regarding
Cadence’s trademarks, contact the corporate legal department at the address shown above or
call 800.862.4522. All other trademarks are the property of their respective holders.
Restricted Permission: This publication is protected by copyright law and international treaties
and contains trade secrets and proprietary information owned by Cadence. Unauthorized
reproduction or distribution of this publication, or any portion of it, may result in civil and criminal
penalties. Except as specified in this permission statement, this publication may not be copied,
reproduced, modified, published, uploaded, posted, transmitted, or distributed in any way,
without prior written permission from Cadence. Unless otherwise agreed to by Cadence in
writing, this statement grants Cadence customers permission to print one (1) hard copy of this
publication subject to the following conditions:
1. The publication may be used only in accordance with a written agreement between
Cadence and its customer.
2. The publication may not be modified in any way.
3. Any authorized copy of the publication or portion thereof must include all original
copyright, trademark, and other proprietary notices and this permission statement.
4. The information contained in this document cannot be used in the development of
like products or software, whether for internal or external use, and shall not be used
for the benefit of any other party, whether or not for consideration.
Disclaimer: Information in this publication is subject to change without notice and does not
represent a commitment on the part of Cadence. Except as may be explicitly set forth in such
agreement, Cadence does not make, and expressly disclaims, any representations or
warranties as to the completeness, accuracy or usefulness of the information contained in this
document. Cadence does not warrant that use of such information will not infringe any third
party rights, nor does Cadence assume any liability for damages or costs of any kind that may
result from use of such information.
Contents
General Information
The Cadence Memory Model Portfolio provides memory device models for the Cadence Palladium
XP, Palladium XP II and Palladium Z1 series systems. Optimizing the acceleration and/or emulation
flow on these platforms for MMP memory models may require information outside the scope of
the MMP user guides and related MMP documentation.
Related Publications
For basic information regarding emulation and acceleration, please refer to the following
documents:
Different sizes from 8Gb up to 16Gb are available, 24Gb up to 32Gb are TBD, please
consult the memory model catalog for the current available list.
The different levels give an overall indication of the amount of testing, level of quality and
feature availability in the model. For details on supported features check the User Guide
for that particular model family.
There are three release levels for models in the MMP release.
Access to Initial and Emerging Release versions of the models will require a Beta
Agreement to be signed before the model can be delivered.
3. Configurations
The following table lists the possible configurations. Not all configurations are available
from all vendors. Please consult the appropriate vendor site for details on the parts they
offer.
Memory
8Gb 12Gb 16Gb 24Gb(TBD) 32Gb(TBD)
Density
Device x16 x8 x16 x8 x16 x8 x16 x8 x16 x8
Organization mode mode mode mode mode mode mode mode mode mode
Number
2 2 2 2 2
channels
Channel
4Gb 6Gb 8Gb 12Gb 16Gb
density
Array pre-
fetch (bits, 256 128 256 128 256 128 256 128 256 128
per channel)
Bank address
BA[3:0] BA[3:0] BA[3:0] TBD TBD
(per channel)
Number
Banks (per 16 16 16 TBD TBD
channel)
Row address
R[13:0] R[13:0] R[13:0] R[14:0] R[13:0] R[14:0] TBD TBD TBD TBD
(per channel)
Number of
Rows (per 16384 16384 12288 24576 16384 32768 TBD TBD TBD TBD
channel)
Column
Address (per C[5:0] C[6:0] C[6:0] C[6:0] C[6:0] C[6:0] TBD TBD TBD TBD
channel)
Page Size
2K 2K 4K 2K 4K 2K TBD TBD TBD TBD
(per channel)
GDDR6
CK DQ
WCK DBI_n
CKE_n
CA EDC
CABI_n
TDI TDO
TMS
TCK
RESET_n
jedec_gddr6_16gb_16 rtl_module (
.CK_t(ck),
.CK_c(ck_n),
.WCK0_t_A(wck0_t_a),
.WCK0_c_A(wck0_c_a),
.WCK1_t_A(wck1_t_a),
.WCK1_c_A(wck1_c_a),
.CKE_n_A(cke_n_a),
.CA_A(ca_a),
.DQ_A(dq_a),
.DBI_A(dbi_a),
.EDC_A(edc_a),
.CABI_n_A(cabi_n_a),
.WCK0_t_B(wck0_t_b),
.WCK0_c_B(wck0_c_b),
.WCK1_t_B(wck1_t_b),
.WCK1_c_B(wck1_c_b),
.CKE_n_B(cke_n_b),
.CA_B(ca_b),
.DQ_B(dq_b),
.DBI_B(dbi_b),
.EDC_B(edc_b),
.CABI_n_B(cabi_n_b),
.TDI(tdi),
.TDO(tdo),
.TMS(tms),
.TCK(tck),
.RESET_n(rst_n)
);
6. Features
The following features table shows which features are currently supported or not supported.
7. Address Mapping
The array of the GDDR6 model is mapped into the internal memory of the Palladium
system. This array is a single two dimensional array. The mapping of bank, row, column,
and prefetch addresses to the internal model array is as follows:
This information is required if the memory needs to be preloaded with user data.
The user should instantiate the wrapper, not the core module.
The following table provides some information about exposed parameters and
localparams that are NOT user adjustable. There are exposed parameters in the core
module that are adjustable for the wrapper but not for the user. The user should
instantiate the wrapper, not the core module. On rare occasion the user may find one of
these parameters or localparam needs adjusting for their configuration. If this case arises,
please contact Cadence emulation or MMP support.
Note that there are additional exposed localparams in the model HDL that are not
described here nor intended to be described here. These additional localparams are
exposed for debugging purposes only and will not be described herein.
All the mode registers for this model can be accepted and set. If the Debug Display feature is
enabled messaging will indicate when a MRS command is accepted. However, a number of
mode register fields remain unsupported in the sense of not being functionally implemented.
These unsupported fields are indicated as such below.
10.1.MR0
0101 - 10
0110 – 11
0111 – 12
1000 – 13
1001 – 14
1010 – 15
1011 – 16
1100 – 17
1101 – 18
1110 – 19
1111 - 20
000 – 8
001 – RFU
010 – RFU
011 – RFU
Write Latency (WLmrs) OP[2:0]
100 – RFU
101 – 5
110 – 6
111 - 7
10.2.MR1
00 – Disabled
01 – 60 ohm
Data Termination OP[3:2]
10 – 120 ohm
11 – 48 ohm
00 – Auto Calibration On (60/40)
01 – Auto Calibration On (48/40)
Driver Strength OP[1:0]
10 – vendor specific
11 – vendor specific
10.3.MR2
110 - -2
111 - -1
10.4.MR3
10.5.MR4
10.6.MR5
001101 – 13
001110 – 14
001111 – 15
…
111111 - 63
000 – vendor specific
001 – optional
010 – optional
011 – optional
PLL/DLL Bandwidth OP[5:3]
100 – optional
101 – optional
110 – optional
111 - optional
0 – Off
Low Power Mode 3 OP[2]
1 - On
0 – Off
Low Power Mode 2 OP[1]
1 - On
0 – Off
Low Power Mode 1 OP[0]
1 – On
10.7.MR6
10.8.MR7
11 – 3 / optional
0 – 0.7 * VDDQ
Half VREFD OP[7]
1 – 0.5 * VDDQ
0 – 0.7 * VDDQ
Half VREFC OP[6]
1 – 0.5 * VDDQ
0 – Off
DQ Preamble OP[5]
1 – On / optional
0 – Off
WCK2CK Auto Sync OP[4]
1 – On / optional
0 – Off
Low Frequency Mode OP[3]
1 – On / optional
0 – Off
PLL Delay Compensation OP[2]
1 – On / optional
0 – Off
PLL Fast Lock OP[1]
1 – On / optional
0 – PD inside DRAM
WCK2CK Alignment Point OP[0]
1 – PD at balls
10.9.MR8
10.10. MR9
10.11. MR10
0000 – 0 / default
0001 – +1
0010 - +2
0011 - +3
0100 - +4
0101 - +5
0110 - +6
0111 - +7
VREFC Levels OP[3:0]
1000 – 0
1001 - -7
1010 - -6
1011 - -5
1100 - -4
1101 - -3
1110 - -2
1111 - -1
10.12. MR11
10.13. MR12
10.14. MR13
10.15. MR14
10.16. MR15
1. Assert RESET_n
2. Drive CA6_A and CA6_B both HIGH for 2 channel mode or LOW for PC (pseudo-channel)
mode
3. De-assert RESET_n
4. Start clocks
5. Wait for CKE_n to assert
6. At least one NOP is issued after CKE_n goes low
7. Set at least one Mode Register value using MRS command
The model requires that these steps are performed in the correct sequence in order to complete
initialization. The model will not respond to any others commands unless this sequence is
completed.
The script below shows two examples for Palladium classic ICE synthesis:
1)
hdlInputFile jedec_gddr6_16gb_16.vp
hdlInputFile gddr6_pd.vp
hdlImport -full -2001 -l qtref
hdlOutputFile -add -f verilog jedec_gddr6_16gb_16.vg
hdlSynthesize -memory -keepVhdlCase -keepRtlSymbol -keepAllFlipFlop
jedec_gddr6_16gb_16
……
2)
vavlog jedec_gddr6_16gb_16.vp gddr6_pd.vp
It is also common for Palladium flows to require –keepRtlSymbol. This option enables the
HDL Compiler to keep original VHDL RTL symbols, such as “.”, whenever possible. In
other words, it maps VHDL RTL signal name a.b to the netlist entry, \a.b. Without this
modifier, the signal name would otherwise be converted to a_b in the netlist.
If the recommended compile script includes the aforementioned options, the user must
include them to avoid affecting functionality of the design.
13. Runtime
If the user wishes to preload the memory array, the path to model instance can be found in
dbFiles/*mpart.
Example paths:
26 16 2 tb_top.rtl_module.CH_A.memcore
26 16 2 tb_top.rtl_module.CH_B.memcore
Preloading example:
14. Limitations
Due to the lack of PLL/DLL the GDDR6 memory model only supports DDR WCK clocking.
QDR WCK clocking is not supported. WCK0 and WCK1 inputs are expected to be in
phase and 4x CK frequency. Other unsupported features are listed in Features Table.
15. Debugging
The GDDR6 model has several debugging options techniques and tips that may assist the
user in isolating a problem.
• For issues that are may not be GDDR6 specific please review the Memory Model
Portfolio FAQ for All Models User Guide.
• Golden waveform: A package with a reference waveform is available which shows the
following command sequence:
1. initialization sequence
a. set up EDC and DBI_n signals before Reset_n goes high for x8 and mirrored
modes, read vendor id and perform wck2ck training
2. LDFF - load fifo
3. RDTR - read training
4. WRTR – write training
5. RDTR – read training
6. CAT – command address training
7. precharge bank5
8. precharge all
9. refresh all
Key signals:
init_done – a low to high transition on init_done indicates the model went through
initialization sequence and it is ready for normal operations.
//sdram states
localparam MRS_cmd = 0;
localparam REF_cmd = 1;
localparam REFA_cmd = 2;
localparam PRE_cmd = 3;
localparam PREA_cmd = 4;
localparam ACT_cmd = 5;
localparam NOP_cmd = 6;
localparam RD_cmd = 7;
localparam RDA_cmd = 8;
localparam WR_cmd = 9;
localparam WRA_cmd = 10;
localparam PDE_cmd = 11;
localparam PDX_cmd = 12;
localparam SRE_cmd = 13;
localparam SRX_cmd = 14;
localparam WDM_cmd = 15;
localparam WDMA_cmd = 16;
localparam WSM_cmd = 17;
localparam WSMA_cmd = 18;
localparam LDFF_cmd = 19;
localparam RDTR_cmd = 20;
localparam WRTR_cmd = 21;
localparam CAT_cmd = 22;
• Debug Display: The Palladium GDDR6 memory model has available a built-in debug
methodology called MMP Debug Display that is based on the Verilog system task
$display. Please see the Palladium Memory Model Debug Display User Guide in the
release docs directory for additional information.
This MMP model supports manual configuration by accompanying the model mode
register or configuration register declarations with synthesis directives, such as keep_net
directives, that instruct the compiler to ensure that the relevant nets remain available for
runtime forcing. For a general description of this support please see the user guide in the
MMP release with path and filename docs/MMP_FAQ_for_All_Models.pdf.
The following table lists the internal register path and naming along with the specification
or datasheet naming for model mode registers or configuration registers that are
accompanied by keep_net synthesis directives in support of such manual configuration.
ONLY writeable configuration registers or fields are supported thusly. Please read the
relevant datasheet for details about individual register behavior and mapping to fields.
For writes to a DDR memory, industry datasheets show each DQS edge centered within
the corresponding valid period (v0, v1, v2, etc.) of DQ, as in the following diagram.
V0 V1 V2 V3
DQ
DQS
For DDR models provided by Cadence for Palladium, if the design drives DQ and DQS
signals with the above timing, the DDR memory will behave correctly. However, to obtain
this timing in Palladium, the fastest design clock must toggle twice as frequently as the
DQS signal. If this faster clock is not needed for any other reason, the presence of the
faster clock will usually cause an unnecessary 2X slowdown in emulation speed. To
eliminate the need for a faster clock, you can have the design generate each DQS edge at
the end of the corresponding DQ valid period (rather than the middle), as in the following
diagram:
V0 V1 V2 V3
DQ
DQS
Note that the first DQS edge is at the *end* of first valid DQ, not at the beginning.
For reads from the DDR model, the DDR model will drive DQ and DQS with the first DQS
edge at the *beginning* of the first valid data, not at the end:
V0 V1 V2 V3
DQ
DQS
The DDR model behaves this way to conform with industry datasheets for DDR memories.
The design reading the data from the DDR model must delay the DQS signal, and use the
delayed-DQS signal to sample the DQ. A delay of one Q_FDP0B should work fine, even in
CAKE 1X mode. If you are using CAKE 1X mode and the DDR clock is the fastest design
clock, the DQ signal will change twice per FCLK, and the Q_FDP0B delaying DQS will
provide one-half FCLK delay, so that each delayed-DQS edge is at the end of the
corresponding data valid period.
To delay the DQS signal, a commonly used approach is to create a special pad cell for
DQS, that has a Q_FDP0B delay cell inserted on the path that leads from the DDR
memory into the design.
17. Clocking
The GDDR6 memory model only supports DDR WCK clocking. QDR WCK clocking is not
supported. WCK0 and WCK1 are expected to be in phase and 4x CK frequency.