VCS:两步法的仿真流程
相关阅读VCShttps://blog.csdn.net/weixin_45791458/category_12828763.html?spm1001.2014.3001.5482两步法仅支持Verilog和SystemVerilog的设计。使用两步法仿真设计涉及两个基本步骤编译(Compilation)仿真(Simulation)编译阶段(Compilation)编译是仿真设计的第一步。在此阶段VCS将构建实例层次结构并生成一个二进制可执行文件simv该文件稍后用于仿真。在这个阶段可以选择以优化模式或调试模式来展开设计。仿真的运行时性能取决于你选择的模式和仿真过程中所需的灵活性级别建议在确保设计正确性之前使用完整调试模式或部分调试模式然后切换到优化模式。优化模式也称为批处理模式能获得最佳的编译时间和运行时性能通常在进行回归测试或不需要广泛的调试功能时使用。调试模式下也称为交互模式通常是在开发周期的初期阶段或者在你需要更多调试功能或工具来调试设计问题时使用。在此模式下获得的不是总体最佳性能但通过使用某些编译时选项可以将设计编译为完整调试模式或部分调试模式从而在调试模式下获得局部最佳性能。事实上VCS两步法中的编译就好像是三步法中的分析展开的结合与此不同的是三步法中不会将中间文件保存在逻辑库中。使用VCS使用VCS的语法如下% vcs [compile options] Verilog_files常用的命令行选项和参数-h或-help列出了最常用的编译时和运行时选项的描述。-ID返回了一些有用的信息例如VCS版本和构建日期、VCS编译器版本与VCS版本相同、以及你的工作站名称、平台和主机ID用于授权。-v filename指定一个库文件在所有源文件的编译结束后如果编译单元内存在未解析的设计元素将继续在库文件中进行查找多个-v选项指定的库文件是从左至右进行查找的如有必要。有关编译单元的相关知识见下面这篇博客。Verilog基础八种命名空间https://blog.csdn.net/weixin_45791458/article/details/142132358?sharetypeblogdetailsharerId142132358sharereferPCsharesourceweixin_45791458spm1011.2480.3001.8118下面将以一个例子说明该选项的作用。// 例1 // 文件top.v module top(); hello1 i_hello1(); hello i_hello(); endmodule // 文件hello.v module hello(); initial $display(This is hello.v); endmodule // 文件hello1.v module hello1(); hello2 i_hello2(); endmodule module nihao(); initial $display(This is nihao); endmodule // 文件hello2.v module hello2(); initial $display(This is hello2.v); endmodule% vcs -full64 top.v hello.v -v hello1.v -v hello2.vVCS将先后编译top.v和hello.v此时编译单元中含有模块top和hellohello1模块是未解析的。随后从左至右依次编译-v选项指定的库文件首先编译hello1.v在文件中找到了hello1模块的定义将该模块加入编译单元中此时编译单元中含有模块top、hello和hello1但hello1模块内例化了hello2模块而此时编译单元内不含该模块hello2模块被认为是未解析的注意nihao模块不会加入编译单元中因为它此时没有被编译单元中的任何模块例化或者说它并不需要解析这点与源文件不同源文件会无条件将所有设计元素都加入编译单元。由于存在未解析的模块继续编译hello2.v在文件hello2.v中找到了hello2模块的定义将该模块加入编译单元中。-y directory指定一个库目录在所有源文件的编译结束后如果编译单元内存在未解析的设计元素在库目录中查找与实例中的设计元素同名的文件多个-y选项指定的库目录是从左至右进行查找的如有必要。-y选项和-v选项的地位是相同的例如对于下面的命令查找顺序是首先在hello1.v中查找模块hello1的定义然后在当前目录下查找文件hello2.v在其中查找模块hello2的定义。% vcs -full64 top.v hello.v -v hello1.v -y ./libextextension指定仅在库目录中搜索具有指定文件名扩展名的文件默认没有后缀可以使用加号()分隔多个扩展名需要注意的是添加文件扩展名的顺序并不表示搜索的顺序。incdirdirectory指定编译指令include中文件搜索的额外目录优先级最低可以指定多个目录每个路径名称之间用加号()分隔多个目录或多个incdir选项会从左到右进行搜索在编译指令中使用绝对路径时该选项是没有意义的。liborderlibrescan使用一个例子可以说明这两个选项的作用。// 例2 // 文件top.v module top(); hello1 i_hello1(); endmodule // 文件hello1.v module hello1(); hello2 i_hello2(); endmodule module nihao(); initial $display(This is nihao in hello1.v ); endmodule // 文件hello2.v module hello2(); initial $display(This is hello2.v); nihao i_nihao(); endmodule // 文件nihao.v module nihao(); initial $display(This is nihao.v); endmodule% vcs -full64 top.v -v hello1.v -v hello2.v -v nihao.v和例1一样在hello1.v被编译后模块nihao不会加入编译单元中 但在编译hello2.v时出现了一个未解析的模块nihaovcs继续编译nihao.v并在其中找到了模块nihao的定义这是默认的行为也是liborder选项的作用即保证搜索的顺序如果nihao.v中还是找不到模块nihao的定义会重新回到hello1.v并开始新的一轮搜索。如果使用librescan选项一旦发现有未解析的模块就会重新回到hello1.v并开始新的一轮搜索此时会在hello1.v中找到模块nihao的定义而不是在nihao.v中。这个选项同时会影响-v和-y选项指定的库文件和库目录。-full64启用 64 位模式下的编译和仿真。-file filename指定一个包含Verilog源文件和vcs命令选项列表的文件比-f选项更加强大。该文件内的源文件和选项按照其在文件中出现的顺序处理多个-file选项指定的文件是从左至右进行处理的。-R在生成可执行文件后立刻执行它。-o name指定生成的可执行文件的名字默认为simv。-pvalueparameter_hierarchical_namevalue将指定的参数更改为指定的值。-parameters filename将文件中指定的参数更改为文件中指定的值文件中一行的语法如下assign value path_to_parameter参数的路径类似于层次标识符只是使用斜杠(/)而不是句点作为分隔符。有关层次标识符的相关内容见下面的博客。Verilog基础层次化标识符的使用https://chenzhang.blog.csdn.net/article/details/143133320?spm1001.2014.3001.5502-notice启用详细的诊断消息。-q静默模式不显示所有信息例如关于VCS使用的C编译器、VCS正在解析的源文件、顶层模块或指定的时间尺度的消息。-V详细输出模式VCS在运行C编译器、汇编器和链接器时会打印它执行的命令。-l filename指定一个文件VCS将在其中记录编译过程中的消息。如果还使用了-R选项VCS将在同一个文件中记录来自编译和仿真的消息。definemacro定义任意个文本宏可以覆盖源代码中的宏定义可以使用加号()连接多个宏定义。-top top_module指定一个顶层模块默认情况下VCS会将所有没有被例化过的模块作为顶层模块并执行编译如果使用VCS三步法则需要显式指定顶层模块。Verilog_files不属于任何选项的参数指定了源文件的名字从左至右进行处理。仿真阶段(Simulation)在编译阶段VCS使用生成的中间文件创建一个二进制可执行文件simv使用simv来运行仿真。根据设计的编译方式可以使用以下两种模式运行仿真调试模式也称为交互模式优化模式也称为批处理模式调试模式在设计周期的初始阶段可以在调试模式包括交互调试模式和后处理调试模式下编译设计。在此阶段用户需要使用图形用户界面(GUI)或命令行来调试设计问题。要使用GUI进行调试可以使用Verdi要使用命令行接口进行调试可以使用统一命令行接口。注意要在调试模式下仿真设计包括使用fsdbDumpfile()系统函数导出波形请使用-debug_accessr、-debug_accessall选项编译设计。优化模式当大多数设计问题已解决时可以在优化模式也称为批处理模式下编译设计。在此阶段可以实现更好的性能以最小的调试能力运行回归测试。常用的运行时选项使用以下命令行来仿真设计% simv_executable [runtime_options]-gui[verdi|dve]指定一个GUI进行调试如果不指定参数默认表示启动Verdi进行调试前提是设置了VERDI_HOME环境变量。-verdi指定启动Verdi进行调试前提是设置了VERDI_HOME环境变量。-ucli指定以UCLI模式启动进行调试。

