当前位置: 首页 > news >正文

买域名去哪个网站杭州服装论坛网站建设

买域名去哪个网站,杭州服装论坛网站建设,网站制作公司资质,成都百度seo优化公司JEDEC DDR5 SPD Hub Devices例程 DDR5生态系统的核心是SidebandBus Protocol 参考下图#xff0c;可以将SV4E-I3C的端口1声明为主服务器(模拟主机控制器)#xff0c;并且它可以属于SV4E-I3C上的一个总线。端口2可以作为SPD Hub DUT的Local Bus侧的从站连接。这个从站可以被…JEDEC DDR5 SPD Hub Devices例程 DDR5生态系统的核心是SidebandBus Protocol 参考下图可以将SV4E-I3C的端口1声明为主服务器(模拟主机控制器)并且它可以属于SV4E-I3C上的一个总线。端口2可以作为SPD Hub DUT的Local Bus侧的从站连接。这个从站可以被编程来模拟端口2属于SV4E-I3C上的第二个总线并且独立于端口1进行编程。SV4E-I3C的端口3和4也可以连接到SPD集线器的本地总线侧它们可以用来模拟PMIC和/或RCD设备。这些端口属于SV4E-I3C上的同一第二条总线。这些端口的可用性为SPD Hub执行地址修改等功能提供了完整的覆盖范围。 图片来源《EN-W002E-E-21090-Component-Validation-of-JEDEC-DDR5-SPD-Hub-Devices》 以下所有例程SV4E-I3C设备连接器件均为SPD5芯片Reg表示MR寄存器Mem表示NVM存储器 1、I2C模式读Reg SV4E-I3C设备在i2c模式下读SPD5的Reg(MR寄存器)Python代码如下 i3cDataCapture.start() sidebandBusController.setup() regAddr 0x00 byte_num 64 sidebandBusController.enableLowBitRateMode() bytesFromTarget sidebandBusController.spdLegacyReadReg(DIMM0-SPD, regAddr, numBytes byte_num, twoByteAddressingFalse) for value in range(int(regAddr),int(byte_numregAddr)):print(regAddr: 0x%02X mrbyte: 0x%02X % (value, bytesFromTarget[(value-(int(regAddr)))])) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 2、I3C模式读Reg SV4E-I3C设备在i3c模式下读SPD5的Reg(MR寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() regAddr 0x00 byte_num 64 sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() bytesFromTarget sidebandBusController.spdReadReg(DIMM0-SPD, regAddr, numBytes byte_num) for value in range(int(regAddr),int(byte_numregAddr)):print(regAddr: 0x%02X mrbyte: 0x%02X % (value, bytesFromTarget[(value-(int(regAddr)))])) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行LOG区域已经打印运行结果如图所示 打开生成的波形结果如图 3、使能ENEC获取器件状态 3、4、5部分的工作主要是测试SV4E-I3C设备的PEC注错功能PEC注错方式有多种这里仅对sidebandBusController.startPecErrorInjection()进行测试首先使能ENEC但是pecEnable为False(如图sidebandBusController部分的参数设置)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.initializeBus() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) targetAddr DIMM0-SPD regAddr 0x0C dataByte 0x01 # one byte status sidebandBusController.spdWriteReg(targetAddr, regAddr, dataByte) if status True:svt.printMsg(spdWriteReg PASS, green) else:svt.printMsg(spdWriteReg FAIL, red) statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图 打开生成的波形结果如图 4、使能ENEC使能PEC获取器件状态 接下来pecEnable为True(如图sidebandBusController部分的参数设置)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.initializeBus() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) targetAddr DIMM0-SPD regAddr 0x0C dataByte 0x01 # one byte status sidebandBusController.spdWriteReg(targetAddr, regAddr, dataByte) if status True:svt.printMsg(spdWriteReg PASS, green) else:svt.printMsg(spdWriteReg FAIL, red) statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()代码没有改变点击Run运行如图 打开生成的波形结果对比与刚刚生成的结果由于使能PEC故结果中包含pec byte 5、使能ENEC使能PEC注入PEC错误获取器件状态 然后开始注入PEC errorPython代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.initializeBus() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) sidebandBusController.startPecErrorInjection() targetAddr DIMM0-SPD regAddr 0x0C dataByte 0x01 # one byte status sidebandBusController.spdWriteReg(targetAddr, regAddr, dataByte) if status True:svt.printMsg(spdWriteReg PASS, green) else:svt.printMsg(spdWriteReg FAIL, red) sidebandBusController.stopPecErrorInjection() statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop() Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图在写Reg时注入错误的PEC byte ibi payload自动完成如图所示 6、使能ENEC未注入parity错误获取器件状态 6、7部分的工作主要是测试SV4E-I3C设备的parity注错功能这里对sidebandBusController.startErrorInjection(errorSpecs)进行测试首先是未进行parity注错Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) bytesFromTarget sidebandBusController.spdWriteReg(DIMM0-SPD, 0x00,0x00) statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 7、使能ENEC注入parity错误获取器件状态 注入parity错误Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) errorSpecs [ (2, 3) ] sidebandBusController.startErrorInjection(errorSpecs) bytesFromTarget sidebandBusController.spdWriteReg(DIMM0-SPD, 0x00,0x00) sidebandBusController.stopErrorInjection() statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图 打开生成的波形结果如图写Reg注入parity erroribi payload自动完成 8、使能ENEC注入parity错误读RegibiResponse(ackAndDisable)获取器件状态 8、9部分的工作主要是测试SV4E-I3C设备的ibiResponse设置首先controllerParams部分ibiResponse设置为ackAndDisablePython代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) errorSpecs [ (2, 3) ] sidebandBusController.startErrorInjection(errorSpecs) bytesFromTarget sidebandBusController.spdWriteReg(DIMM0-SPD, 0x00,0x00) sidebandBusController.stopErrorInjection() bytesFromTarget sidebandBusController.spdReadReg(DIMM0-SPD, 0x30, numBytes 5) for value in range(int(0x30),int(50x30)):print(regAddr: 0x%02X mrbyte: 0x%02X % (value, bytesFromTarget[(value-(int(0x30)))])) statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图注意与下个波形结果进行对比 9、使能ENEC注入parity错误读RegibiResponse(ackAndProceed)获取器件状态 controllerParams部分ibiResponse设置为ackAndProceedPython代码未改变如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() status sidebandBusController.doBroadcastWrite(ENEC, cccDefiningBytes [0x01]) if status True:svt.printMsg(ENEC CCC PASS, green) else:svt.printMsg(ENEC CCC FAIL, red) errorSpecs [ (2, 3) ] sidebandBusController.startErrorInjection(errorSpecs) bytesFromTarget sidebandBusController.spdWriteReg(DIMM0-SPD, 0x00,0x00) sidebandBusController.stopErrorInjection() bytesFromTarget sidebandBusController.spdReadReg(DIMM0-SPD, 0x30, numBytes 5) for value in range(int(0x30),int(50x30)):print(regAddr: 0x%02X mrbyte: 0x%02X % (value, bytesFromTarget[(value-(int(0x30)))])) statusTuple sidebandBusController.getTargetStatus(DIMM0-SPD) if statusTuple is not None:(pecErr, protocolErr, pendingInterrupt) statusTupleprint(pecErr: 0x%02X protocolErr: 0x%02X pendingInterrupt: 0x%02X % (pecErr, protocolErr, pendingInterrupt)) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()点击Run运行如图 打开生成的波形结果如图 10、I2C模式写Reg SV4E-I3C设备在i2c模式下写SPD5的Reg(MR寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() regAddr 0x00 dataByte 0x00 sidebandBusController.enableLowBitRateMode() status sidebandBusController.spdLegacyWriteReg(DIMM0-SPD, regAddr, dataByte, twoByteAddressingFalse) if status True:svt.printMsg(spdLegacyWriteReg PASS, green) else:svt.printMsg(spdLegacyWriteReg FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图 打开生成的波形结果如图 11、I2C模式写Mem SV4E-I3C设备在i2c模式下写SPD5的Mem(NVM寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() memBlock 0x00 data16Bytes [] for datanum in range(16):data16Bytes.append(0xFF) for block in range(16):for addr in range(4):status sidebandBusController.spdLegacyWriteMem(DIMM0-SPD, memBlock, 0x00, data16Bytes)if status True:print(memBlock: %d write 0x%02X PASS % (block,data16Bytes[0]))else:print(memBlock: %d write 0x%02X FAIL % (block,data16Bytes[0])) memBlock memBlock 1 i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 12、I2C模式读Mem SV4E-I3C设备在i2c模式下读SPD5的Mem(NVM寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() memBlock 0x00 for block in range(16): bytesFromTarget sidebandBusController.spdLegacyReadMem(DIMM0-SPD, memBlock, 0x00, numBytes 64, twoByteAddressingFalse)for value in range(64):print(memBlock: %d memAddr: 0x%02X mrbyte: 0x%02X % (block, value, bytesFromTarget[value])) memBlock memBlock 1 i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 13、I3C模式读Reg SV4E-I3C设备在i3c模式下读SPD5的Reg(MR寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() regAddr 0x00 byte_num 64 sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() bytesFromTarget sidebandBusController.spdReadReg(DIMM0-SPD, regAddr, numBytes byte_num) for value in range(int(regAddr),int(byte_numregAddr)):print(regAddr: 0x%02X mrbyte: 0x%02X % (value, bytesFromTarget[(value-(int(regAddr)))])) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 14、I3C模式写Reg SV4E-I3C设备在i3c模式下写SPD5的Reg(MR寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() regAddr 0x00 dataByte 0x00 status sidebandBusController.spdWriteReg(DIMM0-SPD, regAddr, dataByte) if status True:svt.printMsg(spdWriteReg PASS, green) else:svt.printMsg(spdWriteReg FAIL, red) status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 15、I3C模式写Mem SV4E-I3C设备在i3c模式下写SPD5的Mem(NVM寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True:svt.printMsg(SETAASA CCC PASS, green) else:svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() memBlock 0x00 data16Bytes [] for datanum in range(16):data16Bytes.append(0xFF) for block in range(16):for addr in range(4):status sidebandBusController.spdWriteMem(DIMM0-SPD, memBlock, 0x00, data16Bytes)if status True:print(memBlock: %d write 0x%02X PASS % (block,data16Bytes[0]))else:print(memBlock: %d write 0x%02X FAIL % (block,data16Bytes[0])) memBlock memBlock 1 status sidebandBusController.doBroadcastWrite(RSTDAA) if status True:svt.printMsg(RSTDAA CCC PASS, green) else:svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 16、I3C模式读Mem SV4E-I3C设备在i3c模式下读SPD5的Mem(NVM寄存器)Python代码如下 import dftm.svt as svt i3cDataCapture.start() sidebandBusController.setup() sidebandBusController.enableLowBitRateMode() status sidebandBusController.doBroadcastWrite(SETAASA) if status True: svt.printMsg(SETAASA CCC PASS, green) else: svt.printMsg(SETAASA CCC FAIL, red) sidebandBusController.disableLowBitRateMode() memBlock 0x00 for block in range(16): bytesFromTarget sidebandBusController.spdReadMem(DIMM0-SPD, memBlock, 0x00, numBytes 64)for value in range(64): print(memBlock: %d memAddr: 0x%02X mrbyte: 0x%02X % (block, value, bytesFromTarget[value])) memBlock memBlock 1 status sidebandBusController.doBroadcastWrite(RSTDAA) if status True: svt.printMsg(RSTDAA CCC PASS, green) else: svt.printMsg(RSTDAA CCC FAIL, red) i3cDataCapture.stop()Procedure区域编辑代码点击Run运行如图LOG区域已经打印运行结果 打开生成的波形结果如图 上述程序可能存在少量错误和可优化的地方后续博文将进行修改和优化 希望本文对大家有帮助上文若有不妥之处欢迎指正 分享决定高度学习拉开差距
http://www.pierceye.com/news/548377/

