- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多路彩灯控制器的设计管理
课程设计
题 目: 班 级: 姓 名: 学 号: 指导教师: 成 绩:
多路彩灯控制器
[摘 要]:现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术式的设计者的工作仅限于利用软件的方式,即利用硬件语言和EDA软件来完成对系统硬件功能的实现,这是电子设计的一个巨大进步。
[关 键 词]: 电子设计自动化(EDA);VHDL; 彩灯控制器;
目录
1 解决方案 1
1.1 方案 1
1.2 说明 1
2 模块设计及其功能描述 1
2.1模块功能描述 1
2.2时序控制模块 2
2.3 显示控制模块 4
3 多路彩灯控制器的实现 7
3.1整体功能描述 7
3.2设计原理 7
4 总 结 10
1 解决方案
1.1 方案
我用VHDL语言设计了一个十六路彩灯控制器,六种花型循环变化,有异步清零开关,并且可以选择快慢两种节拍。本控制电路采用VHDL语言设计。运用自顶而下的设计思想,按功能逐层分割实现层次化设计。根据多路彩灯控制器的设计原理,将整个控制器分为个部分,分别1010101010101010
1100110011001100
1110001110001110
1111000011110000
1111100000111110
1111110000001111
整个电路仅有时序控制和显示控制两个模块。
1.2 说明
我们可以从两方面入手。先写时序控制模块,再写显示控制模块。最后用例化语句。把他们结合在一起。实现元器件的组合。
2 模块设计及其功能描述
2.1模块功能描述
时序控制模块的功能是产生输入脉冲的1/4分频脉冲信号和1/8分频脉冲信号,以此控制十六路彩灯的快慢节奏变化。
时序模块有3个输入1个输出。CHOOSE是控制彩灯变换快慢的。CHOOSE=1时,输出1/4/分频脉冲信号。CHOOSE=0时,输出1/8分频脉冲信号。CLK_IN是输入的脉冲信号。RESET是置位信号。高电平有效。CLKOUT是输出信号。
显示控制模块的功能是使电路产生六种花型并且循环显示,以此实现本次课程设计要求实现的多路彩灯控制器的花型循环显示功能。
显示模块有2输入1个输出。CLK是时钟输入信号。RESET是置位信号,高电平有效。Q是输出信号,输出6种彩灯变化。
2.2时序控制模块
1.时序控制模块VHDL文本输入和截图:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fenpin IS
PORT(CHOOSE:IN STD_LOGIC;
CLK:IN STD_LOGIC;
RESET:IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC);
END fenpin;
ARCHITECTURE BEHAV OF fenpin IS
SIGNAL CLLK:STD_LOGIC;
BEGIN
PROCESS(CLK,RESET,CHOOSE)IS
VARIABLE COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF RESET=1 THEN CLLK=0;COUNT:=000;
ELSIF RISING_EDGE(CLK)THEN
IF CHOOSE=1 THEN
IF COUNT=011THEN COUNT:=000;CLLK=NOT CLLK;
ELSE
COUNT:=COUNT+1;
END IF;
ELSE
IF COUNT=111THEN COUNT:=000;CLLK=NOT CLLK;
ELSE
COUNT:=COUNT+1;
END IF;
END IF;
END IF;
END PROCESS;
CLKOUT=CLLK;
END ARCHITECTURE BEHAV;
2.时序控制模块波形仿真截图:
2.3 显示控制模块
1.时序控制模块VHDL文本输入和截图:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY machine IS
PORT(CLK:IN STD_LOGIC
文档评论(0)