完整word版流水灯实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 is
Port ( clk2,en2: in STD_LOGIC;
lsd_out : out STD_LOGIC_VECTOR(15 downto 0));
end lsd;
architecture liushuideng of lsd is
signal n:STD_LOGIC_VECTOR(3 downto 0);
signal m:std_logic_vector(1 downto 0); signal k:std_logic;
begin
process(clk2,en2)
begin
if clk2'event and clk2='1'then
if en2='1' then
if m= then
m<=;
k<=not k;
else m<=m+;
end if;
end if;
end if;
end process;
process(k)
begin
if k'event and k='1' then
case n is
when
lsd_out<=
when
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 @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,编写程序。
(如下图1)
2)编写好VHDL程序就进行编译,
编译成功后,新建一个波形文件,设置好初值。
(如下图2)
图2
3)再打开仿真工具,设置仿真模式为Funnctional,执行仿真。
(如3)
下图
4)仿真结果。
(如下图4)
总结: 由图显示,该结果就是十六位的流水灯,该流水灯就是以一个方向进行循环的,从一开始到十六,到了十六就有从一开始。
通过n 的数值变化,进而控制lsd_out的变化,达到流水灯效果。