⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_vec_512mddr2_x8.h

📁 ddr 2 接口读写测试模块 ddr 2 接口读写测试模块
💻 H
📖 第 1 页 / 共 3 页
字号:
        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }      fprintf(fpw, "1 0 0 0 0 1 %d %d ", udqm1, ldqm1);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }    }    printf("%s Command Is Completed!\n", rdchar);  }  else if (strcmp(rdchar,"SREX") == 0)  {    fprintf(fpw, "###################################   %s   ####################################\n", rdchar);    for (i=0;i<cycle;i++)    {      fprintf(fpw, "0 1 1 - - - %d %d ", udqm, ldqm);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }      fprintf(fpw, "1 1 1 - - - %d %d ", udqm1, ldqm1);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }    }    printf("%s Command Is Completed!\n", rdchar);  }  else if (strcmp(rdchar,"PDEN") == 0)  {    fprintf(fpw, "###################################   %s   ####################################\n", rdchar);    for (i=0;i<cycle;i++)    {      fprintf(fpw, "0 0 1 - - - %d %d ", udqm, ldqm);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }      fprintf(fpw, "1 0 1 - - - %d %d ", udqm1, ldqm1);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }    }    printf("%s Command Is Completed!\n", rdchar);  }  else if (strcmp(rdchar,"PDEX") == 0)  {    fprintf(fpw, "###################################   %s   ####################################\n", rdchar);    for (i=0;i<cycle;i++)    {      fprintf(fpw, "0 1 1 - - - %d %d ", udqm, ldqm);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }      fprintf(fpw, "1 1 1 - - - %d %d ", udqm1, ldqm1);      if (udqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", udqs);      if (ldqs == 10000)       fprintf(fpw, "Z ");      else       fprintf(fpw, "%d ", ldqs);      fprintf(fpw, "%d %d ", b[1], b[0]);      if (addr == 10000)        fprintf(fpw, "- - - - - - - - - - - - - - ");      else        fprintf(fpw, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d ", a[13], a[12], a[11], a[10], a[9], a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[0]);      if (data == 10000)        fprintf(fpw, "Z Z Z Z Z Z Z Z\n");      else      {        for(m=0;m<8;m++)          fprintf(fpw, "%d ", dq[7-m]);        fprintf(fpw, "\n");      }    }    printf("%s Command Is Completed!\n", rdchar);  }  else    printf("%s Command Is Invaliad. Check the DDR Command List!\n", rdchar); } EXT_MODE_REG_SET1(unsigned Qoff, unsigned RDQSen, unsigned DQSBen, char *OCDpgm, unsigned AL,                  unsigned DLLen, FILE *fpw){  unsigned qoff[1], rdqs_en[1], dqsb_en[1], ocdpgm[3], al[3], dll_en[1];  if (AL == 0)  {al[2] = 0;al[1] = 0;al[0] = 0;}  else if (AL == 1)  {al[2] = 0;al[1] = 0;al[0] = 1;}  else if (AL == 2)  {al[2] = 0;al[1] = 1;al[0] = 0;}  else if (AL == 3)  {al[2] = 0;al[1] = 1;al[0] = 1;}  else if (AL == 4)  {al[2] = 1;al[1] = 0;al[0] = 0;}  else if (AL == 5)  {al[2] = 1;al[1] = 0;al[0] = 1;}  else    printf("ADDITIVE LATENCY Input ERROR !\n");  if (Qoff == 1)  {qoff[0] = 1;}  else if (Qoff == 0)  {qoff[0] = 0;}  if (RDQSen == 1)  {rdqs_en[0] = 1;}  else if (RDQSen == 0)  {rdqs_en[0] = 0;}  if (DQSBen == 1)  {dqsb_en[0] = 0;}  else if (DQSBen == 0)  {dqsb_en[0] = 1;}  if (DLLen == 1)  {dll_en[0] = 0;}  else if (DLLen == 0)  {dll_en[0] = 1;}  if (strcmp(OCDpgm, "CAL_EXIT") == 0)  {ocdpgm[2] = 0;ocdpgm[1] = 0;ocdpgm[0] = 0;}  else if (strcmp(OCDpgm, "DRIVE1") == 0)  {ocdpgm[2] = 0;ocdpgm[1] = 0;ocdpgm[0] = 1;}  else if (strcmp(OCDpgm, "DRIVE0") == 0)  {ocdpgm[2] = 0;ocdpgm[1] = 1;ocdpgm[0] = 0;}  else if (strcmp(OCDpgm, "ADJUST") == 0)  {ocdpgm[2] = 1;ocdpgm[1] = 0;ocdpgm[0] = 0;}  else if (strcmp(OCDpgm, "CAL_DEFAULT") == 0)  {ocdpgm[2] = 1;ocdpgm[1] = 1;ocdpgm[0] = 1;}  else    printf("OCD PROGRAM Input ERROR !\n");  fprintf(fpw, "0 1 0 0 0 0 0 0 Z Z 0 1 0 %d %d %d %d %d %d 0 %d %d %d 0 0 %d Z Z Z Z Z Z Z Z\n", qoff[0], rdqs_en[0], dqsb_en[0], ocdpgm[2], ocdpgm[1], ocdpgm[0], al[2], al[1], al[0], dll_en[0]);  fprintf(fpw, "1 1 0 0 0 0 0 0 Z Z 0 1 0 %d %d %d %d %d %d 0 %d %d %d 0 0 %d Z Z Z Z Z Z Z Z\n", qoff[0], rdqs_en[0], dqsb_en[0], ocdpgm[2], ocdpgm[1], ocdpgm[0], al[2], al[1], al[0], dll_en[0]);  printf("EMRS1 Command Is Completed!\n");}EXT_MODE_REG_SET2(unsigned SREF_HOT, FILE *fpw){  unsigned dbl_sref[1];    if (SREF_HOT == 1)  {dbl_sref[0] = 1;}  else if (SREF_HOT == 0)  {dbl_sref[0] = 0;}  fprintf(fpw, "##################### MRS2 : Hot Temp SREF = %d ######################\n", dbl_sref[0]);  fprintf(fpw, "0 1 0 0 0 0 0 0 Z Z 1 0 0 0 0 0 0 0 %d 0 0 0 0 0 0 0 Z Z Z Z Z Z Z Z\n", dbl_sref[0]);  fprintf(fpw, "1 1 0 0 0 0 0 0 Z Z 1 0 0 0 0 0 0 0 %d 0 0 0 0 0 0 0 Z Z Z Z Z Z Z Z\n", dbl_sref[0]);  printf("EMRS2 Command Is Completed!\n");}MODE_REG_SET(unsigned cas_latency, unsigned burst_length, char *burst_type, char *dll_type, unsigned SAPD, unsigned tWR, FILE *fpw){  unsigned cas[3], burst[3], type[1], state[1];  unsigned sapd_f[1], twr_f[3];  if (cas_latency == 2)  {cas[2] = 0;cas[1] = 1;cas[0] = 0;}  else if (cas_latency == 3)  {cas[2] = 0;cas[1] = 1;cas[0] = 1;}  else if (cas_latency == 4)  {cas[2] = 1;cas[1] = 0;cas[0] = 0;}  else if (cas_latency == 5)  {cas[2] = 1;cas[1] = 0;cas[0] = 1;}  else if (cas_latency == 6)  {cas[2] = 1;cas[1] = 1;cas[0] = 0;}  else    printf("CAS LATENCY Input ERROR !\n");  if (burst_length == 4)  {burst[2] = 0;burst[1] = 1;burst[0] = 0;}  else if (burst_length == 8)  {burst[2] = 0;burst[1] = 1;burst[0] = 1;}  else    printf("BURST LENGTH Input ERROR !\n");  if (SAPD == 1)    sapd_f[0] = 1;  else if (SAPD == 0)    sapd_f[0] = 0;  if (tWR == 2)  {twr_f[2] = 0; twr_f[1] = 0; twr_f[0] = 1;}  else if (tWR == 3)  {twr_f[2] = 0; twr_f[1] = 1; twr_f[0] = 0;}  else if (tWR == 4)  {twr_f[2] = 0; twr_f[1] = 1; twr_f[0] = 1;}  else if (tWR == 5)  {twr_f[2] = 1; twr_f[1] = 0; twr_f[0] = 0;}  else if (tWR == 6)  {twr_f[2] = 1; twr_f[1] = 0; twr_f[0] = 1;}  else    printf("Invalid tWR value !\n");   if (strcmp(burst_type, "SEQUENTIAL") == 0)    type[0] = 0;  else if (strcmp(burst_type, "INTERLEAVE") == 0)    type[0] = 1;  else    printf("BURST TYPE Input ERROR !\n");  if (strcmp(dll_type, "NORST") == 0)  {    state[0] = 0;    fprintf(fpw, "######### MRS : BL = %d, CL = %d, %s, DLL_%s, SAPD = %d, tWR = %d ############\n", burst_length, cas_latency, burst_type, dll_type, SAPD, tWR);  }  else if (strcmp(dll_type, "RST") == 0)  {    state[0] = 1;    fprintf(fpw, "######### MRS : BL = %d, CL = %d, %s, DLL_%s, SAPD = %d, tWR = %d ############\n", burst_length, cas_latency, burst_type, dll_type, SAPD, tWR);  }  else    printf("DLL STATE Input ERROR !\n");  fprintf(fpw, "0 1 0 0 0 0 0 0 Z Z 0 0 0 %d %d %d %d %d 0 %d %d %d %d %d %d %d Z Z Z Z Z Z Z Z\n", sapd_f[0], twr_f[2], twr_f[1], twr_f[0], state[0], cas[2], cas[1], cas[0], type[0], burst[2], burst[1], burst[0]);   fprintf(fpw, "1 1 0 0 0 0 0 0 Z Z 0 0 0 %d %d %d %d %d 0 %d %d %d %d %d %d %d Z Z Z Z Z Z Z Z\n", sapd_f[0], twr_f[2], twr_f[1], twr_f[0], state[0], cas[2], cas[1], cas[0], type[0], burst[2], burst[1], burst[0]);   printf("MRS Command Is Completed!\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -