Quartus II 自带Simulaiton 与

Modelsim Simulaiton功能仿真

VS

目录

Quartus II 自带Simulaiton 与 1

Modelsim Simulaiton功能仿真 1

一、两者优缺点 1

二、彼此仿真步骤 2

1. Quartus II 自带Simulation 2

2. Modelsim Simulation功能仿真 4

一、两者优缺点

1) Quartus II 自带的Simulation比较适合初学者使用,纯粹的GUI,用鼠标设置即可进行仿真,非常简洁明明了。但是相对于比较大的工程,比较复杂的项目,纯粹的手工,死板的设置,或许在设计者面前便是束手无策了,这个时候,无奈之下,《移情别恋,开始Modelsim》。

2) 相对于Quartus II 自带的Simulation而言,Modelsim Simulation虽然也能简单的进行GUI设置激励,但是更强大的在于testbench测试语言,来对逻辑设计进行仿真测试。对于强大的项目,往往是测试占去了大部分时间,如若还用Quartus II自带的Simulation,设计者必然脑残。复杂的同时意味着强大,Modelsim Simulation更适合项目的开发,能熟练运用Modelsim必然对fpga开发项目带来事半功倍的效益。

二、彼此仿真步骤

1. Quartus II 自带Simulation

1) 新建wave_test工程

2) 编辑代码如下

/*-------------------------------------------------------------------------

This confidential and proprietary software may be only used as authorized

by a licensing agreement from CrazyBingo.

(C) COPYRIGHT 2012 CrazyBingo. ALL RIGHTS RESERVED

Filename : led_matrix_display.v

Author : CrazyBingo

Data : 2012-01-18

Version : 0.1

Description : This file has the module of led_matrix_display top.

Modification History :

Data By Version Change Description

===========================================================================

12/01/18 CrazyBingo 0.1 Original

--------------------------------------------------------------------------*/

`timescale 1ns / 1ns

module wave_test

(

//golobal clock

input clk,

input rst_n,

//divide clock

output clk_out,

//adder signals

input [7:0] din1,

input [7:0] din2,

output reg [7:0] dout,

//self add data

output reg [3:0] addout

);

//-------------------------------------

//divide clock

reg [1:0] cnt;

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

cnt <= 2'b0;

else

cnt <= cnt + 1'b1;

end

assign clk_out = cnt[1];

//-------------------------------------

//add din1 with din2 to dout

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

dout <= 8'd0;

else

dout <= din1 + din2;

end

//-------------------------------------

//self add addout

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

addout <= 4'd0;

else

addout <= addout + 1'b1;

end

endmodule

3) 编译修改调试,RTL如下所示

4) 新建wave文件,输入激励,如下所示

5) Simulation,完成,输出仿真结果如下所示

a) 四分频clk_out

b) 加法器dout

c) 自增addout

2. Modelsim Simulation功能仿真

1) 同上

2) 在wave_test代码最前面添加`timescale 1ns / 1ns 即仿真单位为1ns,仿真精度为1ns

注:若多个文件,,每个文件都得加·timescale 1ns/1ns

3) 同上

4) 打开Modelsim,新建wave_test_presynth工程,如下所示

a) src(最后一个)为Quartus II中verilog设计源文件保存目录

b) simulation为modelsim工程保存目录

c) presynth为modelsim功能仿真文件保存目录

i. src为testbench 文件保存目录

ii. work为工程文件保存目录

d) postsynth为综合后的功能仿真(后续仿真设计备用,只进行功能仿真没必要此)

e) postlayout为布局布线后的时序仿真(后续仿真设计备用,只进行功能仿真没必要此)

5) Add File wave_test_tb.v的testbench文件,图与代码如下所示

(添加`timescale 1ns / 1ns 即仿真单位为1ns,仿真精度为1ns同上)

`timescale 1ns / 1ns

module wave_test_tb;

//-------------------------------

//golobal clock

reg clk;

reg rst_n;

//divide clock

wire clk_out;

//adder signals

reg [7:0] din1;

reg [7:0] din2;

wire [7:0] dout;

//self add data

wire [3:0] addout;

//-------------------------------

wave_test U_wave_test

(

//golobal clock

.clk   (clk),

.rst_n (rst_n),

//divide clock

.clk_out (clk_out),

//adder signals

.din1 (din1),

.din2 (din2),

.dout (dout),

//self add data

.addout (addout)

);

//-------------------------------

//初始化

initial

begin

clk = 1'b0;

rst_n = 1'b0;

#20 rst_n = 1'b1;

end

always

#10 clk = !clk; //20ns,50MHz

//-------------------------------

//输入加法器激励

initial

begin

#20   din1 = 8'h11;   din2 = 8'h22;

#100  din1 = 8'h33;  din2 = 8'h44;

#500  din1 = 8'h55;  din2 = 8'h66;

End

endmodule

当然也可以在Quartus中新建此文件到目录下,或者Modelsim中新建,如下所示

6) Add Exitiing Files,添加Quartus src文件如下

7) Compile All差错修正,若有错误双击error便会跳出错误提示

8) Simulation-Start Simulation,选择work中的wave_test_tb文件为design Units,OK,如下所示(添加design units也可以预编译库文件,下篇中讲述;或者直接在library-work中右键单击warm_test_tb,选择simulation,或者直接双击即可)

此时已经对wave_test_tb.v于wave_test进行Loading,VSIM 2>表示等待命令

