gpt4 book ai didi

verilog - 系统 Verilog 中基于参数的类型定义

转载 作者:行者123 更新时间:2023-12-05 04:56:57 30 4
gpt4 key购买 nike

我想在 System Verilog 中有参数化的 typedef 结构。

例如,我可以为复杂数据类型参数化 typedef,而不是单独定义 8 位和 16 位复杂数据吗?

typedef struct {logic [7:0] i, q;} complex_datatype_8b;
typedef struct {logic [15:0] i, q;} complex_datatype_16b;

最佳答案

没有参数化的 typedef 构造,但是您可以将参数化的 typedef 作为参数化模块、接口(interface)、类...的一部分

module mod #(int A = 1, int B = 1)();
typedef struct packed {logic [A-1:0] i, q;} t1;
typedef struct packed {logic [B-1:0] i, q;} t2;
...
endmodule

在测试台中表达参数化 typdef 的典型方法是使用类:

class cl #(parameter C = 1);
typedef struct packed {logic [C-1:0] i, q;} tp;
endclass

module mod1();
cl#(7)::tp t;
..
endmodule

实际上,您可以使用任何参数代替 typedef 中的常量。

关于verilog - 系统 Verilog 中基于参数的类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64687352/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com