收藏 分销(赏)

毕业论文-吉林大学CPLD实践实习报告.doc

上传人:可**** 文档编号:3035360 上传时间:2024-06-13 格式:DOC 页数:28 大小:316.50KB
下载 相关 举报
毕业论文-吉林大学CPLD实践实习报告.doc_第1页
第1页 / 共28页
毕业论文-吉林大学CPLD实践实习报告.doc_第2页
第2页 / 共28页
毕业论文-吉林大学CPLD实践实习报告.doc_第3页
第3页 / 共28页
毕业论文-吉林大学CPLD实践实习报告.doc_第4页
第4页 / 共28页
毕业论文-吉林大学CPLD实践实习报告.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、 吉林大学CPLD实践实习报告学 院:仪器科学与电气工程 专 业:测控技术与仪器 年 级: 姓 名: 学 号: 时 间:2010-09-172010-09-18实验台号:No.1 第一部分:基本实验实验一:七段译码器显示一、实验目的:1、 学习基于VHDL 语言设计组合逻辑。2、 学习VHDL 语言的编程规范,初步养成良好的编程习惯。二、实验要求:基于VHDL 语言设计实现设计一个 7 段数码管显示译码器,并用4 位拨码开关和数码管验证其功能。二、实验仪器设备:微机一台(Windows XP 系统、安装Quartus等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。四、设计内容

2、:1、硬件连接图为了共用外围器件,可以采用4 位拨码开关和1 个4 位共阳数码管来验证设计,硬件连线图如下。 2、实验过程:(1) 程序设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exam1 isport(ip:in std_logic_vector(3 downto 0); op:out std_logic_vector(7 downto 0);end exam1;architecture a of exam1 i

3、sbegin process(ip)begin case ip is when0000=opopopopopopopopopopopopopopopopop=00000000; end case;end process;end a;(2) 编译对文件seg7.vhd 进行编译综合及管脚分配后,执行一次全编译。(3) 仿真使用Quartus对其进行仿真。(4)下载调试利用 Quartus的Programmer将编译好的pof文件下载到EPM240当中。下载完成后,改变4位拨码开关的输入状态,观察数码管显示情况是否符合设计要求。如不符合,重复以上步骤。五、实验结果阐述:本实验要求达到结果是让842

4、1BCD码能够转化为相应的十进制码输出,经过实验,最后的调试结果如下:输入BCD码数码管显示00000000010010200113010040101501106011171000810019通过上述的情况观察,达到本次实验的要求,实验成功。六、课后是考题:若数码管为共阴极,设计代码应如何改动? 答:若数码管改为了共阴极,应该把赋值代码的0、1调换或者在前面整体取反。实验二:8421BCD 码加法器一、实验目的:1、 学习基于VHDL 语言设计组合逻辑。2、 学习VHDL 语言的编程规范,初步养成良好的编程习惯。二、设计要求:8421BCD 码加法器与一般二进制加法器的运算规则一样,不同的是,

5、需要对相加以后的结果进行变换,保证相加之后的结果仍然为8421BCD 码。实现可以分两步完成:首先将两个BCD 码按照二进制相加,然后将得到的二进制数转换为8421BCD 码。利用用VHDL语言设计实现一个8421BCD 码加法器,并设计硬件电路进行验证结果的正确性,要求结果用数码管显示出来三、实验仪器:微机一台(Windows XP 系统、安装Quartus等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。四、实验内容:1、硬件连接图可以分别用两个4 位的拨码开关表示输入的8421BCD 码,相加之后的结果者数码管指示。2、实验过程:(1) 程序设计:library ieee

6、;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exam2 isport(a,b:in std_logic_vector(3 downto 0); c:out std_logic_vector(4 downto 0) );end exam2;architecture quanjia of exam2 issignal aa,bb,cc:std_logic_vector(4 downto 0);begin aa=0&a;bb=0&b;cc=aa+bb;

7、process(a,b)begin if(a=9 and b=0 and cc10) then c=10 and cc20) thenc=cc+6; else c=00000; end if; else c=11111;end if;end process;end quanjia;(2)编译综合编译无误及引脚分配后,进行全编译。(3)仿真使用 Quartus对其进行仿真。4. 下载调试利用 Quartus的Programmer将编译好的pof 文件下载到 EPM240当中。下载完成后,改变8位拨码开关的状态,观察发光管的亮灭情况是否符合设计要求。如不符合,重复以上步骤。五、实验结果:硬件测试结

8、果如下:输入BCD码数码管显示A3A2A1A0B3B2B1B000000000000000000101010100010600101001111001100118001001000611001010001111111100根据上表的观察,当输入为正常的8421码值是,为两者相加的结果,当其中一个码值大于则输出为,表示违反设计原则。实验预期结果也是如此。六、课后思考题:用同样的设计方法设计一个8路数据选择器。答:本题目有误,不能采用这次实验的方法实现八路数据选择器;八选一数据选择器设计程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.s

9、td_logic_arith.all;use ieee.std_logic_unsigned.all;entity xiti2 isport(m:in std_logic;a:in std_logic_vector(2 downto 0); b:in std_logic_vector(7 downto 0); q:out std_logic );end xiti2;architecture xuanzeqi of xiti2 issignal q1:std_logic;begin process(a)if(m=1)thenqq1q1q1q1q1q1q1q1null;end case;end i

10、f;end process;q=0 and a9) then if(m=0)then a=a+1; elsif(m=1 and m/=0)then a=a-1;elsif(m=0) end if; else a=0000;end if; else a=a; end if; elsif(n=1)then an)then count := 0; clkout = 1; else count := count + 1; clkout = 0; end if; end if;end process;end fenpinqi;实验四:按键去抖动一、实验目的1、学习基于VHDL 描述状态机的方法;2、学习

