vhdl流水灯课程设计报告

上传人:tia****nde 文档编号:113349222 上传时间:2019-11-08 格式:DOC 页数:8 大小:45KB
返回 下载 相关 举报
vhdl流水灯课程设计报告_第1页
第1页 / 共8页
vhdl流水灯课程设计报告_第2页
第2页 / 共8页
vhdl流水灯课程设计报告_第3页
第3页 / 共8页
vhdl流水灯课程设计报告_第4页
第4页 / 共8页
vhdl流水灯课程设计报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《vhdl流水灯课程设计报告》由会员分享,可在线阅读,更多相关《vhdl流水灯课程设计报告(8页珍藏版)》请在金锄头文库上搜索。

1、院院 系系: 姓姓 名:名: 学学 号:号: 课程设计名称:课程设计名称: 指指 导导 老老 师:师: 时间:时间: 摘 要 VHDLVHDL 的特点的特点 应用 VHDL 进行系统设计,有以下几方面的特点。 (一)功能强大 VHDL 具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有 多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL 是一种设计、仿真和 综合的标准硬件描述语言。 (二)可移植性 VHDL 语言是一个标准语言,其设计描述可以为不同的 EDA 工具支持。它可以从一个仿真工 具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工

2、作平台移植到 另一个工作平台。此外,通过更换库再重新综合很容易移植为 ASIC 设计。 (三)独立性 VHDL 的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必 管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的 选择范围,可以是各系列的 CPLD、FPGA 及各种门阵列器件。 (四)可操作性 由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的 条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。 (五)灵活性 VHDL 最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其

3、在任何大 系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚 未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。 VHDLVHDL 的设计结构的设计结构 VHDL 描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似, 但包含了许多与硬件有特殊关系的结构。 VHDL 将一个设计称为一个实体 Entity(元件、电路或者系统),并且将它分成外部的可见 部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之 后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设 计

4、的 VHDL 是十分重要的。 外部的实体名或连接由实体声明 Entity 来描述。而内部的实体算法或实现则由结构体 Architecture 来描述。结构体可以包含相连的多个进程 process 或者组建 component 等其 他并行结构。需要说明的是,它们在硬件中都是并行运行的。 VHDLVHDL 的设计步骤的设计步骤 采用 VHDL 的系统设计,一般有以下 6 个步骤。 1)要求的功能模块划分; 2)VHDL 的设计描述(设计输入); 3)代码仿真模拟(前仿真); 4)计综合、优化和布局布线; 5)布局布线后的仿真模拟(后仿真); 6)设计的实现(下载到目标器件)。 实验说明实验说明

5、该流水灯除了输入有:时钟端、使能端和清零端,输出为 8 个 led 指示灯。清零端为低 电平时回到最初始状态,输出为 O1 灯亮,为高电平时无作用;使能端低电平时流水灯停止, 高电平时流水灯继续流动;时钟端为系统时钟输入,要求 8 个 led 指示灯每秒变化一次,向 右流动,变化顺序依次为 O1 灯亮O2 灯亮O3 灯亮 O4 灯亮 O5 灯亮 O6 灯亮 O7 灯亮返回 O1。 电路逻辑功能实现后,可将该逻辑功能下载到 CPLD 中。注意选择:清零端选 1 脚,使 能端选拨码开关,时钟端选 83 脚、输出线 8 根(接发光二极管指示灯) ;测试时根据输入信 号的变化观察输出信号的改变。 时钟

6、端清零端 使能 端 Led1Led2Led3Led4Led5Led6Led7Led8 X0X 灭 灭灭灭灭灭灭 亮 X10 不变不变不变不变不变不变不变不变 上升沿 11 进入下一个状态 实验要求实验要求 1 用 VHDL 语言实现流水灯 2 设计仿真文件,进行软件验证 3 通过下载线下载到实验板上进行验证 4 灯有两种模式每种模式有四种变化。 5 第一种模式下灯的花色循环变化不能控制,第二种情况下花色可以控制并且变化间有 声音。 流水灯设计流水灯设计 1 1、分频模块的、分频模块的 VHDLVHDL 设计:设计: library IEEE; use IEEE.STD_LOGIC_1164.A

