描述
一般描述:
从微控制器下载比特流的用户可能需要
给FPGA一个自由运行的时钟,也将被使用
作为配置时钟(CCLK)。这可能导致FPGA
在配置数据发送之前查看额外的CLCK。
这种情况的问题是FPGA保持了
运行多少个配置时钟的记数
自上电后收到。这个数字与
位流中的长度计数以确定何时配置
已经完成。比特流中的长度计数将不会
解释额外的配置时钟;因此,当所有
数据已经发送,长度计数和FPGA内部
计数将不匹配(FPGA的内部计数器将包含)
比长度计数更大的值。结果是
FPGA将继续等待数据,直到提供数据为止。
有足够的配置时钟来强制内部计数器
将其包装为零,然后在
比特流长度计数。在这一点上,FPGA将结束。
配置并断定已完成的PIN。
这个问题的症状是一种不会发生的装置。
配置但不显示任何错误(如果
微控制器停止发送所有的CLCK
数据),或者一种非常长的时间的装置。
配置(如果微控制器继续提供CCLKs)
发送所有数据后)。
如果CS1引脚低,Express模式将忽略CCLK。
解决方案
有三个决议。
重新声明PROG PIN,使得不超过四
(4)初始化后的CCLKs和开始的
配置数据。配置数据从字节开始。
虚设“1”填充字节。这些也可以修剪以减少。
额外的CCLK的数量。
修改前导码后的24位长度计数数
Bitstream Header来解释额外的CCLK。
下载比特流后,发送所需的额外CLCK。
翻转内部计数器并计数至长度
再次计数(18000000个CLCK)。
没有回复内容