数电实验三
更新时间:2023-10-12 07:28:01 阅读量: 综合文库 文档下载
湘 潭 大 学 实 验 报 告
课程名称 数学逻辑与数字电路 实验名称 时序电路实验 ——计数器和移位寄存器 _ 页数 6 专业 计算机科学与技术 班级_ 二班_ 学号 2014551442 姓名 肖尧 实验日期_ 2016/5/14_
一、实验目的
1.验证同步十六位计数器的功能。
2.设计一个8位双向移位寄存器,理解移位寄存器的工作原理,掌握串入/并出端口控制的描述方法。
3.进一步熟悉Quartus II的Verilog HDL文本设计流程,掌握组合电路的设计仿真和硬件测试。
4.初步掌握Quartus II基于LPM宏模块的设计流程与方法,并由此引出基于LPM模块的许多其他实用数学系统的自动设计技术。 二、实验要求
1.用 Quartus II的Verilog HDL进行计数器的设计与仿真 2.用LPM宏模块设计计数器。
3.用Quartus II的Verilog HDL进行8位双向移位寄存器设计 4.在实验系统上进行硬件测试,验证这两个设计的功能。 5.写出实验报告。 三、实验原理
计数器能记忆脉冲的个数,主要用于定时、分频、产生节拍脉冲及进行数字运算等。加法计数器每输入一个CP脉冲,加法计数器的计数值加1.十六进制计数即从0000一直计数到1111;当计数到1111时,若再来一个CP脉冲,则回到0000,同时产生进位1。
同步十六进制计数器设计采用if-else语句对计数器的输出分别进行赋值,能实现对输入脉冲的计数,并具有使能和异步清零功能。
移位寄存器不仅具有存储代码的功能,而且在移位脉冲作用下,还有左移、右移等功能。设计一个8位二进制双向移位寄存器,能实现数据保持、右移、左移、并行置入和并行输出等功能。移位寄存器有三种输入方式:8位并行输入、1位左移串行输入、1位右移串行输入;有一种输出方式:8位并行输出。双向移位寄存器工作过程如下:
(1)当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上升沿触发向左移位。
(2)当1位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口最低位输出,后由同步时钟的上升沿触发向右移位。 四、实验内容 1.利用Quartus II完成计数器、8位双向移位寄存器的文本编辑输入和仿真测试,给出仿真波形。 2. 用LPM宏模块设计计数器 3.给他们进行引脚锁定,然后硬件下载测试。 五、实验环境与设备 Quartus II以及进行硬件测试的实验箱。 六、实验代码设计(含符号说明)
计数器Verilog HDL设计:
module count(en,clk,clr,cout,outy);
input en,clk,clr;//en为使能输入,clk为时钟变量,clr为清零标志 output [3:0] outy;//输出结果 output cout;//进位标志输出 reg [3:0] outy; always @ (posedge clk or posedge clr) begin if(clr) outy <= 4'b0000; else if(en) begin if(outy==4'b1111) outy <= 4'b0000; else outy <= outy+1'b1; end end assign cout=((outy==4'b1111)&en) ? 1 : 0; endmodule
module decl7s(a,led7s);
input [3:0] a;//4位2进制输入 output [6:0] led7s;//用七位译码管显示四位二进制的值 reg [6:0] led7s;//输出需要定义为reg always @(a) case(a) 4'b0000:led7s<=7'b0111111; 4'b0001:led7s<=7'b0000110; 4'b0010:led7s<=7'b1011011; 4'b0011:led7s<=7'b1001111; 4'b0100:led7s<=7'b1100110; 4'b0101:led7s<=7'b1101101; 4'b0110:led7s<=7'b1111101; 4'b0111:led7s<=7'b0000111; 4'b1000:led7s<=7'b1111111; 4'b1001:led7s<=7'b1101111; 4'b1010:led7s<=7'b1110111; 4'b1011:led7s<=7'b1111100; 4'b1100:led7s<=7'b0111001; 4'b1101:led7s<=7'b1011110;
4'b1110:led7s<=7'b1111001; 4'b1111:led7s<=7'b1110001; default:led7s<=7'b0000000; endcase endmodule
我的引脚锁定情况为:如下图
计数器基于LPM模块设计:
module decl7s(a,led7s);
input [3:0] a;//4位2进制输入 output [6:0] led7s;//用七位译码管显示四位二进制的值 reg [6:0] led7s;//输出需要定义为reg always @(a) case(a) 4'b0000:led7s<=7'b0111111; 4'b0001:led7s<=7'b0000110; 4'b0010:led7s<=7'b1011011; 4'b0011:led7s<=7'b1001111; 4'b0100:led7s<=7'b1100110; 4'b0101:led7s<=7'b1101101; 4'b0110:led7s<=7'b1111101; 4'b0111:led7s<=7'b0000111; 4'b1000:led7s<=7'b1111111; 4'b1001:led7s<=7'b1101111; 4'b1010:led7s<=7'b1110111; 4'b1011:led7s<=7'b1111100; 4'b1100:led7s<=7'b0111001; 4'b1101:led7s<=7'b1011110; 4'b1110:led7s<=7'b1111001; 4'b1111:led7s<=7'b1110001; default:led7s<=7'b0000000; endcase
endmodule
我的引脚锁定情况为:如下图
移位寄存器代码设计如下:
module shift2_register8(clr,clk,srsi,slsi,din,dout,s);
input clr,clk,srsi,slsi;//clr为清零标志,clk为时钟变量,srsi为右移输入,slsi为左移输入 input [7:0]din;//待移位的8位二进制输入 input [1:0]s;//选择控制变量 output [7:0]dout;//输出变化情况 reg [7:0]dout;//输出要先定义reg always @ (negedge clr or posedge clk) begin if(!clr) dout <= 8'b00000000; else if(s == 2'b01) begin dout[0] <= dout[1]; dout[1] <= dout[2]; dout[2] <= dout[3]; dout[3] <= dout[4]; dout[4] <= dout[5]; dout[5] <= dout[6]; dout[6] <= dout[7]; dout[7] <= slsi; end else if(s == 2'b10) begin dout[7] <= dout[6]; dout[6] <= dout[5]; dout[5] <= dout[4]; dout[4] <= dout[3]; dout[3] <= dout[2]; dout[2] <= dout[1]; dout[1] <= dout[0]; dout[0] <= srsi; end else if(s == 2'b11) dout[7:0] = din[7:0]; end endmodule 我的引脚锁定为:
七、实验检验与测试 计数器Verilog HDL设计无错误,存在五个警告,可运行进行数据测试:
计数器基于LPM模块设计无错误,存在四个警告,可运行进行数据测试:
移位寄存器代码设计无错误,存在四个警告,可运行进行数据测试:
八、测试数据 计数器Verilog HDL设计数据测试(仿真)情况如下:
由于此实验结果是在7位译码管显示,仿真结果有所偏差,可在试验箱上进行下载进行更为直观的数据测试,试验箱测试成功。 计数器基于LPM模块设计数据测试(仿真)情况如下:
由于此实验结果是在7位译码管显示,仿真结果有所偏差,可在试验箱上进行下载进行更为直观的数据测试,试验箱测试成功。 移位寄存器数据测试(仿真)情况如下:
可知数据测试成功,该实验成功,可在试验箱上进行下载进行更为直观的数据测试,试验箱测试成功。
九、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)
1.在进行计数器实验的时候不明白其做法,似乎前面一般就已经完成了本次实验目的,解决方法:在助教的帮助下明白,本次试验是用两种方法完成同一个功能,需要自行领悟两种方法之间的区别。
2.试验箱内部有问题,现象和仿真不相符,解决方法:换引脚绑定,在另外的译码管上进行显示。
3.第二种模块化实现的方式不太明白,按照书本操作完成该次实验,但是不太明白其真实含义,待解决。
由于此实验结果是在7位译码管显示,仿真结果有所偏差,可在试验箱上进行下载进行更为直观的数据测试,试验箱测试成功。 移位寄存器数据测试(仿真)情况如下:
可知数据测试成功,该实验成功,可在试验箱上进行下载进行更为直观的数据测试,试验箱测试成功。
九、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)
1.在进行计数器实验的时候不明白其做法,似乎前面一般就已经完成了本次实验目的,解决方法:在助教的帮助下明白,本次试验是用两种方法完成同一个功能,需要自行领悟两种方法之间的区别。
2.试验箱内部有问题,现象和仿真不相符,解决方法:换引脚绑定,在另外的译码管上进行显示。
3.第二种模块化实现的方式不太明白,按照书本操作完成该次实验,但是不太明白其真实含义,待解决。
正在阅读:
数电实验三10-12
实小教研片0910学年小学语文四年级上册期末质量检测07-25
人员素质测评第一次作业201710-12
预防医学自考2013年4月试题04-01
有趣的知了作文350字07-12
新进人员见习期考核表09-15
城市轨道交通子系统ATS设计与实现11-24
无弦也歌作文450字07-03
《别笑,我是正经哲学书》经典读后感10篇12-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 07-附录A 告警信号流程图
- 5号字 隋唐五代文学试题与答案
- 福建莆田“诽谤领导”冤案
- 能源管理体系能源绩效改进及确认方法-中国合格评定国家认可委员会
- 医疗机构制剂注册申报资料模板
- 新闻标题的拟定
- ESD资料
- FDYPA6纺丝工艺设计
- 自来水消毒副产物处理工艺探讨
- 第二届团代会工作方案
- 2011年netA模拟题
- 氧化锰纳米晶体的制备及X射线衍射分析
- 景观指数
- 论文 - 色彩在平面设计中的应用
- 最新八年级数学下册第二十一章一次函数回顾与反思教案1冀教版 - 图文
- 银行会计第五、六、七章练习题
- 双百大赛结果 - 图文
- 中安星云数据库审计
- 2014高考英语真题 全国卷2 完形填空 试题及答案详解
- 1设置及使用方法-GFax网络传真 - 图文