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/10/16 15:23:59 阅读更多 →
告别单调代码: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/10/17 6:31:52 阅读更多 →
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/10/16 4:09:01 阅读更多 →

最新新闻

Hermes Agent接入飞书:TaoToken统一Key打通消息与任务流

Hermes Agent接入飞书:TaoToken统一Key打通消息与任务流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:13:21 阅读更多 →
Windows 下 Neo4j 5.25.1 安装配置与避坑指南

Windows 下 Neo4j 5.25.1 安装配置与避坑指南

简介:Neo4j社区版5.25.1的Windows安装包,面向在Windows环境下开发图数据库应用的开发者、技术团队及图数据库初学者。它解决的是复杂关联数据的高效存储与查询问题,适用于社交网络分析、推荐系统、欺诈检测、知识图谱构建等场景,社…

2026/10/18 23:13:21 阅读更多 →
Sharpe为负也值得学:读懂ml-quant-trading-synthetic-mlp的metrics.json回测指标与成本拖累

Sharpe为负也值得学:读懂ml-quant-trading-synthetic-mlp的metrics.json回测指标与成本拖累

【免费下载链接】ml-quant-trading-synthetic-mlp 项目地址: https://ai.gitcode.com/hf_mirrors/dddyym/ml-quant-trading-synthetic-mlp 点击查看 免费下载 新手第一次看量化交易项目的回测报告,最常见的困惑是:为什么这个模型的夏普比率&…

2026/10/18 23:13:21 阅读更多 →
大模型做视频的真相:五步流水线从代码到成片

大模型做视频的真相:五步流水线从代码到成片

1. 先厘清一个被标题带偏的认知:模型不产视频,产的是"可渲染的中间态"很多人第一次看到"用大模型做视频"这个说法,脑子里浮现的画面是:敲一句话,模型吐出一个 mp4 文件。我一开始也这么以为&#…

2026/10/18 23:13:21 阅读更多 →
DeepSeek Harness 插件化底座:从零搭建可扩展 Agent 系统

DeepSeek Harness 插件化底座:从零搭建可扩展 Agent 系统

1. 从"模型即产品"到"模型即底座"的认知转变过去两年,绝大多数人接触大模型的方式,是打开一个对话框,输入问题,等待回答。这种交互模式把模型本身当成了最终产品——你用的是"某个模型"&#xff0c…

2026/10/18 23:13:21 阅读更多 →
SINUMERIK STEP 7 Toolbox V16.0 配置加速器实战指南

SINUMERIK STEP 7 Toolbox V16.0 配置加速器实战指南

简介:本资源是西门子SINUMERIK数控系统专用编程工具箱SINUMERIK STEP 7 Toolbox V16-0的完整安装包,面向自动化工程师、数控系统调试人员及工业控制领域技术人员,用于高效开发、仿真与调试SINUMERIK平台下的PLC逻辑与运动控制程序。压缩包共1…

2026/10/18 23:12:20 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →