1. 是一个虚拟的环境
2. 用于验证所设计模型的正确性
3. 用于验证构建的C++函数正确性,即 csim
4. 用于验证RTL设计的正确性,即C/RTL Cosimulation
5. 其用C++语言描述
1. Driver / Stimulus: 输入激励
2. Reference Modell: 参考模型(一般作为黄金参考值,即认为该模型为基准)
3. DUT: 待测模型(需要综合的C函数)
4. Monitor: 监视器(非必须)
5. Scoreboard: 将参考模型和待测模型结果进行对比
1. 增加测试的多样性:用于合成的顶层函数是为多个事务执行的
2. 将函数输出与已知的良好值进行比较
3. main()函数的返回值被约定为: 0: 结果正确 非0:结果不正确
注:左上角是待测模型的.cpp文件; 另外一个是Test Bench的.cpp文件
1. 直接定义和初始化变量作为激励
2. 将数据存储在一个数组中作为激励
3. 从外部文件读取数据作为激励
1. 使用system()去比较DUT的输出与黄金值
2. 通过控制输出格式,可以得到更多的有用信息
3. 一般,to_string() 比dec、oct 等更有效和更容易