vhdl流水灯课程设计报告

合集下载

EDA流水灯论文(VHDL)

EDA流水灯论文(VHDL)

滨江学院课程论文(可编程器件原理与应用)题目基于VHDL语言的流水灯设计学生姓名王秋阳学号20082305047院系滨江学院专业电子与信息工程指导教师刘建成二零一零年十二月三十日一、任务:采用ALTERA 公司的EPM7128SLC84-10芯片,通过VHDL 语言设计一个流水灯电路。

流水灯样式必须大于3种,且可以通过按键调节显示样式;可以通过按键调节流水灯变化快慢;当前流水灯样式和变化速度能够通过数码管显示出来;(附加:具有按键声)二、设计框图(框图说明)1MHZ 周期信号经过2个100分频,得到100HZ ,再经过1个10分频得到10HZ 信号,传给速度控制模块,得到需要的速度周期信号,然后传给样式选择模块,样式选择模块直接输出彩灯样式;控制模块通过接受两个按键信号,同时控制速度控制模块和样式选择模块;译码扫描模块通过判断控制模块,扫描数码管显示当前彩灯样式和彩灯变化速度;按键信号通过延时模块输出按键发生信号。

速度按键 样式按键控制模块速度控制样式选择译码和扫描数码显示彩灯显示1000HZ 信号100HZ 信号蜂鸣器三、原理图(CPLD内部原理说明)从原理图中可以看到,一共有8种模块,D触发器的作用是对按钮进行消抖,除D触发器之外的7个模块功能及作用如下:f100和f10分别是100和10的分频器,speed模块的作用是对彩灯变化速度进行控制,而style_switch模块的作用是对彩灯样式进行调节。

Control 模块接收按键信号对样式和速度进行总的控制。

Show模块是对速度值和样式值进行译码并进行扫描数码管,将当前样式和速度状态显示出来。

Delay模块则是对按键声的延时。

四、各个模块设计(波形仿真)1.f100模块功能:100分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f100 is --100分频port(clk:in std_logic;sec:out std_logic);end entity f100;architecture getsec of f100 issignal secout : std_logic :='1';beginprocess(clk) isvariable count100: integer range 0 to 50;beginif clk'event and clk='1' thencount100:=count100+1;if count100=50 thensecout<=not secout;count100:=0;end if;end if;end process;sec<=secout;end architecture getsec;2.f10模块功能:10分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f10 is –-10分频port(clk:in std_logic;sec:out std_logic);end entity f10;architecture getsec of f10 issignal secout : std_logic :='1';beginprocess(clk) isvariable count10: integer range 0 to 5;beginif clk'event and clk='1' thencount10:=count10+1;if count10=5 thensecout<=not secout;count10:=0;end if;end if;end process;sec<=secout;end architecture getsec;3.speed模块功能:根据DATE输入端的数值大小,产生不同频率的周期信号,从而达到控制彩灯变化速率的目的。

vhdl课程设计实验报告

vhdl课程设计实验报告

湖南科技大学信息与电气工程学院《课程设计报告》题目:电子技术课程设计报告专业:通信工程班级:一班姓名:何家乐学号: 1004040126指导教师:罗朝辉任务书题目《电子技术》课程设计时间安排课程设计时间为10天(2周)。

(1)调研、查资料1天。

(2)总体方案设计2 天。

(3)电路设计2天(画原理图,参数计算)。

(4)实验室完成相应电路的验证。

3天(5)撰写设计说明书 1 天。

(6)验收1 天。

目的:训练学生综合运用学过的电子技术原理的基础知识,独立进行查找资料、选择方案、设计电路、撰写报告,进一步加深对电子电路基本理论的理解,提高运用基本技能的能力,为今后的学习和工作打下坚实的基础。

要求:(1)能正确设计电路,画出线路图,分析电路原理。

(2)按时参加课程设计指导,定期汇报课程设计进展情况。

(3)广泛收集相关技术资料。

(4)独立思考,刻苦钻研,严禁抄袭。

(5)按时完成课程设计任务,认真、正确地书写课程设计报告。

(6)培养实事求是、严谨的工作态度和认真的工作作风。

总体方案实现:(1)明确设计任务,对所要设计的任务进行具体分析,充分了解电路性能、指标内容及要求。

(2)制定设计方案。

(3)迸行具体设计:单元电路的设计;参数计算;器件选择;绘制电路原理图。

(4)撰写课程设计报告(说明书):课程设计报告是对设计全过程的系统总结,也是培养综合科研素质的一个重要环节。

指导教师评语:评分等级:()指导教师签名:课程设计报告1.课题名称:RGB LED Control 原理图及PCB设计2.设计任务及要求⑴任务:完成RGB LED control 的设计,并画出原理图及其PCB设计。

⑵要求:①能正确设计电路,画出线路图,分析电路原理。

②按时参加课程设计指导,定期汇报课程设计进展情况。

③广泛收集相关技术资料。

④独立思考,刻苦钻研,严禁抄袭。

⑤按时完成课程设计任务,认真、正确地书写课程设计报告。

⑥培养实事求是、严谨的工作态度和认真的工作作风。

vhdl课程设计报告

vhdl课程设计报告

一、设计目的本课程设计的目的是熟练掌握相关软件的使用和操作。

能对VHD1语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。

在成功掌握软件操作基础上,将所数字电路的基础课知识与VHD1语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际:深入了解VHD1语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。

对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。

二、设计内容及操作1、设计循环彩灯控制器1.1设计内容设计一个循环彩灯控制器,该控制器控制红,绿,黄三个发光管循环点亮。

要求红发光管亮3秒,绿发光管亮2秒,黄发光管亮1秒。

