概述

本文利用了硬件行为描述、数据流描述、结构描述三种方法分别写了几个加法器,记录入门学习

一位半加法器

即两个一位的二进制数相加,得到其正常相加的结果的最后一位。

仿真波形图

硬件行为描述

源文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module bjqxw(a,b,sum,cout);input a,b;output sum,cout;reg sum,cout;always @(a or b)begincase({a,b})2'b00:beginsum=0;cout=0;end2'b01:beginsum=1;cout=0;end2'b10:beginsum=1;cout=0;end2'b11:beginsum=0;cout=1;end endcaseend
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
module bjqxwsimu;reg a,b;wire sum,cout;bjqxw sl(a,b,sum,cout);initialbegina=0;b=0;endalways #10 {a,b}={a,b}+1;
endmodule

结构描述

源文件

1
2
3
4
5
6
module add(a,b,sum,cout);input a,b;output sum,cout;xor(sum,a,b);and(cout,a,b);
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
module add1;reg a,b;wire sum,cout;add ul(a,b,sum,cout);initialbegina=0;b=0;endalways #10 {a,b}={a,b}+1;
endmodule

数据流描述

源文件

1
2
3
4
5
6
7
endmodulemodule add3(a,b,sum,cout);input a,b;output sum,cout;wire sum,cout;assign sum=a^b;assign cout=a&b;
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module add1;reg ain,bin;reg clk;wire sum1,cout1;initialbeginain=0;bin=0;clk=0;endalways #50 clk=~clk;always @(posedge clk)beginain={$random}%2;#3 bin={$random}%2;endadd3 ul(.a(ain),.b(bin),.sum(sum1),.cout(cout1));
endmodule

一位全加器

仿真波图

硬件行为描述

源文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module qjq(a,b,cin,sum,cout);input a,b,cin;output sum,cout;reg sum,cout;always @(a or b or cin)begincase ({cin,a,b})3'b000:beginsum=0;cout=0;end3'b001:beginsum=1;cout=0;end3'b010:beginsum=1;cout=0;end3'b011:beginsum=0;cout=1;end3'b100:beginsum=1;cout=0;end3'b101:beginsum=0;cout=1;end3'b110:beginsum=0;cout=1;end3'b111:beginsum=1;cout=1;endendcase end
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
module qjq1;reg a,b,cin;wire sum,cout;qjq ul(a,b,cin,sum,cout);initialbegina=0;b=0;cin=0;endalways #10 {a,b,cin}={a,b,cin}+1;
endmodule

结构描述

源文件

1
2
3
4
5
6
7
8
9
10
module qiq(a,b,cin,sum,cout);input a,b,cin;output sum,cout;wire q1,q2,q3;xor(sum,a,b,cin);or(q1,a,b);or(q2,b,cin);or(q3,a,cin);and(cout,q1,q2,q3);
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
module qjq1;reg a,b,cin;wire sum,cout;qiq ul(a,b,cin,sum,cout);initialbegina=0;b=0;cin=0;endalways #10 {a,b,cin}={a,b,cin}+1;
endmodule

数据流描述

源文件

1
2
3
4
5
module qjq(a,b,cin,sum,cout);input a,b,cin;output sum,cout;assign {sum,cout}=a+b+cin;
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
module qjqsimu;reg a,b,cin;wire sum,cout;qjq sl(a,b,cin,sum,cout);initialbegina=0;b=0;cin=a&b;endalways #20 {a,b}={a,b}+1;
endmodule

四位全加器

数据流描述

源文件

1
2
3
4
5
6
7
module qjq(a,b,cin,sum,cout);input [3:0] a,b;input cin;output [3:0] sum;output cout;assign {sum,cout}=a+b+cin;
endmodule

仿真结构图

仿真文件

1
2
3
4
5
6
7
8
9
10
11
12
module qjqsimu;reg [3:0] a,b;reg cin;wire [3:0] sum;wire cout;qjq sl(a,b,cin,sum,cout);initialbegina=4'b0000;b=4'b0000;cin=0;endalways #20 {a,b}={a,b}+4'b0001;
endmodule

仿真波图

ps:将上述输入输出的字段长度对应修改,可得到相应数位的全加器数据流描述

