"); //-->
CI858 检查串行端口的缓冲区可用性
事后看来,这整个方法可以说违反了工程的基本原则:应该通过将设计分为已知可以工作的组件和(不一定)已知可以工作的组件来完成测试。从那里开始,您应该一次只测试一个组件。
我说可以说是因为任何测试都需要受信任的组件和不太受信任的组件。最明显的可信组件是模拟器本身——在我的例子中是 Verilator(到目前为止)。同样,最明显的不受信任的组件是被测设计或模块。其他不受信任的组件往往包括外部设备模块和测试脚本本身——无论是用 C 还是 Verilog 编写的。这种区别很重要,因为它有助于揭示被测模块绝不是任何设计中唯一不受信任的组件。因此,我们可能会争论基本工程原理在多大程度上适用于此。
这种特殊的设计方法将设计的某些部分、 ZipCPU、 AXI DMA、RAM 模型和互连视为工作基础设施部分。事实上,一般来说,他们确实“只是工作”,尽管练习开始时有一两次打嗝。请记住,这只是ZipCPU的第二个 AXI 实现(这里是第一个),这是ZipCPU 从 64 位总线运行的第一个设计。因此,本设计还测试了一些新的总线宽度调整组件 [1] [2]。不仅如此,该设计还测试了 ZipCPU的(新)时钟门控功能。正如人们所预料的那样,前几次测试并不顺利。例如,AutoFPGA最初将其可缓存地址标记 关闭了 3 位,因此即使 RAM 完全可缓存,但实际上很少有事务最终进入数据缓存。
整个练习的真正大问题是,既然我已经经历过,我是否会再次这样做。这个问题的答案是:我不确定。事实上,我现在面临着第二个非常相似的项目,今天摆在我面前的问题是我是否应该为它编写一个 Verilog 测试脚本,或者像我为这个项目所做的那样,只在软件中编写脚本。
我们拭目以待。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。