可编程实验报告2Word下载.docx
《可编程实验报告2Word下载.docx》由会员分享,可在线阅读,更多相关《可编程实验报告2Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
5.源程序和下载结果
6.实验结果分析
7.实验收获和体验
(1)彩灯控制器要有多种花型变化,
(2)多种花型可以自动变换,循环往复,
(3)彩灯变化快慢的节拍可以选择,
(4)具有清零开关。
目的:
进一步熟悉EDA的VHDL的程序设计方法,熟练所学课程一些基本常用的软件,如此次的QuartusII,实操该软件的基本操作,学习掌握VHDL的描述方法,进一步掌握应用EDA常用工具进行组合逻辑电路的设计、分析、仿真等技巧。
同时使自己能够编码程序,理解并学会。
2.实验设计方案及原理
设计一个具有4种节奏看快慢,多种花型循环变化的彩灯控制器。
首先通过多个进程把50mhz输入脉冲经过多级分频,最后分成四个不同频率的脉冲,同时通过数据选择器的俩个开关来控制其对应的脉冲作为输入。
由此,整个系统需要3个输入信号:
系统时钟信号clk,系统清零信号rst,和控制彩灯节奏快慢的选择开关speed.7个输出信号row(3...0)控制彩灯的组选和e,y,g控制红,绿,黄的亮灭用于模仿彩灯。
主芯片EPM240T100C5,2个开关、12个LED灯。
首先对输入的脉冲clk进行多级分频,让有不同的频率,然后再通过数据选择器控制其相对应的脉冲,再把脉冲输入编写好的程序中(定义在程序内部中,及在内部进行),最后测试,下载,再通过下载板看到结果。
该实验编好的程序如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitydyis
port(b,clk:
instd_logic;
s:
instd_logic_vector(1downto0);
a:
outstd_logic_vector(3downto0);
r,y,g:
outstd_logic);
end;
architectureduofdyis
signalp:
integerrange0to26;
signalclk_1,clk_2,clk_3,clk_4:
std_logic;
signalw:
begin
process(clk)
variablecnt1:
integerrange0to500;
variablecnt2:
integerrange0to100;
ifclk'
eventandclk='
1'
then
ifcnt1=500then
cnt1:
=0;
ifcnt2=100then
cnt2:
clk_1<
=notclk_1;
else
=cnt2+1;
endif;
=cnt1+1;
endprocess;
process(clk_1)
integerrange0to25;
ifclk_1'
eventandclk_1='
ifcnt1=25then
clk_2<
=notclk_2;
process(clk_2)
integerrange0to5;
ifclk_2'
eventandclk_2='
ifcnt1=5then
clk_3<
=notclk_3;
process(clk_3)
integerrange0to2;
ifclk_3'
eventandclk_3='
ifcnt1=3then
clk_4<
=notclk_4;
process(s)
casesis
when"
00"
=>
w<
=clk_1;
01"
=clk_2;
10"
=clk_3;
11"
=clk_4;
endcase;
process(w)
ifw'
eventandw='
ifp=26then
p<
=p+1;
process(b,p)
variabler1,y1,g1:
variablea_1:
std_logic_vector(3downto0);
ifb='
0'
a_1:
="
1111"
;
r1:
='
y1:
g1:
casepis
when0=>
0111"
when1=>
1011"
when2=>
1101"
when3=>
1110"
when4=>
when5=>
when6=>
when7=>
when8=>
when9=>
when10=>
when11=>
when12=>
when13=>
when14=>
when15=>
when16=>
0110"
when17=>
when18=>
when19=>
1001"
when20=>
when21=>
when22=>
when23=>
when24=>
when25=>
when26=>
a<
=a_1;
r<
=r1;
y<
=y1;
g<
=g1;
enddu;
测试结果
引脚分配
6.实验结果分析
实验的开始,总是有点小问题,因为编写的程序有一点小小的不同,该程序就无法执行,所以总需要经过多次的修改,往复地测试,直到成功。
实验中通过俩开关的不同变换使其相应的时钟有不同的频率,从而在下载板上看到快慢不同的花型。
当按下清零开关时,灯全部熄灭。
能够让我们更加熟悉的对其软件的操作外,减少一些细节的出错率。
最重要的是通过此次实验能让我们知道编写程序的基本语法与一些基本注意的地方。
同时能够从多次失败的结果总结出经验,编程的时候应该细心谨慎,通过自己动手,可以有自己理清思路,一点点地提高自己的程序编写能力。