第十章 EDA设计的仿真和测试.

Slides:



Advertisements
Similar presentations
SOPC技术 数字逻辑电路 主讲:刘昌华 嵌入式技术研究所
Advertisements

第2章 SOPC硬件开发环境及流程.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
UI(用户界面)集训班 Illustrator 高级班.
在PHP和MYSQL中实现完美的中文显示
Android开发入门 -----Android 开发“Ready go!” 主讲:李晓蕾
EDA技术实用教程 第1章 概 述.
第二讲 搭建Java Web开发环境 主讲人:孙娜
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
用ModelSim作功能仿真(8) 3  编译源代码(Verilog) 支持增量式编译(只有被改动的设计单元被编译) 缺省编译到work库
第一讲: 基本流程(1).
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
Hub Web System 主要功能: 1.查询库存(Query Current Storage) 2.创建PL(Create PL) 3.查询、打印PL单(Query & Print PL) 4.查询允交量、在途量 5.修改用户的基本信息(Update Password) 6.查询GR(Query.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
YMSM D-PACK 安装手册 作成者:D-PACK维护组(YMSLx) 作成日:
第三章 集成开发平台QuartusⅡ操作基础.
Gzip编译及调试 曹益华
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
Visual Studio 2010简捷入门.
C语言程序设计 主讲教师:陆幼利.
Web安全基础教程
直接扫描保存成TIF格式, 其他图片格式用Windows XP自带的 Windows图片与传真查看器打开
EDA技术 实验步骤.
第四章 团队音乐会序幕: 团队协作平台的快速创建
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
实验七 安全FTP服务器实验 2019/4/28.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
项目二:HTML语言基础.
3Glasses SDK for Unreal Engine Plugin
FIFO 与 UPP 本节我们结合UPP接口给大家介绍一下FIFO在实际工程中的使用。 广州创龙电子科技有限公司 01 51ele.net
复 这里可以输入公司 名 古 Powerpoint is a complete presentation graphic package it gives you everyt.
第四章 QuartusII软件的应用 本章重点: 本章难点: EDA技术 QuartusII的设计输入 QuartusII软件的综合与编译
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
VRP教程 2011.
Delphi 7.0开发示例.
熟悉PowerDesiner12操作环境 菜单栏 标题栏 工具栏 导航栏 工作区 浮动工具条 导航选项卡 控制信息栏 状态栏.
波形平均和叠加分析指南 上海骐驰仪器有限公司 Shanghai Qichi Instruments Co. Ltd.
Python 环境搭建 基于Anaconda和VSCode.
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
印制板制作软件Protel入门篇.
2017 Business Report Click here to modify the text , you may post text here . Click here to modify the text . Click here to modify the text , you may post.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
LOGO HERE 单击此处添加 您的标题标题标题 PRESENTED BY JANE DOE
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
FPGA系统设计与实践 本章小结(第5章).
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
JUDDI安装手册.
Presentation transcript:

第十章 EDA设计的仿真和测试

主要内容 对仿真的概念进行了简单说明 以Modelsim6.3se版本为例,重点介绍了Modelsim软件的使用方法。

10.1 仿真简介 仿真是指在软件环境下,验证电路的行为和设计意图是否一致。 简化的仿真验证系统框图如下: DUT 测试内容 TestVector 测试向量 DUT 测试内容 Testbench 测试模板 仿真系统软件、硬件运行 比较判断输出、存储结果

10.1 仿真简介(续1) 仿真与验证主要包括3个方面的内容: 第一是仿真系统的组织原则,主要是如何有效的测试目标系统的理论和方法; 第二是测试模板与测试向量的设计; 最后是仿真工具的使用。 一般来说,仿真分为三种类型,即功能仿真、综合后功能仿真和时序仿真,分别对应于设计输入后、综合完成后、布局布线完成后等步骤,这些步骤也是仿真的切入点。

10.1 仿真简介(续2) 1、功能仿真 功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求,其特点是不考虑电路门延时与路径延时,考察重点为电路在理想环境下的行为和设计构想是否一致。 可综合FPGA仿真代码是用RTL级代码语言描述的,功能仿真的输入是设计的RTL代码,也就是HDL源文件与Testbench.。 2、综合后仿真 综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符,是否存在歧义综合结果。 综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型和综合产生的延时文件,综合时的延时文件仅仅能估算门延时,而不包含布线延时信息,所以延时信息不十分准确。

10.1 仿真简介(续3) 3、时序仿真 时序仿真也称为布局布线后仿真或者后仿真,是指电路已经映射到特定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电路的行为是否能够在一定时序条件下满足设计构想的功能。 时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局布线抽象出的门级网表、Testbench以及扩展名为SDO的标准延时文件。 一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与FPGA的实际运行情况是否一致,确保设计的可靠性和稳定性。

10.2 Modelsim简介 Modelsim是一种第三方EDA仿真工具。 Modelsim仿真工具是Model公司开发的,它支持Verilog、VHDL以及两者的混合仿真,可以将整个程序分步执行,它在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以查看某一单元或模块的输入输出的连续变化等。 其主要特点是仿真速度快,仿真精度高,而且支持VHDL、Verilog HDL以及两者的混合使用,是目前业界最流行最通用的仿真器之一。

10.2.1 Modelsim的图形用户界面 Modelsim 6.3软件在默认的条件下提供了主窗口、源文件窗口、信号窗口、波形窗口、数据流窗口、进程窗口、存储器窗口、列表窗口等不同窗口,如下图。

10.2.1 Modelsim的图形用户界面(续1) 主窗口:主窗口main在Modelsim启动时直接打开,是其他窗口运行的基础。 源文件窗口:源文件窗口source主要用来显示和编辑HDL源文件代码。 波形窗口:波形窗口是最常用的窗口之一,主要是用来查看仿真结果。 数据流窗口:数据流窗口Dataflow是一般仿真软件都提供的一个通用窗口,通过该窗口可以跟踪设计中的物理连接、事件的传播,也可以用来跟踪寄存器、网线和进程等,极大的丰富了调试方法并对其进行显示,也可以显示设计中的内部连接。 列表窗口:列表窗口使用表格的形式显示仿真结果。 进程窗口:进程窗口显示了仿真中用到的所有进程列表。 信号窗口Object主要是用来选择需要查看的信号,同时可以在仿真过程中强制某一个信号的值发生变化,也可以通过信号窗口的Edit/Force和Edit/Clock命令将任意信号强制转化成时钟信号。 寄存器窗口Memory可以显示设计中寄存器的内容。使用此窗口可以通过加载源文件或改变存储器内容的方式对设计中的存储器进行初始化,同时窗口中的内容也可以保存成一个存储器文件,以便日后使用。

10.2.1 Modelsim的图形用户界面(续2) 在Modelsim的主窗口的工具栏中常用快捷键图标的功能如下表:

10.2.2 Modelsim仿真步骤 Modelsim仿真步骤分为以下5步: (1)建立库; (2)映射库到物理目录; (3)编译源代码,包括所有的HDL代码和Testbench; (4)启动仿真器并加载设计顶层; (5)执行仿真 注:本章主要介绍在界面模式下modelsim的使用方法

10.2.2 Modelsim仿真步骤(续1) 1、建立库 仿真库是指存储已经编译设计单元(design units)的目录。Modelsim中仿真库可以分为工作库(Working)和资源库(Resource)两大类。 建立仿真库的常用方法有两种:一是在界面模式下,执行主菜单命令File/New/Library,打开 Create a New Library对话框,选择第一项生成一个新库并映射它,如右图图所示。二是在命令行模式下也可以在主窗口执行vlib命令建立新库,语法格式如下: Vlib<library_name>

10.2.2 Modelsim仿真步骤(续2) 2、映射库到物理目录; 映射是将已经编译好的设计单元映射为一个库,库路径内的文件应该是已经编译好的。 常用操作方法有两种:一是 在界面模式下,执行主菜单命令 File/New/Library,打开Create a New Library对话框,选择第二 项映射已经编译好的库,单击 browse按钮选择所已经编译好 的库,如右图所示;第二种方法 是命令模式下主窗口执行vmap命 令,语法格式如下: Vmap<logical_name><direcetory_path>

10.2.2 Modelsim仿真步骤(续3) 3、编译源代码 GUI图像界面模式下编译文件的快捷方式是建立一个工程,在工程中添加所要编译的文件,然后执行主窗口的Compile子菜单中的各种命令或者是右键单击工程中的文件执行Compile的不同命令。 如果编译的是VHDL源文件,其编译顺序由文件的排列顺序决定,如果是Verilog源文件,其编译顺序也是由文件的排列顺序决定,但文件编译的顺序并不重要。

10.2.2 Modelsim仿真步骤(续4) 4、 启动仿真器并加载设计顶层 (1)执行主 菜单中的命令 Simulate/ Start Simulate 打开仿真对话 框,指定需要 仿真的设计单 元,然后点击 OK,如图所示

10.2.2 Modelsim仿真步骤(续5) 4、 启动仿真器并加载设计顶层 (2)在主窗口中出 现Object窗口,右键单 意信号,选择add to wave/ signals in region 或者是右键选中sim 窗口中加载的顶层设 计名,选中add to wave, 就可以打开波形窗口, 并将所有信号都加载 到波形窗口当中 。 如右图所示。

10.2.2 Modelsim仿真步骤(续6) 5、 执行仿真 执行主菜单命令下的Simulate/Run,选中相应的 选项来执行仿真,也可以选中使用等快捷键按钮来进行仿真 ,仿真结果将会显示在Wave窗口中。

10.2.3 Modelsim功能仿真 在本节中,用一个简单的计数器设计实例来演示功能仿真的具体操作流程,此处使用的QuartusII版本为7.2。步骤如下: 1、新建一个名为counter的文件夹,在QuartusII新建一个同名工程,选择合适的器件。在此例中选择的目标芯片为CycloneIIEP2C35F672C6N。 2、计数器的HDL源文件可以在Modelsim中编写,也可以在QuartusII中编写或者利用MegaWizard生成的IP核以及直接调用LPM等方式生成。在这里选择利用MegaWizard生成的简单的IP核作演示使用,在定制中生成的IP核的语言选择VHDL。

10.2.3 Modelsim功能仿真(续1) 生成后的 IP核如下图所示

10.2.3 Modelsim功能仿真(续2) 3、回到QuartusII主窗口,点击Project选项卡,选择add/Remove Files in Project;点击添加刚生成的counter.vhd文件到工程中,添加后如下图所示。至此,HDL源文件创建完毕。

10.2.3 Modelsim功能仿真(续3) 4、编写测试文件Testbench。 先建立一个新的工作库如work。Testbench文件可以在Modelsim中新建的VHDL(或verilog)文档编辑页面中进行编辑,同样也可以在QuartusII中新建一个VHDL(或Verilog)空白模板来编写。 除了直接编写测试文件,Modelsim还提供了很多Testbench模板,可以直接调用以减少工作量,但前提是设计的顶层HDL源文件已经编译到工作库当中 。 5、映射库到物理目录,编译源文件。

10.2.3 Modelsim功能仿真(续4) 6、新建一个仿真工程。 使用工程可以简化编译和仿真的操作。 在Modelsim的主窗口中选择File/New/Project,设置工程名并向工程中添加文件,设置如下二图。 设置完成后编译所有文件。

10.2.3 Modelsim功能仿真(续5) 7、启动仿真仿真器加载顶层文件。指定仿真的设计单元为测试文件counter_tb 8、执行仿真,仿真结果如下图:

10.2.4 综合后仿真 综合后仿真的步骤和功能仿真的前面四步相同,从第五步开始,操作如下: 10.2.4 综合后仿真 综合后仿真的步骤和功能仿真的前面四步相同,从第五步开始,操作如下: 1.在工作库work下建立一个工程project_zh,方法和功能仿真中建立prtoject_gn相同; 2.工程中需要添加的文件有顶层设计文件counter,测试文件counter_tb和由QuartusII编译生成的网表文件; 在QuartusII中编译生成的网表文件方法如下: 选中QuartusII主窗口中的Assignments/EDA tools settings在弹出来的对话框如图10.28; 双击对话框中的Simulate弹出下一页对话框如图10.29所示。在tool name中选Modelsim,输出语言为VHDL,Output directory中可以设置文件的输出路径,此处指定为counter文件夹; 点击More Setting...,在弹出来的对话框如图10.30,选中 Generate netlist functional simulate only,在set后的栏内选中on,点击OK保存; 在QuartusII中编译顶层设计文件ounter.vhd,编译完成后在counter文件中能看到一个名为counter.vho的文件,此文件就是综合后仿真所需要的网表文件;

10.2.4 综合后仿真(续1) 图10.28 打开EDA tools settings 图10.29 设置网表输出项目

10.2.4 综合后仿真(续1) 图10.30 设置网表输出项目

10.2.4 综合后仿真(续2) 3.启动仿真器,加载仿真文件counter_tb,进行仿真,观察仿真波形。本次需要Altera仿真库的元件库cycloneII,如果资料库中没有,则需要加载该库。 仿真结果如下:

10.2.5 时序仿真 时序仿真的步骤跟综合后仿真大致相同,所不同的是添加的文件不完全一样。其具体步骤如下: 10.2.5 时序仿真 时序仿真的步骤跟综合后仿真大致相同,所不同的是添加的文件不完全一样。其具体步骤如下: 1、在工作库work下建立一个工程project_shx,方法和功能仿真中建立prtoject_gn一样; 2、工程中需要添加的文件有顶层设计文件counter,测试文件counter_tb、QuartusII中编译生成的网表文件和延时文件_vhd.sdo; _vhd.sdo文件的生成可以参考综合后仿真中网表文件的生成方法,所不同的是在图10.30的设置中将Generate netlist functional simulate only置为“off”,点击OK保存设置,回到QuartusII主窗口后编译文件,编译完成后,在counter文件夹下面能看到一个名为counter_vhd.sdo文件,这个文件就是综合后仿真所需要的延时文件。

10.2.5 时序仿真(续1) 3、启动仿真器,加载仿真文件counter_tb,进行仿真。加载文件如下左图所示 。在左图对话框中Libraries中可以指定仿真所缺少的库文件,在SDF中指定延时文件。在SDF栏中点击Add,在弹出来的Add SDF Entry对话框中指定counter_chd.sdo文件,Apply to Region的“/” 右边填入被测试的程序名称,本例中为DUT,整个波形仿真的设置完成,如下右图所示。 加载仿真顶层文件 加载延时文件

10.2.5 时序仿真(续2) 时序仿真结果如下:

10.2.6 Altera仿真库的添加 Modelsim仿真中会调用四种常用的仿真库: (1)lpm,调用lpm元件的设计仿真时需要; (2)altera_mf,调用MagaFunction的设计仿真时需要; (3)primitive,调用altera的原语(primitive)设计仿真时需要; (4)元件库,例如cycloneII元件库,在仿真中必用的特定型号的FPGA/CPLD的库。 前三种库是调用了相应的Altera设计模块进行设计时,仿真所必备的库,元件库则是进行时序仿真时不可缺少的资源库。

10.2.6 Altera仿真库的添加(续1) 以新建一个lpm库为例,Altera仿真库的添加步骤如下: 1、新建一个文件夹altera_lib,用来存放Altera编译后的库文件,文件夹的位置最好是在 Modelsim的安装目录下; 2、打开Modelsim软件, 新建一个名为lpm的Library, 在Library Physical Name里 面输入lpm库存放的路 径,点击OK,如图所示;

10.2.6 Altera仿真库的添加(续2) 3、将lpm仿真原型文件编译到lpm库中。 点击Modelsim主窗口中的Compile/Compile,在Library里面选中lpm,然后 在QuartusII安装目录下的 …\quartus\eda\sim_lib文 件里选中仿真原型文件220pack.vhd和220model.vhd文件,点击Compile,编译完成后点击done.

10.2.6 Altera仿真库的添加(续3) 完成以上步骤一个lpm库就建立好了,进行仿真时根据需要在仿真器的Library中点击Add可以直接添加,如下图所示。如果使用Verilog语言,编译时只需要编译200model.v文件即可。

10.2.6 Altera仿真库的添加(续4) 按照同样的方法可以添加其他3个库,编译的文件如下: 1、altera_mf库: 在VHDL中先编译altera_mf_components.vhd文件,后编译altera_mf.vhd文件,而在Verilog中则只编译altera_mf.v文件; 2、Primitiv库: 在VHDL中先编译altera_primitive_components.vhd文件,后编译altera_primitive.vhd文件,而在Verilog中只编译altera_primitive.v文件; 3、元件库,如cycloneII库: 在VHDL中先编译cycloneii_atoms.vhd文件,后编译cycloneii_components.vhd文件,而在Verilog中只编译cycloneii_atoms.v文件;如果是其他系列的元件库则只要把对应的cycloneii改成其他系列的名称即可,如cyclone库则文件改为cyclone_atoms.vhd、cyclone_components.vhd或cyclone_atoms.v。

10.2.6 Altera仿真库的添加(续5) 4、 修改初始化文件Modelsim.ini Modelsim.ini是一个只读文件,右键点Modelsim.ini文件选择“属性”,去掉“只 读”,然后双击打开文件,可以看到文件的内容。 $MODEL_TECH/../指的是Mdelsim的安装目录,也可以直接写成新建库的保 存路径,如G:\modesim63\...。 在[Library]和 [vcom]加上类似的的语句如下: [Library] std = $MODEL_TECH/../std ieee = $MODEL_TECH/../ieee …… primitive = $MODEL_TECH/../altera_lib/primitive cycloneii = $MODEL_TECH/../altera/vhdl/cycloneii altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf lpm = $MODEL_TECH/../altera/vhdl/220model [vcom] 保存文件,恢复为只读属性。

10.2.6 Altera仿真库的添加(续6) 至此,Altera仿真库完全建立好了。打开任一工程或设计,在Library窗口中都可以看到新添加的库文件,仿真时不需要再添加这些库, 如右图所示。

本章小结 本章重点介绍了EDA设计中仿真验证的概念和Modelsim仿真工具,