fpga开发原理图设计仿真分析

news2024/11/23 6:22:00

   

目录

  原理图设计方法的流程

仿真分析

method1. 基于向量波形的仿真方法

method2. 基于testbench的仿真方法


在Quartus Prime开发环境下,进行EDA设计的基本流程如图所示。 包括五个主要任务:    (1) 建立工程    (2) 设计输入    (3) 编译、综合与适配    (4) 引脚锁定    (5) 编程与配置 同时,还可以根据需要进行仿真分析、在线测试和时序分析。

   Quartus Prime支持硬件描述语言、原理图和状态机等多种设计输入方法,同时EDIF第三方输入方法。

   原理图方法的优点: (1) 容易上手。有数字电路课程基础,就可以应用EDA技术在电子技术课程设计中应用原理图设计数字系统; (2) 直观、形象。应用原理图设计系统顶层电路,系统的总体结构直观清晰,易于理解系统的功能。

原理图方法的缺点很突出: (1) 设计效率低; (2) 可移植性差。

  Quartus Prime提供了3类用于原理图设计的符号库:megafunctions、others和primitives。另外: (1) 用户也可以将自己设计好的模块,通过选择Quartus Prime Files菜单下的Create∠Update→“Create Symbol Files for Current File”命令封装成图形化符号,以便在原理图设计中调用; (2) 定制IP得到的模块,生成原理图符号。

  原理图设计方法的流程

与HDL设计方法的流程相同,只是在step2-设计输入,选择设计文件类型时,在新建文件对话页中选择Block diagram/Schematic Files文件类型,弹出原理图设计窗口,用于编辑“.bdf”的原理图文件。

   原理图设计窗口包括原理图编辑区和设计工具栏两部分。原理图编辑区用于绘制原理图,编辑工具栏则包含了绘制原理图所需要的工具。

应用原理图输入法的基本步骤如下:   step1: 添加器件和符号   在原理图编辑区的任意空白处双击鼠标,或者点击工具栏中的  按钮将弹出添加图形符号(Symbol)对话框。在左侧的Libraries栏按分类查找所需要的器件,选中后点击编辑区右下方的OK按钮后在原理图编辑区出现随鼠标移动的元器件符号,在绘图区适当的位置点击鼠标左键放置元器件。

   step2: 连接元器件    放置好元器件或符号后需要连线时,将鼠标指向器件图标的端口上,当鼠标指示符变为“直角”形状时进入连线状态。按住鼠标左键拖到另一个连接点位置,放开鼠标后则会放置一段连线。反复操作完成所有的连线。  

  需要删除连线时,先单击连线使其处于选中状态,然后用键盘上的“Delete”键删除,或者点击鼠标右键在弹出的菜单上选择Delete删除。  

   需要注意的是,原理图中的总线(bus)为粗线,导线(wire)为细线。    需要放置总线时,必须从器件或者pin的总线端口开始引出连线,这样才能保证引出的是总线而不是导线。

  step3: 设置I/O端口   在原理图编辑区的任意空白处双击鼠标,或者点击工具栏中的按钮弹出添加图形符号对话页。在primitives的pin栏中选择input、output或者inout端口符号,点击OK出现随鼠标移动的端口图标,在绘图区合适的位置点击鼠标左键放置端口符号,调整端口图标方向,连接到器件需要输入/输出的引脚上。

  双击端口符号中的pin_name修改端口名。 端口名的格式为:      端口名[msb..lsb] 其中msb和lsb用于定义端口的位宽,必须与器件端口的位宽严格一致。 缺省时默认位宽为1。   注意:用于定义位宽的msb和lsb中间为“..”而不是“:”,应用“:”会导致编译错误。

  step4: 保存文件   选择File菜单下的Save/Save as命令保存原理图设计文件。如果为顶层设计电路,则保存的文件名应为工程名加上原理图文件扩展名“.bdf”。   4选一数据选择器的原理图电路如下图所示,设计文件名为MUX4to1.bdf。

  原理图编辑完成之后,同样需要进行编译、综合与适配。这些过程与HDL输入法完全相同。

