modelsim仿真学习笔记 modelsim仿真学习笔记1、 仿真的目的在软件环境下验证电路的行为和设想中的是否一致。2、 仿真的分类a) 功能仿真在RTL层进行的仿真其特点是不考虑构成电路的逻辑和门的时间延迟着重考虑电路在理想环境下的行为和设计构想的一致性b) 时序仿真又称为后仿真是在电路已经映射到特定的工艺环境后将电路的路径延迟和门延迟考虑进对电路行为的影响后来比较电路的行为是否还能够在一定条件下满足设计构想。3、 功能仿真的目的a) 设计出能工作的电路因此功能仿真不是一个孤立的过程其和综合、时序分析等形成一个反馈工作过程只有这个过程收敛各个环节才有意义。而孤立的功能仿真通过是没有意义的如果在时序分析过程中发现时序不满足需要更改代码则功能仿真必须从新进行。因此正确的工作流程是b)代码排错功能仿真是代码排错的最重要的手段之一。4、 modelsim的高级功能Code Coveragea) 代码覆盖率是验证激励是否完备检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95以上才能基本认为代码在逻辑上是通过质量控制的才能进入综合步骤b) 代码覆盖率是保证高质量代码的必要条件但却不是充分条件。即便代码行覆盖和分支覆盖都能够达到100也不能肯定的说代码已经得到100的验证。除非所有的分支覆盖都能够进行组合遍历。c) 在大的设计中如果想通过一个激励就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到另外一方面是因为如果在一个激励中包括了各种情况整个仿真过程的速度会随着计算机内存的消耗而成线性下降效率低下。d) 通常的做法是每一个激励只验证电路功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法中代码覆盖率更显重要因为可以通过代码覆盖率来控制激励对功能的覆盖程度。e) modelsim的Code coverage不但能记录各个激励对代码的“行覆盖”和“分支覆盖”而且能够将各个激励的覆盖记录进行合并做到对覆盖率的全面监测。f) 演示。。。。。。。。。。。。。。。。。。。。。。。。5、 Debussy仿真辅助调试工具a) 看仿真波形无疑是代码排错的主要手段在 Modelsim中的波形窗口在大的仿真中有如下缺陷a.只能显示出在仿真前设置好的信号波形如果在仿真完成后想观察其他的信号唯一的办法就是添加需要观察的信号从新开始仿真。b、波形只是简单显示和代码没有对应和关联关系不能借助波形直观的调试代码c、如果观察的信号太多由于其是实时全信号显示在仿真时间较长后仿真速度明显减慢屏幕的刷新速度也明显减慢。b) 这些缺点不单Modelsim有其他的优秀仿真工具也有而且历史由来以久因此很早人们就提出了“先转储后观察调试”方法在verilog语言中以$dumpXXX开头的系统函数就是做波形转储用的。就是先将波形先存在文件中等仿真结束后在调出来显示观察和调试。c) 这种观察功能很多EDA工具都有并不足为奇但Debussy的独特之处在于它不但能显示波形而且还能非常智能化的将波形中的任何一个变化和引起这个变化的RTL代码联系起 来使代码排错的效率大幅度提高。在原来IC所的一个大型项目中由于引进了Debussy使调试效率至少提高了3倍。d) 先介绍verilog语言中的转储系统函数。其实转储函数就是一种典型的文件操作函数最为常用的为一下几种i. $dumpfile(“filename.vcd”)打开一个文件准备转储波形数据ii. $dumpall转储所有信号的波形数据iii. $dumpvars转储层次信号iv. $dumpon开始转储v. $dumooff停止转储e) 演示Modelsim转储功能f) 演示Debussy工具中的辅助调试功能6、 SDF反标注a) SDF是一种标准延时格式文件用于记录综合布线后电路的线延迟和门延迟信息。如果在仿真输出的波形上叠加上这些信息将使波形更接近实际。b) 演示。。。。。。。。。。。。。。。。。。。。。。。。。。c) 但是由于电路已经被综合布线过原来的RTL代码的逻辑层次和代码命名都已经发生变化即便看到波形也很难直接对应到RTL代码上因此后仿真来确定电路是否符合要求的方法已经逐渐被新的方法所代替。 另外还有后仿真速度缓慢也是一个主要原因。新的方法是时序分析、静态时序分析、形式验证。7、 一个重要的观念电路的性能取决于电路构思和Coding Stylea) 经常有人说“不要用写软件的方法去写硬件”或者说“要用朴实无华的语言风格来写代码”这些说法只是描述了事务的表明现象并没有真正指出问题的真正症结所在b) RTL描述语言虽然是一种语言但它是描述RTL的语言所以其着眼点是电路实现而非逻辑推理RTL就是电路在寄存器层的一种表现虽然已经不像门级那样具体但也没有抽象到逻辑层。c) 因此写代码的真正正确的方法是在大脑中构思出电路的结构然后用代码把它点滴不漏的表现出来而不是先写一些只是逻辑上行得通的代码等待工具帮你综合成能实现的电路。工具永远只能做繁重而低级的工作至少要比人的工作低级这是未来 几百年内不会改变的公理。因此如果你的电路性能不好说明你对如何实现电路还没有清晰的思路。d) 不要只使像通过提高器件的速度等级来使你的电路达到要求恰恰相反正确的方法是如果你的电路在第一次综合后已经有80的路径满足时间要求了那么就不要想着用更快的器件而应该考虑改变你的电路拓扑结构和设计构架来使另外的 20逐渐达到要求。温馨提示明德扬2023推出了全新课程——逻辑设计基本功修炼课降低学习FPGA门槛的同时增加了学习的趣味性并组织了考试赢积分活动[http://www.mdy-edu.com/ffkc/415.html]点击→了解课程详情☝高效小白零基础入门好帮手【FPGA刷题】逻辑基本功修炼课碎片休闲时间快速掌握了解FPGA 巩固知识点明德扬除了培训学习还有项目承接业务擅长的项目主要包括的方向有以下几个方面MIPI视频拼接2. SLVS-EC转MIPI接口(IMX472 IMX492)3. PCIE采集系统4. 图像项目5. 高速多通道ADDA系统6. 基于FPGA板卡研发7. 多通道高灵敏电荷放大器8. 射频前端明德扬 FPGA 产品官网https://www.mdyfpga.cn/

相关新闻

最新新闻

LTspice仿真DDR信号失真:从反射、振铃到端接设计的直观解析

LTspice仿真DDR信号失真:从反射、振铃到端接设计的直观解析

这次我们来看一个硬件工程师和信号完整性工程师都会遇到的经典问题:DDR信号为什么失真?单纯看理论公式和眼图模板可能不够直观,这篇文章将带你通过LTspice仿真,亲手“搓”出一个DDR信号的波形,从时域角度直接观察信号失…

2026/8/21 4:47:21
基于AI辅助的无损数字水印技术:原理、Python实现与工程实践

基于AI辅助的无损数字水印技术:原理、Python实现与工程实践

在数字内容创作与版权保护领域,如何在不影响原始内容质量的前提下,嵌入可追踪的“指纹”一直是个技术难题。传统的数字水印技术,无论是用于图像、音频还是文本,往往面临着“保真度”与“鲁棒性”的权衡——嵌入的信息越多、越强&a…

2026/8/21 4:47:21
Java面试技巧:技术深度与幽默表达的平衡艺术

Java面试技巧:技术深度与幽默表达的平衡艺术

1. 面试场景还原:当技术深度遇上幽默表达 在互联网大厂的Java技术面试中,常会出现两类典型人物:严谨的技术面试官和擅长用幽默化解紧张的程序员。这种碰撞往往能产生意想不到的化学反应——面试官用JVM内存模型和HashMap红黑树变面试图击穿候…

2026/8/21 4:47:21
前沿部署工程师修炼指南:100个实战项目打造系统工程能力

前沿部署工程师修炼指南:100个实战项目打造系统工程能力

最近和几位负责技术招聘的朋友聊天,他们提到一个现象:现在面试“部署工程师”或“运维开发”这类岗位,候选人简历上“熟悉 Docker、Kubernetes、CI/CD”几乎成了标配。但真到面试或实操环节,很多人对“部署”的理解,还…

2026/8/21 4:47:21
高级Java工程师简历撰写指南与技术亮点解析

高级Java工程师简历撰写指南与技术亮点解析

1. 高级Java工程师简历的核心要素解析作为在Java领域摸爬滚打十年的老手,我见过太多"技术大牛"因为简历表达不当错失机会。高级Java工程师的简历不是简单的工作经历堆砌,而是技术实力的战略呈现。以下是经过实战验证的黄金结构:1.1…

2026/8/21 4:47:21
数学建模竞赛解题框架构建:从需求拆解到模型落地的实战指南

数学建模竞赛解题框架构建:从需求拆解到模型落地的实战指南

1. 项目概述:从“思路”到“解题框架”的实战转化 每年一到数学建模竞赛季,无论是“认证杯”还是“美赛”、“国赛”,最让参赛者头疼的往往不是题目本身,而是如何从一片混沌的赛题描述中,快速、准确地抓住核心&#xf…

2026/8/21 4:42:21