一、实验目的

(1)学习并掌握Quartus II的使用方法
(2)学习简单时序电路的设计和硬件测试。
(3)学习使用VHDL 语言方法进行逻辑设计输入
(4)学习设计一个流水灯电路,并在实验开发系统上熟悉运行输入及仿真步骤原理

二、实验仪器设备

(1) PC机一台。
(2)Quartus Ⅱ开发软件一套
(3)EDA实验开发系统一套(EP1C12Q240C8)

三、实验原理

FPGA 的所有I/O控制块都可以允许每个1/O引脚单独配置为输入口,不过这种配置是系统自动完成的,一旦该输入口被设置为输入口使用时,该I/O控制模块将直接使三态缓冲区的控制端接地,便得该IO 引脚对外呈高阻态,这样该I/O引脚即可用作专用输入引脚。只旦在KEY1-KEY8中有键输入,要正确地分配并锁定引脚后,在检测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。

四、实验内容

(1)基于VHDL 语言设计可用于控制LED流水灯的简单逻辑电路,电路包含三个输入、八个输出。输入信号为清零信号端CLR、时钟信号CLK 和使能信号ENA,输出信号Y接八个发光二极管。当清零信号端CLR 为低时,系统清零,此时8个LED灯全灭。当 ENA输入信号为高电平,CLK的上升沿到来时,流水灯开始流动,流动顺D1→D2→D3→D4→D5→D6→D7→D8,然后再返回D1;当ENA输入信号为低电平时,流水灯暂停,保持在原有状态。
其对应关系见表如下


(2)在Quartus II上用V
HDL 文本方式设计该流水灯电路;对该设计进行编辑、编译、综合、适配、仿真。将经过仿真的设计下载到硬件实验箱进行验证。注意选择:输入信号线3根(ENA接按键1,clr接按键2和CLK 接CLK0)、输出线8根(接发光二极管指示灯);硬件测试时为便于观察,流水速率最好在4Hz左右,测试时根据输入信号的变化观察输出信号的改变。
流水灯控制电路仿真如图所示

实验引脚锁定:
八个按键:按键1~8分别对应FPGA上的引脚233,234,235,236,237,238,239,240。
八个发光二极管:发光.极管D1~D8分别对应 FPGA 上的引脚168~161。
时钟端口:CLKO对应28CLK2对应153,CLK5对应152,CLK90对应29。

五、实验步骤

(1)启动Quartus II建立一个空白工程,然后命名为 HIGHT8.qpf。
(2)新建VHDL 源程序文件HIGHT8.vhd,输入程序代码并保存,进行综合编译,若编译过程中发现错误,则找出并更正错误,直至编译成功为止。
(3)选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为Altera公司 Cyclone系列的EPIC12Q240C8芯片。将未使用的管脚设置为三态输入。则找出并更正错误,
(4)对该工程文件进行全程编译处理,若在编译过程中发现错误直至编译成功为止。接到PC机的打印机并
(5)拿出 Altera Byte Blaster II下载电缆,并将此电缆的两端分别接到PC机的打印机并口和实验箱的JTAG下载口上,打开电源,执行下载命令,把程序下载到 FPGA器件中,观察发光管发光二极管LED1~LED8的亮灭状态。

六、实验扩展

在前面实验的基础上实现其他花样流水显示,控制8个 LED灯进行花样显示,设计3种
模式:
①从左到右逐个点亮LED;
实例代码:

LIBRARY IEEE;            --流水灯顶层文件
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HIGHT8 IS                --顶层实体名称
PORT(                                   --定义端口数据CLK: IN STD_LOGIC;          --定义时钟信号输入端口CLR: IN STD_LOGIC;          --定义清零控制端输入端口ENA: IN STD_LOGIC;         --定义使能信号输入端口LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       --定义LED灯输出端口);
END;ARCHITECTURE BEHAV OF HIGHT8 ISSIGNAL A:INTEGER RANGE 0 TO 7;SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
P1:PROCESS(CLK,CLR,ENA)
BEGINIF CLR='0' THEN C<="00000000";ELSIF ENA='1'THEN IF CLK'EVENT AND CLK='1' THEN A<=A+1;END IF;END IF;
END PROCESS P1;
P2:PROCESS(A)
BEGIN
CASE A IS                               --8位信号LED灯输出控制WHEN 0=>B<="10000000";WHEN 1=>B<="01000000";WHEN 2=>B<="00100000";WHEN 3=>B<="00010000";WHEN 4=>B<="00001000";WHEN 5=>B<="00000100";WHEN 6=>B<="00000010";WHEN 7=>B<="00000001";
END CASE;
END PROCESS P2;
P3:PROCESS(ENA)
BEGIN IF CLR='1' AND ENA='0' THEN LED<=C;ELSE LED<=B;END IF;
END PROCESS P3;
END;

②从右到左逐个点亮LED;
示例代码:

LIBRARY IEEE;            --流水灯顶层文件
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HIGHT8 IS                --顶层实体名称
PORT(                                   --定义端口数据CLK: IN STD_LOGIC;          --定义时钟信号输入端口CLR: IN STD_LOGIC;          --定义清零控制端输入端口ENA: IN STD_LOGIC;         --定义使能信号输入端口LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       --定义LED灯输出端口);
END;ARCHITECTURE BEHAV OF HIGHT8 ISSIGNAL A:INTEGER RANGE 0 TO 7;SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
P1:PROCESS(CLK,CLR,ENA)
BEGINIF CLR='0' THEN C<="00000000";ELSIF ENA='1'THEN IF CLK'EVENT AND CLK='1' THEN A<=A+1;END IF;END IF;
END PROCESS P1;
P2:PROCESS(A)
BEGIN
CASE A IS                               --LED灯输出控制WHEN 0=>B<="00000001";WHEN 1=>B<="00000010";WHEN 2=>B<="00000100";WHEN 3=>B<="00001000";WHEN 4=>B<="00010000";WHEN 5=>B<="00100000";WHEN 6=>B<="01000000";WHEN 7=>B<="10000000";
END CASE;
END PROCESS P2;
P3:PROCESS(ENA)
BEGIN IF CLR='1' AND ENA='0' THEN LED<=C;ELSE LED<=B;END IF;
END PROCESS P3;
END;

③从中间到两边逐个点亮LED,3种模式循环切换,由复位键控制系统的运行和停止。
示例代码:

LIBRARY IEEE;            --流水灯顶层文件
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HIGHT8 IS                --顶层实体名称
PORT(                                   --定义端口数据CLK: IN STD_LOGIC;          --定义时钟信号输入端口CLR: IN STD_LOGIC;          --定义清零控制端输入端口ENA: IN STD_LOGIC;         --定义使能信号输入端口LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       --定义LED灯输出端口);
END;ARCHITECTURE BEHAV OF HIGHT8 ISSIGNAL A:INTEGER RANGE 0 TO 7;SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
P1:PROCESS(CLK,CLR,ENA)
BEGINIF CLR='0' THEN C<="00000000";ELSIF ENA='1'THEN IF CLK'EVENT AND CLK='1' THEN A<=A+1;END IF;END IF;
END PROCESS P1;
P2:PROCESS(A)
BEGIN
CASE A IS                               --LED灯输出控制WHEN 0=>B<="00011000";WHEN 1=>B<="00100100";WHEN 2=>B<="01000010";WHEN 3=>B<="10000001";WHEN 4=>B<="10000001";WHEN 5=>B<="01000010";WHEN 6=>B<="00100100";WHEN 7=>B<="00011000";END CASE;
END PROCESS P2;
P3:PROCESS(ENA)
BEGIN IF CLR='1' AND ENA='0' THEN LED<=C;ELSE LED<=B;END IF;
END PROCESS P3;
END;

合并代码段:
实现:
①从左到右逐个点亮LED;
②从右到左逐个点亮LED;
③从中间到两边逐个点亮LED,3种模式循环切换,由复位键控制系统的运行和停止。

LIBRARY IEEE;            --流水灯顶层文件
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HIGHT8 IS                --顶层实体名称
PORT(                                   --定义端口数据CLK: IN STD_LOGIC;          --定义时钟信号输入端口CLR: IN STD_LOGIC;          --定义清零控制端输入端口ENA: IN STD_LOGIC;         --定义使能信号输入端口LED: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       --定义LED灯输出端口);
END;ARCHITECTURE BEHAV OF HIGHT8 ISSIGNAL A:INTEGER RANGE 0 TO 23;SIGNAL B:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
P1:PROCESS(CLK,CLR,ENA)
BEGINIF CLR='0' THEN C<="00000000";ELSIF ENA='1'THEN IF CLK'EVENT AND CLK='1' THEN A<=A+1;END IF;END IF;
END PROCESS P1;
P2:PROCESS(A)
BEGIN
CASE A IS                               --8位信号LED灯输出控制WHEN 0=>B<="10000000";WHEN 1=>B<="01000000";WHEN 2=>B<="00100000";WHEN 3=>B<="00010000";WHEN 4=>B<="00001000";WHEN 5=>B<="00000100";WHEN 6=>B<="00000010";WHEN 7=>B<="00000001";WHEN 8=>B<="00000001";WHEN 9=>B<="00000010";WHEN 10=>B<="00000100";WHEN 11=>B<="00001000";WHEN 12=>B<="00010000";WHEN 13=>B<="00100000";WHEN 14=>B<="01000000";WHEN 15=>B<="10000000";WHEN 16=>B<="00011000";WHEN 17=>B<="00100100";WHEN 18=>B<="01000010";WHEN 19=>B<="10000001";WHEN 20=>B<="10000001";WHEN 21=>B<="01000010";WHEN 22=>B<="00100100";WHEN 23=>B<="00011000";END CASE;
END PROCESS P2;
P3:PROCESS(ENA)
BEGIN IF CLR='1' AND ENA='0' THEN LED<=C;ELSE LED<=B;END IF;
END PROCESS P3;
END;

七、实验要求