相关新闻

通义千问大模型调优

通义千问大模型调优

一、什么是大模型调优?​​ ​​大模型调优​​ 指的是通过一系列技术和方法,调整或影响一个大语言模型的行为和输出,使其更契合特定任务、领域或风格需求的过程。简单来说,就是​​“教”一个通用的、知识渊博的模型&#xff0c…

2026/7/27 18:14:48 阅读更多 →
告别单调代码:vim-javascript-syntax如何实现括号、运算符与DOM关键词高亮

告别单调代码:vim-javascript-syntax如何实现括号、运算符与DOM关键词高亮

告别单调代码:vim-javascript-syntax如何实现括号、运算符与DOM关键词高亮 【免费下载链接】vim-javascript-syntax Enhanced javascript syntax file for Vim 项目地址: https://gitcode.com/gh_mirrors/vi/vim-javascript-syntax 作为一名Vim编辑器用户&am…

2026/7/27 18:14:48 阅读更多 →
3小时精通ESP32智能小车:从零构建你的第一台自主机器人

3小时精通ESP32智能小车:从零构建你的第一台自主机器人

3小时精通ESP32智能小车:从零构建你的第一台自主机器人 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 还在为智能机器人项目的高昂成本和技术门槛感到困扰吗&…

2026/7/27 18:13:48 阅读更多 →

