Modelsim的仿真之路(基础仿真流程)
缓了一段时间,该接着开始系列记录了,这一次将开始ModelSim的仿真之路,对于学FPGA或者从业于该行业的人来说,仿真是必不可免的一件事,而仿真的工具也不少,不过感觉ModelSim推荐的指数要高很多,或许和它优化的能力有关吧~
在ModelSim中对一个设计进行仿真有几种模式,基本的仿真、工程形式的仿真,还有使用多个库进行仿真,逐个进行介绍下使用步骤;
1、创建工作库
在ModelSim中,所有设计都被编译到一个库中。通常通过创建名为“work”的工作库来启动一个新的仿真,这是编译器使用的默认库名,作为已编译设计单元的目标库;
2、编译设计文件
创建工作库之后,就要将设计模块编译到其中,编译后的库格式支持在多个平台上使用,比如在Linux上编译了,然后可以不需要重新编译,就直接移到Windows上用,
3、载入且运行仿真
编译完成后,选择顶层的激励文件来加载仿真器,载入完成后,仿真界面将处于初始状态,再Run一下就可以开始仿真了~
4、对仿真结果进行Debug
Debug就是在仿真的时候,如果发现结果不是你想要的,就一步步调试了,当然,是可以借用工具滴!
1、创建工程
2、添加设计文件到工程
3、编译设计文件
4、载入且运行仿真
5、对仿真结果进行Debug
可以看出来,工程形式的仿真和基础仿真很相似,多了个工程来对设计文件进行管理,其中,工作库在工程创建好后就自动生成了,如果没有使用close来关闭工程,下次启动ModelSim时,工程还会处于打开状态,都不需要再去麻烦的找了。
除了工作库,ModelSim还有一种资源库的用法,和工作库有个明显的不同,就是工作库是处于设计文件的编译目录下,而资源库则可以处于其他位置,然后链接后就可以使用,这个资源库可以是第三方的(比如Vivado编译的库,然后在ModelSim里使用)
多个库的使用步骤再简单总结下
1、创建工程
2、添加激励文件到工程
3、编译设计文件
4、链接资源库
5、载入且运行仿真
6、对仿真结果进行Debug
如果没有使用工程的形式,就直接创建工作库替换步骤1和2就好了。
根据上一部分的基础仿真步骤来正式踏入仿真之路~
先准备好要仿真的文件,将文件放到自己想要的路径下(不要出现中文字符,不然要出问题),准备好之后,打开ModelSim,软件安装的版本可以根据自己情况来装,我这装的是:ModelSim DE 16.C(也还装了另外的版本),至于为什么装这个版本,看此文
1、软件打开后,界面如下(有弹窗的话,直接Close掉就好了)

2、将工作路径改变到要准备好的文件路径下(File > Change Directory)


直接使用TCL命令也可以,按以上操作后,也会有相应的命令出现在Transcript的窗口中。
举例:cd E:/Soft_File/Sim_File/basicSimulation
3、创建工作库(File > New > Library)

会出现一个弹窗,然后在这个窗口可以创建一个新的库,也可以映射已存在的库,库名的栏中会有个默认的值”work“,没有的话就自己输入一下。

然后OK一下,工作库就创建好了,在软件的库界面会出现一个work的选项,不过此时还处于empty的状态

观察一下work库对应的路径,会发现多了个work的文件夹(内含一个“info”的文件)以及一个modelsim.ini的文件;“info”是运行的一些信息,和work是一起的,不要随意改动它;ini那个文件则是初始文件,里头是复制的安装路径下的ini文件,然后将work库加入了库的映射中。

在 Transcript 窗口也有这两个操作的相应Tcl命令
vlib work
vmap work work
4、编译文件(Compile > Compile)
注:如果开着工程的话,该选项是灰色的,需要使用File > Close先关闭

点击后,在弹窗的文件窗口选中两个.v文件,注意左上角的Library选中的是否为work,然后点Compile进行编译

编译完后,Transcript窗口会出现编译结果,然后就可以点Done完成且关闭编译界面

这时再看work,会发现,已经是非空状态了,多了个 “+” ,点击后,出现了两个模块的名字,即刚刚编译的文件,类型为Module

5、如上图一样,选中test_counter,然后直接双击它,载入仿真界面

启动仿真还可以选中test文件,点右键,再选择 Simulate ;或者选中菜单栏上的Simulate > Start Simulation ,然后弹出以下的窗口,选择好文件,点OK也一样进入仿真界面;