(1)选择实验电路模式5
(2)设计仿真文件,进行软件验证
(3)用VHDL程序设计方法实现流水灯设计
(4)通过下载线下载到实验系统上进行硬件测试验证

工程源代码下载:流水灯电路设计源代码–VHDL

流水灯电路设计实验--VHDL相关推荐

  1. 实验二、8位流水灯电路设计

    实验二  八位流水灯电路设计 实验目的 综合应用数字电子技术知识,按照要求设计并完成一个小规模的数字电路系统.进行硬件线路的设计.仿真.焊接.调试与实现. 使系统实现一种用于工厂的流水灯电路.在系统运 ...

  2. 单片机炫彩灯实训报告_单片机跑马灯(流水灯)控制实验报告

    单片机跑马灯(流水灯)控制实验报告 1单片机实验报告单片机实验报告姓名 学号一.一. 实验实现功能实验实现功能1计数器功能 2流水灯二.具体操作具体操作1计数器功能计数器功能数码管的动态显示.每按一次 ...

  3. multisim13学习_基于Multisim13数字流水灯电路设计与仿真 - 镇江高专学报.PDF

    基于Multisim13数字流水灯电路设计与仿真 - 镇江高专学报 第30卷第1期 镇 江 高 专 学 报 Vol.30 No.1 2017年1月 JournalofZhenjiangCollege ...

  4. VHDL||数字系统设计实验--基于VHDL的流水灯电路设计

    实验目的: 学习设计一个流水灯电路,并在实验板验证. 学习简单时序电路的设计和硬件测试. 学习使用VHDL语言方法进行逻辑设计输入. 实验内容: 实验VHDL程序: LIBRARY IEEE; USE ...

  5. 51单片机-------流水灯(实验报告)

    实验二:LED流水灯 一.实验目的 掌握51单片机开发板的使用步骤: 掌握51单片机开发板所需软件的安装过程: 以LED流水灯实验为例子,掌握软件KEIL4的使用方法. 二.实验设备 实验仪器设备: ...

  6. lpc1768的gpio库函数_LPC1768之GPIO流水灯的实验例程

    **************************************** Copyright (c) CaKen ************************************ ** ...

  7. 单片机流水灯仿真实验

    一.首先先下载proteus8 (其他的版本也可以) 然后打开proteus: 然后点击funish即可出现一下图片内容: 二.拖出元器件 并且将元器件摆放完整 然后打开keil软件 将一下代码生成H ...

  8. 基于FPGA实现的流水灯实验

    版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...

  9. 2018.9.15,Arduino—流水灯实验报告

    实验任务和目的 通过Arduino控制LED形成流水灯效果 实验条件 Arduino UNO,面包板,6个LED,6个220Ω电阻 实验过程和结果 实验详细步骤: 在各LED正极和Arduino引脚之 ...

  10. p1口流水灯c语言,单片机实验二--P1口输出实验(流水灯)

    <单片机实验二--P1口输出实验(流水灯)>由会员分享,可在线阅读,更多相关<单片机实验二--P1口输出实验(流水灯)(3页珍藏版)>请在人人文库网上搜索. 1.实验2p1端口 ...

最新文章

  1. php输出网络连接,如何打开php文件和输出内容
  2. 用最快速度,打造「最强 Webpack 前端工具链」,强势运行
  3. StringBuilder的构造方法和append方法
  4. 第1课:接口测试和jmeter总结
  5. [java] 找出字符串中出现最多的字符和出现的次数
  6. There is insufficient memory for the Java Runtime Environment to continue. NIFI 启动时报 jvm内存溢出
  7. 初学者学习python2还是python3?
  8. Smarty 入手学习教程
  9. new file会创建文件吗_Python处理文件—os模块
  10. lua正则替换_Lua 语言如何替换多个可选字符串
  11. anaconda环境中使用sudo python报错
  12. nginx 带宽_Nginx日志如何分析 GoAccess
  13. Qt总结之十五:QByteArray详解
  14. vs中c语言图形显示,VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)...
  15. 软件项目管理案例教程期末考试知识点复习(一)软件项目管理概述
  16. 土地利用转移矩阵图怎么做_土地利用转移矩阵怎么分析excel?
  17. 人脸识别+AI技术如何实现智慧工地履约考勤?
  18. 华为云学院-人人学loT学习笔记及扩展- 第一章 初识物联网
  19. 二进制数的加法步骤解析
  20. word转html分页符,Word分页符、分栏符、换行符、分节符的作用

热门文章

  1. 华为防火墙笔记-安全策略
  2. 百度 android 笔试题库,百度科目一考试题库
  3. git ssh-keygen
  4. block unicast机制
  5. Gateway原理及实例
  6. 【Linux系列文章】网络配置
  7. EI检索ISTP检索ICFMD 2011年制造与设计科学技术会议
  8. 第七章---8253和8255芯片
  9. 小白IT:如何快速写出一个前端页面(网页),Python中如何使用前端语言什么是?JavaScript?BOMDOM?Bootstrap??
  10. BAT文件执行输出中文乱码