实验三 时序电路实验 ——计数器和移位寄存器实验报告.doc_第1页
实验三 时序电路实验 ——计数器和移位寄存器实验报告.doc_第2页
实验三 时序电路实验 ——计数器和移位寄存器实验报告.doc_第3页
实验三 时序电路实验 ——计数器和移位寄存器实验报告.doc_第4页
实验三 时序电路实验 ——计数器和移位寄存器实验报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湘 潭 大 学 实 验 报 告课程名称 实用数字电子技术基础 实验名称_计数器和移位寄存器_ 页数 专业 计算机科学与技术 班级_1班_ 同组者姓名 组别 学号 2015551118 姓名 扶智宏 实验日期_2016年5月14日星期六_计数器实验一、 实验目的1. 验证同步十六进制计数器的功能。2. 进一步熟悉Quartus II的Verilog HDL文本设计流程,掌握组合电路的设计仿真和硬件测试。3. 初步掌握Quartus II基于LPM宏模块的设计流程与方法,并由此引出基于LPM模块的许多其他实用数学系统的自动设计技术。二、 实验原理计数器能记忆脉冲的个数,主要用于定时、分频、产生节拍脉冲及进行数字运算等。加法计数器每输入一个CP脉冲,加法计数器的计数值加1.十六进制计数即从0000一直计数到1111;当计数到1111时,若再来一个CP脉冲,则回到0000,同时产生进位1。同步十六进制计数器设计采用if-else语句对计数器的输出分别进行赋值,能实现对输入脉冲的计数,并具有使能和异步清零功能。三、 实验内容和实验要求1, 找到书上代码中的两个错误并且修改,试说明各个语句的含义,以及该例的整体功能,并在QuartusII上对该例进行编辑,编译综合,适配,仿真,给出其所有信号的时许仿真波形。第一处,书上为 output3:0 cout 应该为output cout (cout不是总线输出)第二处,书上为if(clr) outy=4b1111 应该为if(clr) outy=4b0000(清零端有效时,应该输出0)2, 计数器加译码器设计(1),功能描述风格的Verilog的计数器设计。(2),基于LPM宏模块的计数器设计。四、实验环境与设备GW48-CP+五,实验代码设计(含符号说明)module count(en,clk,clr,cout,outy);input en,clk,clr;/en为使能输入,clk为时钟信号,clr为清零标志output 3:0 outy;/outy是输出结果output cout;/进位输出reg 3:0 outy;always (posedge clk or posedge clr)beginif(clr=1) outy = 4b0000;else if(en=1)begin if(outy=4b1111)outy = 4b0000;else outy = outy+1b1;endendassign cout=(outy=4b1111)&en) ? 1 : 0;endmodulemodule decl7s(a,led7s); input 3:0 a;/四位二进制输入 output 6:0 led7s;/七位译码管显示四位二进制数的值 reg 6:0 led7s; always (a) case(a) 4b0000:led7s=7b0111111; 4b0001:led7s=7b0000110; 4b0010:led7s=7b1011011; 4b0011:led7s=7b1001111; 4b0100:led7s=7b1100110; 4b0101:led7s=7b1101101; 4b0110:led7s=7b1111101; 4b0111:led7s=7b0000111; 4b1000:led7s=7b1111111; 4b1001:led7s=7b1101111; 4b1010:led7s=7b1110111; 4b1011:led7s=7b1111100; 4b1100:led7s=7b0111001; 4b1101:led7s=7b1011110; 4b1110:led7s=7b1111001; 4b1111:led7s=7b1110001; default:led7s=7b0000000; endcaseendmodule六、实验检验与测试Verilog的原理图如下:LPM的原理图:引脚锁定如下:通过编译,表明没有问题七、测试数据仿真波形如下:由仿真图可以看出清零端是有效的,并且当计数到最大值时会异步清零八、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)1,实验现象:仿真出来的波形图看不到明显现象原因分析:设置的时间间隔不合理排故障的方法:重新设置仿真时钟信号,以及清零端的时间间隔2,实验现象:在硬件上面操作没反应,原因分析: 下载失败排故障的方法:编译后再次下载移位寄存器实验一、 实验目的1, 设计一个8位双向移位寄存器,理解移位寄存器的工作原理,掌握串入/并出端口控制的描述方法。2, 熟悉QuartusII,掌握Verilog HDL编程,编译和仿真,以及硬件测试方法。二、 实验原理移位寄存器不仅具有存储代码的功能,而且在移位脉冲作用下,还有左移、右移等功能。设计一个8位二进制双向移位寄存器,能实现数据保持、右移、左移、并行置入和并行输出等功能。移位寄存器有三种输入方式:8位并行输入、1位左移串行输入、1位右移串行输入;有一种输出方式:8位并行输出。双向移位寄存器工作过程如下:(1)当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上升沿触发向左移位。(2)当1位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口最低位输出,后由同步时钟的上升沿触发向右移位。三、 实验内容和要求8位双向移位寄存器设计通过Verilog HDL语言编程,实现双向移位寄存器,其输入,输出端口设计具体要求如下:Clr :异步清零信号,低电平有效,当clr=0时,8位输出端清零Clk:移位寄存器时钟脉冲输入,上升沿有效Srsi:串行右移输入端Slsi:串行左移输入端。Din:8位并行数据输入端Dout:8位并行数据输出端S:2位控制端,当s=00时,8位输出端保持原来状态不变,当s=01时,允许串行左移输入一位数据,当s=10时,允许串行右移输入一位数据,当s=11时,允许8位数据从并行端口输入四、 实验环境与设备GW48-CP+五、 实验代码设计(含符号说明)module mooc(clr,clk,srsi,slsi,din,dout,s);input clr,clk,srsi,slsi;/clr为清零信号,clk为时钟输入,srsi为右移输入,slsi为左移输入input 7:0din;/8位二进制输入input 1:0s;/控制左移还是右移output 7:0dout;/输出情况reg 7:0dout;always (negedge clr or posedge clk)begin if(!clr) dout = 8b00000000; else if(s = 2b01) begindout0 = dout1;dout1 = dout2;dout2 = dout3;dout3 = dout4;dout4 = dout5;dout5 = dout6;dout6 = dout7;dout7 = slsi;endelse if(s = 2b10)begindout7 = dout6;dout6 = dout5;dout5 = dout4;dout4 = dout3;dout3 = dout2;dout2 = dout1;dout1 = dout0;dout0 = srsi;endelse if(s = 2b11)dout7:0 = din7:0;endendmodule六、 实验检验与测试原理图如下:引脚锁定如下:编译结果如下:编译结果表明设计原理图时没有出现问题七、 测试数据仿真图如下:由此可知实验成功,最后在器件箱上进行下载实验也成功八、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)1,实验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论