首页 > 编程知识 正文

数字逻辑电路多项选择题(多路智力竞赛抢答器设计实验报告)

时间:2023-05-04 04:59:53 阅读:68198 作者:2899

文章第一个网站:星星点亮的技术堆栈,欢迎来到点亮你的原创博客网站!

《数字逻辑》课程设计报告主题1 :数字电子表设计任务与要求实验条件设计流程设计原理与思路4位增量计数器设计6进制计数器设计24进制计数器设计数字电子表设计逻辑电路图实验测试主题2 :路灯巡检器设计任务与要求实验条件

主题1 :数字电子表设计任务和要求任务

用计数器设计电子表,显示时、分、秒。 要求

)1)时间为00-23二十四进制计数器,分钟、秒为00-59六十进制计数器;

)2)用8段数码管表示时,分、秒。

)3)用Logisim画画,进行模拟。 要求能看到正确的时、分、秒信息。

)4)先用Logisim软件模拟测试是否正确,然后提交网站(EduCoder )进行评估。 实验条件Java运行时环境日志isim虚拟数字电路仿真平台设计流程设计原理与思路4位倍频计数器的设计

数字钟的基本组成部分由4位增量计数器组成,在设计其他设备之前,必须完成4位增量计数器的设计。

计数是最简单的基本运算。 计数器是实现这种运算的逻辑电路,计数器在数字系统中主要对脉冲的个数进行计数来实现测量、计数、控制的功能,同时还兼有分频功能。 计数器在数字系统中广泛使用,如在电子计算机的控制器中计数指令地址,依次取出以下指令。

在这里,我们设计了一个具有同步集数、异步清除功能的4位同步增量计数器。

导线说明:

信号输入输出位宽说明Clock中输入1位的时钟脉冲,上升沿有效Reset中输入1位的异步清除端子。 Reset=1时,Q=0Enable中输入1位使能端子。 Reset=0时,Enable=1递增计数,0保持Load中输入1位的同步集端子。 Reset=0,Load中输入1位的同步设置端子

封装4位增量计数器的外观:

六进制计数器的设计六进制计数器可以由四位递增计数器组成,当四位递增计数器计数到六时,异步清除Q=0,从而完成六进制计数器的功能。

六进制计数器是构成六十进制计数器的基础。

十进制计数器的设计十进制计数器可以由4位递增计数器组成,当4位递增计数器计数到10时,异步清除Q=0,从而完成十进制计数器的功能。

十进制计数器是构成六十进制计数器的基础。

六进制计数器设计为可由六进制计数器和十进制计数器组成。 十进制计数器的进位输出是每10次启动六进制计数器的六进制计数器的“使能”触发条件,六进制计数器本身的最大计数为6。 至此,六进制计数器的功能完成。

六十进制计数器是构成数字电子表的基础。

二十四进制计数器的设计二十四进制计数器可以由两个十进制计数器组成。

可以用前十进制表示位,表示为计数器a。 第二个十进制计数器表示10个比特,记为计数器b。

计数器a的进位输出端是计数器b的使能(Enable )触发条件,每10次触发计数器b,并且检测计数器a和b的状态输出端,状态值为23时将电路整体的进位输出端设为1,状态值为24时异步清除至此,二十四进制计数器的功能已完成。

二十四进制计数器是构成数字电子表的基础。

数字时钟的设计数字电子时钟由时间(0-23 )、分钟(0-59 )、秒(0-60 )组成。

秒由六十进制计数器组成,计数条件为时钟滴答。 因此,在实际模拟中,时钟频率可以被调整为1Hz,以适合于每秒一次的计数规则。

分钟由60进制计数器构成,计数的条件是秒内发生进位。

时间由二十四进制计数器组成,计数条件是分钟和秒同时进位。

在实际仿真中,用十六进制数字显示器件(Hex Digit Display )显示了这些器件发生的状态,完成了数字电子表的功能和设计。

逻辑电路图4位增量计数器:

六进制计数器:

十进制计数器:

六十进制计数器:

二十四进制计数器:

数字钟:

在实验中,将Clock信号从手动点击变更为时钟连续,启动使能侧Enable后进行测试:

主题2 :路灯巡检检测仪的设计任务和要求任务

用Verilog语言设计8个路灯巡检电路。 要求巡回检测8盏路灯,用8盏LED灯显示好坏。 路灯正常时对应的LED灯熄灭,路灯故障时对应的LED灯点亮能够快速准确地判断哪个路灯坏了,用一个七级数码管显示故障灯总数; 有启动停止开关。 自己绑定开发板的管脚,下载到开发板上观察实际效果。 实验条件Verilog编程和EDA设计工具: Altera Quartus 11.0FPGA开发板: Altera DE2-115设计流程的设计原理和思路是将开关用作使能

端,控制整个检测器的启动与停止。
当使能端关闭时,每个路灯无论其是否为故障状态,都不点亮对应的LED灯。同时,七段数码管也不点亮。
当使能端开启时,设定一个cnt作为计数器,使用always语句检测每一个路灯是否故障,如果该路灯故障,点亮对应的LED灯,并使cnt计数器(每次循环前,cnt置零)加1;如果该路灯不故障,用七段数码管hex显示cnt对应的数字。

Verilog代码 module street_lamp_detector(w, hex, leds); input [8:0] w; reg [3:0] cnt; integer k; output reg[0:7] leds; output reg[0:6] hex; always @(w, cnt) begin cnt=0; if(w[8] == 1) begin for(k = 0; k < 8; k = k + 1) if(w[k] == 1) begin leds[k] = 1; cnt = cnt + 1; end else leds[k] = 0; case (cnt) 0: hex = 7'b0000001; 1: hex = 7'b1001111; 2: hex = 7'b0010010; 3: hex = 7'b0000110; 4: hex = 7'b1001100; 5: hex = 7'b0100100; 6: hex = 7'b0100000; 7: hex = 7'b0001111; 8: hex = 7'b0000000; default: hex = 7'b1111111; endcase end else begin hex = 7'b1111111; leds[0:7] = 0; end endendmodule 实验测试 开发板引脚分配

引脚绑定设置如下:

联机调试

① 使能端Enable未启动(SW8为0)
此时,所有器件不工作:

② 使能端Enable启动(SW8为1)
如下面两图所示,7端数码管HEX0可以根据正确显示:SW0-SW7的对应故障个数:

总结

通过本次课程设计,掌握了有关同步时序电路的知识,了解了同步时序电路的基本设计步骤,并同通过这些知识设计出了基于时序电路的计数器,完成了数字电子钟的仿真设计。
通过本次课程设计,掌握了Verilog语言的基本特征,学习了always、if、case等语句。结合Altera ED2-115开发版,通过Verilog语言进行编程,最终实现了一个路灯巡回检测器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。