相关文章:

  • 网站建设公司投诉电话可以先做网站后备案吗
  • 顺的品牌网站设计价位网站开发合同书
  • 用html5制作个人网站深圳百度国际大厦
  • 网络网站公司网站管理平台扩展插件
  • 个人小说网站怎么做把自己做的网页变成网站
  • led网站制作网站登录后不显示内容
  • 推广网站公司兴义市住房和城乡建设局网站
  • 营销网站建设的公司哪家好创建网站超链接
  • 苏州网站优化排名推广企业网站建设价格
  • 在线制作论坛网站wordpress建立好的网站
  • 网站的功能规范商城网站静态模板下载
  • 双语言网站源码制作网页的软件哪个好
  • 政务网站建设需求网站首页页面代码
  • 网站产品详情页怎么做的用服务器做网站空间
  • 河北网站制作报价长春市建设技工学校网站
  • 盘锦做网站专家常州网站建设企业网站制作
  • 关于建设网站的报告wordpress 视频 广告插件
  • 生态养殖网站模板网赌网站建设多少钱
  • wordpress is长沙百度提升优化
  • 福州网站建设哪个好网页被禁止浏览怎么解决
  • 缩短链接的网站磁力猫引擎
  • 佛山网站到首页排名网站开发招标任务书
  • 网站建设相关专业手机网站建设软件有哪些
  • 做网站编辑累吗平台推广策划
  • 景区网站模板深圳中建南方建设集团网站
  • 深圳市网站建设有补贴吗特殊教育学校网站建设方案
  • 专业电影网站建设建e全景效果图
  • 优惠券网站怎么做的哪里有网站制作
  • 单页网站搭建购买一级域名做网站
  • 优秀设计作品的网站单页网站仿制教程