1.2程序设计1IBRARYIEEE;USEIEEE.STD_10GIC_1164.A11;USEIEEE.STD_1OGIC_UNSIGNED.A11;ENTITYcaideng_2ISPORT(e1k:INSTD_1OGIC;red,green,ye11ow:OUTSTD1OGIC);ENDENTITYCaideng_2;ARCHITECTUREexamp1eOFcaideng_2ISSIGNA1dout:STD_1OGIC_VECTOR(2DoWNTO0);SIGNA1m:STD_10GIC_VECT0R(2DOWNTO0);BEGINred<=dout(2);green<=dout(1);ye11ow<=dout(0);PROCESS(e1k)ISBEGINIF(c1k,EVENTANDC1k=T')THENIF(In="110")THENm<="001";E1SEm<=m+1;ENDIF;CASEmISWHEN"001"=〉dout<=〃100〃;WHEN"010"=>dout<=T00";WHEN,/0ir=>dout<="100";WHEN"100"=>dout<="010";WHEN"101"=>dout<="010";WHEN"110"=>dout<="001";WHENOTHERS=>dout<="000";ENDCASE;ENDIF;ENDPROCESS;ENDARCHITECTURE;1.3仿真波形图14波形图分析在仿真时已经设置好开始时间和结束时间,根据以上的波形图可知,当e1k 信号处于高电平(高低电平可以根据自己所设计的情况自己定义),红发光管最先亮灯(高电平表示亮灯),时间为3s,3s之后绿发光管开始亮灯2s,2s结束黄发光管亮1s,以此循环亮灯,直到仿真结束时间。

流水灯—电路实验报告

流水灯—电路实验报告

课程设计院(系)信息科学与工程学院专业班级姓名济南大学二〇一四年十二月二十九日课程设计任务书信息科学与工程学院专业学生姓名学号课程设计题目电路与数字逻辑课程设计课程设计内容与要求:一、设计题目(一)、流水灯电路综合组合电路和时序电路知识,设计一个流水灯电路,电路功能要求如下:(1)使用8个小灯,实现周期性流水。

(2)包含四种流水花样(至少四种)。

(3)每次流水间隔T。

(4)每个流水花样运行nT秒钟之后,自动切换到下一个花样,循环往复。

(5)流水花样使用数码管指示。

(二)、抢答器综合组合电路和时序电路知识,设计一个抢答器电路,电路功能要求如下:(1)八路抢答。

(2)整个工作过程分为出题、抢答、答题三个过程。

(3)电路初始状态为出题状态,出题完毕,主持人按钮可以将电路切换为抢答状态。

(4)在某人抢答成功后,自动进入答题状态,并开始10秒计时,计时结束自动停止计时。

主持人再次使用手动按钮可以将电路状态切换为出题状态。

(5)使用三个数码管,第一个数码管指示电路状态(0,1,2),第二个数码管指示抢答通道(0~7),第三个数码管用于指示答题时间(0~9)。

二、设计要求课程设计有两个实践性题目,要求软件仿真和电路焊接调试两个步骤,软件仿真20学时,电路焊接调试20学时,成绩步骤各占50%。

软件仿真:采用Multisim软件,要求学生能将两个电路全部仿真成功。

老师根据电路的完善程度和完成的先后顺序给出成绩。

电路焊接:在仿真结束之后,同学们可以任选一题,进行焊接调试。

实验室为每位同学提供一套实验耗材,包括电路板、集成电路芯片、导线等。

焊接调试完毕,老师检查并给出成绩后,设计作品可由作者自行带走。

在规定的时间内,调试未成功者,老师根据该学生的实际情况,给出成绩,但未完成的设计作品需要交还实验室。

设计开始日期2014年12 月26 日指导教师2014年12月29 日一、设计思路1.所需的引脚:电路图如下:2.用Multisim进行电路仿真,第一个74161用于产生16进制,第二个74161用于产生4进制,然后在7段数码管中显示出来流水灯的四种样式,74138是译码器,用于将第二个74161产生的四进制翻译为十进制,然后送到四个样式不同的74373中,74373的oc端是个输出门,当是低电平的时候处于高阻状态,因此同一时间只能有一个74373在工作,最后通过74194产生右移信号产生流水灯效果。

可编程逻辑器件应用流水灯VHDL设计报告

可编程逻辑器件应用流水灯VHDL设计报告

目录一、任务分工 (2)一、系统设计 (2)1.1模式自动切换 (2)1.2自动时钟分频 (2)1.3 模式与分频融合 (2)二、总体方案 (3)1模块化设计 (3)1.1假定输入时钟,计算变频时间 (3)1.2模式切换实时跟随输入时钟切换 (3)二、最终程序 (4)1分频模块 (4)2、模式控制模块 (5)三、仿真结果 (7)1、分频仿真 (7)2、流水灯仿真 (7)四、实验成果 (8)一、任务分工王定:变频模块设计裴振伟:模式切换王涛、贾晋生:实验仿真吴晓屹:ppt制作一、系统设计1.1模式自动切换对系统时钟输入进行计数:每个各上升沿来临时,led 灯都会做出相应的变化。

1.2自动时钟分频对系统输入时钟多段分频:本设计利用脉冲精准计时,以100HZ信号为例,周期为10ms。

每512个脉冲计数进行一次分频,时间大约500ms为一个节点。

进行了四次分频,分别为二分频、四分频、八分频、十六分频。

1.3 模式与分频融合变频模块与模式控制模块独立工作,其产生的原理图如下图1自变频流水灯原理图二、总体方案1模块化设计1.1假定输入时钟,计算变频时间1.2模式切换实时跟随输入时钟切换二、最终程序1分频模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;----------------------------------------------ENTITY FENPIN ISPORT(clk: IN STD_LOGIC;--时钟输入fenpinout: OUT STD_LOGIC);END ENTITY FENPIN;---------------------------------------------------ARCHITECTURE rtl OF FENPIN ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0); --定义一个四位的信号SIGNAL countout:STD_LOGIC_VECTOR(11 DOWNTO 0); --定义一个四位的信号]BEGINPROCESS(clk)BEGINIF(clk' event AND clk ='1') THEN --上升沿到来,100HZ,T=1/100S=0.01S=10ms countout<=countout+1;IF (count="1111") THEN --达到最大计数值count<="0000"; --置零ELSEcount<=count+1; --计数END IF;END IF;IF (countout>="100111111100") THENcountout<="000000000000";ELSIF (countout<="000111111111") THEN --512fenpinout<=count(0);ELSIF (countout>"000111111111") AND (countout<="001111111111") THEN fenpinout<=count(1);ELSIF (countout>"001111111111") AND (countout<="010*********") THENfenpinout<=count(2);ELSIF (countout>"010*********") AND (countout<="011111111101") THEN fenpinout<=count(3);END IF;END PROCESS;END rtl;2、模式控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LED_MODE ISPORT(CLK:IN STD_LOGIC;LED_OUT:OUT STD_LOGIC_VECTOR(11 DOWNTO 0));END ENTITY LED_MODE;ARCHITECTURE BEHAVE OF LED_MODE ISBEGINPROCESS(CLK) ISVARIABLE TEMP: INTEGER RANGE 0 TO 47;BEGINIF (CLK'EVENT AND CLK='1') THENtemp:=temp+1;CASE TEMP ISWHEN 0 => LED_OUT <="111111111110";WHEN 1=> LED_OUT <="111111111101";WHEN 2=> LED_OUT <="111111111011";WHEN 3=> LED_OUT <="111111110111";WHEN 4=> LED_OUT <="111111101111";WHEN 5=> LED_OUT <="111111011111";WHEN 6=> LED_OUT <="111110111111";WHEN 7=> LED_OUT <="111101111111";WHEN 8=> LED_OUT <="111011111111";WHEN 9=> LED_OUT <="110111111111";WHEN 10=> LED_OUT <="101111111111";WHEN 11=> LED_OUT <="011111111111";WHEN 12=> LED_OUT <="011111111111";WHEN 13=> LED_OUT <="101111111111";WHEN 14=> LED_OUT <="110111111111";WHEN 15=> LED_OUT <="111011111111";WHEN 16=> LED_OUT <="111101111111";WHEN 17=> LED_OUT <="111110111111";WHEN 18=> LED_OUT <="111111011111";WHEN 19=> LED_OUT <="111111101111";WHEN 20=> LED_OUT <="111111110111";WHEN 21=> LED_OUT <="111111111011";WHEN 22=> LED_OUT <="111111111101";WHEN 23=> LED_OUT <="111111111110";WHEN 24=> LED_OUT <="111111111111";WHEN 25=> LED_OUT <="011111111110";WHEN 26=> LED_OUT <="101111111101";WHEN 27=> LED_OUT <="110111111011";WHEN 28=> LED_OUT <="111011110111";WHEN 29=> LED_OUT <="111101101111";WHEN 30=> LED_OUT <="111110011111";WHEN 31=> LED_OUT <="111101101111";WHEN 32=> LED_OUT <="111011110111";WHEN 33=> LED_OUT <="110111111011";WHEN 34=> LED_OUT <="101111111101";WHEN 35=> LED_OUT <="011111111110";WHEN 36=> LED_OUT <="111111111111";WHEN 37=> LED_OUT<="001111111111";WHEN 38=> LED_OUT <="100111111111";WHEN 39=> LED_OUT <="110011111111";WHEN 40=> LED_OUT <="111001111111";WHEN 41=> LED_OUT <="111100111111";WHEN 42=> LED_OUT <="111110011111";WHEN 43=> LED_OUT <="111111001111";WHEN 44=> LED_OUT <="111111100111";WHEN 45=> LED_OUT <="111111110011";WHEN 46=> LED_OUT <="111111111001";WHEN 47=> LED_OUT <="111111111100";WHEN OTHERS=>LED_OUT<="111111111111";END CASE;END IF;END PROCESS;END BEHAVE;三、仿真结果1、分频仿真由于频率切换所需脉冲数量过多,不便于观测,未进行仿真。

