Vivado中的五种仿真模式比较

Vivado中的五种仿真模式

  在数字电路设计过程中,通常涵盖三个主要阶段:源代码编写、综合处理以及电路的实现,相应地,电路仿真的应用也与这些阶段紧密相关。根据不同设计阶段的需求,仿真可以被划分为RTL行为级仿真、综合后的门级功能仿真以及时序仿真。这样的仿真流程框架不仅适用于FPGA/CPLD的设计,而且也同样适合于集成电路(IC)的设计。

1、run behavioral simulation  行为级仿真,也是通常说的功能仿真

2、post-synthesis function simulation  综合后的功能仿真

3、post-synthesis timing simulation  综合后带时序信息的仿真

4、post-implementation function simulation  布线后的功能仿真

5、post-implementation timing simulation  布局布线后带时序信息的仿真,最接近真实的时序波形**

在这里插入图片描述
注: 如果行为仿真下面的四个模式是灰色的无法选中说明你还没有对你的文件进行综合和布局布线还未生成相应的网表和延时信息等待无法进行仿真。

模式比较

1.行为仿真(Behavioral Simulation)

  • 目的:行为仿真(功能仿真)主要用于设计的早期阶段,可以用来检查代码中的语法错误以及代码行为的正确性。在这个阶段,关注的是逻辑是否实现了预期的功能,而不是设计在实际硬件中的表现。
  • 仿真过程:不考虑时序信息、电路的实际布局或是电路的物理实现细节。它仅仅基于寄存器传输级(RTL)代码来模拟电路逻辑的行为。
  • 优缺点:优点在于仿真速度快,可以迅速迭代和验证不同的设计想法。缺点是无法捕捉到因时序、布局或是实现细节导致的问题。

2. 综合后的功能仿真(Post-Synthesis Functional Simulation)

  • 目的:在综合过程将RTL代码转换为门级网表之后进行的功能验证。仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置。
  • 仿真过程:使用综合后的网表来模拟电路的功能,可以捕获综合过程可能引入的逻辑错误。
  • 优缺点:提供了对综合过程影响的初步评估。虽然考虑了综合变化,但仍不包括时序信息。

3. 综合后带时序信息的仿真(Post-Synthesis Timing Simulation)

  • 目的:对于需要进行时序仿真的情况,综合工具可以生成SDF文件,该文件包含了综合后的设计中各个元素的延迟信息。SDF文件用于后续的时序仿真中,以确保设计满足时序要求。
  • 仿真过程:考虑了信号传播延迟和其他时序约束,仿真结果更接近真实硬件的行为。
  • 优缺点:能够发现由时序约束导致的潜在问题。仿真速度较慢,因为需要模拟更多的时序细节。

4. 布线后的功能和时序仿真

  该方式的仿真目标和进行综合之后的仿真相似,实现阶段与布线操作紧密相关,其核心目的是把综合产生的逻辑网表适配到选定的FPGA/CPLD芯片上。实现流程的关键步骤是布局与布线(Place and Route):布局负责将逻辑单元有效地映射到FPGA的内部硬件结构中,而布线则依据布局结果,使用FPGA内部的连接资源来精确地连结这些元件。时序仿真环节会把布局布线引入的延迟信息重新应用于设计网表上进行仿真,这时候的仿真包括了门级延迟和连线延迟,使得这一阶段的仿真结果最为精确,能够有效地映射出芯片在实际运行中的工作表现。

参考

RTL仿真,前仿真,后仿真的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境 代码详解 0.导入库 import torch from torch import nn from d2l import torch as d2l1.初始化数据 这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应 n_train, n_test, num_inputs, batch_size 20, 100, 200, …

Redis的安全配置有哪些建议?如何防止未授权访问?Redis的监控与告警策略是怎样的?如何及时发现并解决潜在问题?

Redis的安全配置有哪些建议?如何防止未授权访问? Redis的安全配置对于保护系统免受未授权访问和其他潜在风险至关重要。以下是一些建议的安全配置措施: 设置密码并禁用不安全的命令: 为Redis实例设置一个强密码,确保密…

鸿蒙原生应用开发-ArkTS语言基础类库多线程CPU密集型任务TaskPool

CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制处理CPU密集型任务可以提高CPU利用率&#xf…

三款.NET代码混淆工具比较分析:ConfuserEx、Obfuscar和Ipa Guard

随着.NET应用程序的广泛应用,保护知识产权和防止逆向工程的需求逐渐增长。本文将详细介绍三款知名的.NET代码混淆工具:ConfuserEx、Obfuscar和Ipa Guard,帮助读者全面了解其功能特点和应用场景。 一、ConfuserEx ConfuserEx是一个.NET代码混…

