电路测试

除了一步步输入数据进行仿真,Digital仿真软件还支持编写测试用例(test case),自动地对电路施加输入数据、对比输出结果。 测试用例可以直接给出激励和预期响应的数据,也可以编写程序自动生成测试数据。下面分别介绍这两种方法。

测试数据

以前面的2-4译码器为例,点击菜单项“Components/组件 ➤ Misc./其他 ➤ Test case / 测试用例”,添加一个测试组件。右键点击该测试组件,点击组件属性窗口中的“Edit/编辑”按钮,将例 1的内容复制到编辑器中。

例 1. 2-4译码器测试数据
En A1 A0 Y0 Y1 Y2 Y3

 0 0 0 0 0 0 0
 0 0 1 0 0 0 0
 0 1 0 0 0 0 0
 0 1 1 0 0 0 0
 1 0 0 1 0 0 0
 1 0 1 0 1 0 0
 1 1 0 0 0 1 0
 1 1 1 1 0 0 1

例 1中第一行是电路的输入输出引脚的名称(即“Label/标签”属性),后面各行是测试数据,每一列与第一行的引脚对应。

在测试时,Digital仿真软件将激励数据施加到电路的输入端口,然后将电路输出与预期响应值进行比较。 激励和预期响应值除了“0”、“1”之外,还可以用 “X”表示不关心,“Z”表示高阻态。 对于时钟输入,可以使用字母“C”表示一个时钟周期。Digital仿真软件在测试时首先施加其他激励数据,之后施加一个时钟脉冲,然后将电路输出与预期响应比较。

点击菜单项“Simulation/仿真 ➤ Run Tests / 运行测试用例”或对应工具条按钮,弹出“Test result /测试结果”窗口。输出引脚的数据如果与预期相符,则以绿底色显示;如果不相符,则以红底色显示,并且同时给出预期值和测试值的对比。

例 1的最后一行测试数据有意植入了错误,所以仿真结果会有一处红底色显示。

在仿真状态下,点击测试结果窗口的某行数据,会在电路图上显示该行数据,便于进行结果分析。

在“Test result /测试结果”窗口中点击菜单项“File/文件 ➤ Save Data / 保存数据”,测试结果数据将被保存为CSV文件。该文件可通过WPS等办公软件打开,用于实验报告的实验结果分析。

测试结果也能够以图形的方式显示,点击菜单项“View/视图 ➤ Show graph / 显示图”即可打开图形窗口。

测试程序

除了直接给出测试数据,编辑器中也可以编写测试程序,例 2给出了2-4译码器的测试程序。

例 2. 2-4译码器测试程序
En A1 A0 Y3 Y2 Y1 Y0

repeat(4)  0  bits(2, n) bits(4, 0)
repeat(4)  1  bits(2, n) bits(4, 1<<n)
程序说明
  1. “repeat([n])”表示生成[n]行测试数据。

    repeat(4) 创建4行,其中循环变量n从0到3。

  2. “bits([bits],[value])”语句将多个位输入作为一组二进制值。例如,

    1. bits(4, 0) 创建4位的0,即0000;

    2. bits(2, n) 则创建2位的数据,其值为循环变量n,即第1行值为00,第2行值为01,等等。

  3. “<<”为左移运算符。

    bits(4, 1<<n) 创建4位的数据,其值为“1左移n位”,四行数据分别为0001、0010、0100、1000。

有关测试程序的语句、语法等详细介绍,请点击编辑器窗口的“帮助”按钮。