使用QDR-IV设计高性能网络系统之二
数据线路中也类似,但翻转位由存储器控制器在存储器写操作期间生成,并且翻转位由QDR-IV存储器中的翻转逻辑在存储器读操作期间生成。
DINVA和DINVB引脚指示了是否翻转相应的DQA和DQB引脚。DINVA和DINVB均为高电平有效信号。当DINV = 1时,将翻转数据总线;当DINV = 0时,不翻转数据总线。
DINVA[1]和DINVA[0]相互独立并控制与其相应的DQA组。DINVA[0]控制DQA[17:0](对于x36的配置)或DQA[8:0](对于x18的配置)。DINVA[1]控制DQA[35:18](对于x36的配置)或DQA[17:9](对于x18的配置)。同样,DINVB[0]控制x36配置中的DQB[17:0]或x18配置中的DQB[8:0]。DINVB[1]控制x36配置中的DQB[35:18]或x18配置中的DQA[17:9]。
表8显示的是DINV位说明以及x18和x36 QDR-IV选项的DINVA设置条件。
表8. 数据总线翻转条件
x18 | x36 | |
DINV位 | DINVB[1]控制DQB[17:9], DINVB[0]控制DQB[8:0] | DINVA[1]控制DQA[35:18], DINVA[0]控制DQA[17:0] DINVB[1]控制DQB[35:18], DINVB[0]控制DQB[17:0] |
翻转逻辑 | 如果DQA[8:0]中的逻辑“0”数量 ≥ 5,将DINVA[0]设置为1,这时会对DQA[8:0]进行翻转 | 如果DQA[17:0]中的逻辑“0”数量 ≥ 10,将DINVA[0]设置为1,这时会对DQA[17:0]进行翻转 |
如果DQA[8:0]中的逻辑“0”数量 5,那么不对DQA[8:0]进行翻转并将DINVA[0]设置为0 | 如果DQA[17:0]中的逻辑“0”数量 10,那么不对DQA[17:0]进行翻转,并将DINVA[0]设置为0 |
注意:可以对DINVA[1]、DINVB[0]以及DINVB[1]使用相同的翻转逻辑,以便控制相应的DQ组。
x18器件的示例
不进行数据总线翻转:
假设需要分别发送DQA[8:0]上的9’h 007和9’h 1F3。6个数据引脚需要在第一个和第二个DQA[8:0]位的逻辑状态之间进行切换,如下表所示(红色单元格显示)。这样会增大数据引脚上的切换噪声、I/O电流以及串扰。
表9. 数据总线序列(不进行总线翻转)
DQA[8:0] | 9位(二进制) | ||||||||
第一个DQA[8:0] - 9h 007 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
第二个DQA[8:0] - 9h 1F3 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
进行数据总线翻转:
根据表8,第一个DQA[8:0]满足翻转逻辑条件。因此,存储器控制器发送第一个DQA[8:0]前,它会将引脚地址从9’h 007翻转为9’h 1F8,并将DINVA[0]引脚设置为1。由于第二个DQA[8:0]不需要翻转,所以存储器控制器可以直接发送它,并将DINVA[0]设置为0。
表10显示的是数据总线翻转的结果。在这种情况下,只有3个数据引脚需要切换逻辑(红色单元格显示)。切换位的总数降低为3,所以降低了SSO的噪声、I/O电流以及串扰。
表10. 数据总线序列(进行总线翻转)
DQA[8:0] | 9位(二进制) | DINVA[0] | ||||||||
第一DQA[8:0] - 9h 1F8(翻转后) | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
第二个DQA[8:0] - 9h 1F3(保持不变) | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
地址奇偶校验
QDR-IV只有一条地址总线,但其以双倍数据速率和高频率运行。因此,地址奇偶校验输入(AP)和地址奇偶校验错误标志输出(PE#)引脚提供了片上地址奇偶校验功能,以便能够确保地址总线完整性。地址奇偶校验功能是可选的;可以使用配置寄存器来启用或禁用它。
通过该AP引脚可以在各地址引脚(An到A0)上进行偶校验。设置AP值,使AP和An-A0中逻辑“1”的总数为偶数。
对于数据总线宽度为x18的器件,设置AP值,使A[21:0]和AP中逻辑“1”的总数为偶数。
对于数据总线宽度为x36的器件,设置AP值,使A[20:0]和AP中逻辑“1”的总数为偶数。
器件的示例
以数据总线宽度为x36的器件的21’h1E0000和21’h1F0000地址为示例。表11显示的是如何为每个地址设置AP值。
表11. 地址奇偶功能
| AP | A[20:0]和AP中逻辑“1”的 总数 | |||||||||||||||||||||||
21h1E0000 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 因为在A[20:0]中逻辑“1”的总数为偶数(4) | |
21h1F0000 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 6 | 因为在A[20:0]中逻辑“1”的总数为奇数(5) |
当发生奇偶错误时,在配置寄存器4、5、6和7中(请查看相关数据手册,了解有关配置寄存器的更多信息)记录第一个错误的完整地址以及端口A/B错误位和地址翻转位。端口A/B错误位表示发生地址奇偶错误的端口:0表示端口A,1表示端口B。持续锁存该信息,直到向配置寄存器3中的地址奇偶错误清除位写入1来清除该信息为止。
通过两个计数器,可以表示是否发生了多个地址奇偶错误。端口A错误计数是端口A地址上奇偶错误数量的运行计数器。同样,端口B错误计数是端口b地址上奇偶错误数量的运行计数器。每个计数器独立计数到最大值(3),然后将停止计数。这些计数器均是自由运行的;对配置寄存器3的地址奇偶错误清除位写入1,可将其复位。
检测
赛普拉斯 总线转换 总线翻转 地址奇偶校验 存储器 相关文章:
- 非常实用: 2.4G天线设计指南(赛普拉斯工程师力作) 上篇(11-10)
- 非常实用: 2.4G天线设计指南(赛普拉斯工程师力作) 下篇(11-10)
- 冗余时钟源的平滑时钟切换(04-03)
- 在系统设计中的如何选择半导体器件:ASIC,还是FPGA?(05-29)
- 如何降低MIPS CPU 50%的动态功耗(05-31)
- 相变存储器(PCM)技术基础(06-12)