SystemVerilog编码技巧

工程组织

可以将一些公用的变量定义成package,放到同一个sv文件中,然后在需要用到公用变量的文件中通过import来引用变量,创建filelist时,需要通过+incdir+(包含package的sv文件的路径)来指示,并将这些package的sv列在其他sv前面

package rv_param_pkg;
	parameter WITDH = 8;
endpackage

package rv_typedef_pkg;
import rv_param_pkg::*;
typedef struct packed {
	logic [WIDTH-1:0] data;
} rv_l1d_req_t;

typedef enum logic [1:0] {
	FETCH = 2’b00,
	FLUSH = 2’b01,
	FLUSH_ALL = 2’b10;
} rv_opcode_e;
endpackage

module test
import rv_param_pkg::*;
import rv_typedef_pkg::*;
(
	input clk,
    input rstn
);

endmodule

常用语法

将变量设置为全0assign a = ‘0;
获取变量位宽:$bits(a)
将logic转为枚举类型:exe_type_e’(a[1:0])
posted @   笑着刻印在那一张泛黄  阅读(107)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示