仿真界面如下,这时候的界面主要由三个部分组成
1:文件层次;2:根据1中选中的模块,对模块内的变量信息(Objects)以及当前仿真状态(Processes)进行显示;3:波形窗口

如果缺了需要的,在菜单栏 View下开启对应的即可

若Wave窗口中无信号,则在1窗口中,选中模块,然后右键,点击Add Wave ,Wave中就添加对应的信号变量了

6、找到控制仿真运行的菜单,然后点 Run,或者直接在脚本窗口输入:run 100ns,也可运行仿真,时长根据自己需要设定,要注意的是,当以后变量多了,运行则会相对变慢;点 Run -All 的图标,则会一直运行,直到运行到停止的信号或者点了 Stop 那个图标


可以看到 Wave 中的信号变量运行了一段时间,接着 Restart,将状态全部复位,准备后续的演示

7、准备简单的Debug一下,先在菜单栏 View > Files ,打开文件窗口,双击counter.v

打开counter.v后,在always处点下侧边栏,会出现一个红色的点,即断点,再次单击就会变灰色,如果要移除就右键然后Remove Breakpoint

断点设好后,直接点 Run -All 的图标,会发现运行的蓝箭头停在了设置的断点处

这时候看Objects窗口的变量值,为当前停下时,各变量的值

把鼠标移到变量上,也会出现此时相应的变量与其值,和Objects的一样

或者选中某个信号,然后右键,选中 Examine

这时也会弹出对应变量的值

接着找到调试窗口,图标的含义和玩C的Debug是一样的,单步调试那些啥的

点两下Step Into,箭头就一步步的到了count的赋值处

基础仿真就讲到这了,不熟悉的话,可以自己多试几遍,对应产生的一些简单的脚本命令也可以记一下,之后直接跑命令有时候会方便些,最后菜单栏 Simulate > End Simulation 结束并退出仿真,出现提示框的话,点是就可以了(quit -sim)。

若需要对应版本的可以去公众平台自行获取,获取入口如下:
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
(本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展 是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。 如:有三个人,每个人做的不同的事物,但是是需要协作的完成。 而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
一、机器人介绍 此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接
文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就
一、系统定级信息系统运营使用单位按照等级保护管理办法和定级指南,自主确定信息系统的安全保护等级。有上级主管部门的,应当经上级主管部门审批。跨省或全国统一联网运行的信息系统可以由其主管部门统一确定安全保护等级。定级需要根据信息系统的实际情况合理定级。二、系统备案第二级以上信息系统定级单位到所在地设区的市级以上公安机关办理备案手续。省级单位到省公安厅网安总队备案,各地市单位一般直接到市级网安支队备案,也有部分地市区县单位的定级备案资料是先交到区县公安网监大队的,具体根据各地市要求来。信息系统运营、使用单位或者其主管部门应当在信息系统安全保护等级确定后30日内,到公安机关办理备案手续。三、初次测评信
目录1关系运算符2运算符优先级3关系表达式的书写代码实例:下面是面试中可能遇到的问题:1关系运算符C++中有6个关系运算符,用于比较两个值的大小关系,它们分别是:运算符描述==等于!=不等于小于>大于小于等于>=大于等于这些运算符返回一个布尔值,即true或false。例如,当x等于y时,x==y的结果为true,否则结果为false。2运算符优先级在C++中,关系运算符的优先级高于赋值运算符,但低于算术运算符。以下是关系运算符的优先级,从高到低排列:运算符描述>,,>=,关系运算符==,!=相等性运算符&&逻辑与`如果在表达式中有多个运算符,则按照优先级顺序依次进行运算。3关系表达式的书写在
一.计算机组成原理 这本书利用组合逻辑、同步时序逻辑电路设计的相关知识,从逻辑门开始逐步构建运算器、存储器、数据通路和控制器,最终集成为完整的CU原型系统,使读者从设计者的角度理解计算机部件构成及运行的基本原理,掌握软硬件协同的概念。 全书共9章,主要内容包括计算机系统概述、数据信息的表示、运算方法与运算器、存储系统、指令系统、中央处理器、指令流水线、总线系统、输入输出系统。1.计算机系统概述1.1计算机发展历程 计算机是一种能够按照事先存储的程序,自动、高速、准确地对相关信息进行处理的电子设备。1946年2月,世界上第一台电子数字计算机ENIAC(ElectronicNum