版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字逻辑设计和制作报告团队成员:姓名班级学号贡献百分比卢振兴cs1502u201414596100%实验部分:实验完成结果、时间 (亮点、完成、基本完成、未完成)总分(实验部分70% +报告30%)第一个实验第二个实验第三个实验检查结果检查时间检查老师报告人 :卢振兴指导教师 :李开报告批阅教师:李开计算机科学与技术学院2017年6月5日1/14、设计和制作名称verilog hdl设计一个简单的运算器。二、设计所用软件vivado 2015.2 软件 1 套。三、设计内容设计一个能实现两种算术运算和两种逻辑运算的4位运算器。参加运算的4 位二进制代码分别存放在4个寄存器a、b、c、d中,要求
2、在选择变量控制下 完成如下4种基本运算: 实现a加b,显示运算结果并将结果送寄存器a; 实现a减b,显示运算结果并将结果送寄存器b; 实现a与c,显示运算结果并将结果送寄存器c; 实现a异或d,显示运算结果并将结果送寄存器d。图9给出了运算器的结构框图。si so h运算结果显示电路运算0)的功繼s|so功能说明0 0a+aa加b,结果送至a0 1a-bba«b结果送至b1 0acya与c,结果送至c11amda异或d结果送至d图9.1运算器的结构框图下图给出了运算器的完整逻辑电路。fc4y74ls153 dodjdtdsg ao a|74ls139coinfc. 74ls283a.
3、 ai at ai b> bi bia, y* 74ls153 dodidxdia, y* 74ls153 dndidjd,a, yq 74ls153 °doddqb奇存4rd寄存u74ls194rc簣存 s! |74ls194cpcpi &174ls194a青存 si74ls194 so8奇存74ls194四、方案设计简单运算器的verilog hdl描述。(a)源程序/主程序module main(a,b,c,d,cp,s,k,fc4,y,y 139,f,outa,outb,outc,outd);input 3:0 a,b,c,d;input cp;input 1:
4、0 s;input k;output fc4;output 3:0 y;output 3:0 y139;/wire 3:0 y139;output 3:0 f;output 3:0j outa,outb,outc,outd; /寄存器 a 的输出译码器inter74139 yima(k,s,y139);四个寄存器reg74194 ji a(a,cp&(y1390d,outa,y);reg74194jib(b,cp &(y 139l),outb,y);reg74194 jic(c,cp &(y1392),outc,y);reg74194 jid(d,cp&(y13
5、93),outd,y);加法器add74283adder(outa,(-y 139l)aoutb 3,(y 139l)aoutb 2,(y 139l)aoutbl,(y 139l)aoutb0,y1391,fc4,f);4 个多路选择器 module choose74153(d,g,a,y);choose74153 choose4(outa3aoutd3,outa3&outc3,f,f3,k, s,y3); choose74153 choose3(outa2aoutd2,outa2&outc2,f2,f2,k, s,y2); choose74153 choose2(outa 1
6、 sutd 1 ,outa 1 &outc 1 ,f 1 ,f 1 ,k, s,y 1 ); choose74153 choose 1(outa0aoutd0,outa0&outc0,f0,f0,k, s,y0);endmodule/寄存器74194module reg74194(in,cp,out,y);/input 1:0 s;input 3:0 y;input 3:0in;input cp;output reg 3:0out;reg flag = 0;初始化initial beginout = 4'b0000;end always (in)begin if(fla
7、g=o)begin out<=in;flag = 1;endelse;end always(posedge cp)begin if(flag=o)begin out <= in;flag = 1;endelse beginout<=y;endendendmodule加法器74283module add74283(a,b,c0,fc4,f);input 3:0 a,b;input co;output reg 3:0f;output reg fc4;reg c1,c2,c3;reg 4:0 data;initialbegindata = 5'booooo;endalway
8、s (*)begindata <= a + b + co;f<= data3:0;fc4 <= data 4;endendmodule多路选择器74153module choose74153(d,fg, a,y);input 3:0 d;input fg;input 1:0 a;output reg y;/initial/begi n/ y <= 0;/endalways (*)beginif(fg=0)begincase(a)2'b00:y=d0;2'b01:y=dl;2'blo:y=d2;2,bll:y=d3;endcaseendelse y
9、 = 0;endendmodule译码器 74139 checked module inter74139(fg,a,fy); input fg;input 1:oa;output reg 3:0fy;initialbeginfy = 21111;endalways (*)begin if(fg=0)begincase(a)2,b00:fy = 4,blll0;2,b01:fy = 4,bll01;2,bl0:fy = 4,bl011;2,bll:fy = 4,b0111; default:fy = 4,bllll;endcaseendelse fy = 2,bllll;endendmodule
10、(b)仿真程序module simu;reg 3:0 a,b,c,d;reg cp;reg 1:0 s;reg k;wire fc4;wire 3:0 y;wire 3:0 y139;wire 3:0 addf;wire 3:0 outa,outb,outc,outd;main inst(a,b,c,d,cp,s,k,fc4,y,y 139,addf,outa,outb,outc,outd); always #50 cp = cp;initialbegink= 1;a = 4,b0111;b=4'b0001;0 = 40010;d = 4*bl000;cp = 0;s = 2'
11、b00;#260 s = 201;#390 s = 210;#520s = 2,bll;#650 s = 210;#780s = 2,b01;#910s = 2,bll;#1040s = 2'b00;# 1170s = 2'b01;#1300s = 2*bl0;endendmodule五、电路综合和仿真结果记录(1)给出verilog设计的简单运算器的电路图(rtl analysis下的schematic v)is"图:11简单运算器电路bs-ss-sss au 5-mbtssa.mw>邑亘o0工。二oo -o o o(2)仿真结果图:12简单运算器仿真六、仿真
12、结果分析在仿真时使用的是周期为100个单位时间的时钟。a寄存器的初值置为0111; b寄存器的初值置为0001; c寄存器的初值置 为0010; d寄存器的初值置为1000c在第一个时钟触发时,s1s0的值为00,即选择的运算方式为a+b->ao0111+0001 = 1000,在时钟触发后,a寄存器的输出值变为1000,符合预期。如图1.4所示。图1.4 a寄存器从0111变为1000在几个时钟周期后,寄存器a已经累加到了 1010, b变为了 lollo此时,s1s0的值变为01,即选择运算方式a-b->bo 1010-1011=1111 (借位),在时钟触发后,寄存器b的值变
13、为1111。如图1.5所示。e?c4 w!y3:0 wly1393:0 ad<lf3:0 w! out a 3:0d outb3:0 rg outc3:0 w! outd3:0图15 b寄存器从1011变为1111在几个时钟之后,寄存器a的输出值为1010,寄存器c的值为0010。s1s0 的值变为10,此时进行a&c>c的运算,运算结果仍然为0010,寄存器c的输出值保持不变。如图1.6所示。込cp1uvu1蚯10e k1efc41 wfy3:00010 r8y1393:01011n w!ddp3:o°101y w! out a 3:01010 / r8outb
14、3:01011 / wloutc3:00010 / outd3:01000图1.6c保持不变在几个时钟之后,寄存器a的输出值为1010, d的输出值为0010。s1s0的值 变为11,此时进行ad->d的运算,10100010=1000。寄存器d的输出值变为 1000c如图1.7所示。i门.3tut1&cpi wsl:0k1&fc4i wly3:0i wly1393:0i w! >ddf l3:0v outal3:0i w! outb3:0i w! outc3:0i wloutd3:0100011100100111010110101011001010000010图1
15、.7d的输出值由0010变为1000经过多组测试,运算器结果均符合任务要求。即s1s0输入00时,实现a+b->a; s1s0 输入 01 时,实现 a-b->b; s1s0 输入 10 时,实现 a&c->c; s1s0 输入11时,实现ad->d。综上所述,仿真符合实验要求。七、心得体会、意见与建议在本次实验中,实验者成功地实现了两种算术运算和两种逻辑运算的4位运 算器。在实现过程中,主要用到的是模块化的思想,即将寄存器、译码器、加法器、 多路选择器封装成一个个的小模块,再在主模块中对这些模块进行调用,从而实 现整个电路的连接。由于电路存在输出的反馈,因此,寄存器的实现需要用到flag作为标志。即, 在第一次输入时(flag=o)寄存器输出的是设定的初始值,在之后的输入中,寄存 器输出结果y反馈的值。在加法器的实现中,采用了简易的方法,即直接将输入的a、b和进位co 相加,储存到一个5位二进制数中。这样一来,五位二进制数的最高位即位进位, 低4位即为加法的结果。这种简易方法能很好地降低代码的出错几率。在模块声明变量的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共关系专员职业资格考试《媒体关系管理》备考题库及答案解析
- 2025年广告传播师《广告媒体策划与购买》备考题库及答案解析
- 商铺租赁合同续签补充协议2025年条款
- 清洁服务人员劳动合同2025
- 配送服务人员工作协议2025
- 剧院2025年演出经纪合同协议
- 2025年绩效结果强制分布与校准考试试题及答案
- 外汇合同补充协议范本
- 培训机构整合合同范本
- 垃圾厂倒垃圾合同范本
- 2024-2025学年北京市通州区五年级上学期期中数学试卷(含答案)
- 小学劳动课件
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 4.2.1指数函数及其图像与性质省公开课获奖课件说课比赛一等奖课件
- 2024-2025学年小学信息技术(信息科技)三年级全一册义务教育版(2024)教学设计合集
- Unit 1 Food for Thought 词汇教学设计-2023-2024学年高中外研版(2019)英语必修第二册
- JT∕T 1477-2023 系列2集装箱 角件
- 小班音乐活动《表情歌》教案歌曲
- (高清版)DZT 0426-2023 固体矿产地质调查规范(1:50000)
- 陕西师范大学学位英语试题
- 部编人教版 六年级语文上册全册课内阅读【含答案】
评论
0/150
提交评论