VHDL课程设计多路彩灯控制器
计算机组成原理课程设计报告基于vhdl的彩灯控制器设计与实现

长沙理工大学《计算机组成原理》课程设计报告学院计算机与通信工程专业网络工程班级网络工程08-02 学号******学生姓名**** 指导教师**课程成绩完成日期2010年12月31日课程设计任务书计算机与通信工程学院网络工程专业课程设计成绩评定学院计算机通信工程专业网络工程班级网络08-01 班学号**********学生姓名**** 指导教师**课程成绩完成日期2010年12月31日指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见目录任务书 (2)摘要 (5)Abstract (6)1引言 (7)1.1VHDL技术介绍 (7)1.2其他技术特征 (8)2十六路彩灯控制系统的实现十六路彩灯控制器的实现 (9)2.1 功能描述 (9)2.2 设计原理 (9)3模块设计及其功能 (10)3.1 子模块及功能 (10)4 程序下载与测试 (13)4.1 下载 (13)4.2 硬件测试 (14)5结论 (14)参考文献 (15)附录 (16)多路彩灯控制器的设计[摘要]随着科技的发展 , 在现代生活中, 彩灯作为一种景观应用越来越多。
现介绍了以VHDL为基础的十六路彩灯控制系统。
同时减少了设计芯片的数量、缩小了体积、降低了功耗、提高了设计的灵活性、可靠性和可扩展性。
在电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHDL语言则是EDA的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。
本文介绍了基于EDA技的多路彩灯控制器的设计与分析。
在MAX+PLUSII环境下采用VHDL语言实现,论述了基于VHDL语言和CPLD芯片的数字系统设计思想和实现过程。
电子设计自动化技术EDA的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。
用VHDL设计十六路彩灯控制器

W H EN O f= > IF Q cl= ’0’ TH EN cu rren t- sta te< = Q f;
EL SE K1<‘0’; K2<‘1’; K3< =‘1’; K5< =‘0’; K6< =‘1’; cu rren t- sta te< = Q g;
参考文献
[ 1 ]D So lom on, R R ank in s 著, SQL Server6. 5 开发指南, 清 华大学出版社, 1998: 179- 234
[ 2 ]微软公司著, 希望图书创作室译,M icro soft SQL Server6. 5 T ran sact- SQL 参数手册, 宇航出版社, 1998: 111- 172
A RCH IT ECTU R E con tro ll- a rc O F con tro ll IS
K4< = ’1’; K6< = ’0’;
S IGNAL cu rren t- sta te: sta te: = Q a
END IF;
B EG IN
PRO CESS
B EG IN W A IT U N T IL CL K=‘1‘AND CL K’EV EN T; IF S=‘0’TH EN Y < ‘0’;
EL SE cu rren t- sta te< Q f;
图 2 仿真波形
(下转第 36 页)
·31·
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
M icrocom puter Appl ica tion s Vol. 17, No. 5, 2001 开发应用 微型电脑应用 2001 年第 17 卷第 5 期
彩灯控制电路设计与实现(VHDL编程)

