前言

分清楚各种仿真间的关系,工具采用quartus prime16.0,仿真工具采用modelsim10 ae版;项目:led_display;

流程

1.RTL行为级仿真:也叫功能仿真,这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。

需要的文件:编写的verilog源文件以及tb文件。如果用到了pll等ip核,需要挂载器件库文件。

 #set the sim home dir ;
set sim_home D:/work/led_display/sim
#set the src code home dir;
set src_home D:/work/led_display/src
vlib ${sim_home}/work
vmap work ${sim_home}/work
vlog ${src_home}/*.v
vsim -novopt -t 1ns -L altera_ver -L altera_mf_ver -L cycloneive_ver -L sgate_ver -L lpm_ver work.led_display_tb
view wave
add wave *
run @600ns

可以看到波形无延时;

2.门级仿真:也叫综合后仿真,综合后生成的网表文件(.vo)加tb仿真;网表是与器件有关的,所以要挂载好相关器件库文件。

对于quartus生成的vo文件,首先要注释掉其中的挂载sdo文件语句,否则仿真是时序仿真,因为添加了sdo延时文件:

需要的文件:vo网表文件以及tb文件。需要挂载器件库文件。

 #set the sim home dir ;
set sim_home D:/work/led_display/sim
#set the src code home dir;
set src_home D:/work/led_display/src
vlib ${sim_home}/work
vmap work ${sim_home}/work
vlog ${src_home}/led_display_8_1200mv_85c_slow.vo ${src_home}/led_display_tb.v
vsim -novopt -t 1ns -L altera_ver -L altera_mf_ver -L cycloneive_ver -L sgate_ver -L lpm_ver work.led_display_tb
view wave
add wave *
run @600ns

对于本栗子,可以看到门级仿真引入了中间态。

忽略不计。

3.时序仿真:也叫后仿真。网表文件加延时,仿真中会包含延时信息。

需要的文件:vo网表文件以及tb文件以及延时文件sdo(采用脚本挂载)。需要挂载器件库文件。

 #set the sim home dir ;
set sim_home D:/work/led_display/sim
#set the src code home dir;
set src_home D:/work/led_display/src
vlib ${sim_home}/work
vmap work ${sim_home}/work
vlog ${src_home}/led_display_8_1200mv_85c_slow.vo ${src_home}/led_display_tb.v
vsim -novopt -t ns -L altera_ver -L altera_mf_ver -L cycloneive_ver -L sgate_ver -L lpm_ver -sdftyp /led_display_tb/u=${src_home}/led_display_8_1200mv_85c_v_slow.sdo work.led_display_tb
view wave
add wave *
run @600ns
/led_display_tb/u 的意义:前面是tb名,后边是实例化led_display的名字。

如上图所示,可以看到器件延时大约4ns,包含了延时信息。

以上。

FPGA功能仿真,门级仿真,后仿真的区别的更多相关文章

  1. Gate level Simulation(门级仿真)

    1 什么是后仿真? 后仿真也成为时序仿真,门级仿真,在芯片布局布线后将时序文件SDF反标到网标文件上,针对带有时序信息的网标仿真称为后仿真. 2 后仿真是用来干嘛的? 检查电路中的timing vio ...

  2. ISE联合modelsim功能仿真和综合后仿真1

    1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...

  3. ISE联合modelsim功能仿真和综合后仿真

    1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...

  4. 关于fpga的后仿真重要性

    也许你天天做些fpga,写完代码就直接编译成功,锁定引脚后,马上使用signaltaII软件. 也许你一天,你发现signaltapII看信号的痛苦,一个源代码文件修改一点,要花个20分钟编译一次. ...

  5. FPGA前仿真后仿真

    前仿真 后仿真 时序(综合后)仿真 时序仿真将时延考虑进去,包括综合后产生的(与.或.非)门时延,还有布局布线产生的时延. 综合(Synthesize),就是将HDL语言设计输入翻译成由与.或.非门和 ...

  6. [原创]Modelsim后仿真

    因调试需要,进行后仿真,ISE生成的sim文件和sdf文件 `timescale ns/ ps module lut_dly ( clkout, fpga_clk, config_in ); outp ...

  7. Arduino UNO仿真开发环境设置和仿真运行

    一. Proteus仿真平台简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司).它不仅具有其它EDA工具软件 ...

  8. 工艺成型及仿真、铸造工艺及仿真ProCAST软件入门认识介绍

    视频源:技术邻 关键词:ProCAST.工艺成型及仿真.铸造工艺及仿真 简介:ProCAST 软件是由美国 USE 公司开发的铸造过程的模拟软件采用基于有限元(FEM)的数值计算和综合求解的方法,对铸 ...

  9. (数字IC)低功耗设计入门(七)——门级电路低功耗设计优化(续)

    前面讲解了门级功耗的优化方法,包括静动态和总体的功耗.现在来记录一下门级层次(有点书也说是在系统级)常用的一种低功耗方法--电源门控. ①电源门控概述与原理 电源门控是指芯片中某个区域的供电电源被关掉 ...

随机推荐

  1. [leetcode-495-Teemo Attacking]

    In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned ...

  2. ReactJS基础(续)

    前边的ReactJS基础,我们可以了解到,对于React,可以说是万物皆组件 React的组件应该具有 可组合(Composeable)可重用(Reusable)可维护(Maintainable)的特 ...

  3. Android精品源码与技术博文

    Android精品源码android遵循Material Design风格天气源码基于exoplay 自定义播放器 支持直播 1 ExoUserPlayer 基本播放器...几种动画效果Animati ...

  4. 深度理解Node.js单线程模型

    Node.js采用 事件驱动 和 异步I/O 的方式,实现了一个单线程.高并发的运行时环境,而单线程就意味着同一时间只能做一件事,那么Node.js如何利用单线程来实现高并发和异步I/O?本文将围绕这 ...

  5. Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging

    通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的“本地消息主机(native messaging host)”,Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应 ...

  6. Kinect用体感来实现UI控件的点击

    用体感来实现UI控件的点击,如点击按钮. 做法:用一个图片表示左手手掌,图片位置追踪左手手掌移动,当手掌位于UI控件的矩形内时,握拳表示点击该控件. using UnityEngine; using ...

  7. Android hook神器frida(一)

    运行环境 ● Python – latest 3.x is highly recommended ● Windows, macOS, or Linux安装方法使用命令 sudo pip install ...

  8. CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)

    CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆) Description 有n个函数,分别为F1,F2,...,Fn.定义 \(Fi(x)=Aix^2+Bix ...

  9. Java 日志框架终极教程

    概述 对于现代的 Java 应用程序来说,只要被部署到真实的生产环境,其日志的重要性就是不言而喻的,很难想象没有任何日志记录功能的应用程序被运行于生产环境中.日志 API 所能提供的功能是多种多样的, ...

  10. 把int型非负数转换为英文

    数字转换为英文 输入为int型非负数,最大值为2^31 - 1 = 2 147 483 647 输出为String英文,最大输出为Two Billion One Hundred Forty Seven ...