流水灯的实验报告

流水灯的实验报告

流水灯的实验报告流水灯的实验报告引言:流水灯是一种常见的电子元件,它通过控制电流的流动,使灯光依次在一组灯泡之间流动,形成一种流水般的效果。

在本次实验中,我们将探索流水灯的工作原理,并通过自己动手搭建电路,观察流水灯的效果。

实验目的:1. 了解流水灯的工作原理;2. 学习使用电子元件搭建电路;3. 观察流水灯的效果。

实验材料:1. 流水灯电路板;2. 线缆;3. 电源;4. 灯泡。

实验步骤:1. 将流水灯电路板连接到电源上,确保电路板的正负极正确连接;2. 将灯泡依次连接到电路板上,确保灯泡的极性正确;3. 打开电源,观察流水灯的效果。

实验结果:当电源打开后,流水灯开始工作。

灯泡依次亮起,然后熄灭,再亮起下一盏灯泡,如此循环。

整个流水灯的效果就像水流般流动,非常美观。

实验分析:流水灯的实现原理是通过控制电流的流动方向和路径来实现的。

在流水灯电路板上,灯泡被连接成一条线,电流从一个灯泡流向下一个灯泡,依次循环。

每个灯泡都有一个开关,控制灯泡的亮灭。

当电流通过一个灯泡时,该灯泡亮起,当电流流向下一个灯泡时,前一个灯泡熄灭,下一个灯泡亮起,如此循环,形成流水灯的效果。

流水灯的原理与实际生活中的流水有些类似。

我们可以将每个灯泡看作是水流中的一个水滴,电流的流动就像水流一样,从一个水滴流向下一个水滴。

每个灯泡的亮灭就像水滴的存在和消失,整个流水灯的效果就像水流般流动。

流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。

例如,在舞台演出中,流水灯常常被用来营造出动感和变幻的效果。

在夜店、酒吧等娱乐场所,流水灯也是常见的装饰元素之一。

流水灯的效果不仅美观,还能吸引人们的注意力,增加场景的氛围。

实验总结:通过本次实验,我们了解了流水灯的工作原理,并亲自搭建了一个流水灯电路。

实验结果显示,流水灯的效果非常美观,给人一种流动的感觉。

流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。

通过这个实验,我们不仅学到了电子元件的使用方法,还培养了动手实践的能力,提高了对电路原理的理解。

流水灯课程设计报告

流水灯课程设计报告

摘要流水彩灯控制器在我门日常生活中有重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。

本次设计的流水彩灯控制器是其中较简单的,但这是进行复杂设计的基础。

本次课程设计要设计一个流水彩灯控制器〔用8只发光二极管显示,至少三种工作方式〕。

首先要分析设计要求,从要实现至少三种工作方式入手推导出要使用的芯片。

可通过八位右移寄存器74LS164实现八个彩灯的向右移动,从它的右移输入端控制来实现它的流水彩灯的变化。

要控制流水彩灯的变化,可通过一个八位拨码开关,八选一数据选择器74LS151,模十六加法计数器74LS161来实现。

时钟信号由一个555产生,产生周期可由一个滑动变阻器控制。

而彩灯的变化可由拨码开关自行选择。

经实验验证,所设计的流水彩灯控制器能完成题目要求。

关键词 : 时钟脉冲;分频;移位寄存器;数据选择器;拨码开关;目录摘要 (1)1设计课题与要求 (3)1.1设计方案选择 (3)2 系统模块组成 (4)2.1系统组成框图 (4)2.2各模块的组成与功能分析 (4)3 单元电路设计与计算 (5)3.1时钟脉冲产生电路 (5)3.2单种码产生电路 (7)3.3拨码开关控制电路 (8)3.4输出电路设计 (10)4 整机电路设计 (12)整机电路工作原理 (10)5 组装调试 (13)5.1仿真过程 (15)6 总结 (15)结论 (16)参考文献 (16)附录1 流水彩灯控制器原理总图 (17)附录2 PCB总图 (17)附录 2 元器清单 (18)1 设计课题及要求〔一〕题目:流水彩灯控制器〔二〕基本要求:1、用8只发光二极管显示。

2、至少三种工作方式。

1.1 方案选择利用数字芯片实现。

用555做时钟信号,用模十六加法计数器74LS161的输出端的最高位Q3,模十六加法计数器74LS161的输出端的Q1Q2Q3接到八选一的数据选择器74LS151的选择控制端。

74LS151的八个输入端都接到八位拨码开关,由拨码开关和控制端控制输出端,输出端接到移位寄存器74LS164的输入端。

流水灯VHDL Done1

流水灯VHDL  Done1

基于VHDL流水灯的设计电子信息科学与技术刘敏何磊成江波一、设计内容流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。

流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。

要求采用可编程逻辑器件实现一个流水灯控制电路,12个LED灯能连续发出4种不同的流水显示形式。

彩灯控制器的第1种花样为彩灯按顺时针方向逐次点亮;第2种花样为彩灯按逆时针方向逐次点亮,然后全灭全亮;第3种花样为彩灯两边同时亮1、2、3、4、5、6个逐次向中间移动再散开;第4种花样为彩灯连续交叉闪烁。

多个花样自动变换,循环往复。

