EDA实验报告.doc
文本预览下载声明
EDA课程实验报告
——LED流水灯及数码管动态显示设计
姓名:周维
院系:电子信息工程
指导教师:张敏
学号:090250130
2012年5月20日
实验一 LED流水灯设计
一、实验目的:
掌握对LED的控制及流水灯的实现、锻炼VHDL语言的分析和使用能力。学会对实验板上的FPGA进行编程下载,硬件验证自己的设计项目。
二、实验要求
1.使用VHDL语言及Quartus软件实现LED流水灯的软件仿真,要实现前六位LED根据自己意愿闪烁;
2.对照FPGA开发板的原理图,将编好的程序下载到开发板上,对之前写好的程序进行验证。
三、实验原理
下图为FPGA开发板上对应LED的原理图:
如图所示,若想控制LED的亮灭只需将对应的LED的管脚置低电平,若用软件实现则要将6位LED定义为6位的地址,各个状态延时切换即可。
四、实验步骤
1.建立工程文件,设计程序使六位流水灯来回滚动(程序在报告后面);
2.对写好的程序进行编译排错;
3.选好开发板上得芯片驱动,对照电路原理图对工程分配管脚,设置JTAG口选好需要下载的文件;
各LED对应的管脚号如下:
LED0~PIN113
LED1~PIN114
LED2~PIN115
LED3~PIN116
LED4~PIN117
LED5~PIN118
4.连接好JTAG下载器,为开发板供电,将程序载入开发板观察。
五、验证结果
可以看见开发板上六位LED来回滚动的效果,实现了预期的功能。
六、实验程序
library ieee;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.ALL;
entity LED is
port(
clk:in STD_LOGIC;
led1:out STD_LOGIC_VECTOR(5 DOWNTO 0));
end LED;
architecture light of LED is
signal clk1,clk2:std_logic;
begin
-------------------------------------------------------------------------------------------------------
P1:process(clk) --产生一个对clk延时的时钟clk1
variable count:integer range 0 to 999999;
begin
if clkevent and clk=1 then
if count=499999 then
clk1=0;
count:=count+1;
elsif count=499999 and count=999999 then
clk1=1;
count:=count+1;
else count:=0;
显示全部