文件太大无法拷贝到u盘怎么办?可能是这个隐藏原因~

有时候我们新买的U盘,明明有64G的存储空间,怎么一个4.5G的视频想保存到U盘里会提示“文件太大”无法保存呢? 常见的U盘格式有FAT、FAT32、NTFS等,其中FAT32不支持存储单个文件体积大于4G的文件。下面教大家如何对U盘格式进行检测呢…

二开飞机机器人群发,实现自动给多个频道发送消息

频道1 频道2 二开代码部分: const CChatIdListprocess.env.CHANNEL_CHAT_ID_LIST; var channelChatIdArray CChatIdList.split(,);channelChatIdArray.forEach(function(item) {console.log(item); // 这里可以替换为您需要对数组中每个值进行的操作bot.sendM…

个人开发App成功上架手机应用市场的关键步骤

目录 1. 苹果审核和APP备案 2. APP上架操作步骤 3. 审核和发布 4. 上线工作 总结 参考资料 在当前移动应用市场竞争激烈的背景下,个人开发App如何成功上架成为开发者们必须面对的重要任务。本文将重点介绍自建App上架至手机应用市场的流程,包括苹果…

HDOJ 2078

复习时间 Problem Description 为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑。xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的平方,而复习第…

String类型详解

1. Java为何要创造String类 在C语言中,是没有String这个类型的,通常使用字符数组中存放一个个字符,再加上最后一个\0来表示/存放一个字符串.也可以使用一个字符指针指向字符串的首元素,直到遇到\0停止,再加上C语言头文件string.h中封装的函数,对于字符串的操作已经够用了. Java…

【自动化】C#下”半双工通信“读写问题说明与实例

半双工通信是一种单向通信方式,它允许数据在单一方向上传输,但不像全双工通信那样同时支持两个方向上的数据传输。在C#中,通过SerialPort类可以实现半双工通信。以下将详细说明半双工通信的读写问题,并提供一个实例。 半双工通信…

visual studio编译时,报错error MSB6006:“mt.exe”已退出,代码为31,原因及解决方案

错误 MSB6006 表示在 Visual Studio 的编译过程中,mt.exe(Microsoft Manifest Tool)执行失败,并返回了退出代码 31。mt.exe 主要用于处理 Windows 应用程序的清单文件(manifest files),这些文件…

python接口自动化正则表达式

在python接口自动化框架里面经常会用到正则表达式,主要是以下两种情况: 1,用python写一个正则表达式,实现对token数据的获取,只获取返回的cookie数据里面的accesstoken。如果对返回的cookie数据中的accesstoken进行获…

学完Python的7大就业方向,哪个赚钱最多?

“ 我想学Python,但是学完Python后都能干啥 ?” “ 现在学Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少Python的初学者,都会遇到上面的这些问题。大家都知道Python很吃香,薪资…

DNS劫持怎么预防?

DNS劫持,也称为域名劫持,是一种网络攻击手段,攻击者通过拦截域名解析的请求,将用户重定向到恶意站点,以达到获取用户信息或谋取非法利益的目的。DNS劫持可以分为以下几种基本类型: 1.路由器DNS劫持&#x…

进程管理与计划任务管理

进程管理 1、查看进程 静态 ps -auxps -elf 动态 top pgrep 查看特定条件的进程 pgrep -l “log” pgrep -l "ssh"pgrep -l -U redhat pstree 查看进程树 pstree -aup 所有用户、进程id\详细信息pstree -ap redhat 查看redhat用户的进程 任务调…

如何实现在固定位置的鼠标连点

鼠大侠的鼠标连点功能是免费的 浏览器搜索下载鼠大侠,指定连点间隔和启动快捷键 点击设置,指定点击位置

MySQL数据库中的锁机制(通俗易懂)

总结 MySQL数据库中的锁机制主要用于管理并发操作,以确保数据的一致性和完整性。MySQL支持多种类型的锁,按粒度和使用场景主要分为以下几类: 全局锁: 全局锁(如FLUSH TABLES WITH READ LOCK)可以锁定整个数…

常见物联网模型优缺点简介

物联网模型多种多样,每种模型都有其独特的优点和局限性。以下是一些常见的物联网模型及其优缺点概述: 集中式模型: 优点: 数据管理和处理集中化,便于统一监控和维护。安全性较高,数据在中心节点进行统一加…

centos7 配置ip

查看网卡 [rootcentos ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverine…