北京邮电大学
数字电路与逻辑设计实验
实验报告
实验名称:
发光一极官走马灯电路设计与头现
学
院:
班
级:
姓
名:
学
号:
任课老师:
实验日期:
成
绩:
实验名称和实验任务要求
实验名称:发光二极管走马灯电路设计与实现 实验目的:⑴进一步了解时序电路描述方法;
⑵熟悉状态机的设计方法。
实验任务要求:
设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功 能,并下载到实验板测试。
⑴单点移动模式:一个点在8个发光二极管上来回的亮;
⑵幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后 再向中间点灭,依次往复。
设计思路和过程
设计实现过程:⑴ 设计的电路拥有两种功能,所以设定 d」n控制 输出实现两种功能,规定当 d」n =0时,实现单
点移动模式;当d」n =1时,实现幕布式。同时, 时序电路中钟控是必不可少的,所以引入 clk_in 来实现钟控。最终需输出在实验板上的 8个发光 二极管上验证,所以输出f需设定为8端口输出, 女口: f:out std_logic_vector(7 downto 0) 。
⑵ 单点移动模式的实现:来一个时钟沿,实现一次 变化。单点移动模式需实现发光二极管来回亮,
所以需定义一个16变量的数据类型。利用 CASE-WHE语句实现状态的转移。状态转移TTT …T-T ... T⑶ 幕布式的实现:需实现发光二极管从中间两个点, 同时向两边依次点亮直至全亮,然后再向中间点 灭,往复。需要8变量数据类型,利用单点式中 信号类型定义给状态转移。状态转移需满足:TT …TT TVHDL程序
发光二极管走马灯电路VHDI程序:
1 library leee;
2. 二二= re ■ std lacxc; 11 € 1 ■ a 11 r
3 \ise Leee . std lcgic unsigned, all;
弓
E ■ entity color 1 aicp ±a
Sport (
: in svd._lc?iG;
R d^in r in ?td_loqi.c:;
9 f:out std lcgic vectorp downto 0)};
10
snd color_airf;
11
12
Q architecture a 匚£ colorlaKp is
13
Q type all scace la (3Qf
14
310f 31丄F鼻3丄攻r 215):
15
s丄gnal state:all atate;
16
■ begm
17
Sprocess(elk in}
IB
begm
5 if ( ellr in1 eTZEnt and ulZ in=11. 1 ) then
20
Hif (d 1 n=1 0 1 ) then
21
S case state 二m
22
<hen g0=> svate<—al;f<=nC DC 0< OZC";
23
when aZ=> stavef<=wGOGQ?'OLQn;
巧
-.:nen 32=> svaue^=a3;r^="Q9OQ0iOQ";
25
v?ien a3=> state<^54; £<-;
26
whe^ 3^=> svate<=35;f<=wOQG10QOO";
27
when a5-> 3tate<—£<-;
28
whe^ b6"> 3tate<?s7;f<?;
303132333435裁37383S4Cwizen =7—> 日仁f<-"LC'DOOOOG">wnen
30
31
32
33
34
35
裁
37
38
3S
4C
wizen =7—> 日仁f<-"LC'DOOOOG">
wnen
wrzen
3^=> state<=s9; r<=r, D1CQDOOO"; s9=> 3tate<=510;£<=;
510 = >
511=>
51 2=>
3tate<=311; f<=rr00 3 10?0 j": f<=rTTnnr.r tq -trt: at ate<=313ff<=n QOQ 00 LOO n;
wrier.
wnen whe^ end case; "d i£;
3匸鼻匸亡弋=3二3;工弋二” ?0_";
si ^=?- ovhers=> ntate<=sO;f<="0OQOQOOl";
^2
^3
£5
46
张
50
51
52
53
54
Q case suatm is
when s0=>3tate<=sl;f<="00011COO*;
when 31">3ta匸览
when s2=>fltat&<=33;f<-;
WhMD ?3:=>HtHt:P< = H4 ; f<=" J * 1 ;: 1 11 ";
when □4->otate<-aS ;£<i-n0111111Qn;
when =5->5tate<-36;£<-"Q0111100_;
whan s^=>3tate<=s7;£<="QOOHQOOH;
when 盘丁=>日匸且匸豐V■且。;f<=;
whan others "> state<"s0; f<?nOOOHOOOTT; end case;
end i£;
end if;
55 end process;
弓右 end a;
仿真波形图
发光二极管走马灯电路的仿真波形图:
仿真波形图分析
⑴单点移动模式功能的仿真波形图分析:
由波形可见,当控制信号d」n=O时,输出的8个端口依次出
现正脉冲,波形呈现阶梯状,代表一个发光的点在8个发光二极管
上来回的亮,实现了功能要求;
⑵幕布式功能的仿真波形图的分析:
当控制信号d」n=1时,输出的8个端口出现正脉冲的时间与 脉冲的长度呈现“中间宽,两头窄”的形状,先是中间的两个灯亮, 接下来是中间四个灯亮,接下来是中间六个灯亮,两旁两个灯不亮, 最后全亮,接着中间六个灯亮,两旁两个灯不亮,继而循环下去, 实现了幕布式的点灯方式。由图可知,该电路实现了要求的逻辑。
故障及问题分析
⑴开始设计时想到用计数器实现,导致全用 case语句实现当设 计电路,但是仿真是发现:不论是单点移动式还是幕布式只能实现单 方向的移动,而无法进行反方向的移动。最后,查阅书籍决定改为引 入类型定义语句,利用类型第一语句来完成实验,所以引进了 16个
信号数据类型进行状态转移。
⑵电路拥有两个功能,不能同时将这两个功能实现,所以需引进 控制信号来控制功能的实现。
⑶引入时钟,控制状态的变化,此次的时钟的周期不用分频器来 分频,利用实验板上先用的低频率时钟,可以实现发光二极管的状态 变化。
⑷实验的程序设计基本上问题不大,主要是要熟练掌握IF-THEN, CASE-WHE语句等。
总结和结论
这学期的数字电路与逻辑设计实验在这一周结束了。
这学期学 了一门新课程,接触了关于课程的实验,我发现理论联系实际,实验 验证理论的方法令人感到很满足。每次做实验都会期待这次的电路设 计自己会做出一个什么东西出来。实验课结束了,回顾这几周的实验, 现在的我可以很高兴的说:现在自己已经基本上掌握了数字电路的设 计了。
这几周的数字逻辑电路设计实验, 我明白了一个重要的道理:进 行实验,理论分析是十分重要的一环,只有逻辑分析透彻无误了,才 能用语言进行描述,进而用硬件实现。这几次实验让我对 VHDI这样
一门硬件描述语言有了更加深刻的认识。
同时,我也明白了做任何实验之前预习的要求是极为重要的。
做好预习工作,不仅可以减少实验课上应无知而浪费的时间, 还可以 更深入的明白仿真实验所蕴含的原理。
总的来说,数字逻辑电路与设计实验课对我的帮助真的很大。我 更加深刻的理解了理论课上老师所教授的知识, 同时对于自己能够将 理论知识运用到实验中感到十分高兴,相信下学期的数字逻辑电路与 设计实验将会带给我更多新奇与经验。
相关热词搜索: 走马灯 电路设计 实验 报告