仿真分析

   仿真是通过计算机算法来模拟代码的运行以检查电路设计的逻辑是否正确,以及在适配过程中引入分布参数(器件传输延迟和布线延迟)后,其功能是否依然正确。

  目前广泛应用的仿真软件有Mentor公司的 Modelsim 和 Aldec 公司的 Active-HDL 等。   Mentor公司为Intel公司提供了两种OEM版的Modelsim:Modelsim_ae和Modelsim_ase。使用Modelsim_ae需要有相应license的支持,Modelsim_ase为入门版,在应用上有一定的限制,只能仿真10000行及以下可执行代码,完全能够满足大部分工程项目的仿真需求。

仿真分为功能仿真和时序仿真两种类型。

   功能仿真(Functional Simulation)是指在不考虑器件的传输延迟时间和布线延迟时间情况下的理想仿真,而时序仿真(Timing Simulation)是在完成布局布线之后进行,包含了器件传输延迟和布线延迟信息的仿真。

   Quartus Prime 支持两种仿真方式:一是基于Intel公司大学计划(University Program)项目的向量波形文件VWF(vector waveform)仿真方法,二是通过编写测试平台文件testbench进行仿真。

method1. 基于向量波形的仿真方法

 基于向量波形的仿真方法具有直观易用的优点,适合于简单工程的仿真需要。

  step1: 建立向量波形文件    在Quartus Prime主界面中,选择File菜单下的New命令打开新建文件对话页,选中Verification/Debugging Files栏下的University Program VWF文件后点击OK确认,将弹出如图所示的仿真波形编辑窗口,其中矩形框中为波形编辑工具栏。

  step2: 插入节点或总线   在仿真波形窗口左侧的Name栏的空白处右击鼠标,在弹出的菜单中选择Insert Node or Bus…将弹出如图3-47所示的插入节点或总线对话页。点击图中的Node Finder进入图3-48所示的查找节点对话页。

  在查找节点对话框中的Filter下拉菜单中选中Pins:all,单击List将会在Nodes Found区域列出工程所有的I/O信号。将需要设置和观测的信号单击“>”移动到Selected Nodes区域(不需要的信号也可以通过“<”移出),也可以通过“>>”和“<<”将信号全部移入或移出,完成后点击OK按钮返回插入节点/总线对话页,再点击该对话页中的OK按钮返回波形文件主窗口。

 step3: 设置仿真参数   仿真波形编辑窗口Edit菜单中的Grid Size和Set End Time用于设置仿真步长和仿真结束时间。

step4: 编辑输入信号波形   利用波形编辑工具设置输入信号的波形,每个工具的功能说明如表所示。

  设置4选一数据选择器输入信号的波形如图所示,其中4路数据D0、D1、D2和D3分别为以10ns、20ns、30ns和40ns为步长循环变化。展开两位地址a,设置a[1]和a[0]以500ns和250ns为步长变化,则可以得到两位地址按00、01、10和11变化。

step5: 保存波形文件    选择File菜单下的Save /Save as命令将波形文件保存为扩展名“.vwf”的向量波形文件。需要注意的是,向量波形文件名必须与工程名一致!

 step6: 启动仿真,   进行功能仿真时,选择Simulation菜单下的Run Functional Simulation命令,或者直接点击按钮启动仿真。

  进行时序仿真时,选择Simulation菜单下的Run Timing Simulation命令,或者直接点击按钮启动仿真。

method2. 基于testbench的仿真方法

  应用testbench进行仿真时,首先需要编写testbench测试平台文件。

  需要注意的是:当Modelsim仿真软件随Quartus Prime一起安装时,Quartus Prime会自动关联Modelsim。

   在仿真过程中,如果出现Quartus Prime无法调用Modelsim的情况,则需要手动关联Modelsim:

  在Quartus Prime主界面中,选择Tools菜单中的Options命令,在弹出的设置对话页中选择General栏下的EDA Tool Options,进入EDA工具选择对话页。在Modelsim-Altera栏中设置Modelsim的安装路径,如图所示。具体与安装Quartus Prime时的路径设置有关。设置完成后点击OK退出。

step1. 生成testbench模板文件

  在Quartus Prime主界面中,选择Processing菜单下Start栏中的Start Test Bench Template Writer命令,将会在“目前工程目录\simulation\modelsim”文件夹中自动生成一个扩展名为.vt测试平台文件(vt表示verilog testbench),文件名与工程名一致。

 step2. 编辑Testbench文件

   编辑testbench文件,通过initial和always过程语句设置激励信号起始值和波形,同时应用系统任务加入需要观测的输出信号,如右图所示。

