欢迎来到天天文库
浏览记录
ID:6326965
大小:125.50 KB
页数:15页
时间:2018-01-10
《课程设计论文-基于vhdl语言的流水灯设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、滨江学院课程论文(可编程器件原理与应用)题目基于VHDL语言的流水灯设计学生姓名学号院系滨江学院专业电子与信息工程指导教师二零一零年十二月三十日一、任务:采用ALTERA公司的EPM7128SLC84-10芯片,通过VHDL语言设计一个流水灯电路。流水灯样式必须大于3种,且可以通过按键调节显示样式;可以通过按键调节流水灯变化快慢;当前流水灯样式和变化速度能够通过数码管显示出来;(附加:具有按键声)二、设计框图(框图说明)速度按键样式按键按键控制模块速度控制样式选择译码和扫描数码显示彩灯显示1000HZ信号1
2、00HZ信号蜂鸣器1MHZ周期信号经过2个100分频,得到100HZ,再经过1个10分频得到10HZ信号,传给速度控制模块,得到需要的速度周期信号,然后传给样式选择模块,样式选择模块直接输出彩灯样式;控制模块通过接受两个按键信号,同时控制速度控制模块和样式选择模块;译码扫描模块通过判断控制模块,扫描数码管显示当前彩灯样式和彩灯变化速度;按键信号通过延时模块输出按键发生信号。三、原理图(CPLD内部原理说明)从原理图中可以看到,一共有8种模块,D触发器的作用是对按钮进行消抖,除D触发器之外的7个模块功能及作用
3、如下:f100和f10分别是100和10的分频器,speed模块的作用是对彩灯变化速度进行控制,而style_switch模块的作用是对彩灯样式进行调节。Control模块接收按键信号对样式和速度进行总的控制。Show模块是对速度值和样式值进行译码并进行扫描数码管,将当前样式和速度状态显示出来。Delay模块则是对按键声的延时。四、各个模块设计(波形仿真)1.f100模块功能:100分频波形仿真:VHDL代码:libraryieee;useieee.std_logic_1164.all;useieee.st
4、d_logic_unsigned.all;entityf100is--100分频port(clk:instd_logic;sec:outstd_logic);endentityf100;architecturegetsecoff100issignalsecout:std_logic:='1';beginprocess(clk)isvariablecount100:integerrange0to50;beginifclk'eventandclk='1'thencount100:=count100+1;ifco
5、unt100=50thensecout<=notsecout;count100:=0;endif;endif;endprocess;sec<=secout;endarchitecturegetsec;2.f10模块功能:10分频波形仿真:VHDL代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityf10is–-10分频port(clk:instd_logic;sec:outstd_logic);ende
6、ntityf10;architecturegetsecoff10issignalsecout:std_logic:='1';beginprocess(clk)isvariablecount10:integerrange0to5;beginifclk'eventandclk='1'thencount10:=count10+1;ifcount10=5thensecout<=notsecout;count10:=0;endif;endif;endprocess;sec<=secout;endarchitectur
7、egetsec;3.speed模块功能:根据DATE输入端的数值大小,产生不同频率的周期信号,从而达到控制彩灯变化速率的目的。波形仿真:VHDL代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityspeedis--速度控制port(clk,clr:instd_logic;date:instd_logic_vector(1downto0);spd_out:outstd_logic);endentitysp
8、eed;architecturearchofspeedissignalspd_num:std_logic_vector(1downto0):="00";signalnum:std_logic_vector(1downto0):="00";signalout_temp:std_logic:='0';beginprocess(clk,clr)isbeginspd_num<=3-date;ifclr='1'thennu
此文档下载收益归作者所有