<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Need processor timings for DDR3 simulation in Hyperlynx in T-Series</title>
    <link>https://community.nxp.com/t5/T-Series/Need-processor-timings-for-DDR3-simulation-in-Hyperlynx/m-p/997107#M3466</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI!&lt;/P&gt;&lt;P&gt;I am designing a custom board using T1042 processor. During the PCB designing of DDR3, i have to run some simulations on hyperlynx software using DDR batch simulation. i get all the results pass at 400 clock frequency (800MT/S). for other frequencies i got setup time voilation. i think there is some problem in the timing model file loaded for controller into the software.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the data in that text file that contain timing models. can you provide me exact values that T1042 has so that i should be able to simulate it on 1600MT/s. for now i think this model support only simulations at 800MT/s.&lt;/P&gt;&lt;P&gt;mainly i need setup time, hold time, and 3 other parameters that i have highlighted below.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;DDR3:&amp;nbsp;AS4C512M16D3L-12BIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* HyperLynx DDR Controller Timing Model&lt;BR /&gt;****************************************************************************************/&lt;/P&gt;&lt;P&gt;`timescale 1ps / 1ps // do not change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// top-level module definition and interface ports&lt;BR /&gt;// ...the port names are HyperLynx standard names...do not change&lt;BR /&gt;module ddr3_ctl (&lt;BR /&gt; output ck,&lt;BR /&gt; output addr_cmd,&lt;BR /&gt; output ctl,&lt;BR /&gt; output dm,&lt;BR /&gt; inout dq,&lt;BR /&gt; inout dqs&lt;BR /&gt;);&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* HyperLynx DDR Controller Timing Model Parameters&lt;BR /&gt;*&lt;BR /&gt;* A controller timing model should define the following parameters:&lt;BR /&gt;*&lt;BR /&gt;* All cycles:&lt;BR /&gt;* tACCSkew Output delay skew from CK falling to Addr/Cmd/Ctl (+/-)&lt;BR /&gt;*&lt;BR /&gt;* Write cycles:&lt;BR /&gt;* tCKDQS Output delay skew from CK rising to DQS rising (+/-)&lt;BR /&gt;* tDQSDQQ Output delay skew from DQS to DQ (+/-)&lt;BR /&gt;*&lt;BR /&gt;* Read cycles&lt;BR /&gt;* tDS Minimum DQ to DQS setup time, with 1/4 cycle DQS shift&lt;BR /&gt;* tDH Minimum DQS to DQ hold time, with 1/4 cycle DQS shift&lt;BR /&gt;*&lt;BR /&gt;****************************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;// Timing parameters by speed grade&lt;BR /&gt;`ifdef DDR_266&lt;BR /&gt; parameter tACCSkew = 1000;&lt;BR /&gt; parameter tCKDQS = 1000;&lt;BR /&gt; parameter tDQSDQQ = 500;&lt;BR /&gt; parameter tDS = 500;&lt;BR /&gt; parameter tDH = 500;&lt;BR /&gt;`elsif DDR_333&lt;BR /&gt; &lt;STRONG&gt;parameter tACCSkew = 800;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tCKDQS = 800;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDQSDQQ = 400;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDS = 400;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDH = 400;&lt;/STRONG&gt;&lt;BR /&gt;`else `define DDR_400&lt;BR /&gt; parameter tACCSkew = 600;&lt;BR /&gt; parameter tCKDQS = 600;&lt;BR /&gt; parameter tDQSDQQ = 300;&lt;BR /&gt; parameter tDS = 300;&lt;BR /&gt; parameter tDH = 300;&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/****************************************************************************************&lt;BR /&gt;* Default values, in case something slips through undefined...&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt;`ifndef tCK&lt;BR /&gt; `define tCK 2500&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* Derived timing parameters&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt; parameter tACDlyMin = `tCK/2 - tACCSkew; // Delay from CK rising out to Addr/Cmd/Ctl invalid (min)&lt;BR /&gt; parameter tACDlyMax = `tCK/2 + tACCSkew; // Delay from CK rising out to Addr/Cmd/Ctl invalid (max)&lt;/P&gt;&lt;P&gt;parameter tCKCTLMin = -`tCK + tACDlyMin; // CK rising out to earliest valid CTL (CK-1)&lt;BR /&gt; parameter tCKCTLMax = -`tCK + tACDlyMax; // CK rising out to latest valid CTL (CK-1)&lt;/P&gt;&lt;P&gt;`ifdef ADDRCMD2T&lt;BR /&gt; parameter tCKACmin = -(2*`tCK) + tACDlyMin; // CK rising out to earliest valid ADDR/CMD (CK-2)&lt;BR /&gt; parameter tCKACmax = -(2*`tCK) + tACDlyMax; // CK rising out to latest valid ADDR/CMD (CK-2)&lt;BR /&gt;`else `define ADDRCMD1T&lt;BR /&gt; parameter tCKACmin = -`tCK + tACDlyMin; // CK rising out to earliest valid ADDR/CMD (CK-1)&lt;BR /&gt; parameter tCKACmax = -`tCK + tACDlyMax; // CK rising out to latest valid ADDR/CMD (CK-1)&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;parameter tDQBit = `tCK / 2; // Data bit time&lt;BR /&gt; parameter tDQPrelaunch = -tDQBit/2; // Data bit pre-launch shift (Write to DRAM)&lt;BR /&gt; parameter tDQSDQmin = tDQPrelaunch-tDQSDQQ; // DQS out to earliest valid DQ/DM (write to DRAM)&lt;BR /&gt; parameter tDQSDQmax = tDQPrelaunch+tDQSDQQ; // DQS out to latest valid DQ/DM (write to DRAM)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/****************************************************************************************&lt;BR /&gt;* Timing relationships&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt;specify&lt;/P&gt;&lt;P&gt;// ADDR/CMD prelaunch window from next CK (1T or 2T)&lt;BR /&gt; $delay(posedge ck, addr_cmd, tCKACmin, tCKACmax);&lt;BR /&gt; // CTL prelaunch window from next CK (1T always)&lt;BR /&gt; $delay(posedge ck, ctl, tCKCTLmin, tCKCTLmax);&lt;/P&gt;&lt;P&gt;// DRAM Write cycles&lt;BR /&gt; $delay(ck, dqs, -tCKDQS, tCKDQS);&lt;BR /&gt; $delay(dqs, dq, tDQSDQmin, tDQSDQmax);&lt;BR /&gt; $delay(dqs, dm, tDQSDQmin, tDQSDQmax);&lt;/P&gt;&lt;P&gt;// DRAM Read cycles&lt;BR /&gt; $setuphold(dqs, dq, tDS, tDH);&lt;/P&gt;&lt;P&gt;endspecify&lt;/P&gt;&lt;P&gt;endmodule&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Dec 2019 12:13:17 GMT</pubDate>
    <dc:creator>faizmajeed</dc:creator>
    <dc:date>2019-12-18T12:13:17Z</dc:date>
    <item>
      <title>Need processor timings for DDR3 simulation in Hyperlynx</title>
      <link>https://community.nxp.com/t5/T-Series/Need-processor-timings-for-DDR3-simulation-in-Hyperlynx/m-p/997107#M3466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI!&lt;/P&gt;&lt;P&gt;I am designing a custom board using T1042 processor. During the PCB designing of DDR3, i have to run some simulations on hyperlynx software using DDR batch simulation. i get all the results pass at 400 clock frequency (800MT/S). for other frequencies i got setup time voilation. i think there is some problem in the timing model file loaded for controller into the software.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the data in that text file that contain timing models. can you provide me exact values that T1042 has so that i should be able to simulate it on 1600MT/s. for now i think this model support only simulations at 800MT/s.&lt;/P&gt;&lt;P&gt;mainly i need setup time, hold time, and 3 other parameters that i have highlighted below.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;DDR3:&amp;nbsp;AS4C512M16D3L-12BIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* HyperLynx DDR Controller Timing Model&lt;BR /&gt;****************************************************************************************/&lt;/P&gt;&lt;P&gt;`timescale 1ps / 1ps // do not change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// top-level module definition and interface ports&lt;BR /&gt;// ...the port names are HyperLynx standard names...do not change&lt;BR /&gt;module ddr3_ctl (&lt;BR /&gt; output ck,&lt;BR /&gt; output addr_cmd,&lt;BR /&gt; output ctl,&lt;BR /&gt; output dm,&lt;BR /&gt; inout dq,&lt;BR /&gt; inout dqs&lt;BR /&gt;);&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* HyperLynx DDR Controller Timing Model Parameters&lt;BR /&gt;*&lt;BR /&gt;* A controller timing model should define the following parameters:&lt;BR /&gt;*&lt;BR /&gt;* All cycles:&lt;BR /&gt;* tACCSkew Output delay skew from CK falling to Addr/Cmd/Ctl (+/-)&lt;BR /&gt;*&lt;BR /&gt;* Write cycles:&lt;BR /&gt;* tCKDQS Output delay skew from CK rising to DQS rising (+/-)&lt;BR /&gt;* tDQSDQQ Output delay skew from DQS to DQ (+/-)&lt;BR /&gt;*&lt;BR /&gt;* Read cycles&lt;BR /&gt;* tDS Minimum DQ to DQS setup time, with 1/4 cycle DQS shift&lt;BR /&gt;* tDH Minimum DQS to DQ hold time, with 1/4 cycle DQS shift&lt;BR /&gt;*&lt;BR /&gt;****************************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;// Timing parameters by speed grade&lt;BR /&gt;`ifdef DDR_266&lt;BR /&gt; parameter tACCSkew = 1000;&lt;BR /&gt; parameter tCKDQS = 1000;&lt;BR /&gt; parameter tDQSDQQ = 500;&lt;BR /&gt; parameter tDS = 500;&lt;BR /&gt; parameter tDH = 500;&lt;BR /&gt;`elsif DDR_333&lt;BR /&gt; &lt;STRONG&gt;parameter tACCSkew = 800;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tCKDQS = 800;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDQSDQQ = 400;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDS = 400;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; parameter tDH = 400;&lt;/STRONG&gt;&lt;BR /&gt;`else `define DDR_400&lt;BR /&gt; parameter tACCSkew = 600;&lt;BR /&gt; parameter tCKDQS = 600;&lt;BR /&gt; parameter tDQSDQQ = 300;&lt;BR /&gt; parameter tDS = 300;&lt;BR /&gt; parameter tDH = 300;&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/****************************************************************************************&lt;BR /&gt;* Default values, in case something slips through undefined...&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt;`ifndef tCK&lt;BR /&gt; `define tCK 2500&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/****************************************************************************************&lt;BR /&gt;* Derived timing parameters&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt; parameter tACDlyMin = `tCK/2 - tACCSkew; // Delay from CK rising out to Addr/Cmd/Ctl invalid (min)&lt;BR /&gt; parameter tACDlyMax = `tCK/2 + tACCSkew; // Delay from CK rising out to Addr/Cmd/Ctl invalid (max)&lt;/P&gt;&lt;P&gt;parameter tCKCTLMin = -`tCK + tACDlyMin; // CK rising out to earliest valid CTL (CK-1)&lt;BR /&gt; parameter tCKCTLMax = -`tCK + tACDlyMax; // CK rising out to latest valid CTL (CK-1)&lt;/P&gt;&lt;P&gt;`ifdef ADDRCMD2T&lt;BR /&gt; parameter tCKACmin = -(2*`tCK) + tACDlyMin; // CK rising out to earliest valid ADDR/CMD (CK-2)&lt;BR /&gt; parameter tCKACmax = -(2*`tCK) + tACDlyMax; // CK rising out to latest valid ADDR/CMD (CK-2)&lt;BR /&gt;`else `define ADDRCMD1T&lt;BR /&gt; parameter tCKACmin = -`tCK + tACDlyMin; // CK rising out to earliest valid ADDR/CMD (CK-1)&lt;BR /&gt; parameter tCKACmax = -`tCK + tACDlyMax; // CK rising out to latest valid ADDR/CMD (CK-1)&lt;BR /&gt;`endif&lt;/P&gt;&lt;P&gt;parameter tDQBit = `tCK / 2; // Data bit time&lt;BR /&gt; parameter tDQPrelaunch = -tDQBit/2; // Data bit pre-launch shift (Write to DRAM)&lt;BR /&gt; parameter tDQSDQmin = tDQPrelaunch-tDQSDQQ; // DQS out to earliest valid DQ/DM (write to DRAM)&lt;BR /&gt; parameter tDQSDQmax = tDQPrelaunch+tDQSDQQ; // DQS out to latest valid DQ/DM (write to DRAM)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/****************************************************************************************&lt;BR /&gt;* Timing relationships&lt;BR /&gt;****************************************************************************************/&lt;BR /&gt;specify&lt;/P&gt;&lt;P&gt;// ADDR/CMD prelaunch window from next CK (1T or 2T)&lt;BR /&gt; $delay(posedge ck, addr_cmd, tCKACmin, tCKACmax);&lt;BR /&gt; // CTL prelaunch window from next CK (1T always)&lt;BR /&gt; $delay(posedge ck, ctl, tCKCTLmin, tCKCTLmax);&lt;/P&gt;&lt;P&gt;// DRAM Write cycles&lt;BR /&gt; $delay(ck, dqs, -tCKDQS, tCKDQS);&lt;BR /&gt; $delay(dqs, dq, tDQSDQmin, tDQSDQmax);&lt;BR /&gt; $delay(dqs, dm, tDQSDQmin, tDQSDQmax);&lt;/P&gt;&lt;P&gt;// DRAM Read cycles&lt;BR /&gt; $setuphold(dqs, dq, tDS, tDH);&lt;/P&gt;&lt;P&gt;endspecify&lt;/P&gt;&lt;P&gt;endmodule&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Dec 2019 12:13:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Need-processor-timings-for-DDR3-simulation-in-Hyperlynx/m-p/997107#M3466</guid>
      <dc:creator>faizmajeed</dc:creator>
      <dc:date>2019-12-18T12:13:17Z</dc:date>
    </item>
    <item>
      <title>Re: Need processor timings for DDR3 simulation in Hyperlynx</title>
      <link>https://community.nxp.com/t5/T-Series/Need-processor-timings-for-DDR3-simulation-in-Hyperlynx/m-p/997108#M3467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For 1600MT/s the T1042's required parameters are as following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tACCSkew = +130ps to -130ps; that is +(T/2 - tDDKHAX) to -(T/2 - tDDKHAS).&lt;/P&gt;&lt;P&gt;tCKDQS =&amp;nbsp; +/- 245ps; that is tDDKHMH.&lt;/P&gt;&lt;P&gt;tDQSDQQ = +/-200ps; that is +/- tDDKXDEYE/2.&lt;/P&gt;&lt;P&gt;tDS = 112ps; that is - tCISKEW(min).&lt;/P&gt;&lt;P&gt;tDH = 112ps; that is&amp;nbsp; tCISKEW(max).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bulat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Dec 2019 14:20:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Need-processor-timings-for-DDR3-simulation-in-Hyperlynx/m-p/997108#M3467</guid>
      <dc:creator>Bulat</dc:creator>
      <dc:date>2019-12-18T14:20:31Z</dc:date>
    </item>
  </channel>
</rss>

