我有一个关于在验证测试台/接口中声明信号的问题。正如我在教科书中所说,我想在我的测试平台或界面中声明每个信号的方向,但奇怪的是,如果不这样做,我仍然可以得到正确的结果。我可以将所有信号声明为"逻辑",并将它们馈送到我的DUT的正确输入/输出端口。
如果验证测试平台需要输入/输出声明,我很困惑?验证测试平台不一定是可综合的,不是吗?甚至我书中的一些例子都没有用输入/输出端口编写测试平台。有时我会明白地看到"模块测试();"模块中的所有信号都声明为"逻辑"。
有人可以就此给出一些详细的解释吗?我是否必须在我的测试平台中声明我的信号指示?
答案 0 :(得分:3)
测试平台中的顶级模块没有端口,因此没有指定的方向。如果要将信号通过模块边界传递到更高级别的模块并且端口声明需要方向,则较低级别的模块需要端口。模拟器不关心模块描述是用于测试平台还是设计,并且可能忽略指定的方向。综合工具需要正确的信号指示。
SystemVerilog的interface
结构稍微复杂一些,因为它是一组信号,每个信号都有可能用作端口。 modport
中使用的interface
构造指定了用作端口及其方向的信号。与模块端口一样,modport需要指示作为端口语法的一部分。