基于Quartus II 和 ModelSim平台对Verilog HDL硬件描述语言编程仿真操作流程

简介: 基于Quartus II 和 ModelSim平台对Verilog HDL硬件描述语言编程仿真操作流程

一、独立仿真

文件夹建立

以工程4位二进制计数器为例,首先在工作目录下建立工程文件夹,其中count4用于存放编写的Verilog HDL代码,而count4_tb则用于存放要输入给Verilog HDL代码的波形信号,也就是testbench文件。

1.png

建立quartus II工程文件

运行quartus II后点击New Project Wizard建立一个新的工程。

2.png

选择工作区域时选择在文件夹建立章节中建立的count4文件夹,并命名工程名为count4,顶层设计名称默认为工程名,可根据自己需求进行改动。

3.png

VerilogHDL代码编写并编译

工程建立后在工程中建立或者添加Verilog HDL文件,并将代码写入其中保存。可以通过窗口顶部菜单栏中File->New或者工具栏中的新建文件快捷按钮进行文件创建。

4.png

通过VerilogHDL语言编写4位二进制计数器,示例代码如下:

module count4(clk,r,s,en,d,q,co);
 input clk,r,s,en;
 input  [3:0] d;
 output  [3:0] q;
 output co;
 reg  [3:0] q;
 reg  co;
 always@(posedge clk)
  if(r) q=0;
  else 
   begin
    if(s) q=d;
    else if(en)
     begin
      q = q+1;
      if(q==4'b1111) co=1;
      else co=0;
     end
    else q=q;
   end
 endmodule
 

编写完成后对代码进行编译,可以通过窗口顶部菜单栏中Processing->Start Compilation或工具栏中Start Compilation按钮进行编译。编译通过后任务栏将如下图所示。

5.png

在ModelSim中进行仿真

打开ModelSim后首先新建工作库,通过窗口顶部菜单栏中File->New->library或在library窗口中右键New->library中新建工作库

6.png

工作库建立完成后通过File->New->Project建立工程,其中工程目录选定在文件夹建立章节中建立的count4_tb文件夹,工程名为count4_tb

7.png

在工程中通过Add Existing File加入编写好的元件并通过Create New File新建用于输入测试信号的Testbench文件count4_tb.v,其中testbench文件类型应选择Verilog。

8.png

9.png

count4_tb.v文件中应写入testbench,具体代码如下:

`timescale 1ns/1ns  // 仿真时间精度
module count4_tb;      
 reg clk,r,s,en;    // 器件的输入信号在testbench中类型为reg
 reg [3:0] d;
 wire [3:0] q;      // 器件的输入信号在testbench中类型为wire
 wire co;
 initial            // initial中的信号将会顺序执行一次
  begin
   clk=0;r=1;s=0;en=1;d=4'b1001;        // 0ns时信号的初始值
   #300 r=0;        // 300ns时r为0
   #200 s=1;        // 500ns时s为1
   #200 s=0;        // 700ns时s为0
   #1000 en=0;      // 1700ns时en为0
   #300 $stop;      // 2000ns时仿真结束
  end
 always #50 clk=~clk; // always中的信号将会循环执行,此处为每50ns对clk信号执行一次取反输入
 count4 mycount4(.clk(clk),.r(r),.s(s),.en(en),.d(d),.q(q),.co(co));
endmodule

对count4和count4_tb进行编译,选择Compilation All即可。编译通过后文件status将会变为绿色对号标记。

10.png

波形仿真

编译通过后通过顶部菜单栏Simulate->Start Simulation选择count4_tb文件进行仿真。将Objects中的信号全部选中添加到wave中,并点击顶部菜单栏Simulate->run->run-all得到波形仿真结果

12.png

13.png

二、联合仿真

quartus II 提供了对仿真工具的调用接口,可以通过调用这些接口来实现更方便的联合仿真。联合仿真步骤如下。

创建testbench模板

VerilogHDL代码编写并编译之后,可以通过顶部菜单栏中Processing->Start->Start Test Bench Template Wirter来创建Testbench模板。新创建的Testbench模板文件存储为当前文件夹下./simulation/modelsim/count4.vht文件,可以通过quartus II或其他文本编辑工具打开并修改为自己所需的testbench,Testbench各部分内容作用在ModelSim中进行仿真已经给出。

14.png

联合仿真设置

在窗口顶部菜单栏Assignments->Settings->EDA Tool Settings中选择Simulation为ModelSim或者ModelSim-Altera。具体取决于你装的什么EDA工具。Assignments->Settings->Simulation中选择使用的Testbench文件。其中test bench name选项中应该填写testbench中module名。

15.png

开始联合仿真

选择窗口顶部菜单栏Tools->Run Simulation Tools->RTL simulation(此功能为RTL功能仿真,Gate Level Simulation为门级仿真,根据自己需求自选)。

此后步骤与波形仿真中步骤相同。

目录
相关文章
|
开发框架 开发者 Python
探索Python GUI编程:从Tkinter到PyQt的全方位使用
在当今技术发展日新月异的时代,Python作为一种简洁高效的编程语言,拥有广泛的应用领域。其中,GUI(图形用户界面)编程是Python开发者经常涉足的领域之一。本文将介绍两个常用的Python GUI库——Tkinter和PyQt,并深入探讨其使用方法、特点以及适用场景,帮助读者全面了解Python GUI编程的魅力。
249 0
|
弹性计算 网络协议 数据处理
稳定平滑进行云上业务IPv6化改造—— Series1:改造思路及CDN改造
随着国家工信部印发的《推进IPv6规模部署行动计划》的深入推进,近期国资委相关的大型国企都开始着手进行业务的IPv6化改造,其在阿里云上的门户及B2B、B2C等对外业务,自然进入第一批改造的范围。本文是基于在具体客户的IPv6化过程中积累的最佳实践编写,希望能够给读者带来一些IPv6化改造的启发。
稳定平滑进行云上业务IPv6化改造—— Series1:改造思路及CDN改造
|
机器学习/深度学习 数据可视化 算法框架/工具
Keras中神经网络可视化模块keras.utils.vis_util 的安装
Keras中神经网络可视化模块keras.utils.vis_util 的安装
883 0
|
监控 数据可视化
怎么把Logstash 通过 Kibana 可视化监控起来?
怎么把Logstash 通过 Kibana 可视化监控起来?
怎么把Logstash 通过 Kibana 可视化监控起来?
|
9月前
|
供应链 数据可视化 数据挖掘
企业信息化管理要了解的十种系统
信息化不仅是技术的引入,更是企业战略的重要组成部分,贯穿于企业的每一个环节,确保企业在复杂多变的市场中灵活应对、持续发展。
576 6
企业信息化管理要了解的十种系统
|
存储 算法 调度
操作系统实验五:存储管理设计
操作系统实验五:存储管理设计
417 0
|
异构计算
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
1313 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
|
缓存 NoSQL 关系型数据库
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
469 0
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
521 0
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
|
存储 算法
操作系统:虚拟存储管理技术
操作系统:虚拟存储管理技术
273 0