9) Modelsim必须做完Simulation才能把所有档案link起来,因此(8)之后添加激励如下所示。打开View-Wave,然后在View-Objects中wave_test_tb的objects添加需要的输入到Wave中,此处与Quartus II无异。如下图所示:

10) 在Transcript窗口VISIM 2>后面输入 run 1000ns(表示运行1000ns),如此如下所示

11) 点击Wave窗口右上角的Dock/Undock,更方便查看wave,如下图所示

修改显示的进制格式与Quartus II无异。

12) 复位仿真与结束仿真(也可在Transcript用tcl脚本实现)

其他按钮功能如下:

13) 如要修改:结束仿真--修改代码--编译--run即可

14) 再试试,不行就再试试,试着试着,就行了。

转载于:https://www.cnblogs.com/crazybingo/archive/2012/02/18/2356679.html

Quartus II 自带Simulaiton 与 Modelsim Simulaiton功能仿真相关推荐

  1. 安装Quartus ii 20版本步骤以及Modelsim SE 10版本配置步骤

    安装Quartus ii 20版本步骤以及Modelsim SE 10版本配置步骤 网盘链接:https://pan.baidu.com/s/1U_sjhdvSKYLSzcmnyZOBBw 提取码:x ...

  2. 利用quartus II自带的仿真工具进行简单的波形仿真

    利用quartus II自带的仿真工具进行简单的波形仿真 按照常规程序点击Run Functional Simulation后出现错误,猜测可能是未选择正确的仿真工具,因为这里可能默认的仿真工具是mo ...

  3. TD联合Modelsim进行功能仿真

    TD联合Modelsim进行功能仿真 1 引言 2 基本配置流程 2.1 TD软件设置操作 2.2 Modelsim软件方面设置 1 引言    最近在接触使用国产安路科技公司的FPGA进行相关的开发 ...

  4. Quartus II自带仿真工具的使用

    刚入门EDA就踩到坑(我觉得应该称之为quartus II软件的一个bug),折腾了很久,百度也搜索不到好的经验,只好自己总结了. 我得澄清一下,这篇文章并不能"包治百病",写这篇 ...

  5. 基于Quartus II软件的FPGA综合实验——多功能数字钟

    有很多自制元器件,内部电路附在文章中 文章目录 前言 一.设计要求 二.设计原理 三.设计过程 1.数码管扫描模块 2.计时模块 3.闹钟模块 4.闹钟响铃模块 5.数码管显示模块 6.整点报时功能 ...

  6. 【FPGA学习】Quartus II中NCO与FFT ip核的仿真

    FPGA有许多IP核使用起来很方便,本篇博客记录一下NCO以及FFT的IP核使用和学习,实验平台是Altera公司的EP4CE40F23C8N 参考资料: Altera--NCO IP核详解 ALTE ...

  7. quartus打开Simulator Tool生成网表进行功能仿真

    Processing|Simulator Tool打开仿真工具,由Timing(时序仿真)选择Functional(功能仿真),点击生成网表Generate .. Netlist

  8. Quartus II 13.0无modelsim进行仿真(用自带仿真器)

    网上都说9.0后面的版本不带仿真功能,但我发现13.0还是有自带仿真. 接下来我用Quartus II 13.0进行一次简单的仿真: 1.新建文件夹test作为工程目录 2.打开Quartus,选择f ...

  9. Quartus II与 ModelSim功能仿真与后仿真扫盲(转)

    时间:2007-04-20   作者:yangyh80@21cn.com 本文主要描述了如何在QUARTUS II 中输入程序文件,生成网表及标准延时文件,然后通过MODELSIM 进行功能仿真与后仿 ...

  10. (筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)

    Abstract 本文介紹使用ModelSim做前仿真,並搭配Quartus II與ModelSim作後仿真. Introduction 使用環境:Quartus II 8.1 + ModelSim- ...

最新文章

  1. MYSQL 连接数据库命令收藏
  2. 读《大道至简-- 第二章 是懒人造就了方法》 有感
  3. e盘是否具有读写权限_轻松搭建MySQL主从复制、读写分离(双机热备)
  4. 【今日CV 视觉论文速览】26 Nov 2018
  5. kafka是如何解决粘包拆包的
  6. 单片机c语言 教案,《单片机C语言》 课程教案.doc
  7. idea代码格式美化快捷键
  8. Jmeter接口测试工具安装
  9. geth 搭建 私有链节点
  10. 来看看大牛 justjavac的编程之路:「懒惰」是程序员最大的美德
  11. FreeXGIS系列产品介绍
  12. RHEL 7安装的步骤
  13. 【linux虚拟机使用yum安装MySQL+修改密码】
  14. 数仓建设之指标体系搭建
  15. 关于SWOT,你了解多少?
  16. 专业的WMS仓储管理系统?
  17. MTK平台设置GPIO
  18. 易搜资料v1.2.8
  19. 盘点2021年流行报表开发工具【测评】
  20. C#pdf电子发票转图片

热门文章

  1. Jenkins发布PHP代码
  2. PCB名詞解釋:通孔、盲孔、埋孔(转载)
  3. Ext.js入门:TabPanel组件(八)
  4. 電郵泛濫成災 電話再成新寵
  5. svg的viewport和viewbox
  6. request库的基本使用
  7. 73.fseek与宽字符读取文件
  8. 加/减/乘/除 下的取余
  9. div水平垂直居中的几种方法(面试问题)
  10. PHP面试题 - MySQL数据库