消息驱动测试平台可以改善测试覆盖率
GA的连接。在该模块内有二个VHDL进程为测试UART建模。第一个进程收集来自FPGA UART RxD引脚的数据,并把数据存放在本地数据存储器中。第二个进程将来自本地数据存储器的数据通过TxD信号发送给FPGA UART。
软件接口对运行于实际微处理器的软件算法进行建模。在该模块内也有二个进程。第一个进程将本地数据存储器中的数据发送给 FPGA UART。这些进程和物理接口进程的区别在于这时的数据交换是通过UART数据寄存器而不是UART TxD和RxD信号完成的。这就要求我们可以从UART测试模块访问FPGA UART寄存器。通过交换UART测试模块和进程接口模块之间的消息队列中的消息实现对FPGA UART寄存器的访问。
控制接口用于启动物理接口内的进程。共享变量和信号用于软件和物理接口模块之间的通信。
例子
下面研究一下可能运行于图1所示的FPGA上的测试。在测试中需要将缓冲数据通过每个UART发送到相应的测试模块。对每个UART来说测试包含以下一些步骤:
..初始化UART
..初始化UART测试模块
..初始化发送数据的缓存
..缓存非空时循环
..比较结果
利用简单的脚本命令如WRITE_REGISTER就可完成UART和UART测试模块的初始化。将要发送的缓存数据存放于 UART测试模块中。可以用脚本命令设置该数据。循环相对要复杂些,包括将来自UART测试模块的消息发送给处理器接口模块,并用指令读取UART状态寄 存器。一经读取,处理器接口模块就会向UART测试模块回送一条带状态寄存器值的消息。然后由UART测试模块决定是否发送数据。
UART测试模块的其它部分收集来自FPGA TxD引脚的数据。待收集完所有数据后,就可以比对接收数据和期望数据了。
处理器接口模块相对简单些,它在输入队列和处理器上接收消息。通常这些消息要么是写寄存器命令,要么是读寄存器命令。如果是 写寄存器命令,来源于消息的数据和地址就被写入FPGA处理器接口,其写入方式与实际处理器向FPGA写入的方式相同。如果是读寄存器命令,则地址来自消 息。FPGA处理器接口完成读周期,读到的数据放在消息中再发送回请求读的模块。
其它测试模块以相同的方式写入UART测试模块。大多数测试模块具有相同的结构,而由消息驱动测试平台建立的架构能使新测试模块的插入非常容易。
本文小结
FPGA加上微处理器构成了典型系统的基础。FPGA和微处理器之间的交互常常很难预测和查错。消息驱动测试平台则有助于仿真这些交互,从而减少硬件测试期间可能会遇到的问题。
作者:Robert Schenk
Array Electronics公司
Email: jrschenk@t-online.de
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)
- 基于PCI 总线的高速数据采集系统(09-30)
- 泰克全新VM6000视频测试仪助力数字电视等产品测试 (10-06)