您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > VHDL课程设计实验报告
湖南科技大学信息与电气工程学院《课程设计报告》题目:硬件描述语言课程设计专业:电子信息工程班级:三班姓名:康良红学号:1204030326指导教师:——————————胡士刚——————————————————————2015年01月13日信息与电气工程学院课程设计任务书2014—2015学年第1学期专业:学号:姓名:课程设计名称:设计题目:完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页):指导教师(签字):批准日期:年月日摘要在目前,可编程逻辑器件、单片机、DSP已经成为数字系统的硬件基础,而从事数字系统的设计必须掌握可编程逻辑器件的设计方法,而VHDL语言是一种标准的数字系统硬件电路设计语言,为所有可编程逻辑器件厂商所支持,已成为电路设计人员和电子设计工程师必须掌握的工具。VHDL语言是培养信息类专门人才的一门必修的专业基础课程。通过本次课程设计,使我们能够学习和掌握现代电子系统设计的新技术、新器件,掌握硬件描述语言VHDL的编程技术和硬件描述方法,能够对设计系统进行规范描述掌握相关软件的使用,操作。能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。本次课程设计设计主要使用了VHDL语言,采用的开发软件是MAXPLUSII,设计一个多功能数字钟。在MAXPLUSII开发平台下进行了编译、仿真、下载,实现了基本记时显示和设置、调整时间、报时和闹钟功能。关键词:EDA;VHDL;Max+plusII;目录1.设计目的…………………………………………………………………12.设计内容…………………………………………………………………13.电路工作原理…………………………………………………………………13.1循环彩灯……………………………………………13.2抢答器……………………………………………13.3数字频率计……………………………………………14.主要程序和仿真结果…………………………………………………………14.1循环彩灯设计与仿真结果………………………………………14.2抢答器设计与仿真结果………………………………………14.3数字频率计设计与仿真结果………………………………………15.心得体会…………………………………………………………………1参考文献…………………………………………………………………………11.设计目的1、熟悉maxplus2这一系列仿真软件的应用;2、熟悉由vhdl设计程序,设计电路,实现功能的过程,进一步了解vhdl语言;3、提高动手能力,培养独立思考的思维。2.设计内容1、循环彩灯2、电子抢答器3.数字频率计3.电路工作原理3.1循环彩灯工作原理八位流动彩灯由八个彩色灯泡组成,接通电源后彩灯自动形成流动显示状态可用于节日与喜庆日。CLK是1HZ的时钟脉冲,程序定义CNT1进行计数,作为花样彩灯译码模块的输入值,译码后的值就是彩灯的显示代码。3.2抢答器工作原理电子抢答器包括抢答器模块与数码管模块。抢答器模块通过一个CLK时钟脉冲,START是开始键,CLR是复位信号,ADD1,ADD2为加分键,SEL_1,SEL_2为选择键,LED为指示灯,有七位,SEG为数码管段选择,SL为数码管位选择,数码管模块主要是译码功能。顶层抢答器主控模块包括抢答、加分以及指示灯驱动功能,分数显示模块采用动态扫描的方法来控制LED数码管的显示。3.3数字频率器工作原理数字频率计测频有两种方式:一种是直接测频,即在一定闸门时间测量被测信号的脉冲个数;二是间接测评法,如周期测评法。直接测评法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。本设计采用了直接测量法,在一定闸门时间内测量被测信号个数。4.主要程序和仿真结果4.1循环彩灯设计与仿真结果循环彩灯程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycaidengisport(clk:instd_logic;light:outstd_logic_vector(7downto0));endcaideng;architecturecontrolofcaidengissignalcnt1:std_logic_vector(3downto0):=0000;beginprocess(clk)beginif(clk'eventandclk='1')thenifcnt1=1111thencnt1=0000;elsecnt1=cnt1+1;endif;casecnt1iswhen0000=light=11000000;when0001=light=01100000;when0010=light=00110000;when0011=light=00011000;when0100=light=00001100;when0101=light=00000110;when0110=light=00000011;when0111=light=00000110;when1000=light=00001100;when1001=light=00011000;when1010=light=00110000;when1011=light=01100000;when1100=light=11000000;whenothers=light=00000000;endcase;endif;endprocess;endarchitecturecontrol;仿真结果:4.2抢答器设计与仿真结果抢答器模块:LIBRARYieee;useieee.std_logic_1164.all;entityqiangdaisport(clk,start,clr:instd_logic;add1,add2:instd_logic;sel_1,sel_2:instd_logic;led:outstd_logic_vector(7downto0);seg:outstd_logic_vector(7downto0);sl:outstd_logic_vector(3downto0));endqiangda;architecturertlofqiangdaiscomponentSevenSegDisplayisport(clk:instd_logic;datain_1:inintegerrange0to15;datain_2:inintegerrange0to15;seg:outstd_logic_vector(7downto0);sl:outstd_logic_vector(3downto0));endcomponentSevenSegDisplay;signalcnt_1:integerrange0to15;signalcnt_2:integerrange0to15;signalmark_1:integerrange0to15;signalmark_2:integerrange0to15;signalsel:std_logic_vector(1downto0);beginsel=sel_2&sel_1;process(clk,clr)isbeginif(clk='0')thencnt_1=0;cnt_2=0;elsif(clk'eventandclk='1')thenif(start='0')thencaseseliswhen01=if(add1='0')thencnt_1=cnt_1+1;elsif(add2='0')thencnt_1=cnt_1+2;endif;mark_1=cnt_1;when10=if(add1='0')thencnt_2=+1;elsif(add2='0')thencnt_2=cnt_2+2;endif;mark_2=cnt_2;whenothers=mark_1=cnt_1;mark_2=cnt_2;endcase;endif;endif;endprocess;process(sel,start)isbeginif(start='0')thenif(sel=01)thenled=11111100;elsif(sel=10)thenled=11111010;elseled=11111110;endif;elseled=11111111;endif;endprocess;U1:SevenSegDisplayportmap(clk=clk,datain_1=mark_1,datain_2=mark_2,seg=seg,sl=sl);endarchitecturertl;数码管模块:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitysevensegdisplayisport(clk:instd_logic;datain_1:inintegerrange0to15;datain_2:inintegerrange0to15;seg:outstd_logic_vector(7downto0);sl:outstd_logic_vector(3downto0));endentitysevensegdisplay;architectureartofsevensegdisplayissignalcount:std_logic_vector(15downto0);signaldata:std_logic_vector(3downto0);signaldatabuf_1,databuf_2:std_logic_vector(3downto0);begindatabuf_1=conv_std_logic_vector(datain_1,4);databuf_2=conv_std_logic_vector(datain_2,4);process(clk)isbeginifclk'eventandclk='1'thencount=count+'1';endif;endprocess;process(count(15),databuf_1,databuf_2)isbegincasecount(15)iswhen'0'=sl=1110;data=databuf_1;whenothers=sl=1101;data=databuf_2;endcase;endprocess;process(data)isbegincasedataiswhen0000=seg=XC0;when0001=seg=XF9;when0010=seg=XA4;when0011=seg=XB0;when0100=seg=X99;when0101=seg=X92;when0110=seg=X82;when0111=seg=XF8;when1000=seg=X80;when1001=seg=X90;whenothers=seg=X8E;endcase;endprocess;endarchitectureart;抢答器符号:整个模块连线:4.3数字计频器设计与仿真结果测频控制器模块:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCPKZXHISPORT(CLK:INSTD_LOGIC;CLR_JSH:OUTSTD_LOGIC;JSEN:OUTSTD_LOGIC;SCXH:OUTSTD_LOGIC);ENDCPKZXH;ARCHITECTUREBEHAVEOFCPKZXHIS
本文标题:VHDL课程设计实验报告
链接地址:https://www.777doc.com/doc-4757549 .html