通过指令的PC可以快速地将指令序列与抓取的信号联系起来。《CPU设计实战》给出的参考设计将PC从取值阶段沿着流水级一路传递下去。因为每一级流水线的缓存中都会保存这一级流水当前正在处理的指令的PC,将各级PC信号抓取到波形窗口中,就可以一目了然地看出一条指令是如何在流水线中前进的。
除了各级的PC信号外,在我们的参考设计中,每一级流水的valid为也要抓取出来。对于任意一个流水级,不要在其valid为0的周期内分析流水级的其他信号,除非你的设计意图是希望这个周期内valid为1,而你正在分析为什么他没有置一。
其余经常要抓去的信号还有:指令在写回级通用寄存器堆的使能信号、地址、数据,指令RAM和数据RAM访问接口上的信号,以及取指或译码流水级上的指令码。
强烈建议大家将同意流水级的信号放在同一个组当中,然后按照流水级顺序将各组信号自上而下或自下而上依次摆放。
之后就按照CPU设计中的数据通路逆向追查下去。
如果发现这条指令不是错误的源头,那么就要回到定位指令的过程继续沿时间轴向前或向后定位指令。