实验名称:彩灯控制电路设计与实现实验任务要求:用VHDL 语言设计并实现一个彩灯控制电路,仿真并下载验证其功能。
彩灯有两种工作模式 ,可通过拨码开关或按键进行切换。
(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次往复设计思路和过程:可以将两种模式分开设计,再用一个控制钮进行切换。
两种模式本质一样,都是循环点亮灯。
可以用状态机设计。
首先明确设计对象的外部特征,输入信号只有时钟信号cp 和切换按钮此处取a;输出为检测的八个彩灯亮暗。
根据设计对象的操作控制步来确定有限状态机的状态。
取初始状态为s0,第一种模式共有14种状态循环,因而可取状态s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;第二种模式有八种状态,可共用第一种模式中的前八种状态,即为s0,s1,s2,s3,s4,s5,s6,s7。
根据题目要求的循环可以写出各个状态的下一状态,写完整个循环为止。
切换按钮可以用一个If 来总领。
单点移动模式:S0 S5S13 S7S8 S9 S10 S11 S1 S2 S3 S4S12 S6幕布式:流程图:彩灯电路设计语言:library ieee;use ieee.std_logic_1164.all;entity pmd isport(a,cp:in std_logic; %输入信号deng: out std_logic_vector(7 downto 0) %输出灯信号);end pmd;architecture arch of pmd istype all_state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13);%枚举状态机状态 S0 S7 S6 S1 S5 S4S2 S3signal state:all_state; %状态转换符号begin %开始程序process(cp)beginif (cp'event and cp='1')then %时钟信号开始计数if(a='1')then %单点循环模式case state iswhen s0=> state<=s1;deng<="00000001"; %状态循环when s1=> state<=s2;deng<="00000010";when s2=> state<=s3;deng<="00000100";when s3=> state<=s4;deng<="00001000";when s4=> state<=s5;deng<="00010000";when s5=> state<=s6;deng<="00100000";when s6=> state<=s7;deng<="01000000";when s7=> state<=s8;deng<="10000000";when s8=> state<=s9;deng<="01000000";when s9=> state<=s10;deng<="00100000";when s10=> state<=s11;deng<="00010000";when s11=> state<=s12;deng<="00001000";when s12=> state<=s13;deng<="00000100";when s13=> state<=s0;deng<="00000010";when others =>state<=s0;deng<="00000000";end case;Else %切换为幕布式case state iswhen s0=> state<=s1;deng<="00011000";when s1=> state<=s2;deng<="00111100";when s2=> state<=s3;deng<="01111110";when s3=> state<=s4;deng<="11111111";when s4=> state<=s5;deng<="01111110";when s5=> state<=s6;deng<="00111100";when s6=> state<=s7;deng<="00011000";when s7=> state<=s0;deng<="00000000";when others =>state<=s0;deng<="00000000";end case;end if;end if;end process; end arch;输入波形:添加五十分频后的仿真程序:library ieee;use ieee.std_logic_1164.all;entity cd isport(a,clk:in std_logic;q: out std_logic_vector(7 downto 0));end cd;architecture a of cd istype all_state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13);signal state:all_state;signal cnt : integer range 0 to 24999999; %50分频状态signal clk_tmp : std_logic;beginprocess(clk)Begin %开始运行分频信号if (clk'event and clk='1') thenif cnt=24999999 thencnt<=0;clk_tmp<= not clk_tmp;elsecnt<=cnt+1;end if;end if;if (clk_tmp'event and clk_tmp='1')then %分频后运行彩灯程序if(a='1')thencase state iswhen s1=> state<=s2;q<="00000010";when s2=> state<=s3;q<="00000100";when s3=> state<=s4;q<="00001000";when s4=> state<=s5;q<="00010000";when s5=> state<=s6;q<="00100000";when s6=> state<=s7;q<="01000000";when s7=> state<=s8;q<="10000000";when s8=> state<=s9;q<="01000000";when s9=> state<=s10;q<="00100000";when s10=> state<=s11;q<="00010000";when s11=> state<=s12;q<="00001000";when s12=> state<=s13;q<="00000100";when s13=> state<=s0;q<="00000010";when others =>state<=s0;q<="00000000";end case;elsecase state iswhen s0=> state<=s1;q<="00011000";when s1=> state<=s2;q<="00111100";when s2=> state<=s3;q<="01111110";when s3=> state<=s4;q<="11111111";when s5=> state<=s6;q<="00111100";when s6=> state<=s7;q<="00011000";when s7=> state<=s0;q<="00000000";when others =>state<=s0;q<="00000000";end case;end if;end if;end process;end a;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cd isport(a,clk:in std_logic;q: out std_logic_vector(7 downto 0));end cd;architecture a of cd istype all_state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13); signal state:all_state;beginprocess(clk)beginif (clk'event and clk='1') thenif(a='1') thencase state iswhen s0=> state<=s1;q<="00000001";when s1=> state<=s2;q<="00000010";when s2=> state<=s3;q<="00000100";when s3=> state<=s4;q<="00001000";when s4=> state<=s5;q<="00010000";when s5=> state<=s6;q<="00100000";when s6=> state<=s7;q<="01000000";when s7=> state<=s8;q<="10000000";when s8=> state<=s9;q<="01000000";when s9=> state<=s10;q<="00100000";when s10=> state<=s11;q<="00010000";when s11=> state<=s12;q<="00001000";when s12=> state<=s13;q<="00000100";when s13=> state<=s0;q<="00000010";when others =>state<=s0;q<="00000000";end case;elsecase state iswhen s0=> state<=s1;q<="00011000";when s1=> state<=s2;q<="00111100";when s2=> state<=s3;q<="01111110";when s3=> state<=s4;q<="11111111";when s4=> state<=s5;q<="01111110";when s5=> state<=s6;q<="00111100";when s6=> state<=s7;q<="00011000";when s7=> state<=s0;q<="00000000";when others =>state<=s0;q<="00000000";end case;end if;end if;end process;end a;故障及问题分析:1.编写这个程序时,很自然地想到用一个输入信号控制两种模式的切换,但把这个输入放在哪里,如何放,开始出现了几种想法。
基于Verilog-HDL的彩灯控制器

