在fpga工程应用设计中,随处可见加法器,乘法器等等。现在将一些常用模块和心得体会先记录下来,以便日后使用。

一位半加器

module halfadder(cout,sum,a,b);

outputcout,sum; //不申明,默认是wire变量

input  a,b;

assign{cout,sum}=a+b;//cout为进位,sum为和

endmodule

一位全加器

module fulladder(a,b,cin,cout,sum);

inputa,b,cin;

outputcout,sum;

assign{cout,sum}=a+b+cin;

endmodule

利用两个半加器实现全加器

module halfadder(a,b,sum,cout);

outputcout,sum; //不申明,默认是wire变量

input  a,b;

assign{cout,sum}=a+b;

endmodule

module fulladder(x,y,c_in,sum,c_out);

inputx;

inputy;

inputc_in;

outputsum;

outputc_out;

wirea_sum;

wirea_out;

wireb_out;

assignc_out=a_out|b_out;

halfadderhalf(x,y,a_sum,a_out);

halfadderhalf1(c_in,a_sum,sum,b_out);

endmodule

测试文件的编写技巧

就拿上面的半加器来说,我们需要添加的就是输入信号a,b.可以采用下列方法:

第一种:

#100 a=0;

#100 b=0;

#100 a=1;

#100 b=1;

这种编辑方式虽然十分方便,可是对于很多情况的测试编写困难。

第二种:

Integer I;

For(i=0;i<=15;i=i+1)

a=I;//注意这里a是一位,因此输出为0101010101010101

第三种:

Repeat(16)

a ={$random}%2;//这里产生随机的0 1比特流。

原文:http://blog.csdn.net/tengweitw/article/details/11296961

作者:nineheadedbird

【FPGA学习】Verilog之加法器的更多相关文章

  1. FPGA学习笔记(二)——FPGA学习路线及开发流程

    ###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -& ...

  2. 如何学习FPGA?FPGA学习必备的基础知识

    如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA   基础知识       FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...

  3. 自己动手写CPU(基于FPGA与Verilog)

    大三上学期开展了数字系统设计的课程,下学期便要求自己写一个单周期CPU和一个多周期CPU,既然要学,就记录一下学习的过程. CPU--中央处理器,顾名思义,是计算机中最重要的一部分,功能就是周而复始地 ...

  4. FPGA学习网站

    1.  OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由 http//www.opencores.org/browse.c ...

  5. FPGA学习的一点总结

    做FPGA主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,那么应该要对数字电路的知识熟悉. FPGA中是由触发器和查找表以及互联线等基本结构组成的,其实在逻辑代码里面能够看到的就是与非门以及 ...

  6. FPGA学习的一些误区

    转载自网络,作者不详. 我常年担任多个有关FPGA学习研讨的QQ群管理员,长期以来很多新入群的菜鸟们总是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是 ...

  7. [整理]FPGA学习资料汇总

    01.特权同学倾情奉献海量FPGA学习资料 http://pan.baidu.com/s/1pJIb32F

  8. 芯航线FPGA学习套件之4*4矩阵键盘模块测试手册

    芯航线FPGA学习套件之4*4矩阵键盘模块测试手册   本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的矩阵键盘模块的测试方法:   连接开发板,如下所示: 2.将矩阵键盘模块与开发板按如下图所 ...

  9. 芯航线FPGA学习套件之多通道串行ADDA(TLV1544,TLC5620)模块测试手册

    芯航线FPGA学习套件之多通道串行ADDA模块测试手册   本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的ADDA模块的测试方法:   连接开发板,如下所示: 2.将ADDA V1.1模块与开 ...

  10. FPGA学习之基本结构

    如何学习FPGA中提到第一步:学习.了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程.既然要开始学习FPGA,那么就应该从其基本结构开始.以下内容是我 ...

随机推荐

  1. Java HashMap的扩容

    最近博主参加面试,发现自己对于Java的HashMap的扩容过程理解不足,故最近在此进行总结. 首先说明博主德Java为1.8版本 HashMap中的变量 首先要了解HashMap的扩容过程,我们就得 ...

  2. Python中将一个对象倒序输出的4种方法

    Python中将一个对象倒序输出的4种方法就用列表来举例说明吧: >>> lst = [1,2,3,4,5,6] #创建测试列表 #方法1: >>> lst.rev ...

  3. 剑指架构师系列-MySQL常用SQL语句

    (1)分清HAVING与WHERE的区别: HAVING 子句使你能够指定过滤条件,从而控制查询结果中哪些组可以出现在最终结果里面.WHERE 子句对被选择的列施加条件,而 HAVING 子句则对 G ...

  4. 第一次作业:基于Linux操作系统深入源码进程模型分析

    1.Linux操作系统的简易介绍 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使 ...

  5. Eleven

    A. Eleven time limit per test : 1 second memory limit per test:  256 megabytes input:  standard inpu ...

  6. matplotlib画散点图,并在散点处打上相应标签

    运行环境: py3.6 matplotlib 2.1.2 x = [2,4,6,7,8,5,4,3] y = [3,6,5,8,4,3,2,4] txt = ['我','今','晚','上','吃', ...

  7. Android Studio精彩案例(六)《使用一个Demo涵盖补间动画所有知识》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 元旦假期里,闲的无事,看到美团加载数据的动画,就突想写个Demo把动画知识集成一下.后来想了想,还是直接用一个Demo来把所有动画知识 ...

  8. linux2.6.37内核接两个硬盘导致读写效率变低的问题

    一.问题分析: 通过跟踪定位write系统调用的实现发现,在每次调用a_ops->write_end之后,都会去调用balance_dirty_pages_ratelimited,该函数负责检查 ...

  9. Scala:输入输出

    http://blog.csdn.net/pipisorry/article/details/52902694 Scala基本输入输出 从屏幕上读取用户输入 有时候我们需要接收用户在屏幕输入的指令来处 ...

  10. springMVC源码分析--SimpleServletHandlerAdapter(二)

    上一篇博客springMVC源码分析--HandlerAdapter(一)中我们主要介绍了一下HandlerAdapter接口相关的内容,实现类及其在DispatcherServlet中执行的顺序,接 ...