在SV中可以使用结构体作为模块的输入或输出,这使得它可以更加清晰地传递更多的信号,以简化RTL代码,类似于interface。
typedef struct {
bit [7:0] intr = 'h AA;
logic [23:0] addr = 'h FF_FF_FF;
} ext;
module SU (
output ext extOut);
assign extOut = '{intr: 8'hFF, addr:24'haa_aa_aa};
initial begin
#1; $display($stime,,, "extOut = %p", extOut);
end
endmodule
module top;
ext extIn;
//connect extOut of 'SU' with extIn of 'top'
SU SUInst(.extOut(extIn));
initial begin
#2; $display($stime,,, "extIn = %p", extIn);
end
endmodule
仿真log:
1 extOut = '{intr:'hff, addr:'haaaaaa}
2 extIn = '{intr:'hff, addr:'haaaaaa}
V C S S i m u l a t i o n R e p o r t
在上面的例子中,我们首先定义了一个名为“ext”的unpacked struct,然后直接作为module的output。
再声明一个moudle top,连接到这个struct。最后打印表明这个结构体确实完成了连接,打印相同的信息。
struct可以作为参数传递给task或function,前提是这个struct需要先使用typedef声明为用户自定义类型
typedef struct {
logic [31:0] addr;
logic [63:0] data;
logic [3:0] BEnable;
} control;
function Dbus (input control ct1);
….
endfunction
审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
模块
+关注
关注
7文章
2849浏览量
53439 -
RTL
+关注
关注
1文章
395浏览量
62883 -
结构体
+关注
关注
1文章
131浏览量
11413
发布评论请先 登录
相关推荐
热点推荐
RDMA设计35:基于 SV 的验证平台
设计。
FPGA IP(知识产权核)使用SystemVerilog(SV)进行验证,主要基于其在验证效率、代码复用性和工程协作方面的显著优势。本IP采用它进行验证以确保其可靠性。
这里主要对RoCE
发表于 02-01 13:14
Dual Coupler Module skyworksinc
电子发烧友网为你提供()Dual Coupler Module相关产品参数、数据手册,更有Dual Coupler Module的引脚图、接线图、封装手册、中文资料、英文资料,Dual
发表于 10-28 18:34
蜂鸟E203乘法器的优化——基8的Booth编码+Wallace树
)
② Wallace树结构:
这里使用CSA(进位保留加法器),压缩部分积的数目
module csa( input x, input y, input z,
发表于 10-24 07:28
关于E203内核高性能乘法器优化(三)
4:2压缩器优化
一般的4:2压缩器是由两级3:2压缩器串接起来的,而3:2压缩器的实质就是全加器,其结构如下:
表达式如下:
代码实现:
module full_adder( input a
发表于 10-23 07:43
SV8541A、SV8542A、SV8544A 微功率低噪声运算放大器技术手册
电子发烧友网站提供《SV8541A、SV8542A、SV8544A 微功率低噪声运算放大器技术手册.pdf》资料免费下载
发表于 09-09 17:17
•0次下载
基于LockAI视觉识别模块:C++人脸识别
结果可视化
lockzhiner_vision_module::vision::Visualize(input_mat, output_image, result);
参数说明:
inpu
发表于 07-01 12:01
基于LockAI视觉识别模块:手写数字识别
结果可视化
lockzhiner_vision_module::vision::Visualize(input_mat, output_image, result);
参数说明:
inpu
发表于 06-30 16:45
【高云GW5AT-LV60 开发套件试用体验】点亮LED
), //input clkin
.reset(reset), //input reset
.lock(lock), //output lock
.clkout0(clk_100M) //ou
发表于 06-18 17:16
基于LockAI视觉识别模块:C++目标检测
lockzhiner_vision_module::vision::Visualize(
const cv::Mat& input_mat,
cv::Mat& output
发表于 06-06 14:43
基于LockAI视觉识别模块:C++条码识别
lockzhiner_vision_module::vision::Visualize(input_image, output_image,
results);
参数说明:
input
发表于 05-27 10:26
SV Structure作为module的input/output
评论