问题问的是仿真的时间吗?
一般而言,仿真的时间是根据需要得到的结论而设置。特别是仿真时间比较长的时候,能够观察到必要的信号关系即可。
但是现代的验证方法学,主张ABV(Assert-Based Verification),使用机器按照一定的覆盖率进行验证,这用于比较复杂的电路验证非常重要。因为在简单电路情况下,用人工观察方法或许还可以,但是如果电路系统有上千个信号,有很多变化,人工观察的方法就不可能了。
ABV我们会在后续课程中讨论。对于UART收发器,还不算复杂,还是可以人工观察。在我们的例子中,发送了四个字,闭环接收这四个字,那么仿真时间就一定要观察到最终是否正确接收。 大致计算的是:
1. 一个波特率周期(1/9600=104us)
2. 每一帧由1个起始位,8个信息位,2个停止,1个空闲,共12个比特组成
3. 这样,每一个UART帧,就需要12*104us=1248us
4. 我们的例子中发送了四个帧,因此总共需要4*1248=4992us
5. 这样,从发送开始(写请求结束)到四个帧传输完成,我们设置6000us,是可以的
6. 之后,发出读请求,这很快(是200M时钟的四拍)
7. 读请求后,就可以仿真停止了。