SystemVerilog学习之路(1)— 搭建开发环境和HelloWorld

SystemVerilog学习之路(1)— Questasim下载安装和HelloWorld

一、前言

Questasim是由Mentor Graphics公司推出的一款非常好用且功能强大的高级仿真模拟工具,该软件基于标准的单核验证引擎,集成了一个HDL模拟器,一个约束求解器,一个判断引擎,功能覆盖,以及一个通用的用户界面。Questasim可以用于各类产品的仿真模和调试等操作,可以大大地降低复杂FPGA和SOC设计的风险。

参考:Questasim10.6c下载安装教程
Questasim的基本运用

二、Questasim下载

可以使用上面参考文章的链接下载:https://pan.baidu.com/s/1Dl_X2lVWv8gz9s_i0KPj2w 提取码:qd1h

三、Questasim安装

下载好后双击questasim-win64-10.6c.exe文件开始安装
在这里插入图片描述
点击下一步
在这里插入图片描述
选择我们需要安装的路径,然后点击下一步
在这里插入图片描述
点击同意其许可协议
在这里插入图片描述
然后我们等待其安装完成,然后会询问是否在桌面创建快捷方式,点击【是】即可,接下来还有询问添加环境变量的,同样选【是】
在这里插入图片描述
接着注意询问是否安装【Key Driver】,这里我们要选择【否】
在这里插入图片描述
接着点击【完成】即可
在这里插入图片描述

三、Questasim许可

安装好后解压得到文件夹
在这里插入图片描述
将该文件夹下的四个文件复制
在这里插入图片描述
粘贴到安装目录的【win64】文件夹下
在这里插入图片描述
接着就是将该文件夹下的【mgls64.dll】文件的只读属性去除掉
在这里插入图片描述
然后双击运行刚刚复制过来的【patch_dll.bat】文件,等待其生成【LICENSE.TXT】文件
在这里插入图片描述
然后将该文件保持到【win64】文件夹下,文件名不变
在这里插入图片描述
接下来我们要添加一个环境变量,变量名为MGLS_LICENSE_FILE,变量值即为【LICENSE.TXT】文件的路径,我这里是D:\software\questasim64_10.6c\win64\LICENSE.TXT在这里插入图片描述
点击确定保存好后,就可以双击桌面图标打开软件了
在这里插入图片描述
如果不能打开的话,就需要重启一下电脑,或者把安装手册里的其他环境变量添加上
在这里插入图片描述

四、新建Hello工程

点击【File】->【New】->【Project…】新建一个工程
在这里插入图片描述
然后输入工程名称和存放路径
在这里插入图片描述
点击新建一个sv文件
在这里插入图片描述
输入文件名称,选择文件类型为SystemVerilog
在这里插入图片描述
然后我们可以看到helloworld.sv问价已经新建好了,然后该新建窗口可以关闭了
在这里插入图片描述
双击就可以打开编辑器了,然后我们在编辑器里编写代码如下所示
在这里插入图片描述
编辑好后我们右键【Compile】->【Compile Selected】进行编译
在这里插入图片描述
编译成功后可以看到其状态已经从问号【❓】变成了对勾【√】
在这里插入图片描述
接着就可以在库里面找到我们编写的这个模块了
在这里插入图片描述
接着我们右键选择【Simulate without Optimization】开始仿真
在这里插入图片描述
我们在软件下方【Transcript】栏的命令行中输入run命令,然后按回车执行
在这里插入图片描述
执行效果如下所示,Hello World成功打印
在这里插入图片描述

五、运行时间

当我们执行了run命令后,当前时间已经变成了100ns
在这里插入图片描述
那这个100ns是怎么来的呢,这是因为我们在时间设置栏里单次运行时间就是100ns,我们可以将其修改为500ns
在这里插入图片描述
接着再次输入run命令,可以看到,当前时间已经变成了600ns,可见已经运行了500ns
在这里插入图片描述
我们执行run -all命令,可以发现当前时间并没有改变,这是因为仿真器检测到当前已经没有任何激励或者变化了,所以仿真器认为没有跑下去的必要了
在这里插入图片描述
我们修改代码,加一个延时等待在里面,注意编辑完成后要保存

module tb;
	initial begin
		#10us;
		$stop();
	end

	initial begin
		$display("Hello World! I am William.");
	end
endmodule

然后重新编译,再次仿真运行,先执行一个run命令,可以看到,运行了500ns
在这里插入图片描述

再执行一个run -all命令,可以看到,运行到10us处,然后就退出了
在这里插入图片描述

六、软件优化使用

1、缩进优化

参考:modelsim SE-64 10.4的tab缩进设置
刚才我们看到,我们编写的代码使用【TAB】键缩进的时候,是以8字节缩进的,这对于我们来说是不习惯的,点击【Tools】->【Edit Preferences…】打开参数设置界面
在这里插入图片描述
然后我们点击【By Name】,在【Source】下找到【tabs】
在这里插入图片描述
双击该栏,将其改为4,然后保存退出即可
在这里插入图片描述
可以看到,我们编辑器里的缩进格式都变成4字节了
在这里插入图片描述

七、附录

SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 枚举类型 23 字符串 25 1.2 过程块和方法 27 initial和always 30 function逻辑电路 33 task时序电路 35 动态 静态变量 39 1.3 设计例化和连接 45 第二章 验证的方法 393 动态仿真 395 静态检查 397 虚拟模型 403 硬件加速 405 效能验证 408 性能验证 410 第三章 SV组件实现 99 3.1 接口 100 什么是interface 101 接口的优势 108 3.2 采样和数据驱动 112 竞争问题 113 接口中的时序块clocking 123 利于clocking的驱动 133 3.3 测试的开始和结束 136 仿真开始 139 program隐式结束 143 program显式结束 145 软件域program 147 3.4 调试方法 150 第四章 验证的计划 166 4.1 计划概述 166 4.2 计划的内容 173 4.3 计划的实现 185 4.4 计划的进程评估 194 第五章 验证的管理 277 6.1 验证的周期检查 277 6.2 管理三要素 291 6.3 验证的收敛 303 6.4 问题追踪 314 6.5 团队建设 321 6.6 验证的专业化 330 第六章 验证平台的结构 48 2.1 测试平台 49 2.2 硬件设计描述 55 MCDF接口描述 58 MCDF接口时序 62 MCDF寄存器描述 65 2.3 激励发生器 67 channel initiator 72 register initiator 73 2.4 监测器 74 2.5 比较器 81 2.6 验证结构 95 第七章 激励发生封装:类 209 5.1 概述 209 5.2 类的成员 233 5.3 类的继承 245 三种类型权限 protected/local/public 247 this super 253 成员覆盖 257 5.4 句柄的使用 263 5.5 包的使用 269 第八章 激励发生的随机化 340 7.1 随机约束和分布 340 权重分布 353 条件约束 355 7.2 约束块控制 358 7.3 随机函数 366 7.4 数组约束 373 7.5 随机控制 388 第九章 线程与通信 432 9.1 线程的使用 432 9.2 线程的控制 441 三个fork...join 443 等待衍生线程 451 停止线程disable 451 9.3 线程的通信 458 第十章 进程评估:覆盖率 495 10.1 覆盖率类型 495 10.2 功能覆盖策略 510 10.3 覆盖组 516 10.4 数据采样 524 10.5 覆盖选项 544 10.6 数据分析 550 第十一章 SV语言核心进阶 552 11.1 类型转换 552 11.2 虚方法 564 11.3 对象拷贝 575 11.4 回调函数 584 11.5 参数化的类 590 第十二章 UVM简介 392 8.2 UVM简介 414 8.3 UVM组件 420 8.4 UVM环境 425
### 回答1: SystemVerilog是一种硬件描述语言,用于设计和验证数字电路系统。它是从Verilog语言发展而来的,并扩展了其功能。 要搭建SystemVerilog环境,需要以下步骤: 1. 安装仿真工具:为了能够编译和仿真SystemVerilog代码,需要选择一款支持SystemVerilog的仿真工具。例如,常用的仿真工具有ModelSim、VCS等。按照仿真工具提供的安装指引进行安装。 2. 创建项目:使用仿真工具创建一个新项目,为该项目选择一个合适的目录,并命名该项目。 3. 添加文件:在项目中添加SystemVerilog文件。SystemVerilog文件通常以".sv"为后缀。这些文件包含了模块、任务、函数的定义,以及对它们的调用。 4. 编译代码:使用仿真工具提供的编译选项编译SystemVerilog代码。编译可以通过命令行或者图形界面完成。 5. 仿真验证:对编译后的代码进行验证。通过仿真工具提供的仿真选项,可以运行仿真并观察模块的行为和信号波形。仿真验证过程主要是为了检查设计是否满足规格要求。 6. 优化和修复:如果在仿真验证过程中发现了问题或者性能瓶颈,需要对SystemVerilog代码进行优化和修复。这可能涉及到对模块的结构或者信号传递方式进行修改。 7. 生产环境:一旦系统验证通过,可以将SystemVerilog代码用于实际的产品开发和制造。这可能需要将代码集成到其他工具和流程中,例如综合工具、布局和布线工具等。 总之,SystemVerilog搭建需要安装仿真工具,创建项目,添加文件,编译代码,进行仿真验证,并最终用于实际的产品开发和制造。这些步骤可以根据具体的需求和工具进行调整和扩展。 ### 回答2: SystemVerilog是一种硬件描述语言,广泛用于数字电路设计和验证。搭建SystemVerilog环境通常包括以下步骤: 1. 安装SystemVerilog编译器:首先需要从可靠的来源下载和安装合适的SystemVerilog编译器,例如Mentor Graphics的ModelSim、Cadence的Xcelium、Synopsys的VCS等。根据操作系统的不同,可能需要执行一些额外的配置步骤。 2. 设置设计环境:在搭建SystemVerilog环境之前,需要确定所使用的设计工具版本和流程。然后,需要设置环境变量和路径,以便系统能够识别和访问到相关的安装文件和库。 3. 编写SystemVerilog代码:使用任何文本编辑器或集成开发环境(IDE),编写SystemVerilog代码。SystemVerilog支持模块化设计,可以将设计分割为多个模块,并使用模块之间的端口和信号进行通信。 4. 进行仿真:通过调用SystemVerilog编译器,将编写的代码编译成可执行文件。然后,使用仿真工具加载可执行文件,并通过集成开发环境或命令行执行仿真。仿真可以验证设计的功能和时序,并进行排错和调试。 5. 进行验证:在仿真阶段,可以添加验证代码来验证设计是否符合规范和预期行为。这可能包括自动化的测试用例生成、功能覆盖率分析和时序验证。 6. 综合和布局布线:在验证通过后,可以使用综合工具将SystemVerilog代码综合成门级电路描述,然后使用布局布线工具将门级电路描述映射到实际的物理芯片布局。 总的来说,搭建SystemVerilog环境需要安装合适的编译器、设置设计环境、编写SystemVerilog代码、进行仿真和验证、综合和布局布线等步骤。这些步骤组合起来,可以帮助工程师开发和验证高质量的电路设计。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值