【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(一)、实验指导书

实验二、时序逻辑设计——三色灯开关(实验指导书部分)

1、实验指导

设计一种通过操作开关的时间控制灯光颜色的开关,采用硬件描述语言描述同步时序逻辑电路的方法,体会状态转换和计数器定时,对状态机及顶层可综合模块进行功能仿真,并利用EELAB-FPGACORE2实验硬件实验平台(以下简称为“实验板”)调试并实现,完成较为完整的EDA设计和实现过程。

1.1、 设计需求

某灯具含有两组LED白光灯芯和两组LED黄光灯芯,由一个开关(switch)控制。设有电气转换装置将强电开关信号转换为数字逻辑电平输入信号X——当开关断开,X=0,闭合,X=1;且将4个数字逻辑电平输出信号W1、W0、Y1和Y0分别转换为灯芯控制信号——Wi=1为白光点亮,Wi=0为白光熄灭,Yi=1为黄光点亮,Yi=0为黄光熄灭,其中i=0, 1。
说明:如果白光和黄光同时点亮,则为日光色调,则如果在同等亮度条件下,该灯具具有白光、日光和黄光三种灯色。(考虑灯光的亮度,4个灯芯的组合有更多种可能)
三色灯开关的功能是:
(1) 如果快速断开/闭合开关,可以切换灯色,即:
· 如果灯具发出白光时断开开关,且在1秒之内再次闭合开关,灯具发出日光;
· 如果灯具发出日光时断开开关,且在1秒之内再次闭合开关,灯具发出黄光;
· 如果灯具发出黄光时断开开关,则再次闭合开关之后,灯具发出白光。
(2) 在任何情况下,如果开关断开的时间超过1秒,则开关闭合后,灯具发出白光。

1.2、基本实验要求

基本实验要求为:
a) 采用Verilog HDL语言描述有限状态机(Finite State Machine, FSM),实现第1.1节中所述的灯具控制电路的时序逻辑,用实验板上的4个LED灯分别代表现实中的4个灯芯;
b) 采用ModelSim功能仿真,对状态机、计数器等关键实例进行功能仿真测试;
c) 设计实现分为两种操作模式:MODE_RUN和MODE_DEMO,通过一个开关来控制,前者为正常操作模式(连续按开关获得不同灯色的定时值为1秒),后者为演示模式,逻辑不变但将时间放大10倍的模式;
d) 在MODE_DEMO(演示)模式下,将计数器的计数值即时地显示在数码管上,以便直观地观察定时的运行效果;
e) 在MODE_DEMO(演示)模式下,利用数码管的小数点(“dp”位)显示状态机的状态,由于小数点只有2个,而状态机的状态应是超过4个,请合理地将状态机的状态编码转化为易于观察的状态符号,并配合小数点的闪动实现超过4种的状态显示;
f) 采用FPGA开发工具实现相应的逻辑功能并加以演示;
g) 在实验报告中,请绘制设计的框图(此项为必选项);
h) 在实验报告中,请说明采用何种风格(一段式 or 二段式 or 三段式)实现时序逻辑电路的状态机,并切实地分析所采用的实现形式的优、缺点。

本次实验将采取实验报告和现场汇报演示相结合的形式,实验报告上交的具体截止期限请注意任课教师的通知,实验报告格式请参考本文档;现场汇报演示的时间和分组情况请注意任课老师的通知。特此广而告之。

1.3、扩展要求

扩展的实验要求(根据完成的工作量逐次地提高评价的等级,但鼓励大家积极地去实验——即:只要至少完成其中的一项,即可显著地获得好评,并可根据局部完成的质量酌情提高评价的等级。)
i) 开发时序逻辑电路,将按动开关的操作(“开”、“关”)以及按动开关之间的时间间隔(以10ms为单位,进行0~127编码,分别代表0s至1.27s,超过1.27s秒均算作1.27s)以数码的形式“录制”下来,记录深度至少为16条操作序列(至少能保存16次操作);
j) 按动实验板上的一个按键,可以将记录的内容用UART依次上传并显示到PC机的终端上;
k) 开发新的时序逻辑电路功能,改动MODE_DEMO状态下的逻辑功能,当按动实验板上的另一个按键,可以根据“录制”的操作序列自动地“慢动作”演示上一次的操作(时间放大10倍);
l) 可以利用UART工具,从PC机终端上输入的操作序列,自动地进行硬件操作,并回显电路状态的变化。

1.4、其它提示

实验板的开关非常脆弱,如果操作不便,请用按键代替开关,但需要加入防抖电路,并适当修改开灯、关灯信号的逻辑(由电平信号变为脉冲信号)。
“实验板”的I/O接口、人机接口资源和数码管的使用请参考《digiC2020课程实验实验指导书(01)》,或者参考实验一手册后面的附录。
实际中的三色灯灯芯,以及基本功能效果的录像将发布在网盘上,网盘地址在course.buaa.edu.cn中另行通知。如果实在读不清楚设计需求,可以结合录像进行理解。

(未完待续)

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 06:14:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 06:14:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 06:14:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 06:14:01       20 阅读

热门阅读

  1. appium控制手机一直从下往上滑动

    2024-04-21 06:14:01       12 阅读
  2. c++自制小游戏:c++人生重开模拟器(修仙版)

    2024-04-21 06:14:01       14 阅读
  3. mysql like 查询包含%

    2024-04-21 06:14:01       16 阅读
  4. PostgreSQL 窗口函数汇总

    2024-04-21 06:14:01       16 阅读
  5. 个人练习之-jenkins

    2024-04-21 06:14:01       16 阅读