二、设计方案彩灯是由FPGA板上的LED灯代替,有以下4种闪烁效果1.彩灯按顺时针方向逐次点亮。

2.彩灯按逆时针方向逐次点亮,然后全灭全亮。

3.彩灯两边同时亮1、2、3、4、5、6个逐次向中间移动再散开。

4.彩灯连续交叉闪烁。

本控制电路采用VHDL语言设计。

运用自顶而下的设计思想,按功能逐层分割实现层次化设计。

根据多路彩灯控制器的设计原理,分别对应彩灯的四种变化模式、利用VHDL语言实现该功能.三、系统框图四、流水灯设计程序library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_unsigned.all;entity led1 isport(sysclk: in std_logic;dout: out std_logic_vector(11 downto 0) );end led1;architecture jgt of led1 issignal cnt : std_logic_vector ( 7 downto 0);--variable count:integer RANGE 0 TO 7;signal count : std_logic_vector(5 DOWNTO 0);beginprocess(sysclk)beginif ( sysclk'event and sysclk = '1') thencnt <= cnt + 1;if (cnt = "11110111") thencnt <= "00000000" ;count <=count+1;end if ;end if;end process;process (count)begincase count iswhen "000000" =>dout <= "111111111110";when "000001" =>dout <= "111111111101";when "000010" =>dout <= "111111111011";when "000011" =>dout <= "111111110111";when "000100" =>dout <= "111111101111";when "000101" =>dout <= "111111011111";when "000110" =>dout <= "111110111111";when "000111" =>dout <= "111101111111";when "001000" =>dout <= "111011111111";when "001001" =>dout <= "110111111111";when "001010" =>dout <= "101111111111";when "001011" =>dout <= "011111111111";when "001100" =>dout <= "101111111111";when "001101" =>dout <= "110111111111";when "001110" =>dout <= "111011111111";when "010000" =>dout <= "111110111111";when "010001" =>dout <= "111111011111";when "010010" =>dout <= "111111101111";when "010011" =>dout <= "111111110111";when "010100" =>dout <= "111111111011";when "010101" =>dout <= "111111111101";when "010110" =>dout <= "111111111110";when "010111" =>dout <= "111111111111";when "011000" =>dout <= "000000000000";when "011001" =>dout <= "011111111110";when "011010" =>dout <= "101111111101";when "011011" =>dout <= "110111111011";when "011100" =>dout <= "111011110111";when "011101" =>dout <= "111101101111";when "011110" =>dout <= "111110011111";when "011111" =>dout <= "111101101111";when "100000" =>dout <= "111011110111";when "100001" =>dout <= "110111111011";when "100010" =>dout <= "101111111101";when "100011" =>dout <= "011111111110";when "100100" =>dout <= "001111111100";when "100101" =>dout <= "110011110011";when "100110" =>dout <= "111100001111";when "100111" =>dout <= "110011110011";when "101000" =>dout <= "001111111100";when "101001" =>dout <= "000111111000";when "101010" =>dout <= "111000000111";when "101011" =>dout <= "000111111000";when "101100" =>dout <= "000011110000";when "101101" =>dout <= "111100001111";when "101110" =>dout <= "000001100000";when "101111" =>dout <= "000000111111";when "110000" =>dout <= "010*********";when "110001" =>dout <= "101010101010";when "110010" =>dout <= "010*********"; when "110011" =>dout <= "101010101010"; when "110100" =>dout <= "010*********"; when "110101" =>dout <= "101010101010"; when "110110" =>dout <= "010*********";when "110111" =>dout <= "101010101010";when "111000" =>dout <= "010*********"; when "111001" =>dout <= "101010101010"; when "111010" =>dout <= "010*********";when "111100" =>dout <= "010*********";when "111101" =>dout <= "101010101010";when "111110" =>dout <= "010*********";when "111111" =>dout <= "101010101010";when others=>null;end case;end process;end jgt;五、系统仿真与调试1.仿真波形图通过QuartusII软件,我们进行了仿真,其仿真波形如下图:图一:仿真波形图由设计要求可知,本设计要求采用可编程逻辑器件实现一个流水灯控制电路,12个LED 灯能连续发出4种不同的流水显示形式。

本实验为LED流水灯实验VHDL

本实验为LED流水灯实验VHDL

--本实验为LED流水灯实验。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY LampsSequencer isPORT(clk:in STD_LOGIC;led1:out STD_LOGIC_VECTOR(7 DOWNTO 0));END LampsSequencer;ARCHITECTURE light OF LampsSequencer ISSIGNAL clk1,CLK2:std_logic;BEGINP1:PROCESS (clk)V ARIABLE count:INTEGER RANGE 0 TO 999999;BEGINIF clk'EVENT AND clk='1' THEN --当时钟脉冲上升沿到来时执行下面语句IF count<=499999 THENclk1<='0'; --当count<=499999时divls=0并且count加1count:=count+1;ELSIF count>=499999 AND count<=999999 THEN --当ount>=499999 并且count<=999998时clk1<='1'; --count:=count+1; --clk1=1并且count加1ELSE count:=0; --当count>=499999时清零count1END IF;END IF;END PROCESS ;P3:PROCESS(CLK1)beginIF clk1'event AND clk1='1'THENclk2<=not clk2;END IF;END PROCESS P3;---------------------------------------------------------P2:PROCESS(clk2)variable count1:INTEGER RANGE 0 TO 16; --定义的整型变量用做计数器BEGIN --IF clk2'event AND clk2='1'THEN --当时钟脉冲上升沿到来时执行下面语句if count1<=16 then --当COUNT1<=9时执行下面语句if count1=15 then --当COUNT1=8时,COUNT1清零count1:=0; -- end if; --CASE count1 IS --CASE语句给输出LED1赋值WHEN 0=>led1<="11111110"; --依次点亮发光二极管WHEN 1=>led1<="11111100"; --WHEN 2=>led1<="11111000"; --WHEN 3=>led1<="11110000"; --WHEN 4=>led1<="11100000"; --WHEN 5=>led1<="11000000"; --WHEN 6=>led1<="10000000"; --WHEN 7=>led1<="00000000";WHEN 8=>led1<= "01111111"; --依次点亮发光二极管WHEN 9=>led1<= "00111111"; --WHEN 10=>led1<="00011111"; --WHEN 11=>led1<="00001111"; --WHEN 12=>led1<="00000111"; --WHEN 13=>led1<="00000011"; --WHEN 14=>led1<="00000001"; --WHEN 15=>led1<="00000000"; -- --WHEN OTHERS=>led1<="11111111";END CASE;count1:=count1+1;end if;end if;end process;END light;。

计算机组成原理—流水灯设计实验报告

计算机组成原理—流水灯设计实验报告

流水灯设计摘要本实验主要是利用计数器、3-8译码器、多谐振荡器等一些电路元件设计简单的流水灯电路。

并利用书上所学的知识和所使用的元器件的型号,写出各元件的功能表。

在此基础上画出原理图及接线图。

通过组装、调试电路,自行排除故障,最终实现流水灯功能。

课程设计主要目的,是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法。

通过设计也有助于复习、巩固以往的学习内容,达到灵活应用的目的。

在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。

在此过程中培养从事设计工作的整体观念。

课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面:· 独立工作能力和创造力。

· 综合运用专业及基础知识,解决实际工程技术问题的能力。

· 查阅图书资料、产品手册和各种工具书的能力。

· 写技术报告和编制技术资料的能力。

· 实际动手能力。

利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务与设计方法。

目录1 功能要求 (3)2 电路组成框图 (3)3 单元电路分析 (3)3.1 74HCO4元件图及功能分析 (3)3.2 74HC04、电阻及电容器构成的多谐振荡器的功能分析 (4)3.3 74HC161——计数器的电路组成及工作原理 (4)3.4 74HC138——译码器的电路组成及工作原理 (5)4 总结 (6)4.1课程设计的过程 (6)4.2 课程设计的体会 (7)4.2 课程设计的建议 (7)5参考文献 (8)6 附录:电路原理图及布线图 (9)1 功能要求本实验主要是利用计数器、3-8译码器、多谐振荡器等一些电路元件设计简单的流水灯电路。

并利用书上所学的知识和所使用的元器件的型号,写出各元件的功能表。

在此基础上画出原理图及接线图。

通过组装、调试电路,自行排除故障,最终实现流水灯功能。

VHDL课程设计报告

VHDL课程设计报告

VHDL课程设计报告一、题目要求(1)、EDA实验板组装调试参照提供的EDA实验板电路原理图、PCB图以及元器件清单进行电路板的组装,组装过程中要求能读懂电路原理图,了解各部分电路工作的原理。

电路板组装完成后,编写以下三个小程序进行电路板测试:1、流水灯程序编写一个流水灯程序,使实验板上DS2—DS13十二个LED依次循环点亮。

2、数码管动态扫描程序了解BCD—七段锁存译码器CD4511的工作原理及数码管动态扫描技术,编写一个程序,使EDA实验板上的8位数码管由“0000 0000”按一定的频率自加一直到“9999 9999”,然后归零不断循环以上过程。

3、矩阵键盘扫描程序了解矩阵键盘扫描原理,编写一程序,当按下实验板上十六个按键任一键,数码管上显示相应键值1—16。

以上测试程序先经软件仿真通过后下载到实验板上进行测试,观察实验结果,若与预期设计不符则应对软、硬件进行细心检查,排除故障。

完成以上电路板组装且调试通过后可进行第二部分红外遥控系统的设计。

(2)、红外遥控系统的设计红外遥控系统由发射编码和接收解码两个部分组成,本课程设计要求制作发射编码电路板(遥控器)以及编写程序在EDA实验板上实现接收解码,具体说明如下:1、发射编码部分发射编码部分要求使用指定的元器件在万用板上完成红外遥控器的制作,该部分电路原理图参照《PT2248数据手册》,制作前请详细阅读《红外遥控器制作说明》,制作时要求元器件在万用板上排列整齐,布局合理,焊接良好,各按键功能正常,均能发送编码。

2、接收解码部分接收解码用VHDL语言编写程序,在EDA实验板上实现解码,要求具有以下功能:(1)基本要求:(a)将一体化红外接收解调器的输出信号解码(12个单击键、6个连续键,单击键编号为7-18,连续键编码为1-6),在EDA实验板上用七段数码管显示出来;(b)当按下遥控器1—6号连续键时,在EDA实验板上用发光二极管点亮作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。

完整word版流水灯实验报告

完整word版流水灯实验报告

FPGA流水灯实验报告一、实验目的熟练该软件的操作的同时,学会用VHDL语言来编程流水灯的制作二、实验步骤1、VHDL原程序:library ieee;use ieee.std_logic_1164.ALL;use ieee.std_logic_arith.ALL;use ieee.std_logic_unsigned.ALL;entity lsd isPort ( clk2,en2: in STD_LOGIC;lsd_out : out STD_LOGIC_VECTOR(15 downto 0));end lsd;architecture liushuideng of lsd issignal n:STD_LOGIC_VECTOR(3 downto 0);signal m:std_logic_vector(1 downto 0); signal k:std_logic;beginprocess(clk2,en2)beginif clk2'event and clk2='1'thenif en2='1' thenif m= thenm<=;k<=not k;else m<=m+;end if;end if;end if;end process;process(k)beginif k'event and k='1' thencase n iswhenlsd_out<=whenlsd_out<=when 0=>lsd_out<=when 1=>lsd_out<=when 0=>lsd_out<=when 1=>lsd_out<=when 0=>lsd_out<=when 1=>lsd_out<=when @0=>lsd_out<=when @1=>lsd_out<=when A0=>lsd_out<=when A1=>lsd_out<=when H0=>lsd_out<=when H1=>lsd_out<=0000000000000;when I0=>lsd_out<=0000000000000;when I1=>lsd_out<=@0000000000000;end case;n<=n+end if;end process;end liushuideng;2、实验过程:1)打开quartus软件,建立一个新工程,命名为liushuideng,在文件处新建一个VHDL File,编写程序。