最新新闻

3分钟搞定B站视频下载:大会员4K高清与充电专属内容一网打尽

3分钟搞定B站视频下载:大会员4K高清与充电专属内容一网打尽

3分钟搞定B站视频下载:大会员4K高清与充电专属内容一网打尽 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法保存…

2026/7/27 19:20:08 阅读更多 →
3分钟告别APA引用混乱:Word专业参考文献样式一键部署指南

3分钟告别APA引用混乱:Word专业参考文献样式一键部署指南

3分钟告别APA引用混乱:Word专业参考文献样式一键部署指南 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition APA 7th Edition for Microsoft W…

2026/7/27 19:20:08 阅读更多 →
OpenCore Legacy Patcher:3步让你的老Mac免费运行最新macOS系统

OpenCore Legacy Patcher:3步让你的老Mac免费运行最新macOS系统

OpenCore Legacy Patcher:3步让你的老Mac免费运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方"抛弃…

2026/7/27 19:20:08 阅读更多 →
委托鉴权 · 链式编排 · 六位插槽 —— 插件自定义鉴权的架构跃迁

委托鉴权 · 链式编排 · 六位插槽 —— 插件自定义鉴权的架构跃迁

委托鉴权 链式编排 六位插槽 —— 插件自定义鉴权的架构跃迁 在构建现代微服务与插件化系统时,鉴权(Authentication & Authorization)往往是最棘手却又最核心的环节。传统的单一鉴权模式已无法满足灵活多变的需求:不同插件可…

2026/7/27 19:20:08 阅读更多 →
2026年好用的IP数字人平台怎么选:短视频、老板IP与批量内容选型指南

2026年好用的IP数字人平台怎么选:短视频、老板IP与批量内容选型指南

2026年好用的IP数字人平台怎么选:短视频、老板IP与批量内容选型指南数字人平台的选择已经从“能不能让一张脸说话”,转向“能不能长期稳定地生产内容”。对老板IP、知识博主和企业团队来说,形象克隆只是第一步。后面还要处理选题、文案、声音…

2026/7/27 19:20:08 阅读更多 →
h2spec高级技巧:如何使用Dryrun模式预览和筛选测试用例

h2spec高级技巧:如何使用Dryrun模式预览和筛选测试用例

h2spec高级技巧:如何使用Dryrun模式预览和筛选测试用例 【免费下载链接】h2spec A conformance testing tool for HTTP/2 implementation. 项目地址: https://gitcode.com/gh_mirrors/h2/h2spec h2spec是一款强大的HTTP/2协议一致性测试工具,帮助…

2026/7/27 19:19:08 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