7、LL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity light is PORT( CLK_IN: IN STD_LOGIC;-输入时钟信号 CLK_OUT: OUT STD_LOGIC;-分频后的输出时钟信号 ); end light; architecture Behavioral of light is signalcont: STD_logic_vector(1 downto 0); begin process(CLK_IN) BEGIN IF RISING_EDGE(CLK_IN) THEN

8、 IF CONT=“11“ THEN CONT=“00“; CLK_OUT=1; ELSE CONT=CONT+1; CLK_OUT=0; END IF; END IF; END PROCESS; end Behavioral; 2 2、流水灯从左至右连续显示、流水灯从左至右连续显示 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity light2 is PORT(CLK :IN STD_LOGIC;-分频后的时钟信号 E

9、N :IN STD_LOGIC;-使能控制信号 M :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-控制 8 个灯的输出信号 ); end light2; architecture Behavioral of light2 is SIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0); begin PROCESS(EN,CLK,SEL) BEGIN IF RISING_EDGE(CLK) THEN IF EN=1 THEN IF SEL=“111“ THEN SEL=“000“; ELSE SELMMM M MMM MNULL; END CAS

10、E; END PROCESS; end Behavioral; 3 3、流水灯从右到左连续显示:、流水灯从右到左连续显示: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity light3 is PORT(CLK :IN STD_LOGIC;-分频后的时钟信号 EN :IN STD_LOGIC;-使能控制信号 N :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-控制 8 个灯的输出信号 ); end

11、light3; architecture Behavioral of light3 is SIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0); begin PROCESS(EN,CLK,SEL) BEGIN IF RISING_EDGE(CLK) THEN IF EN=1 THEN IF SEL=“111“ THEN SEL=“000“; ELSE SELNNNNNNNNNULL; END CASE; END PROCESS; end Behavioral; 4 4、流水灯从两边向中间显示,然后由中间向两边显示:、流水灯从两边向中间显示,然后由中间向两边显示:

12、library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity light4 is PORT(CLK :IN STD_LOGIC;-分频后的时钟信号 EN :IN STD_LOGIC;-使能控制信号 L :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-控制 8 个灯的输出信号 ); end light4; architecture Behavioral of light4 is SIGNAL SEL : STD_

13、LOGIC_VECTOR(2 DOWNTO 0); begin PROCESS(EN,CLK,SEL) BEGIN IF RISING_EDGE(CLK) THEN IF EN=1 THEN IF SEL=“111“ THEN SEL=“000“; ELSE SELLLLLLLLLNULL; END CASE; END PROCESS; end Behavioral; 5 5、流水灯从左至右每次显示两个灯:、流水灯从左至右每次显示两个灯: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use I

14、EEE.STD_LOGIC_UNSIGNED.ALL; entity light5 is PORT(CLK :IN STD_LOGIC;-分频后的时钟信号 EN :IN STD_LOGIC;-使能控制信号 Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-控制 8 个灯的输出信号 ); end light5; architecture Behavioral of light5 is SIGNAL SEL : STD_LOGIC_VECTOR(2 DOWNTO 0); begin PROCESS(EN,CLK,SEL) BEGIN IF RISING_EDGE(CLK)

15、THEN IF EN=1 THEN IF SEL=“111“ THEN SEL=“000“; ELSE SEL Q Q Q Q Q Q Q Q NULL; END CASE; END PROCESS; end Behavioral; 6 6、扫描模块程序、扫描模块程序 libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; useieee.std_logic_arith.all; entity SELTIME is port( 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); begin seldaoutdaoutdaoutdaoutnull; end case; end process; end fun;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号