接下来,我试图找出FPGA引发系统崩溃的原因。中断信号引发系统崩溃的说法首先被排除了,原因是FPGA的
中断产生逻辑电路相当标准,不可能产生随机的错误行为。问题缩小到FPGA连接到CPU的双向数据总线上,
这里是除中断外唯一一个由FPGA驱动到CPU的逻辑电路。我的推论是,由于该FPGA工程没有对CPU相关的输
入输出引脚进行时序约束,两次编译会导致双向数据总线的输出使能信号的响应差异,这一差异进一步影响了
FPGA驱动双向数据总线的速度差异,在某些情况下,FPGA或早或晚地驱动了总线,引发了总线驱动冲突,导
致CPU对总线上其它设备的访问失败。经过对所有CPU相关的信号进行时序约束后,编译的二进制文件没有引
发系统崩溃。
|