我正在开发一个通过RS-422端口与FPGA进行串行通信的库。该库是更大项目的一部分。
我知道我可以测试它的某些部分,就像消息生成一样。您可以设置输入,并可以测试字节数组是否与预期数组匹配。但是,如果我想进行更一般的测试,我怎么能为它生成单元测试呢?我是否必须编写FPGA行为的模拟器?是否可以单独测试库?
答案 0 :(得分:2)
我想说,使用模拟器或模拟进行测试会让你比刺激真实的东西更容易锻炼你的代码路径。
理想情况下,使用预先存在的东西。否则,构建仿真可能不是一件小事。但是,如果您不能很好地理解协议,那么您肯定无法与之通信: - )
答案 1 :(得分:1)
您可以创建一个可用作模拟器的模拟类。只需使它成为你的写函数处理你发送的信息并将结果保存在某种缓冲区上,这可能只是一个普通的字符串。然后创建一个读取字符串的读取函数,擦除它然后将它返回给你。
答案 2 :(得分:0)
您是要对FPGA的驱动程序进行单元测试,还是要对协议进行单元测试? 因为如果你想测试两者,它对我来说就像是(系统)集成测试。
是的,可以单独测试通信库。确保您的通信协议不与设备驱动程序交织在一起;这样你就可以单独测试它。
我的建议:
在测试FPGA +通信库时我会感兴趣的那种错误:
至于模拟:我在Matlab / Simulink中运行代码有很好的结果(即使用TrueTime,一个免费的插件)。然后可以使用Simulink连接循环中的硬件(HIL)或循环中的模型。或者可以使用软件模型(但是如果你是接近硬件的话,通常很难模拟非常有趣的异步事件;即中断处理程序)