从不同的模块驱动结构的不同元素

时间:2015-04-28 20:17:00

标签: system-verilog

我正在尝试调试一个让我回答这个问题的错误。从不同的模块驱动结构的不同元素是否合法,或者它会给出无效的驱动程序错误

例如,这是合法的吗?如果不是,我将如何实现相同的功能。 (代码在语法上不正确,但它传达了我想说的内容)

module top()
{
 struct x; //has elements a,b,c

 x.a = 10;

 module A1(input x)
 module A2(output x)

}

module A1()
{

  return x.a & x.b;

}

module A2()
{

   x.b = 20;

 }

1 个答案:

答案 0 :(得分:1)

结构的规则对于积分位向量是相同的。您可以根据它们被声明为线或变量的方式来驱动它们的独立选择。导线可以有多个连续驱动器,变量可以有一个连续的驱动器,也可以有多个程序分配。请注意,端口只能有一种类型和一种与该类型相关联的方向,并且被视为在端口方向上的连续分配。你不能让不同方向的结构的不同成员。