如何在硬件中实现系统verilog结构?被宣布为电线的成员?

时间:2014-02-16 10:19:00

标签: verilog system-verilog

我已经看到很多系统verilog程序示例将数据包表示为打包结构。 这些数据是否像包一样串行传输?如何在硬件中实现系统verilog结构?

2 个答案:

答案 0 :(得分:4)

SystemVerilog中的压缩结构只是为您提供了一种通过名称而不是位位置来访问信号字段的替代方法。例如

typedef struct packed {
     logic [2:0] field1; // 3-bits
     logic [4:0] field2; // 5-bits
} signal_t; // 8-bits

您现在可以声明具有该类型的电线或变量

wire signal_t sigA;
var signal_t sigB;

(除了在端口声明中,var关键字是隐式的大多数地方)

您现在可以将{1}或sigA[7:5]

作为字段1访问。

正如nguthrie指出的那样,解包结构提供了变量的分层分组,但它们也提供了比Verilog更强的类型。请参阅我的application note

答案 1 :(得分:1)

结构只是封装变量的一种便捷方式。这是一种表明这些变量应该作为一个组进行操作的方法。但是,调用某个数据包不会让合成器创建您想要的硬件。由您来创建正在处理的协议的逻辑。