fpga流水灯实验报告

fpga流水灯实验报告

竭诚为您提供优质文档/双击可除fpga流水灯实验报告篇一:vhdl流水灯课程设计报告院系:姓名:学号:课程设计名称:指导老师:时间:摘要VhDL的特点应用VhDL进行系统设计,有以下几方面的特点。

(一)功能强大VhDL具有功能强大的语言结构。

它可以用明确的代码描述复杂的控制逻辑设计。

并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。

VhDL是一种设计、仿真和综合的标准硬件描述语言。

(二)可移植性VhDL语言是一个标准语言,其设计描述可以为不同的eDA工具支持。

它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。

此外,通过更换库再重新综合很容易移植为AsIc设计。

(三)独立性VhDL的硬件描述与具体的工艺技术和硬件结构无关。

设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。

程序设计的硬件目标器件有广阔的选择范围,可以是各系列的cpLD、FpgA及各种门阵列器件。

(四)可操作性由于VhDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。

(五)灵活性VhDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。

使其在任何大系统的设计中,随时可对设计进行仿真模拟。

所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

VhDL的设计结构VhDL描述数字电路系统设计的行为、功能、输入和输出。

它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。

VhDL将一个设计称为一个实体entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。

当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。

vhdl流水灯课程设计报告

vhdl流水灯课程设计报告

院系:姓名:学号:课程设计名称:指导老师:时间:摘要VHDL的特点应用VHDL进行系统设计,有以下几方面的特点。

(一)功能强大VHDL具有功能强大的语言结构。

它可以用明确的代码描述复杂的控制逻辑设计。

并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。

VHDL是一种设计、仿真和综合的标准硬件描述语言。

