1、数字逻辑数字逻辑课程设计报告课程设计报告 题目:题目: 路灯巡回检测电路路灯巡回检测电路 一、一、 引言引言: 数字逻辑课程设计是配合本课程课堂和实验教学的一个实践性教学环节。其目的是巩固所学 知识,提高实验动手能力,加强综合应用能力,启发创新思维。其任务是让学生通过动手动脑进行 数字逻辑电路中型系统的设计、安装、仿真、调试,巩固和应用所学的理论和实验技能;初步掌握 应用 FPGA 和 EDA 开发工具设计大中型数字电路系统的设计流程、仿真、检测技术直至下载到实际 物理器件进行实际物理测试的能力;提高设计能力和实验技能,为以后进行毕业设计、电子电路的 综合设计、研制电子产品打下基础。 二、二、
2、 系统介绍:系统介绍: 1)1) 设计平台介绍设计平台介绍:使用 Quartus 模拟仿真 ACEX1K 系列 EP1K30TC144-3 器件 2)2) 介绍开发的系统功能和解决的问题介绍开发的系统功能和解决的问题: 1. 巡回检测 16 个路灯,用开关 0 表示路灯好,而 1 表示一个路灯坏; 2. 能够迅速、准确地判出哪一个路灯坏,并能用数码管显示指示; 3. 每秒检测一个路灯,应有开始、停止检测按钮; 4. 完成仿真,并下载到实验箱中实际测试; 5. 显示器上显示路灯的编号,并保持到停止检测为止,如有路灯坏,同时发出声响, 可考虑增加到检测 32 个路灯。 3) 说明涵盖的知识点及技术
3、难点分析说明涵盖的知识点及技术难点分析: 使用 vhdl 编写程序代码, 需要巡回检测路灯是否为好的, 开始时使用whileloop 循环语句, 但无法实现循环,后来使用进程敏感信号以及时钟边缘脉冲,解决了循环语句。以及 case when 语句,用来对输出的 Y 进行赋值。 三、三、 设计任务及设计原理:设计任务及设计原理: 任务:任务: 1. 能够迅速、准确地判出哪一个路灯坏,并能用数码管显示指示; 2. 每秒检测一个路灯,应有开始、停止检测按钮; 原理:原理: 使用一个时钟触发器, 用 1 代表等为坏, 遇到灯那么 cnt 就+1,且遇到坏的灯时给输出值 赋值,使用晶体管输出灯的编号,当
4、 cnt=15 是则使 cnt=0,重新从第一个灯开始进行检查。 四四、代码清单代码清单: LIBRARY IEEE; USE IEEE.std_logic_1164.all; - 2 - USE IEEE.std_logic_arith.all; USE IEEE.std_logic_unsigned.all; entity check is port ( s: in bit_VECTOR (15 downto 0); a:in std_logic; en: in std_logic; Y:out STD_LOGIC_VECTOR (3 downto 0); end check; ARCHITECTURE A of check IS BEGIN process(a,en) VARIABLE cnt: INTEGER RANGE 0 TO 32; BEGIN if( a event and a=1 and en =1) then if(s(cnt)=1)then CASE cnt is when 0 = Y Y Y Y Y Y