彩灯控制的设计(CPLD/FPGA课程设计)CPLD/FPGA课程设计项目名称基于FPGA的彩灯控制专业班级学生学号学生姓名指导教师XXXX年X 月XX 日(CPLD/FPGA课程设计)摘要本课程设计提出基于FPGA的彩灯控制器的设计与分析,设计由分频器模块,数据选择器模块,彩灯控制模块组成,基本原理是通过分频器产生不同频率时钟信号,表示彩灯显示的快慢,然后通过数据选择器进行选择,进而通过彩灯花型控制器显示不同种类的彩灯花型。
本设计运用运用Verilog HDL语言在Modelsim软件上进行了实验程序的编译和波形的仿真,具有代码简单易懂,功能易实现的特点,通过不断地调试和代码的多次完善,最终实现完整的彩灯控制器,达到了自主设计逻辑电路的水平。
关键词:彩灯控制;Verilog HDL语言;Modelsim软件AbstractThe curriculum design is proposed based on FPGA octal lantern controller design and analysis, design by the frequency divider module, data selector module lantern control module, the basic principle is through a frequency divider generated clock signal with different frequency and express the lantern display of speed, then through the data selector, and then through the lantern flower type controller display lights in different kinds of flowers. This design by using Verilog HDL language in the Modelsim software of experimental program compiling and waveform simulation, with easy to understand code, function is easy to realize the characteristics by continuous debugging and code improved several times, and ultimately complete the lantern controller, up to the level of the independent design of logic circuit.Keywords:The lantern controller;Verilog HDL language ;The Modelsim software目录摘要 (I)Abstract (III)第一章绪论 (1)1.1 课题背景 (1)1.2 彩灯控制的实际研究意义 (3)第二章彩灯控制相关模块的设计以及原理 (4)2.1 总体设计 (4)2.1.1 方案比较 (4)2.1.2 方案论述 (5)2.1.3 方案选择 (5)2.2 相关模块 (5)2.2.1 时钟信号模块 (5)2.2.2 节拍快慢控制模块 (6)2.2.3 彩灯控花型控制模块 (6)第三章彩灯控制的软件程序设计 (8)3.1 Modelsim软件介绍 (8)3.2 彩灯控制程序设计 (9)3.2.1 分频器程序 (9)3.2.2 数据选择器程序 (10)3.2.3 彩灯花样程序 (11)第四章仿真调试 (13)4.1 仿真过程 (13)4.2 仿真结果 (15)结论 (19)参考文献 (20)附录 (21)致谢 (28)第一章绪论1.1 课题背景1. FPGAFPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
基于VHDL实现多路彩灯控制器设计应用

基于VHDL实现多路彩灯控制器设计应用关键词:VHDL 彩灯控制07通信工程本科班沈治文摘要:设计一个彩灯控制程序器。
可以实现四种花型循环变化,有复位开关。
整个系统共有三个输入信号CLK,RST,Sel,八个输出信号控制八个彩灯。
时钟信号CLK脉冲由系统的晶振产生。
各种不同花样彩灯的变换由Sel控制.此彩灯控制系统设定有四种花样变化,这四种花样可以进行切换,四种花样分别为:(1) 彩灯从左到右逐次闪亮。
(2)彩灯从左向右逐次点亮,且亮后不熄灭。
(3) 彩灯两边同时亮两个,然后逐次向中间点亮。
(4) 全部彩灯亮与熄灭交替。
Abstract: The design of a control program Lantern device. Four kinds of flowers can be achieved circulation change, reset switch. The whole system has three input signals CLK, RST, Sel, 8 output signal control 8 lights. The clock signal CLK pulses generated by the system of the crystal. Lanterns of different patterns of transformation controlled by Sel. The lights control system configuration there are four patterns change, four kinds of patterns can be switched, four kinds of patterns are as follows:(1) successive flashing lights from left to right.(2) successive lantern lit from left to right, and the light is not extinguished after.(3) The two bright lights on both sides at the same time, and then successively to the center light.(4) All lights turn bright and quenching在日常生活中,为了增加聚会或是过节氛围,经常要使用到彩灯循环点亮。
基于vhdl语言的十六路彩灯控制器设计说明书

