赛灵思
直播中

洪禹

7年用户 207经验值
私信 关注
[问答]

Spartan6 JTAG配置无法发挥作用

我正在编写自己的代码用于我的Spartan6 FPGA的JTAG配置。
但是,我无法让它发挥作用。
出于调试目的,我想尝试读取配置寄存器(例如STAT,IDCODE),但也不能这样做。
这是我粗略的事件序列:
1)通过JTAG读出IDCODE,(这个工作) - >以TEST_LOGIC_RESET状态结束
2)发出JPROGRAM JTAG指令,这似乎有效,因为FPGA此时丢失了配置/停止驱动IO。
再次,转到TEST_LOGIC_RESET状态。
3)发出CFG_IN Jtag指令,然后移入SYNC字,然后将状态寄存器命令读入JTAG数据寄存器。
4)发出CFG_OUT JTAG指令,然后移出JTAG数据寄存器的16位。
以TEST_LOGIC_RESET状态结束。
但是,无论我尝试读取什么寄存器,移出的数据总是“0008”。
我猜我在创建命令时做错了什么。
请帮忙!
如果需要,我很乐意提供更多详细信息。
谢谢,
梅根

以上来自于谷歌翻译


以下为原文

I am writing my own code for JTAG configuration of my Spartan6 FPGA. However, I am not able to get it to work. For debugging purposes, I wanted to try to read the Configuration registers (eg STAT, IDCODE), but can not do that either. Here is my rough sequence of events:

1) Read out IDCODE through JTAG, (this works) -> end in TEST_LOGIC_RESET state
2) Issue JPROGRAM JTAG instruction, which seems to work because FPGA loses its configuration/stops driving IOs at this point. Again, go to TEST_LOGIC_RESET state.
3) Issue CFG_IN Jtag instruction, then shift in the SYNC word then read status register command into the JTAG data register.
4) Issue CFG_OUT JTAG instruction, then shift out 16 bits of the JTAG data register. End in TEST_LOGIC_RESET state.

However, the shifted out data is always "0008", no matter what register I attempt to read from. I am guessing I am doing something wrong in creating my command, or something. Please help! I am happy to provide more details if requested.

Thanks,
Megan

回帖(1)

薛静斗

2019-5-24 13:26:16
您应该在运行测试/空闲状态中结束转换,而不是在测试逻辑复位中。

以上来自于谷歌翻译


以下为原文

You should end your shifts in the Run Test/Idle state, not in Test Logic Reset.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分