下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验名称
电子技术实验大作业实验报告
F
四位二进制数的可控加法/减法
设计思路
本作业主要完成的是四位二进制数的可控加法。实现了附加功能中的在四位数码管上显示和数值溢出的显示功能。
本作业主要由两个模块组成,一个是主程序模块,负责较简单的加法运算;另外一个是a_to_g子程序模块,输入一个4位二进制数字,用来把数字显示在数字管上。数值溢出则是看cout位是否为1,为1则溢出。
程序代码
`timescale1ns/1ps
//////////////////////////////////////////////////////////////////////////////////
//:
//Engineer:
//
//CreateDate: 05:40:3904/18/2014
//DesignName:
//ModuleName: adder
//ProjectName:
//TargetDevices:
//Toolversions:
//Description:
//
//Dependencies:
//
//Revision:
//Revision0.01-FileCreated
//AdditionalComments:
//
//////////////////////////////////////////////////////////////////////////////////moduleadder(
input[3:0]sw1,sw2,
//inputbutton,inputclk,
output [6:0]dp_a_to_g,output [3:0]out0
);
regcout;
reg[3:0]sum;
always@(sw1orsw2)begin
{cout,sum}=sw1+sw2;end
a_to_gATOG(.sw(sum),.clk(clk),.dp_a_to_g(dp_a_to_g),.out0(out0),.cout(cout));endmodule
modulea_to_g(
input[3:0]sw,inputclk,inputcout,
outputreg[6:0]dp_a_to_g,outputreg[3:0]out0
);
integernum;integers;integeri;
initialbegini=0;
end
always@(posedgeclk)begin
i=i+1;
if(i[16:14]>3)i=0;
s=i[15:14];
if(~cout)begincase(s)
0:out0=4'b0111;
1:out0=4'b1011;
2:out0=4'b1101;
3:out0=4'b1110;
endcase
case(s)
0:num=sw[0];
1:num=sw[1];
2:num=sw[2];
3:num=sw[3];endcase
end
elsebegin
out0=4'b0000;num=2;
end
end
always@(*)
case(num)
0:dp_a_to_g=7'b ;
1:dp_a_to_g=7'b ;
2:dp_a_to_g=7'b ;
default:dp_a_to_g=7'b ;endcase
endmodule
实验心得
让四位数码管循环显示时,如果设定的循环间隔太短,则因为毛刺等之类的原因,会使整个数码管亮起来,人眼只能看到四个八。而设定的频率太低的话,则无法造成人眼短暂停留视觉的效果,而是一个一个亮。选择正确的频率才能得到正确的结果。
做此次试验的最大心得就是编程序得走一步看一步,按模块功能一块一块做。做完一块,检查一块。之前一开始我选的题目是数字时钟,一鼓作气把功能大部分都写出来之后,发现了一堆bug,改了好几个小时都没有办法排除,只能重新做。很可惜浪费了时间。
第二会是感受到了高级语言和verilog这种硬件描述语言的差异所在。对于一般使用的高级语言来说,有成封装和函数,以及各种各样的数据类型,使用起来比较容易上手。而对verilog来说,因为跟硬件更为靠近,很多时候不能光码代码,还得想
想能否实验。而且各种规则也不尽相同,很容易做无用功。需要从低级到高级循序渐进的学习,以为掌握一种语言就可以吃遍天下的想法是幼稚的。
学习没有捷径,今天在学习verilog的真可是又复习了一遍这个人生哲理
了!
c1);
c2);
moduleadder(number1,number2,sum,overflow);input[3:0]number1;
input[3:0]number2;
output[3:0]sum;outputoverflow;wirec1,c2,c3;
assignsum[0]=number1[0]^number2[0];assignc1=number1[0]&number2[0];
assignsum[1]=number1[1]^number2[1]^c1;
assignc2=(number1[1]&number2[1])|(number1[1]&c1)|(number2[1]&
assignsum[2]=number1[2]^number2[2]^c2;
assignc3=(number1[2]&number2[2])|(number1[2]&c2)|(number2[2]&
assigns
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编版道德与法治二年级上册第10课《我们不乱扔》精美课件
- 合作经营协议模板
- 江西省南昌市新建二中2022年高三第一次模拟考试物理试卷含解析
- 江西省吉安市四校2021-2022学年高三下学期联考物理试题含解析
- 《有的人》纪念教案
- 苏教版五年级下册体育教案
- 新人教版四年级下册数学教案
- 北师大版小学数学四年级上册第2单元线与角《线的认识》示范公开课教学课件
- 厂房和仓库合用协议书模板
- 不得拆除大门协议书模板
- 四川建龙软件资料全套表格
- 局部氧疗(TOT)治疗创面
- 承接查验协议书
- 冲压件常用公式及数据表
- 警惕‘委托代办邮政业务’之规定被曲解与滥用
- 内部控制风险评估报告
- 新航空运费计算
- XX县民办教育发展状况的调研报告
- 吊篮计算书(精编版)
- 在比较还原中解读《秋天的怀念》
- 基于S7200PLC的全自动洗衣机控制系统设计毕业设计(论文)
评论
0/150
提交评论