设计和验证看待同一份RTL代码的角度完全不同。这种差异是思维方式的根本区别。
设计怎么看仿真
设计写完RTL,打开波形图,习惯性地逐行对照代码。
比如一个简单的状态机跳转:
always @(posedge clk) begin case(state) IDLE: if(req) state <= BUSY; BUSY: if(done) state <= IDLE; endcase end设计看波形时会想:req拉高那个周期,state是不是变成BUSY了?done信号来的时候,下一拍是不是回到IDLE?每一句RTL都要在波形里找到对应的痕迹。这就是过程导向——关心内部动作是否按剧本演。