verilog学习记(加法器)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
编程语言,光看书其实作用不大的,关键还需要自己进行实践。看书的时候,你觉得自己明白了、弄懂了,等到用modelsim实践的时候还是会出现这样那样的问题。因此,还是希望自己能够不断地训练和练习,这样可以达到熟能生巧的程度。就今天的加法器来说,其实内容还是比较简单的。主要就是数值和进位之间的关系。这些内容在计算机组成原理上面都会提到,关键是自己是否真正掌握。闲话不多说,可以编写一个verilog代码试试。
module add(a, b, in, c, out);input a;input b;input in;output c;output out;assign {out, c} = a + b + in;
endmodule
这里直接用数据流的形式解决。当然,大家可以根据自己的情况选择门电路编写也是可以的,毕竟条条大路通罗马嘛。不多说,继续编写testbench文件,
`timescale 1ns/1nsmodule count_t;reg clk;reg a;reg b;reg in;wire c;wire out;add process(a, b, in, c, out);initialclk = 0;always forever #5 clk = ~clk;initialbegina = 0; b = 0; in = 0;#10 a = 0; b = 0; in = 1;#10 a = 0; b = 1; in = 0;#10 a = 0; b = 1; in = 1;#10 a = 1; b = 0; in = 0;#10 a = 1; b = 0; in = 1;#10 a = 1; b = 1; in = 0;#10 a = 1; b = 1; in = 1;end initialbegin#200 $finish;end initial$monitor(" out = %d, c = %d\n", out, c);endmodule
我们知道,两个数字相加,此时如果还有进位信息的话,那么就会出现8种情况。如果大家不觉得烦的话,可以把这8种情况都测试一遍。当然如果不想看波形,直接用minitor打印出来也是可以的。
verilog学习记(加法器)相关推荐
- verilog学习:加法器
前言 之前的文章<verilog学习:使用VCS仿真验证一个全加器>,示范了下全加器,这篇文章就展开说一下加法器. 参考的视频有: [老邱数电]半加器与全加器基础 单片机功能这么强,为什么 ...
- verilog学习记(verilog翻译成c)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有的时候,写verilog代码时,不太确定是否正确,会写一段伪c代码来进行验证,比如 modu ...
- verilog学习记(测试和验证)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 平台的选择 对于很多不是数字电路专业的同学来说,学习verilog的过程不算轻松.因为没有mod ...
- verilog学习记(开头篇)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 自从来苏州工作以后,写博客的频率明显降低了.这倒不是因为自己没有什么东西可以说的,主要是因为要 ...
- verilog学习记(学习设计cpu)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很早之前,自己就对cpu的设计非常感兴趣.和十几年前比较,现在网上开源的cpu代码还是很多的,比 ...
- verilog学习记(tinyriscv mcu设计)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 网上其实有很多的cpu代码,很多都值得好好学一学.对于软件开发的同学来说,也有必要知道每一条指 ...
- verilog 学习记(如何编写assert)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 我们在编写c代码的时候,一般测试的时候都要用assert进行判断.那么怎么在verilog中进行 ...
- verilog 学习记(mac安装iverilog和gtkwave)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 由于自己的电脑是mac,所以在安装方法和linux.windows不太一样,只能使用brew安 ...
- verilog学习记(快速入门)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在前面的一篇博客中,我们说到可以使用modelsim对verilog进行测试和仿真.事实上,还 ...
最新文章
- mysql 3.6.4_TOMCAT5+MYSQL5+JIRA3.6.4配置说明
- flutter加载本地html标签,Flutter中如何加载并预览本地的html文件的方法
- 计算机二级和省考撞车了,事考、省考撞车?7月25日笔试,该怎么选?
- lucky前面加a还是an_lucky的用法
- 出这样的题,出题人的良心确定不会痛吗?
- Mysql yum 安装后,一些重要的文件路径
- 2014.8坝上之一:在路上
- bootstrap modal弹出框实现及实现按钮点击复制功能
- Semaphore源码解读
- revit2019 导出obj_Revit导出OBJ格式
- 分布式日志收集(ELK)
- jclasslib 插件安装及使用
- Windows阿帕奇apache服务器安装(httpd)
- MATLAB创建数组方法
- GATK使用方法详解(原始数据的处理)
- SVN解决 Node remains in conflict
- 我在 B 站挖到了 9 款深藏不露的工具,每个都好用到爆!
- iPhone测试软件偷开照相机,iphone小软件让小偷现形 自动拍下照片发送邮箱
- Mathmatica9 注册不了
- 如何合理运用美容院资源
热门文章
- 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server
- linux下ppp拨号无线上网
- Appium+Python API相关知识了解
- Java中对List集合排序的两种方法
- The Internet Communications Engine (Ice) 跨平台异构通讯方案 第二弹-Hello world!
- 兔子问题JAVA编程题
- 关于TTL大家容易忽略的地方
- AndroidStudio_安卓原生开发_什么是AndroidStudio NDK ---Android原生开发工作笔记140
- 大数据之-Hadoop完全分布式_集群中分发脚本xsync_集群环境中同时配置大量主机---大数据之hadoop工作笔记0033
- Sharding-JDBC水平分表(最终测试)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记009