您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > EDA课程设计实验报告详解
EDA课程设计0EDA课程设计报告课题名称:16*16点阵显示专业:通信工程班级:2013级通信工程(2)班学号:12013241953姓名:刘乐指导教师:杨泽林完成时间:2015年12月18号EDA课程设计1目录一、设计目的二、课题的主要功能三、课题的功能模块划分四、主要功能的实现五、实验程序六、系统调试与仿真七、总结与体会EDA课程设计1一、设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。二、课题的主要功能2.1问题描述本实验主要完成汉字字符在LED上的显示,16*16扫描LED点阵的工作原理与8位扫描数码管类似,只是显示的方式与结果不一样而已。下面就本实验系统的16*16点阵的工件原理做一些简单的说明。16*16点阵由此256个LED通过排列组合而形成16行*16列的一个矩阵式的LED阵列,俗称16*16点阵。单个的LED的电路如下图1所示:图1单个LED电路图由上图可知,对于单个LED的电路图当Rn输入一个高电平,同时Cn输入一个低电平时,电路形成一个回路,LED发光。也就是LED点阵对应的这个点被点亮。16*16点阵也就是由16行和16列的LED组成,其中每一行的所有16个LED的Rn端并联在一起,每一列的所有16个LED的Cn端并联在一起。通过给Rn输入一个高电平,也就相当于给这一列所有LED输入了一个高电平,这时只要某个LED的Cn端输入一个低电平时,对应的LED就会被点亮。具体的电路如下图2所示:图216*16点阵电路原理图在点阵上显示一字符是根据其字符在点阵上的显示的点的亮灭来表示的,如下图3所示:EDA课程设计2图3字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。根据前面我们所介绍的点阵显示的原理,当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn置为高电平,则在第一列中需要被点亮的点就会被点亮。依此类推,显示第二列、第三列……第N列中需要被点亮的点。然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。同时也可以按照这个原理来显示其它的汉字。下图4是一个汉字显示所需要的时序图:图4显示时序图2.2功能描述本实验的示例程序依次显示的是“宁大物电学院”,要求每隔一秒换下一个字显示。三、课题的功能模块的划分3.1系统的总体框图顶层文件设计8进制计数器16进制计数器行驱动程序字体显示驱动EDA课程设计3图5此程序分为五个模块,两个计数器和一个行驱动程序和一个显示字体控制程序,最后再加上一个顶层文件,用来连接前四个模块,程序简图如下:图6电路连接简图四、主要功能的实现4.18进制加法器设计CNT8.vhd是8进制的计数器,其每计一次数,输出一个字。例如当计数为“000B”时显示“宁”,当计数为“001B”时显示“大”。给其脉冲周期为1S。4.216进制计数器设计CNT16.vhd是16进制的计数器,其输出端控制行和列驱动控制器的输出数据。4.3列驱动设计HANG.vhd为列驱动控制器,该模块控制所亮的行,当输出为0001H时,给点阵的第一行高电平,输出为0010H时,给点阵的第二行高电平,依次类推,逐次给每行高电平。4.4字体显示控制器XIANSHI.vhd为字体显示控制器,SHI控制的是所显示的字。例如当SHI为00H时,表示显示第一个字;当SHI为01H时,表示显示第二个字,依次类推。WEI控制所显示的为字的第几行,例如当WEI为0000B时,表示输出字的第一行文字信息;WEI为0001B时,表示输出字的第二行文字信息,依次类推。4.5顶层文件设计JUZHEN16.vhd是顶层文件设计,文件在实体中首先定义了顶层设计元件的端口信号,然后在architecture和begin之间利用component语句对准备调用的元件做了声明,并定义了c,d两个信号作为器件内部的连接线。最后利用端口CNT8CNT16HANGXIANSHIQ1W1CLK1CLKEDA课程设计4映射语句PORTMAP()将两个计数器和列驱动,字体显示驱动连接起来构成一个完整的器件。五、实验程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT8ISPORT(CLK1:INSTD_LOGIC;QOUT:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDENTITYCNT8;ARCHITECTUREBEHVOFCNT8ISSIGNALCQI:STD_LOGIC_VECTOR(2DOWNTO0);BEGINPROCESS(CLK1)BEGINIF(CLK1'EVENTANDCLK1='1')THENCQI=CQI+1;ENDIF;QOUT=CQI;ENDPROCESS;ENDARCHITECTUREBEHV;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT16ISPORT(CLK:INSTD_LOGIC;QOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYCNT16;ARCHITECTUREBEHVOFCNT16ISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINEDA课程设计5PROCESS(CLK)BEGINIF(CLK'EVENTANDCLK='1')THENCQI=CQI+1;ENDIF;QOUT=CQI;ENDPROCESS;ENDARCHITECTUREBEHV;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYHANGISPORT(DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);ROW:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDENTITYHANG;ARCHITECTUREBEHVOFHANGISSIGNALHANG:STD_LOGIC_VECTOR(15DOWNTO0);BEGINPROCESS(DATAIN)BEGINCASEDATAINISWHEN0000=ROW=1000000000000000;WHEN0001=ROW=0100000000000000;WHEN0010=ROW=0010000000000000;WHEN0011=ROW=0001000000000000;WHEN0100=ROW=0000100000000000;WHEN0101=ROW=0000010000000000;WHEN0110=ROW=0000001000000000;WHEN0111=ROW=0000000100000000;WHEN1000=ROW=0000000010000000;WHEN1001=ROW=0000000001000000;EDA课程设计6WHEN1010=ROW=0000000000100000;WHEN1011=ROW=0000000000010000;WHEN1100=ROW=0000000000001000;WHEN1101=ROW=0000000000000100;WHEN1110=ROW=0000000000000010;WHEN1111=ROW=0000000000000001;WHENOTHERS=ROW=0000000000000000;ENDCASE;ENDPROCESS;ENDARCHITECTUREBEHV;LIBRARYieee;USEieee.std_logic_1164.all;ENTITYXIANSHIISPORT(WEI:INSTD_LOGIC_VECTOR(3downto0);SHI:INSTD_LOGIC_VECTOR(2downto0);Q:OUTSTD_LOGIC_VECTOR(15downto0));ENDXIANSHI;ARCHITECTUREXIANSHI_architectureOFXIANSHIISBEGINprocess(shi,wei)variableb:std_logic_vector(15downto0);begincaseshiisWhen000=caseweiiswhen0000=b:=1111111111111111;when0001=b:=1011111111110111;when0010=b:=1101111111110000;when0011=b:=1110111011101110;when0100=b:=1111111101110110;when0101=b:=1000000001110000;when0110=b:=0010011111111001;EDA课程设计7when0111=b:=1110111101110110;when1000=b:=1111111101110000;when1001=b:=1111110000010110;when1010=b:=1111010111010110;when1011=b:=1110110111010110;when1100=b:=1101110000010110;when1101=b:=1011111111011110;when1110=b:=1011111111011110;when1111=b:=1111111111111111;whenothers=null;endcase;When001=caseweiiswhen0000=b:=1111111111111111;when0001=b:=1111111110111111;when0010=b:=1111111101111111;when0011=b:=1110000000000111;when0100=b:=1111110111111111;when0101=b:=1111101111111111;when0110=b:=1111000000000111;when0111=b:=1111011011010111;when1000=b:=1111011010110111;when1001=b:=1111010000010111;when1010=b:=1111011101110111;when1011=b:=1111010000010111;when1100=b:=1111011101110111;when1101=b:=1111011101110111;when1110=b:=1111111111111111;when1111=b:=1111111111111111;whenothers=null;endcase;When010=caseweiisEDA课程设计8when0000=b:=1111111111111111;when0001=b:=1111111111110111;when0010=b:=1000000000000011;when0011=b:=1111111011111111;when0100=b:=1111111011111111;when0101=b:=1111111011111111;when0110=b:=1111111011111111;when0111=b:=1111111011111111;when1000=b:=11111
本文标题:EDA课程设计实验报告详解
链接地址:https://www.777doc.com/doc-6507637 .html