1、课 程 设 计 报 告课程名称 数字系统和逻辑设计 课题名称 16*16点阵显示 专 业 通信工程 班 级 1181 学 号 1317 姓 名 肖浪 指导老师 乔汇东 吴德建 7月 2日湖南工程学院课 程 设 计 任 务 书课程名称 数字系统和逻辑设计 课 题 16*16点阵显示 专业班级 通信工程1181 学生姓名 肖浪 学 号 1317 指导老师 乔汇东 吴德建 任务书下达日期 年 6月 23日任务完成日期 年 7月 2日数字系统和逻辑设计课程设计任务书一 、设计目标全方面熟悉、掌握VHDL语言基础知识,掌握利用VHDL语言对常见组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编
2、制和调试程序技巧,掌握分析结果若干有效方法,深入提升上机动手能力,培养使用设计综合电路能力,养成提供文档资料习惯和规范编程思想。 二、设计要求1、设计正确,方案合理。2、程序精炼,结构清楚。3、设计汇报5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。4、上机演示。5、有具体文档。文档中包含设计思绪、设计仿真程序、仿真结果及对应分析和结论。 三、进度安排第十八周 星期一: 课题讲解,查阅资料 星期二: 总体设计,具体设计星期三: 编程,上机调试、修改程序星期四: 上机调试、完善程序星期五: 答辩星期六-星期天:撰写课程设计汇报附:课程设计汇报装订次序:封面、任务书、目录、正文
3、、评分、附件(A4大小图纸及程序清单)。 正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文内容:一、课题关键功效;二、课题功效模块划分(要求画出模块图);三、关键功效实现;四、系统调试和仿真;五、总结和体会;六、附件(全部程序原代码,要求对程序写出必需注释);七、评分表。目 录一、 课题关键功效31.1问题描述31.2 功效描述4二、 课题功效模块划分42.1 系统总体框图4三、关键功效实现53.1 1 8进制加法器设计53.2 2 16进制计数器设计53.3 列驱动设计5 3.4 字体显示控制器5 3.5 顶层文件设计5 四、 系统调试和仿真64.1
4、程序仿真图6 4.2 16*16 LED点阵显示引脚分配8 4.3 程序运行结果9 五、 总结和体会9六、 附件10七、 课程设计评分表20一、课题关键功效1.1问题描述本试验关键完成汉字字符在LED 上显示,16*16 扫描LED 点阵工作原理和8 位扫描数码管类似,只是显示方法和结果不一样而已。下面就本试验系统16*16 点阵工件原理做部分简单说明。16*16 点阵由此256 个LED 经过排列组合而形成16 行*16 列一个矩阵式LED 阵列,俗称16*16 点阵。单个LED 电路以下图11-1 所表示:图11-1 单个LED 电路图由上图可知,对于单个LED 电路图当Rn 输入一个高电
5、平,同时Cn 输入一个低电平时,电路形成一个回路,LED 发光。也就是LED 点阵对应这个点被点亮。16*16 点阵也就是由16 行和16 列LED 组成,其中每一行全部16 个LEDRn 端并联在一起,每一列全部16 个LED Cn 端并联在一起。经过给Rn 输入一个高电平,也就相当于给这一列全部LED 输入了一个高电平,这时只要某个LED Cn 端输入一个低电平时,对应LED 就会被点亮。具体电路以下图11-2所表示:图11-2 16*16 点阵电路原理图在点阵上显示一字符是依据其字符在点阵上显示点亮灭来表示,以下图11-3 所表示:图11-3 字符在点阵上显示在上图中,显示是一个“汉”字
6、,只要将被“汉”字所覆盖区域点点亮,则在点阵中就会显示一个“汉”字。依据前面我们所介绍点阵显示原理,当我们选中第一列后,依据要显示汉字第一列中所需要被点亮点对应Rn置为高电平,则在第一列中需要被点亮点就会被点亮。依这类推,显示第二列、第三列第N 列中需要被点亮点。然后依据人眼视觉原理,将每一列显示点间隔时间设为一定值,那么我们就会感觉显示一个完整不闪烁汉字。同时也能够根据这个原理来显示其它汉字。下图11-4 是一个汉字显示所需要时序图:图11-4 显示时序图1.2功效描述本试验示例程序依次显示是“湖南工程学院”,要求每隔一秒换下一个字显示。字体显示驱动行驱动程序16进制计数器8进制计数器顶层文
7、件设计二、课题功效模块划分2.1 系统总体框图图2-1 模块图此程序分为五个模块,两个计数器和一个行驱动程序和一个显示字体控制程序,最终再加上一个顶层文件,用来连接前四个模块,程序简图以下:CLK1Q1HANGCNT16W1XIANSHICLKCNT8 图2-2 电路连接简图三、关键功效实现3.1 1 8进制加法器设计CNT8.vhd是8进制计数器,其每计一次数,输出一个字。比如当计数为“000B”时显示“湖”,当计数为“001B”时显示“南”。给其脉冲周期为1S。3.2 2 16进制计数器设计CNT16.vhd是16进制计数器,其输出端控制行和列驱动控制器输出数据;3.3 列驱动设计HANG
8、.vhd为列驱动控制器,该模块控制所亮行,当输出为0001H时,给点阵第一行高电平,输出为0010H时,给点阵第二行高电平,依次类推,逐次给每行高电平。3.4 字体显示控制器XIANSHI.vhd为字体显示控制器,SHI控制是所显示字。比如当SHI为00H时,表示显示第一个字;当SHI为01H时,表示显示第二个字,依次类推。WEI控制所显示为字第几行,比如当WEI为0000B时,表示输出字第一行文字信息;WEI为0001B时,表示输出字第二行文字信息,依次类推。3.5 顶层文件设计JUZHEN16.vhd是顶层文件设计,文件在实体中首先定义了顶层设计元件端口信号,然后在architecture
9、和begin之间利用component语句对准备调用元件做了申明,并定义了c,d两个信号作为器件内部连接线。最终利用端口映射语句PORT MAP()将两个计数器和列驱动,字体显示驱动连接起来组成一个完整器件。四、系统调试和仿真4.1 程序仿真图 图4-1 CNT16.vhd仿真波形图图4-2 HANG.vhd仿真波形图 图4.3 顶层仿真图4.2 16*16 LED点阵显示引脚分配1616 点阵信号名称FPGA 引脚说明DOC-C0F7列DOT-C1E8列DOT-C2J8列DOT-C3G9列DOT-C4G10列DOT-C5F11列DOT-C6F9列DOT-C7F10列DOT-C8G2列DOT-
10、C9F1列DOT-C10E1列DOT-C11E2列DOT-C12D1列DOT-C13D2列DOT-C14C2列DOT-C15B2列DOT-R0B3行选择DOT-R1C3行选择DOT-R2H1行选择DOT-R3J2行选择DOT-R4L2行选择DOT-R5J13行选择DOT-R6H15行选择DOT-R7V11行选择DOT-R8E10行选择DOT-R9F12行选择DOT-R10E12行选择DOT-R11F13行选择DOT-R12F14行选择DOT-R13E15行选择DOT-R14F15行选择DOT-R015F16行选择时钟:ClkN1 图4.4 引脚分配4.3 程序运行结果 程序仿真完全正确后,线封
11、锁引脚,然后连接硬件,再次编译,没有错误后下载程序到硬件之中,当拨码开关闭合时,得到点阵LED显示结果,其中每个汉字显示时间为一秒,一秒过后自动换下一个汉字,直到显示完“湖南工程学院”,再循环显示以上内容;当拨码开关断开时,点阵LED不显示任何内容五、总结和体会经过此次课程设计,使我愈加扎实掌握了相关EDA方面知识,在设计过程中即使碰到了部分问题,但经过一次又一次思索,一遍又一遍检验最终找出了原因所在,也暴露出了前期我在这方面知识欠缺和经验不足。实践出真知,经过亲自动手制作,使我们掌握知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不停发觉错误,不停更正,不停领悟,不停获取。最终
12、检测调试步骤,本身就是在践行“过而能改,善莫大焉”知行观。这次课程设计最终顺利完成了,在设计中碰到了很多问题,最终在老师指导下,最终游逆而解。在以后社会发展和学习实践过程中,一定要不懈努力,不能碰到问题就想到要退缩,一定要不厌其烦发觉问题所在,然后一一进行处理,只有这么,才能成功做成想做事,才能在以后道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及她人对你认可!课程设计诚然是一门专业课,给我很多专业知识和专业技能上提升,同时又是一门讲道课,一门辩思课,给了我很多道,给了我很多思,给了我莫大空间。同时,设计让我感慨很深。使我对抽象理论有了具体认识。经过这次
13、课程设计,我掌握了LED点阵显示原理及设计,深入提升了用VHDL语言编程能力。我认为,在这学期试验中,不仅培养了独立思索、动手操作能力,在多种其它能力上也全部有了提升。更关键是,在试验课上,我们学会了很多学习方法。而这是以后最实用,真是受益匪浅。要面对社会挑战,只有不停学习、实践,再学习、再实践。这对于我们未来也有很大帮助。以后,不管有多苦,我想我们全部能变苦为乐,找寻有趣事情,发觉其中珍贵事情。就像中国提倡艰苦奋斗一样,我们全部能够在试验结束以后变愈加成熟,见面对需要面正确事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,能够说得是苦多于甜,不过能够学到很多很多东西,同时
14、不仅能够巩固了以前所学过知识,而且学到了很多在书本上所没有学到过知识。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己实际动手能力和独立思索能力。在设计过程中碰到问题,能够说得是困难重重,但可喜是最终全部得到了处理。 试验过程中,也对团体精神进行了考察,让我们在合作起来愈加默契,在成功后一起体会喜悦心情。果然是团结就是力量,只有相互之间默契融洽配合才能换来最终完美结果。此次设计也让我明白了思绪即出路,有什么不懂不明白地方要立即请教或上网查询,只要认真钻研,动脑思索,动手实践,就没有
15、弄不懂知识,收获颇丰。六、附件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT8 ISPORT( CLK1: IN STD_LOGIC;QOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY CNT8;ARCHITECTURE BEHV OF CNT8 ISSIGNAL CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK1)BEGINIF (CLK1EVENT AND CLK1=1
16、) THENCQI=CQI+1;END IF;QOUT=CQI;END PROCESS;END ARCHITECTURE BEHV;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT16 ISPORT( CLK : IN STD_LOGIC;QOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT16;ARCHITECTURE BEHV OF CNT16 ISSIGNAL CQI : STD_LOGIC_VECTOR(3 DOW
17、NTO 0);BEGINPROCESS(CLK)BEGINIF (CLKEVENT AND CLK=1) THENCQI=CQI+1;END IF;QOUT ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROWcase wei is when 0000 =b:=1111; when 0001 =b:=0111; when 0010 =b:=0000; when 0011 =b:=1110; when 0100 =b:=0110; when 0101 =b:=0000; when 0110 =b:=1001; wh
18、en 0111 =b:=0110; when 1000 =b:=0000; when 1001 =b:=0110; when 1010 =b:=0110; when 1011 =b:=0110; when 1100 =b:=0110; when 1101 =b:=1110; when 1110 =b:=1110; when 1111 =b:=1111; when others=null; end case;When 001=case wei is when 0000 =b:=1111; when 0001 =b:=1111; when 0010 =b:=1111; when 0011 =b:=
19、0111; when 0100 =b:=1111; when 0101 =b:=1111; when 0110 =b:=0111; when 0111 =b:=0111; when 1000 =b:=0111; when 1001 =b:=0111; when 1010 =b:=0111; when 1011 =b:=0111; when 1100 =b:=0111; when 1101 =b:=0111; when 1110 =b:=1111; when 1111 =b:=1111; when others=null; end case;When 010=case wei is when 0
20、000 =b:=1111; when 0001 =b:=0111; when 0010 =b:=0011; when 0011 =b:=1111; when 0100 =b:=1111; when 0101 =b:=1111; when 0110 =b:=1111; when 0111 =b:=1111; when 1000 =b:=1111; when 1001 =b:=1111; when 1010 =b:=1111; when 1011 =b:=1111; when 1100 =b:=1011; when 1101 =b:=0001; when 1110 =b:=1111; when 1
21、111 =b:=1111; when others=null; end case;When 011=case wei is when 0000 =b:=1111; when 0001 =b:=1111; when 0010 =b:=1111; when 0011 =b:=0111; when 0100 =b:=0111; when 0101 =b:=0111; when 0110 =b:=0111; when 0111 =b:=1111; when 1000 =b:=0011; when 1001 =b:=1111; when 1010 =b:=0011; when 1011 =b:=1111
22、; when 1100 =b:=1111; when 1101 =b:=0011; when 1110 =b:=1111; when 1111 =b:=1111; when others=null; end case;When 100=case wei is when 0000 =b:=0111; when 0001 =b:=0111; when 0010 =b:=1111; when 0011 =b:=1111; when 0100 =b:=0001; when 0101 =b:=1101; when 0110 =b:=1011; when 0111 =b:=1111; when 1000
23、=b:=1111; when 1001 =b:=1011; when 1010 =b:=0001; when 1011 =b:=1111; when 1100 =b:=1111; when 1101 =b:=1111; when 1110 =b:=1111; when 1111 =b:=1111; when others=null; end case;When 101=case wei is when 0000 =b:=1111; when 0001 =b:=1111; when 0010 =b:=1111; when 0011 =b:=0001; when 0100 =b:=1110; wh
24、en 0101 =b:=0110; when 0110 =b:=1111; when 0111 =b:=0001; when 1000 =b:=0111; when 1001 =b:=0111; when 1010 =b:=0111; when 1011 =b:=0111; when 1100 =b:=0101; when 1101 =b:=0000; when 1110 =b:=1111; when 1111 =b:=1111; when others=null; end case;when others=null;end case;qb,QOUT=d );U2: CNT16 PORT MAP( CLK=a,QOUT=c );U3: HANG PORT MAP(datain=c,ROW=Q1);U4: XIANSHI PORT MAP (wei=c,shi=d,Q=W1);END ARCHITECTURE JZ16;七、评分表课程设计评分表课程名称: 16*16点阵设计 项 目评 价设计方案合理性和发明性设计和调试结果设计说明书质量答辩陈说和回复问题情况课程设计周表现情况综合成绩 老师署名: 日 期: