将通过验证一个简单的设计:TinyALU来检查UVM。这样做,可以将精力集中在测试台上,而不会因DUT的复杂性而分心。
上图为TinyALU的框图,ALU在时钟的上升沿工作。当start为1时,TinyALU从A和B总线上读取操作数,从op总线上读取一个操作数,并基于该操作数的结果进行运算。操作可能需要任意数量的周期。
当操作完成时,输出done为1。reset_n信号是有效的低电平同步复位。
TinyALU有五种操作:NOP、ADD、AND、XOR和MULT。用户在请求计算时对三位运算总线上的操作进行编码,其中NOP为空指令。以下是编码:
以下是TinyALU的波形:
start信号必须保持高电平,运算符和操作数必须保持稳定,直到TinyALU产生完成信号。done信号仅在一个时钟内保持高电平。NOP操作上没有done信号。在NOP上,升高start信号一个周期后降低。
我们将通过创建TinyALU的常规测试台来开始我们的UVM之旅。然后,每一章都将