|
楼主 |
发表于 2011-4-8 10:46:30
|
显示全部楼层
源代码论坛里很多,问题点在下面这个地方:
IF state = bits_set_pins_from_data THEN
B_TCK <= ioshifter(0);
B_TMS <= ioshifter(1);
B_NCE <= ioshifter(2);
B_NCS <= ioshifter(3);
B_TDI <= ioshifter(4);
B_OE <= ioshifter(5);
ioshifter <= "000000" & B_ASDO & B_TDO;
END IF;
这里TCK和TMS,TDI是同时变化的,如果这几个信号的延迟路径相同,是最大建立时间的设计
但是不容易控制的是,假如TCK的路径延迟略大于TDI和TMS,此时TCK发生变化的话,极有可能把一个不确定的值写入到JTAG链路
所以我在bits_set_pins_from_data状态之前加入了一个set_TCK_from_data
让TCK先一个时钟周期变化,这样就避免了不确定状态.
当然如果走极端,TCK的路径延迟比其他信号大一个时钟周期以上,就还是会出问题. |
|