1 引言VHDL(Very Higll Speed Integrated Circuit Hardware Description Language)即超高速集成电路硬件描述语言。
它是20世纪70年代和80年代初由美国国防部为其超高速集成电VHSIC计划提出的,支持硬件的设计、综合、验证和测试,主要用于描述数字系统的行为、结构、功能和接口[1],也是一种应用较为广泛的HDL语言,能对范围广泛的各种复杂的网络(如电路系统、印刷电路板、芯片、逻辑门等)在不同的抽象级加以描述,而且在整个设计过程中可使用同一种语言。
采用VHDL作为HDL综合设计的优点有:标准语言,即设计者可在不同的环境(例如MAX PLUS II)下进行设计;仿真和综合均可采用同一种语言进行;VHDL中提供的大量的模块资源,简化了设计者的开发工作;由VHDL描述的源文件既是程序软件又可作为设计的文档。
每当夜幕降临,街上的彩灯便发出形态各异、色彩斑斓的耀眼光芒,尤其是节假日,主要干道更是彩灯齐放,烘托出浓厚的节日气氛.现代舞台上彩灯的闪烁越发引人注目,更容易使人陶醉在欢乐的海洋中.彩灯装置多种多样[2],本文在设计中采用EDA技术,应用目前广泛应用的VHDL硬件电路描述语言,实现十六路彩灯控制器的设计,利用MAXPLUS II集成开发环境进行综合、仿真,并下载到CPLD可编程逻辑器件中,完成系统的控制作用。
1.1课程设计背景随着电子技术的发展, 应用系统向着小型化、快速化、大容量、重量轻的方向发展,EDA (Electronic Design Automatic) 技术的应用引起电子产品及系统开发的革命性变革。
VHDL 语言作为可编程逻辑器件的标准语言描述能力强, 覆盖面广,抽象能力强, 在实际应用中越来越广泛。
在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
课程设计报告—多路彩灯控制器

课程设计报告—多路彩灯控制器一、项目介绍多路彩灯控制器是一款具有多种颜色控制功能的控制器,可以实现多种灯光图案的显示。
它的主要功能是控制多脚灯泡的变化和状态,使其产生不同颜色的灯光,构成不同的图案或者变换模式。
二、主要功能1.控制部件:该控制器采用通用数字微处理器作为控制元件,它可以控制多种灯光,包括白色、红色、绿色和蓝色等,还可以同时控制多个LED,实现不同灯光图案的显示。
2.控制算法:在算法上,多路彩灯控制器采用“时序控制”算法,它可以控制灯泡在某一秒内的时间序列,从而实现不同图案的表现效果。
3.连接部件:它还具有外界输入部件,可以连接电脑,便于使用者设计和控制灯光图案,也可以更改和重置控制器,以设计新的灯光图案。
三、困难点1.多灯光多变显示:多路灯光的多变显示要求控制器具有良好的时序管理能力,以及良好的判断力,能够实时根据外部特征环境、光源特性等,控制灯泡成某种特定的灯光图案。
2.多模式控制:多模式控制要求控制器具有嵌入式内部控制算法,以实现不同的相关控制功能。
3.可视化编程:多模式控制还要求可视化编程,使用者可以通过可视化编程界面来设计灯光图案。
四、实现方案1.硬件系统:由数字微处理器、多路输出控制器、LED灯光、外界输入部件(如按键、鼠标、USB 等)等组成。
2.控制软件:控制程序和用户界面设计,将硬件设计和实现,以及灯光显示软件结合起来,实现灯光图案的控制。
五、总结多路彩灯控制器的主要功能是控制灯泡在某一秒内的时序变化,以及实现多种灯光图案的显示。
它的实现方案主要由硬件系统、控制软件和外界输入组成,它的主要困难点包括多灯光多变显示、多模式控制和可视化编程等。
自-基于VHDL的多路彩灯控制论文