11、 VHDL 语言的规范化编程,学习按键去抖动的原理方法。二、设计要求机械式轻触按键是常用的一种外围器件,由于机械原因导致的抖动会使得按键输入出现毛刺。设计一个按键去抖动电路,并用按键作为时钟,结合计数器观察去抖动前后的效果有什么不同。按键去抖动通常采用延时判断的方法,去除按键过程中出现的毛刺。其实现过程是:当查询到按键按下时,延时一段时间再去判断按键是否仍然被按下,若是则此次按键有效,否则看作是干扰。这可以利用状态机来实现。三、实验仪器微机一台(Windows XP 系统、安装Quartus等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。四、实验内容:1、硬件连接图如下图连接

12、硬件,内部可将按键输入作为一个计数器的时钟,输出连接到发光数码管上,去抖后的结果用一个单独的LED管显示出来,对比一下去抖前后的效果有何不同。2、实验过程:(1) 程序设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exam4 isport ( keyin:in std_logic; clk:in std_logic; reset:in std_logic; Y:buffer std_logic_vector(3 down

13、to 0); Q:buffer std_logic_vector(3 downto 0); keyout: out std_logic);end exam4;architecture a of exam4 istype state is (s0,s1,s2,s3);signal s:state;beginprocess(clk,keyin)beginif(clkevent and clk=1)thenif reset=1 then Q=0000;Y=0000; else if (keyinevent and keyin=1)then Yif keyin=1 then s=s1;keyout=0

14、;else s=s0;keyoutif keyin=1 then s=s2;keyout=0;else s=s0;keyoutif keyin=1 then s=s3;keyout=0;else s=s0;keyoutif keyin=1 then s=s3;keyout=1;else s=s0;Q=Q+1;keyout b=0001 ; d=1;e b=0010 ; d=1;e b=0100 ;d=1;e b=1000 ; d=1;e b=b;d=d;e=e;end case;end if;end if;else b=0000; d=0; e=0000;end if;end process;

15、c= d and clk;end qiangda4; (2)编译综合编译无误及引脚分配后,进行全编译。(3)仿真使用 Quartus对其进行仿真。4. 下载调试利用 Quartus的Programmer将编译好的pof文件下载到EPM240当中。下载完成后,按动按键,观察发光管的变化情况是否符合设计要求。 五、实验结果实验操作结果观察1号抢答,然后清零抢答时,数码管显示1,蜂鸣器响,对应的LED亮;清零时,数码管显示0,蜂鸣器停止响,LED灭2号抢答,然后清零抢答时,数码管显示2,蜂鸣器响,对应的LED亮;清零时,数码管显示0,蜂鸣器停止响,LED灭3号抢答,然后清零抢答时,数码管显示3,蜂鸣

16、器响,对应的LED亮;清零时,数码管显示0,蜂鸣器停止响,LED灭4号抢答,然后清零抢答时,数码管显示4,蜂鸣器响,对应的LED亮,清零时,数码管显示0,蜂鸣器停止响,LED灭4号抢答,然后依次按下1号、2号、3号抢答数码管显示4,蜂鸣器响,对应的LED亮,其他路的抢答不产生效果根据实验的结果观察,已经达到了四路抢答的功能,当一个人抢答成功时,其他抢答无效。达到实验预期的结果,实验成功。六、课后思考题:改动设计,将抢答结果用数码管显示出来。答:我在实验设计的时候已经达到了此功能。第二部分:综合实验(必做部分)实验六:LED点阵汉字显示一、实验目的熟悉LED 点阵显示的原理,掌握编程实现点阵显示

17、汉字的方法。二、设计要求在1616 LED 点阵上显示汉字。根据点阵显示的原理,显示码按从左至右、从上至下 16 位数据的格式进行编码,依次点亮每行LED(对应行线置1),并将对应的显示码从列线输出;循环进行即可显示字符。可以设计一个16 进制计数器,在每个计数周期内点亮对应行线,并从列线送出相应的显示码,循环进行;另外,也可以采用状态机的设计方法进行设计。三、实验平台微机一台(Windows XP 系统、安装Quartus、汉字取模等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。四、实验内容1、硬件连接图:2、实验过程:(1)程序设计;library ieee;use ie

18、ee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exam7 isport (clk,clk2:in std_logic; hl:out std_logic_vector(31 downto 0);end exam7;architecture dian of exam7 issignal a:std_logic_vector(3 downto 0);signal b:std_logic;beginpl:process(clk)beginif(clkevent and

19、 clk=1)thena=a+1;end if;end process pl;bh:process(clk2)beginif(clk2event and clk2=1)thenb=not b ;end if;end process bh;ds:process(a)beginif(b=0)then if(a=0)then hl=not11111111111111101111111111111111; elsif(a=1)then hl=not11111111111111011111110111111101; elsif(a=2)then hl=not11111111111110111111110

20、111111101; elsif(a=3)then hl=not11111111111101111111110111111011; elsif(a=4)then hl=not11111111111011111111110111110111; elsif(a=5)then hl=not11111111110111111101110111101111; elsif(a=6)then hl=not11111111101111111110110111011111; elsif(a=7)then hl=not11111111011111111111010110111111; elsif(a=8)then

21、 hl=not11111110111111111111100101111111; elsif(a=9)then hl=not11111101111111111111100111111111;elsif(a=10)then hl=not11111011111111111111100111111111; elsif(a=11)then hl=not11110111111111111000000000000001; elsif(a=12)then hl=not11101111111111111111110111111111; elsif(a=13)then hl=not110111111111111

22、11111110111111111; elsif(a=14)then hl=not10111111111111111111110111111111; elsif(a=15)then hl=not01111111111111111111111111111111; end if;else if(a=0)then hl=not 11111111111111101111111111111111; elsif a=1 then hl=not 11111111111111011111111111111111; elsif a=2 then hl=not 11111111111110111111111111

23、101111;elsif a=3 then hl=not 11111111111101111111110111011111;elsif a=4 thenhl=not 11111111111011111101110110111111;elsif a=5 then hl=not 11111111110111111101010100000011;elsif a=6 then hl=not 11111111101111111101010010111011;elsif a=7 thenhl=not 11111111011111111101010010101011;elsif a=8 thenhl=not

24、 11111110111111111000000110101011;elsif a=9 thenhl=not 11111101111111111101010010101011;elsif a=10 thenhl=not 11111011111111111101010010101011;elsif a=11 thenhl=not 11110111111111111101010100000011;elsif a=12 thenhl=not 11101111111111111101110110111111;elsif a=13 thenhl=not 1101111111111111111111011

25、1011111;elsif a=14 thenhl=not 10111111111111111111111111111111;elsif a=15 thenhl=not 01111111111111111111111111111111;end if;end if;end process ds;end dian;(2)编译综合编译无误及引脚分配后,进行全编译。(3)仿真使用 Quartus对其进行仿真。4. 下载调试利用 Quartus的Programmer将编译好的pof文件下载到EPM240当中。下载完成后,观察LED点阵显示是否满足设计要求。五、实验结果:硬件测试结果:当加载程序结束过后,

26、选择CLK的频率为1KHz,16*16点阵LED显示屏上交替显示“长”、“春”两个字,并发出蜂鸣,实验成功。六、课后思考题:改动设计,在点阵上循环显示“仪电学院”四个汉字。答:改动方法如下:将程序中的内部状态信号b:改为signal b:std_logic(1 downto 0); b=b+1;由原来的两个状态变味了现在的四个状态,就有四个状态交替显示,分别对“仪电学院”四个字进行16*16点阵编码即可。实验七:交通灯控制器一、实验目的1、学习层次化设计方法。2、初步学会分析设计较为复杂的数字逻辑。二、设计要求交通灯控制器可分为两部分,一部分为状态机,其状态数可观察十字路口的交通灯变化情况获得

27、,转移条件受时间控制;另一部分为定时器,为状态机提供时间信息。设计一个十字路口的交通灯控制器,东西方向的红灯,绿灯,黄灯亮的时间分别为50 秒,28秒,2秒;南北方向的红灯,绿灯,黄灯亮的时间分别为30 秒,48秒,2秒。三、实验平台微机一台(Windows XP 系统、安装Quartus等相关软件)、CPLD学习板一块、5V电源线一个、下载线一条。四、实验内容1、硬件连接用红、黄、绿四组发光管模拟十字路口的交通灯,一路时钟作为定时信号。同时在外接一数码管,显示提示时间;2、实验过程:(1) 程序设计:library ieee;use ieee.std_logic_1164.all;use i

28、eee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exam8 isport(clk:in std_logic; kled:buffer std_logic_vector(5 downto 0):=100001; dis:out std_logic_vector(7 downto 0);end exam8;architecture jiao of exam8 issignal a,b:std_logic_vector(5 downto 0):=110000;beginprocess(clk)beginif (clk ev

29、ent and clk=1)thena=a-1; if (kled=010100 and a=000001)then kled= 100001; a= 110000; elsif (kled=100001 and a=000001)then kled=100010; a=000010; elsif(kled=100010 and a=000001)then kled=001100; a=011100; elsif(kled=001100 and a=000001)then kled=010100; a=000010; elsif(kled=000000)then kled=100001; a=110000; end if;end if;end process ;dis(7 downto 4)=0 and a=10 and a=20 and a=30 and a=40 and a50);b=0 and a=10 and a=20 and a=30 and a=40 and a50);dis

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服