沈阳理工大学EDA技术课程设计报告
1设计目的
熟练掌握EDA技术利用计算机方面的课程解决专业课程方面点具体问题,达到解决问题,完成课程设计任务,培养实践的目的。
2设计要求和任务
利用所学的EDA设计方法设计彩灯控制器,熟练使用使用QUARTUSII应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。
功能要求: 1.要有多种花型变化(至少4种). 2.多种花型可以自动变换,循环往复. 3.彩灯变换的快慢节拍可以选择. 4.具有清零开关.
3 总体设计思路及原理描述
3.1功能描述
在电路中以 1 代表灯亮,以 0 代表灯灭,由 0,1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样功能显示。在该电路中只需简单的修改程序就可以灵活地调整彩灯图案和变化方式。下面就以一个十六路彩灯控制系统的实现为例进行简单说明。此十六路彩灯控制系统设定有六种花样变化 ,这六种花样可以进行自动切换 ,并且每种花样可以选择不同的频率 。
3.2设计原理
用VHDL进行设计 ,首先应该了解 ,VHDL语言一种全方位硬件描述语言 ,包括系统行为级 ,寄存传输级和逻辑门级多个设计层次。应充分利用DL “自顶向下” 的设计优点以及层次化的设计概层次概念对于设计复杂的数字系统是非常
沈阳理工大学EDA技术课程设计报告
有用它使得人们可以从简单的单元入手 ,逐渐构成庞大而复杂的系统 。 首先应进行系统模块的划分 ,规定每一模块的功能以及各个模块之间的接口。最终设计方案为:以一个十六路彩灯花样控制器、一个四频率输出分频器 ,一个四选一控制器和一个时间选择器总共四部分来完成设计。四选一控制器从分频器选择不同频率的时钟信号输送到彩灯花样控制器 ,从而达到控制彩灯闪烁速度的快慢 ,时间选择器控制每种速度维持的时间长短。整个十六路彩灯控制系统设计的模块图如图 1所示
图一
4分层次方案设计及代码描述
4.1子模块及其功能
本次设计分为四个子模块 ,即十六路彩灯花样控制器、四频率输出分频器 ,四选一控制器和时间选择器 ,其子模块及其功能如下: 2
沈阳理工大学EDA技术课程设计报告
4.1.1四频率输出分频器
在本次设计中 ,设计了六种花样 ,要求这六种花样以不同的频率显示 ,而只有一个输入的时钟信号 ,所以对所输入的时钟信号进行 2 分频 ,4 分频 ,8分频 ,16分频 ,得到四种频率信号 ,CLKDIV模块用来完成此功能。
4.1.2时间选择器
时间选择器实际上是两个分频器 ,其中一个频率是另一个频率的两倍。本来这两个分频器是可以在上述的四频率输出器中实现的 ,但为了方便地为四选一控制器提供不同的时间选择条件 ,就将这两个分频器独立开来。这两个输出的时钟信号组合起来就可以为四选一控制器提供 00,01,10,11 四个时间选择条件 ,如
下图三所示。
图二
4.1.3四选一控制器
四选一控制器功能是从分频器中选择不同频率的时钟信号送给彩灯控制器 ,实现彩灯闪烁的频率变化。
4.1.4彩灯控制器
彩灯控制电路是整个设计的核心 ,它负责整个设计的输出效果即各种彩灯图案的样式变化。该程序充分地说明了用 VHDL设计电路的 “弹” 性 ,即可通过改变程序中输出变量 Q 的位数来改变彩灯的数目。其中 ,P1进程对灯闪的速度控制有两种方式可改变灯闪的速度:一是改变外部时钟的赋值 ,二是改变信号U 的位数。P2进程能进行彩灯的图案控制 ,改变 s的位数即可改变要控制图案的数目 ,改变输出变量 Q 的组合即可变幻彩灯图案。
最后 ,当各个模块均完成上述操作之后 ,即可利用MAXPLUS2的原理图输
沈阳理工大学EDA技术课程设计报告
入 ,调用各个元器件(底层文件) ,以原理图的形式形成最后的十六路彩灯显示系统(顶层文件) ,并且进行仿真。仿真通过 ,即可下载到指定的 CPLD芯片里面 ,并进行实际连线 ,进行最后的硬件测试。当然 ,可以将各个模块所生成的元件符号存放在元件库中 ,用以被其它人或其它的设计所重复调用 ,以简化后面的设计。
4.2 代码描述
4.2.1 时序控制电路部分
程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity timecontrol is --定义实体 port( clk: in std_logic; --时钟信号 clr: in std_logic; --复位信号 opt: in std_logic; --快慢控制信号 clkout: out std_logic --输出时钟信号 ); end timecontrol; architecture one of timecontrol is signal clk_tmp: std_logic; signal counter: std_logic_vector(1 downto 0); --定义计数器 begin proce(clk,clr,opt) begin 4
沈阳理工大学EDA技术课程设计报告
if clr=\'0\' then --清零 clk_tmp
4.2.2显示控制电路部分
程序如下: library ieee; use ieee.std_logic_1164.all;
沈阳理工大学EDA技术课程设计报告
entity showcontrol is port( clk: in std_logic; --输入时钟信号 clr: in std_logic; --复位信号
led: out std_logic_vector(15 downto 0)); --彩灯输出
end showcontrol; architecture one1 of showcontrol is type states is --状态机状态列举 (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); signal state: states; begin proce(clk,clr) begin
if clr=\'0\'then statestate state state state state
沈阳理工大学EDA技术课程设计报告
ledstatestatestatestatestatestatestatestatestatestatestatenull; end case; end if; end proce; end architecture one1;
沈阳理工大学EDA技术课程设计报告
4.2.3顶层电路部分
程序如下:
library ieee; use ieee.std_logic_1164.all; entity root is port ( clk: in std_logic; clr: in std_logic; opt:in std_logic; led: out std_logic_vector(15 downto 0)); --八路彩灯输出 end colorled; architecture one3 of root is component timecontrol is --定义元件:时序控制电路 port( clk: in std_logic; clr: in std_logic; opt:in std_logic; clkout: out std_logic); end component timecontrol; component showcontrol is --定义元件:显示电路
port( clk: in std_logic; clr: in std_logic; led: out std_logic_vector(15 downto 0)); end component showcontrol; signal clk_tmp: std_logic; begin u1: timecontrol port map(clk=>clk,clr=>clr,opt=>opt,clkout=>clk_tmp); --例化时序控制模块
沈阳理工大学EDA技术课程设计报告
u2: showcontrol port map(clk=>clk_tmp,clr=>clr,led=>led); --例化显示电路模块 end architecture one3;
5各模块的时序仿真图
5.1时序控制电路timecontrol的仿真图如下:
图三
功能:时序控制电路metronome的功能是,用OPT控制输入信号CKL_IN的快慢节拍。而CLR是控制开关。且从图中可以看出,当复位信号为高电平时,电路时钟输出清零,当快慢信号OPT为低电平时,时序控制电路四分频起作用,当快慢信号OPT为高电平时,时序控制电路八分频起作用,仿真结果符合电路要求。
沈阳理工大学EDA技术课程设计报告
5.2 显示控制电路showcontrol的仿真图如下:
图四
功能:显示控制电路showcontrol的功能是控制花形的。且从图中可以看出,当复位信号有效时彩灯输出为零,否则,显示电路在十六种不同状态间转换。
5.3 顶层电路root系统的仿真图如下:
沈阳理工大学EDA技术课程设计报告
图五
功能:整个电路root系统是把showcontrol与timecontrol综合成一个电路。且从图中可以看出,从图中可以看出当OPT为高电平时彩灯状态转换慢,为低电平时转换要快,当复位信号有效时,所用输出都清零。
6总结
通过这次课程设计使我懂得了理论与实际相结合是很重要的,通过这次的课程设计,发现自己的实践经验还是不足的,以后多应该以理论为基础,然后应用到实践中来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。
在这次的课程设计里深入的接触了运用电子集成元器件制作多路彩灯的过程,并和同学一起讨论用软件制作出了这一个多路彩灯控制系统。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,都要进行实践,只有那样才能达到事半功倍的效果。
沈阳理工大学EDA技术课程设计报告
7 参考文献
《EDA技术与数字系统设计》
邹彦主编
电子工业出版社
《EDA技术实用教程》,潘松、黄继业,科学出版社 《数字电子技术基础》(第五版),阎石,高等教育出版社
《电子设计自动化(EDA)手册》,王丹、童如松,电子工业出版社 《EDA技术程设计》,刘江海,华中科技大学出版社