【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱: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学习记(加法器)相关推荐

  1. verilog学习:加法器

    前言 之前的文章<verilog学习:使用VCS仿真验证一个全加器>,示范了下全加器,这篇文章就展开说一下加法器. 参考的视频有: [老邱数电]半加器与全加器基础 单片机功能这么强,为什么 ...

  2. verilog学习记(verilog翻译成c)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 有的时候,写verilog代码时,不太确定是否正确,会写一段伪c代码来进行验证,比如 modu ...

  3. verilog学习记(测试和验证)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 平台的选择 对于很多不是数字电路专业的同学来说,学习verilog的过程不算轻松.因为没有mod ...

  4. verilog学习记(开头篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 自从来苏州工作以后,写博客的频率明显降低了.这倒不是因为自己没有什么东西可以说的,主要是因为要 ...

  5. verilog学习记(学习设计cpu)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很早之前,自己就对cpu的设计非常感兴趣.和十几年前比较,现在网上开源的cpu代码还是很多的,比 ...

  6. verilog学习记(tinyriscv mcu设计)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 网上其实有很多的cpu代码,很多都值得好好学一学.对于软件开发的同学来说,也有必要知道每一条指 ...

  7. verilog 学习记(如何编写assert)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 我们在编写c代码的时候,一般测试的时候都要用assert进行判断.那么怎么在verilog中进行 ...

  8. verilog 学习记(mac安装iverilog和gtkwave)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 由于自己的电脑是mac,所以在安装方法和linux.windows不太一样,只能使用brew安 ...

  9. verilog学习记(快速入门)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在前面的一篇博客中,我们说到可以使用modelsim对verilog进行测试和仿真.事实上,还 ...

最新文章

  1. mysql 3.6.4_TOMCAT5+MYSQL5+JIRA3.6.4配置说明
  2. flutter加载本地html标签,Flutter中如何加载并预览本地的html文件的方法
  3. 计算机二级和省考撞车了,事考、省考撞车?7月25日笔试,该怎么选?
  4. lucky前面加a还是an_lucky的用法
  5. 出这样的题,出题人的良心确定不会痛吗?
  6. Mysql yum 安装后,一些重要的文件路径
  7. 2014.8坝上之一:在路上
  8. bootstrap modal弹出框实现及实现按钮点击复制功能
  9. Semaphore源码解读
  10. revit2019 导出obj_Revit导出OBJ格式
  11. 分布式日志收集(ELK)
  12. jclasslib 插件安装及使用
  13. Windows阿帕奇apache服务器安装(httpd)
  14. MATLAB创建数组方法
  15. GATK使用方法详解(原始数据的处理)
  16. SVN解决 Node remains in conflict
  17. 我在 B 站挖到了 9 款深藏不露的工具,每个都好用到爆!
  18. iPhone测试软件偷开照相机,iphone小软件让小偷现形 自动拍下照片发送邮箱
  19. Mathmatica9 注册不了
  20. 如何合理运用美容院资源

热门文章

  1. 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server
  2. linux下ppp拨号无线上网
  3. Appium+Python API相关知识了解
  4. Java中对List集合排序的两种方法
  5. The Internet Communications Engine (Ice) 跨平台异构通讯方案 第二弹-Hello world!
  6. 兔子问题JAVA编程题
  7. 关于TTL大家容易忽略的地方
  8. AndroidStudio_安卓原生开发_什么是AndroidStudio NDK ---Android原生开发工作笔记140
  9. 大数据之-Hadoop完全分布式_集群中分发脚本xsync_集群环境中同时配置大量主机---大数据之hadoop工作笔记0033
  10. Sharding-JDBC水平分表(最终测试)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记009