1 / 49

FPGA 系统设计与实践

FPGA 系统设计与实践. 第四章 功能仿真. 第四章 功能仿真. 内容提要 功能仿真( Function Simulation) 的作用是对源代码进行编译。 本章介绍了 Model Technology 公司的 Modelsim XE II v5.6e 的主要结构、属性设置、 Modelsim XE II v5.6e 与 ISE5.2 的软件接口,测试激励文件的建立以及 Modelsim 仿真分析方法。 Altera 公司 QuartusII3.0 仿真器( Simulator) 的主要结构、属性设置以及仿真分析方法。. 第四章 功能仿真. 知识要点 :

ursa-cook
Download Presentation

FPGA 系统设计与实践

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FPGA系统设计与实践 第四章 功能仿真

  2. 第四章 功能仿真 • 内容提要 • 功能仿真(Function Simulation)的作用是对源代码进行编译。本章介绍了Model Technology 公司的Modelsim XE II v5.6e的主要结构、属性设置、Modelsim XE II v5.6e与ISE5.2的软件接口,测试激励文件的建立以及Modelsim仿真分析方法。Altera公司QuartusII3.0仿真器(Simulator) 的主要结构、属性设置以及仿真分析方法。

  3. 第四章 功能仿真 • 知识要点: • 功能仿真,Modelsim,测试激励文件,QuartusII3.0仿真器 • 教学建议: • 本章的重点是掌握Model Technology 公司的Modelsim XE II v5.6e和Altera公司QuartusII3.0仿真器(Simulator)的结构和使用方法。建议学时数为4学时。注意区分Modelsim和QuartusII3.0仿真器(Simulator)的不同点。

  4. 第四章 功能仿真 • 在学习过程中,应结合第8章中的应用实例设计,去掌握仿真分析的步骤、属性设置及技巧。注意仿真分析中属性参数的设置,可以通过调整参数的设置,改变仿真输出波形。必须牢记功能仿真和时序仿真的区别。

  5. FPGA系统设计与实践 基于Modelsim的功能仿真

  6. 4.1 基于Modelsim的功能仿真 • 功能仿真(Function Simulation)是对源代码进行编译,检测在语法上是否正确,发现错误,并且提供出错的原因,设计者可以根据提示进行修改。编译通过后,仿真器再根据输入信号产生输出,根据输出可以判断功能是否正确。如果不正确,需要反复修改代码,直到语法和功能都达到要求。

  7. 4.1 基于Modelsim的功能仿真 • 功能仿真只验证在功能上是否正确,在时序上不做验证。在做功能仿真时还需要注意,信号通过某个网络时是存在延迟的,而在功能仿真时不会体现出来,输入信号的改变会立即在输出端反映出来。所以必须牢记功能仿真和时序仿真的是有区别的,这一点十分重要。

  8. 4.1.1 介绍Modelsim XE II v5.6e • Modelsim XE II v5.6e是Model Technology 公司直接为Xilinx公司设计。Xilinx公司的ISE 5.2为Modelsim XE留有接口,并且向Modelsim XE II v5.6e提供器件的仿真数据库。

  9. 主窗口 源程序窗口 结构体窗口 信号窗口 波形窗口 变量窗口 数据流窗口 列表窗口 进程窗口

  10. 主窗口 主窗口是Modelsim的核心窗口,在缺省(默认)状态下,在启动Modelsim时会自动打开。主窗口分为工作区和脚本区两部分。在工作区,可以很方便地对当前工程的工作库以及所有数据集合进行控制。在脚本区,可以输入Modelsim的各种命令,命令执行后会反馈执行后的信息,使用户了解执行的实际情况。

  11. 选择Veiw  Active命令后,窗口中显示的是当前工程中的所有进程。 进程窗口 Ready表示此进程将在当前的很短的一个时间内被执行;Wait表示进程正等待信号的变化。Done表示进程正在执行等待语句。 选择In Regin 命令后,在窗口中显示的是当前层次结构中包含的进程。

  12. 结构窗口 结构窗口用来显示仿真中的层次信息,选择不同的结构层次,其他窗口中的信息都会发生相应的变化。

  13. 信号窗口 当前层次结构中的所有信号名称 信号的值 用户必须在结构窗口中选择确定的层次结构,来获得想要仿真的信号。

  14. 变量窗口 进程中的变量

  15. 波形窗口 光标工具 波形查看工具 仿真控制工具 信号波形 指针所在位置的值 信号名称和路径

  16. 信号属性对话框 • 双击波形窗口中的信号名 信号属性对话框 显示的信号名称 信号数据的显示方式 波形的颜色 名称的颜色

  17. 信号属性对话框 波形显示的格式

  18. Logic显示 Analog显示 Literal显示

  19. Modelsim XE II v5.6e与ISE5.2的软件接口 • Modelsim XE系列是Model Technology公司为Xilinx公司的FPGA/CPLD提供的OEM版本Modelsim工具,同时,ISE5.2为ModelsimXE提供了软件的接口。ISE5.2和ModelsimXE的结合使设计更高效,方便。在ISE5.2中启动ModelsimXE,ModelsimXE会调用缺省的批处理方式使仿真更高效。

  20. 属性设置 设置Modelsim可执行文件的路径

  21. 4.1.2 建立测试激励文件 • 要对模块进行仿真必须首先建立仿真测试激励文件,Modelsim根据测试激励对设计进行仿真。而ISE5.2提供了一个相当实用的工具HDL Bencher(HDL 测试台)。HDL Bencher可以方便地定义想要的输入波形和输出波形,仿真后Modelsim还可以将实际仿真的结果与测试者提供的波形进行比较,并且提示错误。

  22. 1.D触发器测试激励文件的建立 • 下面以一个例子进行说明仿真测试激励文件的建立:在3.1.2节中,使用VHDL输入设计了一个异步复位的D触发器,现在可以通过功能仿真来验证它的正确性。

  23. 新建测试激励文件 下一步

  24. 选择与测试激励文件相关联的源文件 下一步

  25. 单时钟 多时钟 组合逻辑 设置异步时序 下一步

  26. 时钟选择对话框 下一步

  27. 异步信号 设置异步信号

  28. 同步信号 设置同步信号 NEXT=>

  29. 时钟设置 时钟高电平时间 波形触发类型 时钟低电平时间 输入建立时间 偏移量 输出有效时间 时钟单位

  30. 输入期望的测试波形 信号列表 端口属性 备注 测试台波形编辑窗口 源代码显示窗口

  31. 测试激励文件加入工程 功能仿真 生成期望的仿真结果 翻译后仿真 布局后仿真 双击其中一种仿真 布局布线后仿真(时序仿真)

  32. 4.1.3 启动Modelsim仿真 仿真后的波形

  33. 4.1.4 功能仿真例:10进制计数器 • 1 .10进制计数器测试激励文件的建立 • (1)打开在3.1.4节中建立的工程pIP.

  34. 1 .10进制计数器测试激励文件的建立 • (2)为了方便仿真,有必要将div30模块进行修改。因为div30是30,000,000分频,这么大的分频系数, 难于仿真,所以将div30模块中的分频系数做如下改动。 process(clkin,reset) variable cnt : integer range 0 to 3 :=0; --将分频系数改为3,即6分频; begin if reset = '0' then cnt :=0 ; Reg_clk <= '0'; elsif rising_edge(clkin) then cnt := cnt + 1; if cnt = 3 then cnt := 0; Reg_clk <= not Reg_clk ; end if; end if; end process;

  35. 新建测试激励文件 NEXT=>

  36. 关联原文件 下一步

  37. 时钟初始化 下一步

  38. 时钟选择 下一步

  39. 信号属性设置 下一步

  40. 时钟设置 完成

  41. 设置波形 注意仿真界限的位置

  42. 启动仿真 单击全屏按钮 Modelsim仿真缺省窗口

  43. 仿真波形图 经过译码后的7段LED显示用代码

  44. 在structure窗口选择my_cou后signal窗口中发生的变化 将signals中的q移入wave窗口中

  45. 单击restart按钮 Restart 在Restart对话框中进行设置

  46. 选择信号显示类型

  47. 修改显示类型后的信号 观察q信号,发现仿真的时间不够长,以至于不能肯定q的值在到达9时是否回0,所以有必要修改仿真时间。

  48. 设置时间界限 重新打开测试激励文件 将测试时间界限向后拖动,从而增加仿真时间

  49. 最终的仿真波形 重新进行仿真得到最终的仿真波形

More Related