开放实验报告题目:ﻩ基于VHDL的多路彩灯控制系统班级:学号:姓名:指导教师:时间:2010年6月30日基于VHDL的多路彩灯控制系统一、设计目的熟悉VHDL的设计方法,掌握VHDL的设计思想,了解VHDL向芯片的下载和测试,建立完整系统设计的概念。
二、设计要求八路彩灯控制系统设定有四种花样变化,这四种花样可以进行自动切换,且每种花样可以选择不同的频率,可以清零和暂停。
四种花样分别为:1.全亮,全灭,给、一个点亮。
2.从左到右一次点亮。
3.从左到右依次熄灭。
4.从两边向中间再向两边依次点亮。
三、设计原理用VHDL进行设计,首先应该理解,VHDL语言是一种全方位硬件描述语言,包括系统行为级,寄存器传输级和逻辑门级多个设计层次。
应充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,层次概念对于设计复杂的数字系统是非常有用的,它使得我们可以从简单的单元入手,逐渐构成庞大而复杂的系统。
在电路中以1代表灯亮,以0代表灯灭,由0、1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样功能显示。
在该电路中只需简单的修改程序就可以灵活地调整彩灯图案和变化方式。
四、设计方案首先应进行系统模块的划分,规定每一模块的功能以及各个模块之问的接口。
设计方案为:一个四分频输出分频器,一个彩灯花样模式选择器,一个清零控制器,一个暂停控制器。
子模块及其功能:本次设计分为四个子模块,即八路彩灯花样控制器、四频率输出分频器,暂停控制器和清零控制器,其子模块及其功能如下:(1)四频率输出分频器:在本次设计中,我们只设计了四种花样,我们要求这四种花样以不同的频率显示,而只有一个输入的时钟信号,所以我们对所输入的时钟信号进行2分频、4分频、8分频、16分频,得到四种频率信号。
(2)清零控制器,当清零生效时,将每个灯输入低电平。
(3)暂停控制器:通过控制时钟信号来控制电路是否工作,当工作时输入时钟信号,当暂停时输入高电瓶。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南科技大学
信息与电气工程学院
《课程设计报告》
题目:
专业:
班级:
姓名:
学号:
指导教师:
年月日
信息与电气工程学院
课程设计任务书
2014 —2015 学年第一学期专业:学号:姓名:
课程设计名称:
设计题目:
完成期限:自年月日至年月日共周
设计依据、要求及主要内容(可另加附页):
指导教师(签字):
批准日期:年月日
目录
一、实验设计的目的 (3)
二、设计内容 (4)
Ⅰ、设计的工具 (4)
Ⅱ、系统设计要求 (4)
III、系统设计方案 (4)
三、电路工作原理 (4)
四、主要程序及仿真结果 (4)
Ⅰ、时序部分主要程序如下: (4)
Ⅱ、时序控制电路的仿真波形如图: (6)
五、对本次设计的体会和建议 (6)
参考文献 (7)
一、实验设计的目的
本设计的任务是让我们熟悉支持VHDL语言的软件,如Max Plus 2,ISP,FOUNDATION等,利用这一类软件使用VHDL语言进行设计编译仿真。
本次设计的主要目的:
1、熟练掌握了相关软件Max Plus 2的使用操作。
能对VHDL语言程序进行编译及调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。
2、在成功掌握软件操作基础上,将所学数字电路的基础课知识与VHDL语言的应用型知识结合起来并
与实际设计,操作联系起来,即“理论联系实际”的观点。
3、完成可编程器件与VHDL语言课程设计,掌握设计语言技术的综合应用性。
本次设计课题为多路彩灯控制器。
4、熟悉系统的分析和设计方法,合理掌握选用集成电路的方法,初步接触EDA技术,为以后本专业的学习奠定良好的基础。
二、设计内容
Ⅰ、设计的工具
电脑一台,maxplusⅡ仿真软件,关于VHDL课程设计的相关书籍若干。
Ⅱ、系统设计要求
设计一个多路彩灯控制器,能循环变化花型,可清零,可选择变化节奏。
彩灯控制器有16路发光二极管构成,当控制器开关打开时,能够在6种不同彩灯花型之间进行循环变化。
要求控制器具备复位清零功能,一旦复位信号有效,不论控制器花型变化处于何种状态都会无条件即刻清零,回复到初始状态。
设置节拍选择按钮。
按下此按钮,多路彩灯控制器的花型变化的节奏减缓;放开次按钮,则节奏相对加快。
III、系统设计方案
根据系统设计要求可知,整个系统共有三个输入信号,分别为控制器快慢节奏控制信号opt、复位清零信号clr和时钟脉冲信号clk,输出信号则是16路彩灯的输出状态led[15...0]。
多路彩灯控制器可由两个主要的电路模块组成:时序控制电路模块和显示控制电路模块。
时序控制电路根据输入信号的设置得到相应的输出信号,并将此信号作为显示控制电路的时钟信号;显示控制电路根据输入时钟信号的周期,有规律地输出预先设定的6种彩灯花型,从而使得多路彩灯控制器在一定的输入条件下提供符合设计要求的有效输出。
本设计主要研究时序控制电路。
三、电路工作原理
多路彩灯控制器的实现基础是时序控制电路和显示1控制电路的设计,时序控制电路的模块框图如图2所示。
其中,clk为输入时钟信号,电路在时钟上升沿发生变化;clr为复位清零信号,高电平有效,且一旦该信号有效,电路无条件复位为初始状态;opt为快慢节奏选择信号,低电平时节奏快,高电平时节奏慢;clkout为输出信号,当clr信号有效时clkout输出为0,否则,clkout的周期随opt信号的改变而改变。
我们假设时序电路产生的控制时钟信号的快慢两种节奏分别为输入时钟信号频率的1/4和1/8,因而输出时钟信号可以通过对输入时钟的计数来获得。
当opt为低电平时,输出经过两个时钟周期进行翻转,实现四分频的快节奏;当opt为高电平时,输出每经过四个时周期进行翻转,实现八分频的慢节奏。
四、主要程序及仿真结果
Ⅰ、时序部分主要程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity metronome is
port(
clk:in std_logic;
clr:in std_logic;
opt:in std_logic;
clkout:out std_logic);
end metronome;
architecture rtl of metronome is
signal clk_tmp:std_logic;
signal counter:std_logic_vector(1 downto 0); begin
process(clk,clr,opt)
begin
if clr='1'then
clk_tmp<='0';
counter<="00";
elsif clk'event and clk='1'then
if opt='0'then
if counter="01"then
counter<="00";
clk_tmp<=not clk_tmp;
else
counter<=counter+'1';
end if;
else
if counter="11"then
counter<="00";
clk_tmp<=not clk_tmp;
else
counter<=counter+'1';
end if;
end if;
end if;
end process;
clkout<=clk_tmp;
end rtl;
Ⅱ、时序控制电路的仿真波形如图:
五、对本次设计的体会和建议
第一、在程序的编写过程中,通过发现问题再到解决问题,在这过程中,逐渐的掌握了Max Plus2的使用以及在使用过程中的一些注意事项,对更好的学习理论知识起到了一定的帮助。
第二、初步了解对电路的设计的思维和方法,在这方面还有很多不足的地方,理论知识不强,专业的课外知识不充足。
在编写程序的过程中遇到了一定的麻烦,感受到了正确的不一定是实用的。
第三、本次的设计得益于网络资源及图书馆资料的帮助,同时我也认识到在未来的学习中我们不仅要从老师那里学习知识,更多的是合理的正确的利用网络资源及图书资源。
本次数字系统仿真与VHDL课程设计的课程设计在老师的精心指导下,我们不仅仅学会里用Max Plus2编写设计的程序并进行编译仿真得出相应的结果,更重要的是让我在这其中学会了很多其他的东西。
本专业的学习是很辛苦很需要耐心和意志力的,同时必须保持大脑处于思考状态,在这不多的时间里我们应该更好的利用时间去思考我们所学的知识。
在与老师的交流中,我感受到我所设计仅仅只是一部分,奇妙的
东西很多,同时深刻的领会到我们不仅会做出东西,更重要的是运用到实际中去。
同时我在这期间认识到了求真务实精神的重要性,特别是在老师的教导下,让我感触很多,作为大学生在求学路上不应想着如何去走捷径,而是如何看透问题的本质,真正的做到学以致用。
经过此次让我感受颇多,因为我们要有着自己思维和理念去追求知识。
参考文献
[1]李国洪.可编程器件EDA技术与实践[M].北京:机械工业出版社,2004:100-123.
[2]张玉杰,马立云,张贺艳.基于ARM和FPGA的LED显示屏控制系统的设计[J].计算机测量与控制,2009,17(12):1-2.
[3]潭会生,张昌凡.EDA技术及应用[J].西安:电子科技大学出版社.2001,16(2):46-48.
[4]诗文DigiTimes专稿;片上系统潮流下EDA市场发展趋势[N].电子资讯时报,2005-06-06(A02).
[5]张晶,裴东兴,张少杰.基于CPLD的低功耗爆炸场温度测试系统[J].电子设计工程,2012,20(2):91-93.
[6]刘欲晓,方强,黄宛宁.EDA技术与VHDL电路开发应用实践[J].电子电气技术课程,2009,04-01。