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
常用语法
将变量设置为全0:assign a = ‘0;
获取变量位宽:$bits(a)
将logic转为枚举类型:exe_type_e’(a[1:0])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」