step3. 关联testbench文件

  选择Assignments菜单中的Settings,在弹出的设置对话页中选择EDA Tool Settings栏下的Simulation,进入如图所示的仿真设置对话页,将图中Time scale参数值设置为1ns(与MUX41a.vt中的参数设置一致)。

   设定完成后, 在Quartus Prime主界面下,选择 Tools菜单下Run Simulation Tool栏中的RTL Simulation命令调用Modelsim进行功能仿真。如果需要进行时序仿真,则选择Tools菜单下Run Simulation Tool栏中的Gate Level Simulation命令。仿真完成后,会自动弹出Modelsim波形窗口。选定波形栏,用缩放波形以便于分析,如图所示。

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

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

相关文章

Node.js——fs模块-路径补充说明

1、相对路径&#xff1a; ./座右铭.txt 当前目录下的座右铭.txt座右铭.txt 等效于上面的写法../座右铭.txt 当前目录的上一级目录中的座右铭.txt 2、绝对路径 D&#xff1a;/Program File Windows系统下的绝对路径/usr/bin Linux系统…

从0开始搭建一个生产级SpringBoot2.0.X项目(十)SpringBoot 集成RabbitMQ

前言 最近有个想法想整理一个内容比较完整springboot项目初始化Demo。 SpringBoot集成RabbitMQ RabbitMQ中的一些角色&#xff1a; publisher&#xff1a;生产者 consumer&#xff1a;消费者 exchange个&#xff1a;交换机&#xff0c;负责消息路由 queue&#xff1a;队列…

比流计算资源效率最高提升 1000 倍,“增量计算”新模式能否颠覆数据分析?

作者 | 关涛 云器科技CTO 数据平台领域发展 20 年&#xff0c;逐渐成为每个企业的基础设施。作为一个进入“普惠期”的领域&#xff0c;当下的架构已经完美了吗&#xff0c;主要问题和挑战是什么&#xff1f;在 2023 年 AI 跃变式爆发的大背景下&#xff0c;数据平台又该如何演…

MySQL性能测试方案设计

在现代互联网系统中&#xff0c;数据库性能直接影响到整体应用的速度和用户体验。而MySQL作为广泛使用的关系型数据库&#xff0c;随着数据量和并发请求的增长&#xff0c;其性能问题也日益突出。今天我们将深入探讨如何设计一套高效的MySQL性能测试方案&#xff0c;帮助你精准…

彻底解决单片机BootLoader升级程序失败问题

文章目录 1、引言2、MicroBoot&#xff1a;优雅的解决升级问题问题1&#xff1a;bootloader 在跳转到app前没有清理干净存在的痕迹问题2&#xff1a; 需要 APP 传递信息给 Bootloader问题3&#xff1a; APP单独运行没有问题&#xff0c;通过Bootloader跳转到APP运行莫名死机问题…

Oracle OCP认证考试考点详解082系列17

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 81. 第81题&#xff1a; 题目 81.Examine these SOL statements which execute successfully Which two statements are true after exec…

【EFK】Linux集群部署Elasticsearch最新版本8.x

【EFK】Linux集群部署Elasticsearch最新版本8.x 摘要环境准备环境信息系统初始化启动先决条件 下载&安装修改elasticsearch.yml控制台启动Linux服务启动访问验证查看集群信息查看es健康状态查看集群节点查询集群状态 生成service token验证service tokenIK分词器下载 摘要 …

基于python的天气数据采集与可视化分析,对20个城市的天气适宜出行度分析

摘要 本项目旨在基于Python对20个城市的天气数据进行采集与可视化分析&#xff0c;以评估天气的适宜出行度。该分析通过四个主要指标进行量化&#xff0c;这些指标分别是天气状况良好率、空气质量优良率、气温适宜率和安全天气率。通过这些指标&#xff0c;我们能够有效地判断…

外贸管理利器7选,助力高效办公

推荐7款外贸管理软件&#xff0c;包括ZohoBooks、ZohoCRM、富通天下等&#xff0c;各具特色&#xff0c;满足外贸企业不同需求&#xff0c;提高管理效率&#xff0c;助力企业全球化竞争。、 一、Zoho Books Zoho Books是一款外贸财务管理软件&#xff0c;不仅为用户提供了一个…

