SV Structure作为module的input/output

在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


基于MMBT3904L三极管的共射极放大电路
解决企业边缘计算平台上日益严重的固件攻击威胁
微软将其Copilot人工智能助手集成到其现场服务平台中
为改善NPI流程 列出了经常忽略或搞错的四个常见陷阱
中国电信研究院将设立卫星研究院并纳入集团研发体系管理
SV Structure作为module的input/output
PCB继电器日常的检测规范是怎样的
SPEIC转换器的制作
误码仪的使用方法 基于FPGA的误码仪设计案例
币安推出BEP2社区上币和锚定比特币BTCB的目的是什么
微信功能越来越丰富,用户能否承受变重的微信吗?
oppo15相关专利曝光 配置“刘海”异形屏
基于压缩算法的无人机视频压缩的研究
一文解析HBM技术原理及优势
信息加密技术可以让区块链具备什么特性
智能传感器:从大数据到人工智能智能数据
Vishay将在2016慕展上展出应用于汽车和其他电子领域的最新的业内领先技术和产品
iOS 14.3 正式版体验:一个非常值得体验的一个版本
努比亚红魔3手机有哪些亮点值得关注
4630-020-060振动速度传感器实验测试