FPGA点滴之四----三态

       从遇到的一个问题展开:ARM控制器通过LocalBus总线和FPGA相连,加电后启动过程被中断,死机。尝试Linux启动完成后给FPGA上电,结果提示eth0 link down后死机。从现象基本可以断定FPGA管脚影响了ARM的总线。修改FPAG信号从三态变为输入,问题解决。联想到多年前遇到的一个现象,ARM未使用的管脚(但是引出来了)没有配置内部上拉,导致运行速度极慢。

      最后找到确切原因:虽然设置成三态,但是三态的控制信号来自RD,但是总线上并非只有FPGA一家,还有DM9000,因此当对其读时FPGA管脚为输出干扰了正常的总线。解决方法是把地址译码加入到三态的控制中

 

1.所谓三态就是高,低和断开三种状态,有时也叫高阻。

2.三态的控制信号非常重要,对于总线数据的读写比较容易控制,毕竟只是发生在RD期间。

3.额外的提一句话题外的事情:异步的信号要比同步的信号早将近一个节拍,所以标准的三段状态机的写法,状态转移那块应该用组合逻辑来做。



你可能感兴趣的:(linux,联想)