(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。

它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。

此外,通过更换库再重新综合很容易移植为ASIC设计。

(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。

设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。

程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。

(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。

(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。

使其在任何大系统的设计中,随时可对设计进行仿真模拟。

所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

VHDL的设计结构VHDL描述数字电路系统设计的行为、功能、输入和输出。

它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。

VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。

当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。

所以,内部和外部的概念对系统设计的VHDL是十分重要的。

流水灯的设计实验报告

流水灯的设计实验报告

流水灯的设计实验报告流水灯的设计实验报告引言:流水灯作为一种常见的电子实验装置,广泛应用于各种电子设备中。

本次实验旨在通过设计和制作一个简单的流水灯电路,来理解流水灯的工作原理和电子元件的基本使用方法。

一、实验目的本次实验的目的是通过设计和制作一个流水灯电路,来加深对流水灯工作原理和电子元件的理解,并掌握基本的电路连接和焊接技巧。

二、实验原理流水灯是一种多个LED灯按照一定的顺序依次点亮和熄灭的电子装置。

其工作原理是通过时钟信号控制LED灯的亮灭,使得LED灯在一定的时间间隔内按照指定的顺序依次亮起。

在本次实验中,我们将使用555定时器芯片作为时钟信号的发生器,并通过计数器和逻辑门电路来控制LED灯的亮灭。

三、实验材料与方法1. 实验材料:- 555定时器芯片- 74HC4017计数器芯片- 逻辑门电路芯片- LED灯- 电阻、电容等元件- 面包板、导线等实验器材2. 实验方法:- 根据电路原理图连接电子元件,注意正确连接引脚和极性。

- 使用焊接工具将电子元件固定在面包板上。

- 连接电源,注意电压和电流的安全使用。

- 调整电路参数,观察流水灯的亮灭顺序和频率。

四、实验结果与分析经过实验,我们成功设计和制作了一个流水灯电路,并且实现了预期的效果。

LED灯按照指定的顺序依次亮起,并在一定的时间间隔后熄灭,再由下一个LED灯亮起。

整个流水灯的亮灭过程形成了一个连续流动的效果,非常美观。

通过调整电路参数,我们还可以改变流水灯的亮灭顺序和频率。

例如,增加LED灯的数量,可以实现更长的流水灯效果;调整计数器芯片的工作频率,可以改变流水灯的闪烁速度。

这些参数的调整,可以根据实际需求来进行灵活设置。

五、实验心得与体会通过本次实验,我对流水灯的工作原理和电子元件的使用方法有了更深入的了解。

在实际操作中,我学会了正确连接电子元件的方法,并掌握了一定的焊接技巧。

通过不断调整电路参数,我也体验到了电子元件对电路性能的影响。

流水灯实验报告

流水灯实验报告

流水灯实验报告引言:流水灯实验是电子学基础课程中的一项重要实践,在学习数字电路与逻辑设计的过程中起着至关重要的作用。

通过实验可以加深对数字电路的理解,以及学会使用固定数量的电子元件来构建复杂的电路。

一、实验目的本次实验的目的是利用数字电路中的逻辑门电路和时序电路来实现一个流水灯。

通过流水灯的演示,学生们将能够理解和掌握多位二进制计数的原理以及基本的逻辑门的用途。

二、实验器材与方法1. 实验器材:- 逻辑门芯片(如与门、或门、非门)- 时钟芯片- 集成电路取线板- LED灯- 电压源2. 实验方法:a. 将逻辑门芯片、时钟芯片和LED灯插入集成电路取线板;b. 使用导线连接逻辑门的输入端和输出端;c. 调整电压源,给电路供电;d. 观察LED灯的亮灭情况,检查流水灯的效果。

三、实验过程与结果在实验过程中,我们选择了两种不同的方法来实现流水灯的效果,分别是基于与门电路和基于时钟芯片控制。

1. 基于与门电路的实现a. 首先,我们准备了四个与门芯片、一个非门芯片和一个LED灯。

b. 将四个与门芯片的输出依次与非门芯片的输入相连。

c. 通过控制与门芯片的输入,使得流水灯的效果能够正确实现。

d. 观察LED灯随着输入变化而灯亮的情况,确保实验成功。

2. 基于时钟芯片控制的实现a. 我们使用了一个时钟芯片、一个非门芯片和四个LED灯。

b. 将时钟芯片的输出连接到非门芯片的输入端。

c. 将非门芯片的输出分别连接到四个LED灯。

d. 通过控制时钟芯片的频率,我们可以实现流水灯效果。

通过以上实验,我们成功实现了基于与门电路和基于时钟芯片控制的流水灯效果。

通过这些实验我们可以得出以下结论:结论:1. 利用逻辑门芯片可以实现多位二进制计数,从而实现流水灯的效果;2. 时钟芯片的输入信号能够控制流水灯的亮灭情况,实现了流水灯的自动化效果;3. 实验过程中LED灯的亮灭情况与输入信号的变化是一一对应的,验证了实验的正确性。

流水灯课程设计报告

流水灯课程设计报告

目录一.设计要求二. 设计思路三 . 单元电路设计四. 所需设备与器件五. 整机电路六. 系统工作原理与分析七. 参考文献八. 心得体会[容摘要]在日常生活中,我们经常看到各种各样的霓虹灯,其中当然包括本电路设计的智能流水灯,这种灯主要利用数字电子集成芯片,尤其是利用计数器,或非门组合芯片,触发器,本设计把CD4510可预置可逆计数器的数字信号传给CD4067十六选一芯片,而本设计只利用CD4067八个脚,实现八选一功能,使I0X(X 取0到7的数)在部把高电平传给I0comx,I0comx把高电平传给4001两输入或非门的U3B,I0X把高电平通过U3A传给U3B,利用I0comx,I0X的数字信号到达U3B的时间差,在CD4001的输出端产生上升延的时钟脉冲信号,CD4017B1十进制计数器接受与数字对应的高电平,0到9脚依次产生高电平,而0到9十个流水灯依次与CD4017B1的0到9脚连接,所以0到9十个流水灯从0到9依次点亮,依次熄灭,即正转,当9脚出现高电平即9灯点亮时,产生的上升延传给CD4510可预置可逆计数器,使之计数,实现下一轮的正转,当灯正转九圈之后,CD4510的Q4变为高电平,通过SR锁存器,利用其翻转功能,使CD4510由加法计数变为减法计数,CD4017B2开始工作,CD4017B2的0到9脚依次与9到0灯相连,所以通过CD4067,CD4001,CD4017B2的芯片的作用,使流水灯反转,反转九圈后,Q4再次变为高电平,传给RS的寄存器,CD4510再次进行加法计数,流水灯就这样正转九圈后再反转九圈,因为CD4067的八个脚从I00到I07连接依次减小的电阻,所以正转速度越来越快,反转速度越来越慢。

一.设计要求:1十盏灯(LED)循环点亮2正转/反转9圈3速度:正转渐快,反转渐慢二.设计思路:三.单元电路设计1.实现翻转功能的RS触发器RS触发器,当R.S端同时输入1,1信号时,Q,Q’同时变为0,0.接着当R,S端输入0,0时Q,Q’立即转变为1,1.由此实现翻转功能.2.CD4001两输入或非门CD4001是两输入或非门,即在一块集成块含有四个相互独立的或非门,每个或非门有二个输入端,外接线共有14根,各引线的排列规律是:使印有型号的一面朝上,将双列插脚向下,把带有凹槽标志的一边置于左方,从左下脚起逆时钟计数,依次是1,2,3……14,电路管脚排列图为:2.CD4510 BCD四位可预置可逆计数器CD4510具有复位CR,置数控制LD,并行数据D0~D3,加减控制U/D ,时钟CP和进位CI等输入.CR为高电平时,计数器清零.当LD为高电平时,D0~D3上的数据置入计数器中,CI控制计数器的计数操作,CI=0时,允许计数.此时,若U/D为高电平,在CP时钟上升沿计数器加1计数;反之, 在CP时钟上升沿减1计数. 除了四个Q输出外,还有一个进位/错位输出BOCO/3.十六路模拟开关CD4067CD4067的引脚功能见图。

流水灯实验报告

流水灯实验报告

扬州大学广陵学院课程设计报告设计题目:流水灯设计姓名:z t y学号:100036137班级:微电81001时间:2013年7月4日目录一.设计任务与要求 (3)二.实验目的 (3)三.实验思路 (3)1系统逻辑设计 (3)2源程序代码 (3)⑴LED流水灯控制模块 (4)⑵分频器 (5)⑶四位选择器 (5)⑷六位计数器 (6)⑸2位计数器 (6)3实验原理调用 (7)4仿真结果与分析 (7)四.心得体会 (8)一.设计任务与要求随着大规模集成电路技术和EDA技术的迅速发展,使得数字系统的硬件设计如同软件设计那样方便快捷,而Verilog HDL 是当前应用最广泛的并成为IEEE 标准的一种硬件描述语言。

Verilog HDL是在C语言的基础上演化而来,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点。

此次课程设计通过使用Verilog HDL硬件描述语言设计了一个程序,使得流水灯可以根据自己所期望的方式点亮,并能在、MAX+plusⅡ进行仿真测试,得出出仿真结果。

通过课程设计深入理解VHDL语言的精髓,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。

二、实验目的1、熟悉利用MAX+plusⅡ开发数字电路的基本流程和MAX+plusⅡ软件的相关操作。

2、掌握基本的设计思路、软件环境参数配置和仿真。

3、了解VerilogHDL语言设计或原理图设计方法。

4、通过本知识点的学习,了解流水灯的工作原理,掌握其逻辑功能设计方法。

三、实验思路根据时钟信号的脉冲输入,我们以改变每个LED点亮状态的保持的时间来改变LED的变换间隔时间,根据LED的循环点亮和时间间隔的改变设计成为一个直观的LED流水灯自动循环系统,由此思路我们就可以很容易的着手流水灯控制程序的设计。

1.系统逻辑设计:根据以上的设计要求,运用模块化的设计思路,我们在MAX+plusⅡ软件系统中设计了LED流水灯控制模块、分频器模块、4位选择器、6位计数器、2位计数器,并通过各个模块程序之间的端口合理连接和协调,成功设计出LED流水灯灯控制电路,得到逻辑结构原理图,即为整个流水灯控制电路的逻辑结构。

实验4 基于FPGA的流水灯设计

实验4 基于FPGA的流水灯设计

实验四基于FPGA的流水灯设计
一、实验的目的
学习运用VHDL语言实现LED灯的控制方法。

二、实验内容
1.用VHDL语言编程,实现用8个发光二极管从左至右循环显示。

要求:(1) 用模式5中PI08-PI15接灯;
(2) 流水灯输入时钟为1Hz,即每秒钟变化一次;
(3) 流水灯输出为8位显示,每次仅一个灯亮;
(4) 用至少两种方法来设计流水灯的各部分功能模块(如:可以用元件例化的方法,或者用多进程的设计方法等等)。

(5)用VHDL语言编程,实现其功能
三、实验仪器
计算机、QuartusII软件和康芯EDA实验箱
四、实验报告要求
根据以上的实验内容写出实验预习报告(没写预习报告的不准进入实验室)和实验报告,包括程序设计、硬件连接图。

流水灯课程设计报告

流水灯课程设计报告

流水灯课程设计报告一.设计任务及主要技术指标和要求;利用移位器存器及其他芯片实现8路流水灯的控制并且实现不同模式的闪烁,熟悉各芯片的引脚及功能,可根据题目要求自行设计电路图及仿真,二.选定方案的论证及整体电路的工作原理;原理分析(一)针对题目设计要求,经过分析与思考,决定以下方案:总体电路共分三大块。

第一块实现花型的演示,第二块实现花型的控制及节拍控制;第三块实现时钟信号的产生。

主体框图如下:(二)根据所提供的实验器材各模块总体思路如下:时钟信号CP电路参见高等教育出版社阎石主编的《数字电子技术基课本P495图10.5.6a ;时钟信号CP电路可采用555激荡电路构成或直接使用信号发生器中的方波信号花型控制电路,花型控制节拍控制电路由两片74ls161 4位二进制同步计数器和一些非门共同完成,花型演示电路由两片74ls194双向移位寄存器完成,可左移右移完成花型变化1.整个花型控制电路设计如下:花型1:8路灯分两半,从右至左渐亮,全亮后,再分两半从右至左渐灭。

循环两次花型2:从两边到中间对称地逐次渐亮,全亮后仍由两边到中间逐次渐灭。

循环两次花型3:从中间到两边对称地逐次渐亮全亮后仍由中间到两边逐次渐灭。

循环两次2.将两片194分为低位片1和高位片2,再将其输出端从低位到高位记为L1 L8,所以四种花型的L1-L8的状态值变化情况如下表节拍的变化进行相应的改变两片161级联的输出端从Q0 Q7根据变化的花型频率选用高位片的Q5,Q4分别去控制194的S1和S0、SR则由161的另一些输出端经过与非门来进行逻辑控制。

列出各花型和其对应的194的S1、S0、SL、SR的输入信号及节拍控制信号列表如下:控制结果表达式如下:194低位片:S1=Q5,S0=Q5’SR=SL=Q2’;194高位片:S1=Q4,S0=Q4’,SR=SL=Q2’;三.单元电路的设计计算,元器件选择,电路图;(一)元器件选择74ls161(四位二进制同步计数器)—————————————————2个74ls194(移位寄存器)——————————————————————2个74ls04(6非门)—————————————————————————2个发光二极管———————————————————————————8个555———————————————————————————————1个电容:4.7uf——————————————————————————1个0.01uf—————————————————————————————1个电阻:20kΩ——————————————————————————1个30kΩ——————————————————————————————1个实验板—————————————————————————————1个导线若干(二)单元电路的设计计算与电路图1.时钟信号电路由一片555加上适当电容及电阻实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

院系:姓名:学号:课程设计名称:指导老师:时间:摘要VHDL的特点应用VHDL进行系统设计,有以下几方面的特点。

(一)功能强大VHDL具有功能强大的语言结构。

它可以用明确的代码描述复杂的控制逻辑设计。

并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。

VHDL是一种设计、仿真和综合的标准硬件描述语言。

(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。

它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。

此外,通过更换库再重新综合很容易移植为ASIC设计。

(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。

设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。

程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。

(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。

(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。

使其在任何大系统的设计中,随时可对设计进行仿真模拟。

所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

VHDL的设计结构VHDL描述数字电路系统设计的行为、功能、输入和输出。

它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。

VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。

当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。

所以,内部和外部的概念对系统设计的VHDL是十分重要的。

外部的实体名或连接由实体声明Entity来描述。

而内部的实体算法或实现则由结构体Architecture来描述。

结构体可以包含相连的多个进程process或者组建component等其他并行结构。

需要说明的是,它们在硬件中都是并行运行的。

VHDL的设计步骤采用VHDL的系统设计,一般有以下6个步骤。

1)要求的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。

[实验说明]该流水灯除了输入有:时钟端、使能端和清零端,输出为8个led指示灯。

清零端为低电平时回到最初始状态,输出为O1灯亮,为高电平时无作用;使能端低电平时流水灯停止,高电平时流水灯继续流动;时钟端为系统时钟输入,要求8个led指示灯每秒变化一次,向右流动,变化顺序依次为O1灯亮→O2灯亮→O3灯亮→ O4灯亮→ O5灯亮→ O6灯亮→ O7灯亮→返回O1。

电路逻辑功能实现后,可将该逻辑功能下载到CPLD中。

注意选择:清零端选1脚,使能端选拨码开关,时钟端选83脚、输出线8根(接发光二极管指示灯);测试时根据输入信[实验要求]1用VHDL语言实现流水灯2设计仿真文件,进行软件验证3通过下载线下载到实验板上进行验证4灯有两种模式每种模式有四种变化。

5第一种模式下灯的花色循环变化不能控制,第二种情况下花色可以控制并且变化间有声音。

流水灯设计1、分频模块的VHDL设计:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity light isPORT( CLK_IN: IN STD_LOGIC;--输入时钟信号CLK_OUT: OUT STD_LOGIC;--分频后的输出时钟信号);end light;architecture Behavioral of light issignalcont: STD_logic_vector(1 downto 0);beginprocess(CLK_IN)BEGINIF RISING_EDGE(CLK_IN) THENIF CONT="11" THENCONT<="00";CLK_OUT<='1';ELSE CONT<=CONT+'1';CLK_OUT='0';END IF;END IF;END PROCESS;end Behavioral;2、流水灯从左至右连续显示library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity light2 isPORT(CLK :IN STD_LOGIC;--分频后的时钟信号EN :IN STD_LOGIC;--使能控制信号M :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制8个灯的输出信号 );end light2;architecture Behavioral of light2 isSIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0);beginPROCESS(EN,CLK,SEL)BEGINIF RISING_EDGE(CLK) THENIF EN='1' THENIF SEL="111" THENSEL<="000";ELSESEL<=SEL+'1';END IF;END IF;END IF;CASE SEL ISWHEN "000" =>M<="10000000";WHEN "001" =>M<="01000000";WHEN "010" =>M<="00100000";WHEN "011" => M<="00010000";WHEN "100" => M<="00001000";WHEN "101" =>M<="00000100";WHEN "110" =>M<="00000010";WHEN "111" => M<="00000001";WHEN OTHERS =>NULL;END CASE;END PROCESS;end Behavioral;3、流水灯从右到左连续显示:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity light3 isPORT(CLK :IN STD_LOGIC;--分频后的时钟信号EN :IN STD_LOGIC;--使能控制信号N :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制8个灯的输出信号 );end light3;architecture Behavioral of light3 isSIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0);beginPROCESS(EN,CLK,SEL)BEGINIF RISING_EDGE(CLK) THENIF EN='1' THENIF SEL="111" THENSEL<="000";SEL<=SEL+'1';END IF;END IF;END IF;CASE SEL ISWHEN "000" =>N<="00000001";WHEN "001" =>N<="00000010";WHEN "010" =>N<="00000100";WHEN "011" =>N<="00001000";WHEN "100" =>N<="00010000";WHEN "101" =>N<="00100000";WHEN "110" =>N<="01000000";WHEN "111" =>N<="10000000";WHEN OTHERS =>NULL;END CASE;END PROCESS;end Behavioral;4、流水灯从两边向中间显示,然后由中间向两边显示:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity light4 isPORT(CLK :IN STD_LOGIC;--分频后的时钟信号EN :IN STD_LOGIC;--使能控制信号L :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制8个灯的输出信号 );end light4;architecture Behavioral of light4 isSIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0);beginPROCESS(EN,CLK,SEL)BEGINIF RISING_EDGE(CLK) THENIF EN='1' THENIF SEL="111" THENSEL<="000";ELSESEL<=SEL+'1';END IF;END IF;CASE SEL ISWHEN "000" =>L<="10000001";WHEN "001" =>L<="01000010";WHEN "010" =>L<="00100100";WHEN "011" =>L<="00011000";WHEN "100" =>L<="00100100";WHEN "101" =>L<="01000010";WHEN "110" =>L<="10000001";WHEN "111" =>L<="11111111";WHEN OTHERS =>NULL;END CASE;END PROCESS;end Behavioral;5、流水灯从左至右每次显示两个灯:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity light5 isPORT(CLK :IN STD_LOGIC;--分频后的时钟信号EN :IN STD_LOGIC;--使能控制信号Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--控制8个灯的输出信号 );end light5;architecture Behavioral of light5 isSIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0);beginPROCESS(EN,CLK,SEL)BEGINIF RISING_EDGE(CLK) THENIF EN='1' THENIF SEL="111" THENSEL<="000";ELSESEL<=SEL+'1';END IF;END IF;END IF;CASE SEL ISWHEN "000" => Q <="10100000";WHEN "001" => Q <="01010000";WHEN "010" => Q <="00101000";WHEN "011" => Q <="00010100";WHEN "100" => Q <="00001010";WHEN "101" => Q <="00000101";WHEN "110" => Q <="00001010";WHEN "111" => Q <="00001010";WHEN OTHERS =>NULL;END CASE;END PROCESS;end Behavioral;6、扫描模块程序libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all; useieee.std_logic_arith.all;entity SELTIME isport(daout:outstd_logic_vector(7downto 0); sel:instd_logic_vector(1downto 0));end SELTIME;architecture fun of SELTIME is signalcount:std_logic_vector(1downto 0); beginsel<=count;process(sel)begincase count iswhen"00"=>daout<=M;when"01"=>daout<=N;when"10"=>daout<=L;when"11"=>daout<=Q;when others =>null;end case;end process;end fun;。

相关文档
最新文档