行波进位加法器C语言,行波进位加法器.doc
行波进位加法器
行波进位加法器
行波进位加法器实验报告
一、 实验目的:
1、掌握行波进位加法器原理;
2、熟悉verilog 语言;
3、了解quartus II的用法。
二、 实验内容:
使用verilog 语言实现8位的行波进位加法器。
三、 实验结果:
方案二的程序:
module add_8(A,B,Cin,Sum,Cout,out);
input [7:0] A,B;
input Cin;
output [7:0] Sum;
output Cout;
output [7:1] out;
wire [7:0] Sum;
wire Cout;
wire [7:1] out;
add add1(A[0],B[0],Cin,Sum[0],out[1]);
add add2(A[1],B[1],out[1],Sum[1],out[2]);
add add3(A[2],B[2],out[2],Sum[2],out[3]);
add add4(A[3],B[3],out[3],Sum[3],out[4]);
add add5(A[4],B[4],out[4],Sum[4],out[5]);
add add6(A[5],B[5],out[5],Sum[5],out[6]);
add add7(A[6],B[6],out[6],Sum[6],out[7]);
add add8(A[7],B[7],out[7],Sum[7],Cout);
endmodule
module add(a,b,cin,sum,cout);
input a,b;
input cin;
output sum;
output cout;
reg sum;
reg cout;
always @(*)
begin
if((a+b+cin==1)||(a+b+cin==3))
sum<=1'b1;
else sum<=1'b0;
if((a+b+cin)>=2)
cout<=1'b1;
else cout<=1'b0;
end
endmodule
方案二的功能仿真
方案三的程序:
module add_8(A,B,Cin,Sum,Cout);
input [7:0] A,B;
input Cin;
output [7:0] Sum;
output Cout;
reg [7:0] Sum;
reg Cout;
reg [8:0] out;
parameter size=7;
integer i;
always @(*)
begin
out[0]=Cin;
for(i=0;i<=size;i=i+1)
add (A[i],B[i],out[i],Sum[i],out[i+1]);
end
task add;
input a,b,cin;
output sum,cout;
begin
if((a+b+cin==1)||(a+b+cin==3))
sum=1'b1;
else sum=1'b0;
if((a+b+cin)>=2)
cout=1'b1;
else cout=1'b0;
end
endtask
always @(out[8])
Cout=out[8];
endmodule
方案三的功能仿真
四、 实验结果分析:
方案一、我选择了使用模块的嵌套,即先实现一个一位的全加器add ,然后在顶层模块add_8里面调用8次add ,经过老师的点拨,我选择使用for 循环调用add 。但是因为在for 循环里面调用8次add ,就得给每一个实例化模块一个名字,而在verilog 语言里面我还不会使用字符串数组。所以这种方案没能成功。
方案二、考虑到方案一是因为不能使用for 循环给每一个调用的模块一个实例化名字,所以我变放弃了for 循环,依次把要调用的模块写出来。结果这种方案成功了,但是缺点是太繁琐,如果实现8位的还可以勉强用写8
个实例化模块,如果
要写一个64位的就万万不可取了。
方案三、我又分析了方案一失败的原因,既然实例化模块调用不可行,那么调用task 呢?因为调用task 是不需要重新再给它任务命的,所以我便尝试着把方案一中的模块调用换成相应的task 调用。结果这种方法是可取的,而且相比方案二来说,这种更简单,在处理多位全加器时尤为方便,所以我最终选择了方案三。
五、 实验心得:
通过这次实验,我对verilo
行波进位加法器C语言,行波进位加法器.doc相关推荐
- 行波进位加法器C语言,行波进位加法器原理
算术运算是数字系统的基本功能,更是计算机中不可缺少的组成单元.本节介绍加法运算和减法运算的逻辑电路. 一.半加器和全加器 1.半加器 半加器和全加器是算术运算电路中的基本单元,它们是完成1位二进制数相 ...
- 超前进位加法器实验报告_干货 | 加法器与反相加法器原理解析
什么是加法器 加法器是为了实现加法的,即是产生数的和的装置. 加数和被加数为输入,和数与进位为输出的装置为半加器.若加数.被加数与低位的进位数为输入,而和数与进位为输出则为全加器.常用作计算机算术逻辑 ...
- 【离散数学】实践一 用C语言实现二进制加法器
题目以及要求 每个学生利用 C 语言独自完成设计一个 8 位加法器,计算只用非与或(!, &&,|)三种逻辑运算实现.(C 语言的布尔数据类型:bool,参考: https://www ...
- 两个运放制作加法器_同相加法器电路图_反相加法器电路图_运放加法器电路图解析...
在电子学中,加法器是一种数位电路,其可进行数字的加法计算.加法器是产生数的和的装置.加数和被加数为输入,和数与进位为输出的装置为半加器.若加数.被加数与低位的进位数为输入,而和数与进位为输出则为全加器 ...
- 计算机进位法,计算机基础知识--进位计数制.docx
教学对象 1901.1902运营班 教学时间 2019年4月9日 教学内容 第一单元 计算机基础知识 任务二 进位计数制 知识目标 1.掌握不同数制的表示方式. 2.不同进制之间的转换 能力目标 1. ...
- 用计算机怎么更改进位制,计算机中的进位制,8421法是怎么转换的啊,求解
计算机中的进位制,8421法是怎么转换的啊,求解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 计算机中的进位制,842 ...
- c语言课程设计的摘要,投票程序设计-C语言课程设计摘要.doc
投票程序设计-C语言课程设计摘要.doc C 语 言 课 程 设 计 题 目: <7>投票程序 设 计 者: 专 业: 班级学号: 所属院系:机电学院 指导教师: 2010年7月17日 1 ...
- c语言四则运算实验报告,c语言四则运算实验报告.doc
c语言四则运算实验报告.doc 课程编号 1300050027 得分教师签名批改日期深 圳 大 学 实 验 报 告课程名称 C语言实验 实验名称 100以内的四则运算游戏 学 院 信息工程学院 指导教 ...
- c语言程序设计a考试题,C语言程序设计考试题(A).doc
C语言程序设计考试题(A).doc 迅腾国际C语言程序设计考试题(A)班级 _ 姓名_ 得分一. 选择题 (本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常量是[ ]A) ...
最新文章
- TCP/IP 广播的发送和接收
- 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
- 华为xs第几批升级鸿蒙,华为和荣耀老机型用户有福:确定能批量升级到鸿蒙系统!...
- 图论 公约数 找环和链 BZOJ [NOI2008 假面舞会]
- random_state ---summary
- 山师计算机专业研究生怎么样,山东师范大学有计算机专业硕士吗?
- oracle之创建和管理表之练习题
- 【Git、GitHub、GitLab】一 Git安装与Git最小配置
- 让互联网助小组合作一臂之力
- Linux(CentOS)下安装Elasticsearch5.0.0
- 计算机网络的概述发展填空题,计算机网络安全概述填空题.doc
- Unity实现刺客信条灯光的思路探究
- php免费项目下载文件,php——文件下载
- matlab所有元素求和,数组 – MATLAB对数组值表达式的所有元素求和
- 360浏览器极速模式和兼容模式
- 网络是怎样连接的?从浏览器输入URL开始
- css中设置body字体,css如何设置body字体颜色
- 夜暗方显万颗星,灯明始见一缕尘
- 3.3:如何在Python中创建文件?
- 2022年5月20日最全摸鱼游戏导航
热门文章
- Ubuntu14下Auto-sklearn安装调试总结
- find排除文件 linux_Linux find命令排除某个路径
- 脑机接口(一):背景知识
- VUE+Element中eldialog弹框控制最小宽度
- Python_哔哩哔哩弹幕可视化
- 记录有关Https、443、SSL、百度地图、云服务器、网易有数BI 等相关知识
- 在桌面上创建一个宽带连接服务器,win7系统怎么在桌面上创建宽带连接的快捷图标?...
- 02 KVM安装虚拟化
- Android 12 adb push更新系统应用
- 一键安装LAMP脚本