Spartan-3配置 – 如何通过SelectMAP读取ID寄存器?-Altera-Intel社区-FPGA CPLD-ChipDebug

Spartan-3配置 – 如何通过SelectMAP读取ID寄存器?

问题描述

Spartan-3器件有一个名为IDCODE的配置寄存器。它是什么,我如何访问它?

解决/修复方法

IDCODE寄存器是一个配置寄存器,与同名的JTAG寄存器分开。比特流的开头包含一个命令,该命令将表示目标器件的IDCODE的值写入此IDCODE寄存器。将此值与表示器件的真实IDCODE的内部常量进行比较。如果这些值相同,则可以继续配置。如果它们不同,则比特流定位错误,配置停止,INIT引脚变为低电平。因此,不可能将Spartan-3器件配置为用于不同器件尺寸或架构的比特流。

要通过SelectMAP端口读取IDCODE寄存器(无法通过串行模式进行回读),SelectMAP端口必须在配置后保留(设置BitGen选项“-g Persist:Yes”)。这会强制配置引脚在配置完成后保留其功能。

Xilinx XAPP452 ):“Spartan-3高级配置架构”中,您可以找到IDCODE寄存器的地址(“01110”)以及类型1数据包的详细信息。这是流程:

1.发送同步字(0xAA995566)。

2.发送命令以读取IDCODE寄存器。数据包包含类型(“001”),读操作(“01),地址(”00000000001110“),RSVD位(”00“)和字数(”00000000001“)。这会产生32位包头:0x2801C001。

3.发送全0的32位字以刷新目标器件的命令管道。这可确保配置逻辑正确处理读命令。

4.对一个CCLK周期取消置位/ CS和/ RDWR,并将数据总线置于三态状态。

5.断言/ CS。

6.从SelectMAP数据总线读取IDCODE – 每个周期一个字节,持续四个周期。

请登录后发表评论

    没有回复内容