通常我们在时钟的上升沿让输入发生变化(D触发器的基本机制),在时钟的下降沿进行比较,这个时候数据是最稳定的。
上面是输入与预期的输出。准备工作做好以后,就可以进行TB的编写了。
首先例化好相应的模块,产生对应的时钟信号。定义一个大的数组用于读取我们的测试向量。
然后使用readmem函数将之前准备好的文本吃到testvectors这个值中。
每个时钟周期的上升沿,将预期的结果赋值到中间变量中。
然后在适中的下降沿进行比对即可。
当然对应的行数也要增加。大家写的时候要注意数据是一一对应的,别错开就行。
接下来简单讲一下VHDL,实际上VHDL大部分公司都是不适用的。但是存在有些IP库还有部分代码是VHDL写的,所以需要大概能看懂,掌握到这个程度就足够了。
我们看一下这两个例子对比,左边的SV代码我就不讲解了,之前有说过,直接看VHDL代码。
- 首先需要导入IEEE的库,这个有点像C语言导入标准库,是个固定的写法
- 然后用entity gates来说明所要实现的电路为逻辑门,制定输入输出。
- 再通过architecture说明其对应的逻辑。