verilog设计加法器相关推荐

  1. FPGA数字信号处理(二)并行FIR滤波器Verilog设计

    该篇是FPGA数字信号处理的第二篇,选题为DSP系统中极其常用的FIR滤波器.本文将简单介绍FIR滤波器的原理,详细介绍使用Verilog HDL设计并行FIR滤波器的流程和方法.接下来几篇会介绍串行 ...

  2. FPGA数字信号处理(十六)单级CIC滤波器Verilog设计

    该篇是FPGA数字信号处理的第16篇,选题为多速率信号处理系统中常用的CIC滤波器.本文将详细介绍使用Verilog HDL设计单级CIC滤波器的方法.接下来几篇会介绍多级CIC滤波器的Verilog ...

  3. 数字芯片设计流程之verilog设计

    数字芯片设计流程: 功能验证之前与工艺库没多大联系,验证芯片设计的功能是否正确,针对抽象的代码进行功能验证理想值. 一致性验证确保生成的网表和代码设计功能一致:DFT之后是数字后端. 静态时序分析,从 ...

  4. <Verilog实现加法器>加法器相关基础知识——持续更新版

    一,内容介绍 加法器是数字电路中的最基础电路之一,也是CPU的核心功能之一.(计算单元) 在这个专栏,我会把所有我知道的数字电路的加法器相关模型都实现一遍并解释其原理. 编程使用的语言为Verilog ...

  5. FPGA数字信号处理(三)串行FIR滤波器Verilog设计

    该篇是FPGA数字信号处理的第三篇,选题为DSP系统中极其常用的FIR滤波器.本文将在上一篇"FPGA数字信号处理(二)并行FIR滤波器Verilog设计" https://blo ...

  6. 维特比译码器的Verilog设计(一)----维特比译码原理

    维特比译码器的Verilog设计(一)----维特比译码原理 关于维特比译码 1.编码过程中的状态转移和网格图表示 2.最大似然译码思路 3.硬判决与软判决路径度量 4.译码过程 5.总结 近期由于需 ...

  7. Verilog设计实例(8)按键防抖设计之软件防抖

    博文目录 写在前面 正文 背景介绍及回顾 单个按键 单按键的其他设计版本 多个按键 写在最后 参考资料 交个朋友 写在前面 个人微信公众号: FPGA LAB 个人博客首页 注:学习交流使用! 正文 ...

  8. Verilog设计实例(3)基于Verilog的单端口同步读写RAM设计

    文章目录 写在前面 正文 电路设计 行为仿真 交个朋友 写在前面 为什么要写单端口同步读写RAM呢? 没有那么多为什么?就是因为简单.基础,能清晰说明单端口RAM的原理,顺手给出设计,也能说明你的设计 ...

  9. Verilog设计实例(2)一步一步实现一个多功能通用计数器

    博文目录 写在前面 正文 普通的二进制计数器 电路设计 行为仿真 普通的格雷码计数器 电路设计 行为仿真 LFSR 电路设计 行为仿真 多功能计数器 电路设计 行为仿真 生成语句实现方式 电路设计 行 ...

最新文章

  1. Steve Lin:如何撰写一篇优秀的SIGGRAPH论文
  2. Leetcode-184. 部门工资最高的员工
  3. java 随机数 【指定范围】
  4. java 什么是线程同步,java多线程同步集合是什么?并发集合是什么?
  5. 初学者Web介绍一些前端开发中的基本概念用到的技术
  6. 微软SQL 报表服务的研究
  7. 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_StepByStep_1
  8. 60多年来计算机是根据什么的发展,计算机复习题98197.doc
  9. OFFICE专业增强版2016 32位安装VISIO出错记录
  10. axure rp8 添加动态面板_Axure原型教程:使用动态面板简单实现三级菜单
  11. 微信头像卡片制作,听说很火?
  12. user interface(用户界面)
  13. android 通话录音
  14. 磨金石教育摄影技能干货分享|近景拍摄技巧分析
  15. 调用PC端、手机、平板摄像头拍照
  16. 网易云音乐API,的调用方法 ,vue项目中(在本地使用)
  17. Mysql 数据库(一)
  18. 广度优先和深度优先树遍历的时间和空间复杂度是多少?
  19. WasmEdge 0.9.1 发布:更佳 networking 支持与开发者体验、安卓支持
  20. 猿创征文|前端进阶必备——WebSockt实现聊天室(附源码)

热门文章

  1. canvas上,如何绘制带有箭头的直线?
  2. MacBook 更改蓝牙键盘键位
  3. 51单片机一氧化碳二氧化碳测量报警系统LCD1602显示SGP MQ7传感器
  4. 微信新增刷卡功能 微信二维码支付回归?
  5. 软件技巧--手机软件
  6. html 自动返回首页,mui页面跳转,进入子页面后自动回到首页
  7. 中国服务机器人行业发展现状分析,相关企业数量迅速增加「图」
  8. 适合运动时戴的蓝牙耳机有哪些、运动耳机品牌推荐
  9. iOS逆向:keychain_dumper导出keychain报Operation not permitted
  10. 关于360DOC(个人图书馆)不能复制…