ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的。
本教程以ModelSim
SE 10.4为例
1. 新建工程
file->new->project,输入工程名 例如half_clk
2. 新建文件
新建二分频器模块文件和testbench文件,分别为half_clk和half_clk_tb,注意type选择Verilog。
3. 编写模块文件和激励文件内容
half_clk.v
1
2
3
4
5
6
7
8
9
10
11
12
|
module half_clk_dai(clk_in, rst, clk_out );
input clk_in, rst;
output clk_out;
reg clk_out;
always @(posedge clk_in or negedge rst)
begin
if(!rst)
clk_out<=0;
else
clk_out<=~clk_out;
end
endmodule
|
half_clk_tb.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
`timescale
1ns/1ns
module half_clk_top;
reg clk_in;
reg rst;
initial
begin
clk_in=1;
rst=1;
#1000 rst=0;
#1000 rst=1;
end
always #200 clk_in=~clk_in;
half_clk_dai dai1(.clk_in(clk_in),.rst(rst),.clk_out(clk_out));
endmodule
|
4. 编译文件
编译前一定注意要保存文件!! 【ctrl+s】
点击工具栏按钮,编译全部文件,如果文件名后的status显示√就表示没有语法错误,编译成功。
否则
如果有错误可以双击红色的error查看具体的错误信息。
5. 工程仿真
点击工具栏的Simulation按钮进行仿真。
选择work->half_clk_top,因为只需要对testbench文件进行仿真就行,取消左下角的优化选项,因为可能会把object框里的信号量优化掉.
在 instance里显示了testbench的文件结构,有一个always和一个initial,调用的half_clk里有个一always循环。
在信号量上 右键->add > To Dataflow > Selected Items可以查看设计图
如果ware里没有信号可以右键->add wave添加,然后设置运行时间5ms,点击run,就会显示波形。
可以看到分频器正确运行,输出频率是输入频率的一半。
ModelSim仿真教程的更多相关文章
- 【黑金原创教程】【Modelsim】【第一章】Modelsim仿真的扫盲文
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- Modelsim仿真新手入门最详细教程
2021年11月15日 00 安装包/版本 我是提前在网上下好的(但这一点也给我的实验造成了"麻烦"),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同 ...
- 用Modelsim仿真QuartusII综合后网表时库的添加方法(转)
这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法.说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨.把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博 ...
- ModelSim仿真入门
ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...
- 45.modelsim仿真include文件
modelsim仿真include文件会出现找不到文件的情况,这是因为include文件路径有两种,一种是相对路径,另一种是绝对路径. 相对路径: 如果 ‘include "primitiv ...
- 14.quartus联合modelsim仿真
在quartus调用modelsim仿真过程中,出现了一个错误,如下所示: Check the NativeLink log file I:/Quartus11.0/Myproject/testi_n ...
- modelsim 仿真时出现无限迭代(iteration reach limitation)的原因及其解决办法
modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因: 一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signa ...
- modelsim仿真时让状态机波形显示状态的名字
在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示(如IDLE等).当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,如下面所示,这种显示 ...
- 用ModelSim仿真SDRAM操作
之前写了两篇关于Modelsim仿真的blog,其中模块管脚的命名可能让人觉得有些奇怪,其实不然,之前的两篇内容都是为了仿真SDRAM操作做铺垫的. 由于SDRAM的仿真过程相对比较复杂,也比较繁琐. ...
随机推荐
- python-多线程等概念
并发 & 并行 并发:是指系统具有处理多个任务的能力 并行:是指系统具有 同时 处理多个任务的能力 并行 是 并发的一个子集 同步 & 异步 同步:当进程执行到一个I/O(等待外部数 ...
- [ovs][libvirt][virtio][qemu] vhost user client 排障
ovs-dpdk + qemu 使用vhostuserclient通信,连路不通,libvirt报错如下: -- ::: starting up libvirt version: , package: ...
- LeetCode 559 Maximum Depth of N-ary Tree 解题报告
题目要求 Given a n-ary tree, find its maximum depth. The maximum depth is the number of nodes along the ...
- 如何让html中的td文字只显示部分
以下笔记有待测试 ———————————————————— <table style="table-layout:fixed"> <tr> <td s ...
- logback logback.xml常用配置详解(二)<appender>
转自:http://aub.iteye.com/blog/1101260 logback 常用配置详解(二) <appender> <appender>: <append ...
- 前端 HTML 常用标签 head标签相关内容 script标签
script标签 定义JavaScript代码 <!--定义JavaScript代码--> <script type="text/javascript"> ...
- SSAS下玩转PowerShell
操作SSAS数据库的方法有非常多,是否有一种能够方法能够通过脚本自己主动去做这些事呢,比方处理分区,创建备份以及监视SSAS的执行状况. 原文地址: http://www.mssqltips ...
- url映射
#include<iostream> #include<algorithm> #include<ctype.h> #include<string> #i ...
- 实例:使用puppeteer headless方式抓取JS网页
puppeteer google chrome团队出品的puppeteer 是依赖nodejs和chromium的自动化测试库,它的最大优点就是可以处理网页中的动态内容,如JavaScript,能够更 ...
- Windows 下MySql Replication(复制)配置
环境准备 到官网下载mysql-installer-web-community-5.7.21.0.msi并安装,选择MySql Workbench,记录安装时root输入的密码. 需要安装在两台机器上 ...