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入门的更多相关文章

  1. FPGA/SOPC学习转载

    转自小時不識月http://www.cnblogs.com/yuphone/archive/2010/08/27/docs_plan.html 新网址为:http://andrewz.cn [连载计划 ...

  2. ModelSim仿真入门

    ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...

  3. Modelsim的demo入门教程

    写在前面的话学过MCU设计的朋友都知道,系统调试是多么的重要.而对于FPGA设计来说,仿真确实最重要的.一个完整的项目,必须有完整的仿真平台.有朋友说,按键仿真模型没法搞. 我只能说,你并不了解硬件及 ...

  4. ModelSim之命令行仿真入门

    下面是我们的Tcl仿真步骤:启动ModelSim SE, 首先看到在在ModelSim SE右边的窗口有ModelSim> 这样的提示符.在提示符后,顺序运行以下命令:    vlib work ...

  5. Modelsim仿真新手入门最详细教程

    2021年11月15日 00 安装包/版本 我是提前在网上下好的(但这一点也给我的实验造成了"麻烦"),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同 ...

  6. 《FPGA零基础入门到精通视频教程》-第002计数器(Modelsim前仿真)

    高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-68524-1-1.html 优酷视频

  7. System Generator入门

      System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logi ...

  8. modelsim使用命令

    1. 常用仿真命令 vlib work    // 建立work仿真库 vmap work wrok   // 映射库 vlog   -cover  bcest  *.v    // 加覆盖率分析的编 ...

  9. ModelSim仿真教程

    本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...

随机推荐

  1. Java学习的第三十三天

    1.今天复习了第十二章的12.1的文件和12.2一直到12.2.4 2.没有问题 3.明天继续复习

  2. php的三元运算符

    简单记录一哈php的三元运算符的用法:    啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行. 若判断成立,则执行第二个表达式,否则执行第三个表达式. 看到好多网友都说的不 ...

  3. cenos7 u disk install

    分类:             其他              2014-08-24 13:53     3406人阅读     评论(0)     收藏     举报 CentOS安装教程操作系统 ...

  4. Oracle终极彻底卸载

    停止使用Oracle的服务 停用oracle服务,进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止. 运行卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使 ...

  5. C++ stringstream 实现字符与数字之间的转换

    c++中利用srtingstream可以将数字转为字符串,或者将字符串转为数字: 首先将double型数字串转成了string: stringnum2string(double *a,int n) { ...

  6. .NET 5.0正式发布,功能特性介绍(翻译)

    本文由葡萄城技术团队翻译并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 我们很高兴今天.NET5.0正式发布.这是一个重要的版本-其中也包括了C# ...

  7. subString引起的index out of range

    特别注意!!!低级坑 subString(begin,end)   subList()均存在这个问题. 当end>String.size(),则index out of range!!!

  8. shell编程之输入输出

    1.输入 read命令有以下几种常见形式: read  var  :等待用户输入,从标准输入中读取一行并赋值给变量var read : 标准输入读取一行,并赋值给内置变量REPLY read -a a ...

  9. Innodb之线程独享内存

    引用链接: https://blog.csdn.net/miyatang/article/details/54881547 https://blog.csdn.net/wyzxg/article/de ...

  10. Mysql_笔记2018.1.29

    1.主要数据库 Oracle MySQL Sqlsever 微软 MongoDB (非关系型数据库) 2.MySql 专业词语 1.数据库:一些关联表的集合 2.数据表:表示数据的矩阵 3.列:同ex ...