SV中program & module
相同之处:
1.和module相同,program也可以定义0个或多个输入、输出、双向端口。
2.一个program块内部可以包含0个或多个initial块、generate块、specparam语句、连续赋值语句、并发断言、timeunit声明。
3.在program块中数据类型、数据声明、函数和任务的定义均与module块类似。
4.一个设计中可以包含多个program块,这些program块既可以通过端口交互,也可以相互独立,这一点与module块也是相似的。
不同之处:
1.一个program块内部不能包含任何其他的always块、用户自定义原语( UDP)、module块、接口(interface)、或者program块
2.一个module块中可以定义program块,但一个program块中却不能定义module块
3.一个program块可以调用其他module块或者program块中定义的函数或任务,但是一个module块却不能调用其他program块中定义的任务或函数。
关于Program:
将验证平台与待测设计分隔开。program block的执行语句在re-active/re-inactive/re-NBA区域执行,采样值则是在preponed或postponed区域。module的话执行语句在active/inactive/NBA区域执行,re系列的区域都是SV新加的,在同一time slot中,是在active系列区域后的,这样就可以避免出现一些竞争。这样可以在不同的时间域运行,减少了竞争现象。同时program主用于执行测试案例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix