ModelSim入门
verilog设计进阶
时间:2014年5月5日星期一
主要收获:
1. 安装了ModelSim ALTERA 6.4a;
2. 熟悉基本流程,仿真成功;
3. 了解testbench语法基本。
为什么要学ModelSim……
1. Modelsim是专业的HDL语言仿真器,比 Quartus自带的仿真器功能强大的多.
2. Quartus simulator不支持Testbench ,只支持波形文件.vwf。vwf文件全称是矢量波形文件(Vector Waveform File),是Quartus II中仿真输入、计算、输出数据的载体。一般设计者建立波形文件时,需要自行建立复位、时钟信号以及控制和输入数据、输出数据信号等。其中工作量最大的就是输入数据的波形录入。比如要仿真仅1KB的串行输入数据量,则手工输入信号的波形要画8000个周期,不仅费时费力而且容易出错。
安装遇到的问题……
由于笔记本是win8系统,安装的是ModelSim ALTERA 6.4a,破解之后仍然打不开。解决的方法是……以管理员的身份打开。
可综合的比较器:
module compare(a, b, equal);
input a;
input b;
output equal;
assign equal = (a==b)?1:0;
endmodule
测试模块:
`timescale 1ns/1ns
module compare_test;
reg a,b;
wire equal;
initial begin
a=0;b=0;
#100 a=0;b=1;
#100 a=1;b=0;
#100 a=1;b=1;
#100 $stop;
end
compare u1(a, b, equal);
endmodule
仿真波形:
练习:
设计一个字节(8位)比较器。
要求:比较两个字节的大小,如a[7:0]大于b[7:0]输出高电平,否则输出低电平,改写测试模型,使其能进行比较全面的测试。
思考:
第一次接触testbench文件,所以有很多问题。比较困难的就是"全面的测试",需要对a和b进行所有情况的测试。分析a和b的数值都是在0~255之间,则可以对b每1ns进行一次自增,对a每256ns进行一次自增,即可实现对a和b所有情况的比较。
测试文件:
`timescale 1ns/1ns
module compare_test;
reg[7:0] a,b;
wire equal;
initial begin
a[7:0]=0;b[7:0]=0;
#100 a[7:0]=8'b0000_0001; b[7:0]=8'b0000_0010;
#100 a[7:0]=8'b0000_0010; b[7:0]=8'b0000_0010;
#100 a[7:0]=8'b1000_0001; b[7:0]=8'b0000_0010;
#100 a[7:0]=8'b1000_0001; b[7:0]=8'b1000_0001;
#100 a[7:0]=8'b1111_0001; b[7:0]=8'b1111_0001;
end
always #1 b[7:0]<=b[7:0]+1;
always #256 a[7:0]<=a[7:0]+1;
compare u1(a[7:0], b[7:0], equal);
endmodule
仿真波形图:
ModelSim入门的更多相关文章
- FPGA/SOPC学习转载
转自小時不識月http://www.cnblogs.com/yuphone/archive/2010/08/27/docs_plan.html 新网址为:http://andrewz.cn [连载计划 ...
- ModelSim仿真入门
ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...
- Modelsim的demo入门教程
写在前面的话学过MCU设计的朋友都知道,系统调试是多么的重要.而对于FPGA设计来说,仿真确实最重要的.一个完整的项目,必须有完整的仿真平台.有朋友说,按键仿真模型没法搞. 我只能说,你并不了解硬件及 ...
- ModelSim之命令行仿真入门
下面是我们的Tcl仿真步骤:启动ModelSim SE, 首先看到在在ModelSim SE右边的窗口有ModelSim> 这样的提示符.在提示符后,顺序运行以下命令: vlib work ...
- Modelsim仿真新手入门最详细教程
2021年11月15日 00 安装包/版本 我是提前在网上下好的(但这一点也给我的实验造成了"麻烦"),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同 ...
- 《FPGA零基础入门到精通视频教程》-第002计数器(Modelsim前仿真)
高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-68524-1-1.html 优酷视频
- System Generator入门
System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logi ...
- modelsim使用命令
1. 常用仿真命令 vlib work // 建立work仿真库 vmap work wrok // 映射库 vlog -cover bcest *.v // 加覆盖率分析的编 ...
- ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...
随机推荐
- windows搭建ftp
控制面板 此时输入电脑用户名和密码可在自己电脑访问,但是其它电脑不能访问 接下来防火墙允许的应用将FTP服务器打钩 控制面板\系统和安全\Windows Defender ...
- 深入理解golang:内存分配原理
一.Linux系统内存 在说明golang内存分配之前,先了解下Linux系统内存相关的基础知识,有助于理解golang内存分配原理. 1.1 虚拟内存技术 在早期内存管理中,如果程序太大,超过了空闲 ...
- hdu3974 Assign the task线段树 dfs序
题意: 无序的给编号为1-n的员工安排上下级, 操作一:给一个员工任务C,则该员工以及他的下级任务都更换为任务C 操作二:询问一个员工,返回他的任务 题解: 给一个员工任务,则他所在组都要改变,联 ...
- element UI table show-overflow-tooltip属性更改背景色和字体颜色
.el-tooltip__popper { width: 80%;/*修改宽度*/ background: #000 !important;/*背景色 !important优先级*/ opacity ...
- 年轻人的第一个 Docker 应用,大大提高生产力!
上一篇:年轻人的第一个 Spring Boot 应用! 哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂. 这几年 D ...
- Socket accept 简要分析
accept 用于从指定套接字的连接队列中取出第一个连接,并返回一个新的套接字用于与客户端进行通信,示例代码如下 #include <sys/types.h> /* See NOTES * ...
- binary hacks读数笔记(readelf基本命令)
一.首先对readelf常用的参数进行简单说明: readelf命令是Linux下的分析ELF文件的命令,这个命令在分析ELF文件格式时非常有用,下面以ELF格式可执行文件test为例详细介绍: 1. ...
- gdb调试core dump使用
什么是coredump? Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照.操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存.寄存器状态.运行堆 ...
- linux文件cat/tac/more/less/head/tail/find/vimdiff
ls查看目录文件里的文件: [root@localhost test]# ls a aa b c -d选项查看目录文件自身信息: [root@localhost test]# ll -d drw ...
- 查询SQL Server数据库使用的版本号信息
如何查询当前连接服务器的数据库版本号,使用以下语句执行即可: select @@version