【JWT】Asp.Net Core中JWT刷新Token解决方案

Asp.Net Core中JWT刷新Token解决方案 前言方案一:当我们操作某个需要token作为请求头的接口时,返回的数据错误error.response.status === 401,说明我们的token已经过期了。方案二:实现用户无感知的刷新token值,我们希望当响应返回的数据是401身份过期时,响应阻拦器自动帮我…

当AI遇上时尚:未来的衣橱会由机器人来打理吗?

内容概要 在当今这个快速发展的时代&#xff0c;人工智能与时尚的结合正在逐渐改写我们对衣橱管理的认知。传统的衣橱管理常常面临着空间不足、穿搭单调及库存过多等挑战&#xff0c;许多人在挑选服饰时难以做出决策。然而&#xff0c;随着技术的进步&#xff0c;智能推荐和自…

编写虚拟的GPIO控制器的驱动程序:和pinctrl的交互使用

往期内容 本专栏往期内容&#xff1a; Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析&#xff1a;imx_pinctrl_soc_info结构体Pinctrl子系统中c…

【MySQL】数据库整合攻略 :表操作技巧与详解

前言&#xff1a;本节内容讲述表的操作&#xff0c; 对表结构的操作。 是对表结构中的字段的增删查改以及表本身的创建以及删除。 ps&#xff1a;本节内容本节内容适合安装了MySQL的友友们进行观看&#xff0c; 实操更有利于记住哦。 目录 创建表 查看表结构 修改表结构 …

CocoaPods安装步骤详解 - 2024

引言 CocoaPods的安装&#xff0c;如果有VPN就一直开启&#xff0c;会让整个流程非常顺畅。 在现代 iOS 开发中&#xff0c;依赖管理变得越来越重要&#xff0c;CocoaPods 成为开发者们首选的依赖管理工具。它不仅可以简化库的安装与更新&#xff0c;还能帮助开发者更高效地管…

二叉树-堆

树的几个重要定义 1.树根子树根亲缘关系 2.节点的度:有几个子树或根有几个孩子 3.叶子节点:没有孩子的终端节点 度为0 4.分支节点:度不为0的节点 5.树叶子分支节点 6.父亲节点/双亲节点 7.子节点 8.树的度:最大节点的度就是树的度 9.树的层:一般从第一层开始数,也有从0层开始数…

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪BD311R 发布时间: 2024-10-23 11:28:42 一、 产品图片&#xff1a; 二、 产品特性&#xff1a; 4G性能&#xff1a;支持2K超高清图传&#xff0c;数据传输不掉帧&#xff0c;更稳定。 独立北…

浮动路由:实现出口线路的负载均衡冗余备份。

浮动路由 Tip&#xff1a;浮动路由指在多条默认路由基础上加入优先级参数&#xff0c;实现出口线路冗余备份。 ip routing-table //查看路由表命令 路由优先级参数&#xff1a;越小越优 本次实验测试两条默认路由&#xff0c;其中一条默认路由添加优先级参数&#xff0c;设置…

ssm077铁岭河医院医患管理系统+vue(论文+源码)_kaic

毕业设计&#xff08;论文) 题 目&#xff1a; 医院医患管理系统 姓 名&#xff1a; 学 号&#xff1a; 所属学院&#xff1a; 专业班级&#xff1a; 指导&#xff1a; 职 称&#xff1a; 完成日期 2021年 月 摘 要 21世纪的今天&#xf…

关于在VS中使用Qt不同版本报错的问题

最开始需要配置的地方 首先看一下我的Qt有关的环境变量&#xff1a; Path环境变量里&#xff1a; 这里就是把对应Qt编译器环境下的bin目录放进来&#xff1a;比如你使用的是msvc2017_64或者MinGW QMAKESPEC环境变量&#xff1a; 这个就选择Qt对应的编译器目录下的\mkspecs\w…

Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化

官网文档地址&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ 使用版本&#xff1a;Redis7.4.1 什么是 ACL&#xff1f; ACL&#xff08;Access Control List&#xff09;&#xff0c;权限控制列表&#xff0c;是 Redis 提供的一种…