8X8LED点阵数字显示驱动电路设计_第1页
8X8LED点阵数字显示驱动电路设计_第2页
8X8LED点阵数字显示驱动电路设计_第3页
8X8LED点阵数字显示驱动电路设计_第4页
8X8LED点阵数字显示驱动电路设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成 绩 评 定 表学生姓名王靖班级学号1103040132专 业电子科学与技术课程设计题目8X8LED点阵数字显示驱动电路设计评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息科学与工程学院专 业电子科学与技术学生姓名王靖班级学号1103040132课程设计题目8X8LED点阵数字显示驱动电路设计实践教学要求与任务:用8X8LED点阵实现简单数字与英文字符的显示。(1)LED共阳方式;(2)采用扫描的方式显示信息,信息内容可存于文件;(3)显示方式:自动滚动或者手动选择;(4)自行设计设计下载后的验证方案;(5)完成全部流程:设计文档、模块设计、代码输入、功能仿真、约束与综合、布

2、局布线、下载验证等。工作计划与进度安排:本设计持续两周,其中最后一天为答辩时间。第1-2天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备;第3-5天:完成设计与验证方案,经指导老师验收后进入模块电路设计(验收设计文档);第6-7天:完成模块电路设计,进行代码输入,并完成代码的仿真(验收代码与仿真结果);第 8-9天:约束设计、实现、下载验证(验收验证实现);第10天:修正设计、整理设计资料,验收合格后进行答辩。指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要 8X8LED点阵数字显示驱动电路就是简单

3、地将要显示的信息进行编码后,输出相应的显示和扫描信号连接到点阵上显示。本文详细介绍了如何用FPGA在8X8LED点阵显示方案设计的过程,并在此基础上将整体电路分为ROM、数据编码、选择显示、扫描产生等主要功能块。整体过程采用Verilog HDL语言对电路进行功能模块的逻辑设计,然后在Modelsim上进行功能仿真,接着在Quartus II进行逻辑综合与管脚锁定,最后适配下载到Altare公司的Cyclone II芯片的EP2C5T144C8上进行验证。在此过程中,顺利的建立了激励文件和测试平台,功能和时序的仿真,完成了对点阵显示的验证,从而保证了所设计电路的可行性和准确性。 关键词 Ver

4、ilog HDL;FPGA;仿真;综合;验证目 录引 言11 总体电路结构设计21.18X8点阵显示原理21.2 关键功能电路设计31.3 电路接口51.4 电路功能框图51.5 验证方案62 模块设计72.1 ROM模块设计72.2数据编码模块设计82.3 扫描产生模块设计102.4 选择显示模块设计103 设计仿真与测试123.1仿真与测试的功能列表123.2 仿真平台构建和仿真结果123.2.1 顶层仿真平台与激励123.2.2 电路功能仿真结果133.3 测试环境的搭建与测试结果153.3.1 测试环境模拟153.3.2 电路测试结果164 电路约束与综合实现174.1 时序约束174

5、.2 引脚锁定约束174.3 电路综合报告184.4 设计实现与下载18结论19参考文献20引 言FPGA是以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放

6、在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。本设计就是通过对8X8点阵驱动电路的设计,来更熟悉地对FPGA进行学习和掌握。本设计方案是在Cyclone II芯片的EP2C5T144C8上实现验证,Cyclone II芯片是Altera公司的2004年推出的新款FPGA器件,其成本比上一代产品Cyclone器件低了30%,逻辑容量大了三倍多。 本设计的综合工具Quartus II是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、Verilog HDL以及AHDL等多种设计输入形式。本设计的仿真工具是Me

7、ntor公司的Modelsim10.1a,这是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。基本流程是这样的:首先根据设计任务要求进行方案的设计,包括8X8点阵显示原理的熟悉、电路接口的确定、功能框图与模块的划分、验证方案等,然后就是用Verilog HDL对设计电路进行描述、建立测试平台和激励、在仿真工具上进行仿真和矫正,接着在综合工具上进行时序约束、管脚锁定,最后下载到芯片上实现和验证。1 总体电路结构设计1.1 8X8点阵显示原理本设计所使用的为一个共阳极8X8单色LED点阵,型号为1588AB-5,点阵的外部引脚

8、的图如图1-1,内部结构等效电路图如图1-3,共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,同一行的LED阳极连接在一起,同一列的阴极连在一起,仅当阳极和阴极的电压被加上,使LED为正偏时,LED才发亮,即当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则7脚接高电平A脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第7脚要接高电平,而(A、B、C、D、E、F、G、H)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第A脚接低电平,而(7、6、5、4、3、2、1、0)接高电平,那么第一列就会点亮。 图1-1 8X8点阵外观

9、及引脚图 图1-2 0的显示图样图1-3 8X8点阵LED等效电路图LED的点亮方式可以按行顺序点亮(行扫描法),也可以按列顺序点亮(列扫描法),本电路设计采用行描方式。行扫描方式的扫描顺序为从下到上,依次点亮,则顺序输出的扫描码为8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01。如果想要显示“0”如图1-2,则只需从上到下各行的显示码分别为8he8,8hdb,8h99,8h88,8h91,8h99,8hdb,8he7,即可显示出“0”字样。对于扫描信号的频率,因为人的肉眼所能分辨的最大频率一般为25Hz左右,大于这个频率,肉眼所看到的点阵是连续点亮,所有本设计使

10、用的工作时钟为1KHZ是绰绰有余的。1.2 关键功能电路设计本电路设计的主要难在于对数据信息的显示编码,即数据编码功能块的设计。任务要求显示0-9的数字和大小写的英文字符,共62个显示图样,则首先必须对这62个要显示的数据进行字模提取,就是要提取各个图样的显示码。表1.1 各个字符(数字)对应的ASCLL码和显示码表数字和字母ASCLL码(十六进制)显示码(十六进制)0308he7,8hdb,8h99,8h89,8h91,8h99,8hdb,8he71318he7,8hc7,8he7,8he7,8he7,8he7,8he7,8hc32328he7,8hdb,8h99,8h99,8hf3,8he

11、7,8hcf,8h813338hc3,8h99,8h99,8hf3,8hf3,8h99,8h99,8hc34348hfb,8hf3,8he3,8hd3,8hb3,8h81,8hf3,8hf35358h81,8h9f,8h9f,8h83,8hf9,8h99,8h99,8hc36368hf7,8hef,8hdf,8h83,8h99,8h99,8hdb,8he77378h81,8hf9,8hf9,8hf3,8he7,8he7,8he7,8he78388hc3,8h99,8h99,8hc3,8h99,8h99,8h99,8hc39398he7,8hdb,8h99,8h99,8hc1,8hfb,8hf7

12、,8hefA418he7,8hc3,8hdb,8h99,8h81,8h3c,8h3c,8h3cB428h03,8h39,8h39,8h03,8h39,8h39,8h39,8h03C438hc1,8h9e,8h3f,8h3f,8h3f,8h3f,8h9e,8hc1D448h03,8h39,8h3c,8h3c,8h3c,8h3c,8h39,8h03E458h00,8h3f,8h3f,8h01,8h3f,8h3f,8h3f,8h00F468h00,8h3f,8h3f,8h01,8h3f,8h3f,8h3f,8h3fG478hc3,8h99,8h3c,8h3f,8h30,8h3c,8h99,8hc3H

13、488h3c,8h3c,8h3c,8h00,8h3c,8h3c,8h3c,8h3cI498hc3,8he7,8he7,8he7,8he7,8he7,8he7,8hc3J4a8hc0,8hf9,8hf9,8hf9,8hf9,8h39,8h33,8h87K4b8h39,8h33,8h27,8h0f,8h27,8h33,8h39,8h3cL4c8h3f,8h3f,8h3f,8h3f,8h3f,8hx,8h3e,8h00续表1.1 各个字符(数字)对应的ASCLL码和显示码表M4d8h7e,8h3c,8h18,8h24,8h3c,8h3c,8h3c,8h3cN4e8h7c,8h3c,8h1c,8h2c

14、,8h34, 8h37,8h3c,8h3eO4f8hc3,8h99,8h3c,8h3c,8h3c,8h3c,8h99,8hc3P508h01,8h3c,8h3c,8h01,8h3f,8h3f,8h3f,8h3fQ518hc3,8h99,8h3c,8h3c,8h34,8h38,8h99,8hc2R528h01,8h3c,8h3c,8h01,8h0f,8h27,8h33,8h38S538hc1,8h9c,8h3f,8h8f,8hf1,8hfc,8h39,8h83T548h00,8he7,8he7,8he7,8he7,8he7,8he7,8he7U558h3c,8h3c,8h3c,8h3c,8h3c

15、,8h3c,8h3c,8h81V568h3c,8h3c,8h3c,8h99,8h99,8hdb,8hc3,8he7W578h3c,8h24,8h24,8h24,8h24,8h24,8h24,8h99X588h3c,8h18,8hdb,8he7,8he7,8hdb,8h18,8h3cY598h3c,8h3c,8h99,8hc3,8he7,8he7,8he7,8he7Z5a8h00,8hf9,8hf3,8he7,8hcf,8h9f,8h3f,8h00a618hff,8hff,8hc7,8hb7,8hb7,8hcb,8hff,8hffb628hbf,8hbf,8ha3,8h9d,8h9d,8ha3,

16、8hff,8hffc638hff,8hff,8hc7,8h9f,8h9f,8hc7,8hff,8hffd648hfd,8hfd,8hc5,8hb9,8hb9,8hc5,8hff,8hffe658hf8,8hc7,8hbb,8h83,8hbf,8hc7,8hff,8hfff668hf7,8hef,8hc7,8hef,8hef,8hef,8hff,8hffg678hff,8hff,8hc3,8hbb,8hbb,8hc3,8hfb,8h8eh688hdf,8hdf,8hc7,8hdb,8hdb,8hdb,8hff,8hffi698hef,8hff,8hcf,8hef,8hef,8hc7,8hff,8

17、hffj6a8hf7,8he7,8hf7,8hf7,8hf7,8hf7,8hd7,8hefk6b8hdf,8hdf,8hd7,8hcf,8hd7,8hdb,8hff,8hffl6c8hef,8hef,8hef,8hef,8hef,8he7,8hff,8hffm6d8hff,8hff,8hc3,8hd5,8hd5,8hd5,8hff,8hffn6e8hff,8hff,8h87,8hdb,8hdb,8hdb,8hff,8hffo6f8hff,8hff,8he7,8hdb,8hdb,8he7,8hff,8hffp708hff,8hff,8h87,8hdb,8hc7,8hdf,8hdf,8hdfq71

18、8hff,8hff,8he1,8hdb,8he3,8hfb,8hfb,8hf9r728hff,8hff,8ha3,8hdf,8hdf,8hdf,8hff,8hffs738hff,8he3,8hdf,8he7,8hfb,8hc7,8hff,8hfft748hef,8hef,8hc7,8hef,8heb,8hf7,8hff,8hffu758hff,8hff,8hdb,8hdb,8hdb,8he1,8hff,8hffv768hff,8hff,8h99,8hdb,8hdb,8he7,8hff,8hffw778hff,8hff,8hab,8hab,8hab,8hd7,8hff,8hffx788hff,8

19、hff,8hdb,8he7,8he7,8hdb,8hff,8hffy798hff,8hff,8hdb,8hdb,8hdb,8he3,8hf7,8hcfz7a8hff,8hff,8hc3,8hf7,8hef,8hc3,8hff,8hff1.3 电路接口驱动电路根据信号功能将接口分为4部分,分别是时钟信号、复位信号、扫描信号、显示信号。具体接口如下表1.2所示。表1.2 接口信号表名称IO属性 描述备注clkIn 输入时钟,1KHz频率上升沿有效rstIn 复位信号,给整个电路初值低电平复位sel7:0out7bit的扫描信号,从左到右列扫描,赋有扫描码高点平有效dout7:0out7bit的显示

20、信号,与sel信号同步,当sel=8h80时,把第一个扫描码赋给dout,当sel=8h40时,把第二个扫描码赋给dout 以此类推低电平点亮1.4 电路功能框图 依照任务要求和功能,将电路分为4个功能模块:对ROM的操作和读出数据模块、对数据的编码模块、产生扫描信号的模块、根据控制信号选择显示输出模块。 电路的功能框图如下所示。图1.1 电路功能框图图中输入信号只需时钟信号clk和复位信号rst,分别要接到有需要时钟和复位的模块,电路的输出为dout7:0和sel7:0接到8X8点阵上。ROM模块包括一个1000进制计数器、一个64进制计数器、一个ROM,其中1000进制计数器是对工作频率为

21、1KHz的时钟1000进行分频,产生cnt9:0的输出给64进制计数器,64进制计数器当cnt=999时加1计数,产生地址信号add5:0给ROM的地址端口,最后由ROM读取文件产生需要显示的信息给数据编码模块。数据编码模块data coding主要是对ROM模块提供数据信息进行显示编码,对照上面的表1.1的编码方式进行编码,产生do07:0、do17:0、do77:0共64bit的编码输出给后面的选择显示模块。扫描产生模块scanning out主要是通过时钟驱动产生需要的扫描信号s7:0,8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01循环输出。选择显示模块s

22、elect show还包括后面的8bit d触发器,根据扫描产生模块的s7:0来选择编码产生的64bit显示码对dout7:0赋值,如s=8h80时,将do77:0赋给dout7:0,最后通过d触发器输出。扫描信号s7:0再输出前,也通过了8bit d触发器,因为显示码通过d触发器后时序延迟了一个工作周期,为了让扫描码与显示码同步,也必须加一个d触发器,产生最终的扫描信号sel7:0输出。1.5 验证方案设计验证主要有两部分内容:一是对HDL代码进行仿真验证,二是下载到硬件芯片上实现功能的验证。对于仿真部分的验证主要在于构造激励上,仿真时不需要ROM模块,所以激励文件不仅要对时钟和复位信号进行

23、设定,还要对数据data7:0信号进行设定。本设计需要显示10个数字、26个大写字母和26个小写字母共62个字符,所以要分别把这62个字符对应的ASCLL码赋给data,当然也可能输入其他字符,本设计对于其他字符一律LED灯全亮。对于硬件上的验证,本设计采用自动滚动显示方式,即只需要根据时钟和复位信号输入,硬件自己读出ROM模块里文件的数据,然后是点阵上点亮或熄灭对应的LED灯,显示出想要的图样。2 模块设计本设计共有4个主要的功能模块,分别是ROM模块、数据编码模块、扫描产生模块和选择显示模块,这里对模块的详细功能和时序关系进行细致说明。2.1 ROM模块设计ROM模块功能是要自动读出文件中

24、要显示的信息送到后面的驱动电路中,则需要一个1000进制计数器、一个64进制计数器、一个ROM。(1)因为整个电路的工作频率是1KHz,设计显示一个图样的持续时间为1s,则1000进制计数器的作用在于产生一个周期为1000个时钟周期的信号cnt7:0,给64进制计数器。(2)64进制计数器功能在于自动产生地址add5:0给ROM的地址端口,每当cnt=999时,add自己加1一次,从地址0开始一直读到地址63再返回地址0,从而实现自动从ROM读出数据。(3)对于ROM的应用,Quartus II的宏单元中提供了ROM的使用,可供用户自由调用和设置,如图2-1就是在宏里面调界面,图2-2是对RO

25、M进行设置,本设计只显示62个字符,随意ROM的容量就设置64(第一个位置给00,最后一个给其他字符的ASCLL码)。图2-1 ROM的调用 图2-2 ROM的设置ROM模块的接口信号有时钟clk、复位rst、数据data7:0,具体如下表2.1所示。表2.1 ROM模块接口信号表 名称IO属性 描述备注clkin 输入时钟,频率1KHz上升沿有效rstin 复位信号,给初值低电平有效data7:0out 从ROM中读出来的ASCLL码数据,要送到数据编码模块ROM模块的RTL级电路如下图2.3所示。图2.3 ROM模块的RTL电路图2.2数据编码模块设计数据编码模块data coding主要

26、是对ROM模块提供数据(ASCLL码)信息进行显示编码,通过case语句,把data对照上面的表1.1的编码方式进行编码,分别赋给do07:0、do17:0、do77:0共64bit的编码输出,如要显示图1.3 字样,则do7=8he8,do6=8hdb,do5=8h99,do4=8h88,do3=8h91,do2=8h99,do1=8hdb,do0=8he7即可在点阵上显示出“0”。复位时,分别给64bit的输出赋为1(即全灭),如果data不是数字和字母的ASCLL码,则输出全赋为0(即全亮)。模块最后将do0、do1do7输出给后面的选择显示模块。数据编码模块data coding的接口

27、信号有时钟clk、复位rst、数据data、编码输出do0、do1do7,具体如下表2.2所示。表2.2数据编码模块接口信号表名称IO属性描述备注clkin输入时钟,频率1KHz上升沿有效rstin复位信号,可以给输出初值低电平有效data7:0in从ROM模块送来的ASCLL码数据,用于编码do07:0out点阵显示第8行8个LED的显示码do17:0out点阵显示第7行8个LED的显示码do77:0out点阵显示第1行8个LED的显示码数据编码流程图如下图2.4所示。图2.4 数据编码模块data coding流程图2.3 扫描产生模块设计扫描产生模块scanning out主要是通过时钟

28、驱动产生需要的扫描信号s7:0,控制LED灯显示行位置,8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01循环输出,分别驱动第1行,第2行、第7行的LED灯,因为工作时钟频率是1KHz,所以s的扫描周期是8ms,大于人肉眼所能分辨的频率,所以在LED上显示是连续点亮的。扫描产生模块的接口信号有时钟clk、复位rst、扫描码s7:0,具体如下表2.1所示。表2.3 扫描产生模块接口信号表 名称IO属性 描述备注clkin 输入时钟,频率1KHz上升沿有效rstin 复位信号,给s7:0初值8h00低电平有效s7:0out 周期为8个时钟周期的扫描信号,用来驱动点阵高电

29、平驱动LED扫描产生模块的工作波形图如图2-5。图2-5 扫描产生模块的工作波形图2.4 选择显示模块设计选择显示模块select show功能是根据扫描产生模块的s7:0来选择编码产生的64bit显示码对dout7:0赋值,从而避免了显示时无法点亮正确的LED灯而出现显示混乱,即让显示码和扫描码同步,如s=8h80时,将do77:0赋给dout7:0,s=8h80即驱动第一行的8个LED灯,而dout7:0=do77:0即用来点亮第一行8个LED灯。考虑到组合电路输出的波形不够理想,dout7:0使用8bit的d触发器输出的从而得到理想的波形,但是于此同时延迟了一个工作周期,造成与扫描码不同

30、步,所以最后扫描码s7:0也要接一个8bit d触发器输出sel7:0使二者同步。选择显示模块的接口信号有时钟clk、复位rst、扫描码s7:0、编码输出do0、do1do7、显示码dout7:0,具体如下表2.4所示。表2.4 选择显示模块接口信号表名称IO属性描述备注clkin 输入时钟,频率1KHz上升沿有效rstin 复位信号,给dout7:0初值8hff低电平有效s7:0in 周期为8个时钟周期的扫描信号,用来驱动点阵高电平驱动LEDdata7:0in 从ROM模块送来的ASCLL码数据,用于编码do07:0in点阵显示第8行8个LED的显示码do17:0in点阵显示第7行8个LED

31、的显示码do77:0in点阵显示第1行8个LED的显示码dout7:0out最后的输出显示码低电平点亮LED选择显示模块的工作波形图如图2-6。图2-6 选择显示模块的工作波形图3 设计仿真与测试功能验证分为两部分,一部分是电路功能与时序的软件仿真,采用Moldsim完成;另一部分是将配置文件下载后在开发板上对设计进行测试,通过开关、按键、8X8点阵LED显示屏方式进行。3.1仿真与测试的功能列表功能仿真与测试要针对每一条设计需要实现的功能进行。设计中要求实现的、需要仿真与测试功能列表如下:1) 复位功能当复位信号低有效时,电路应处于复位状态:任何输入没有响应、输出全是复位状态;当复位信号变为

32、高电平时,电路正常工作。2) 时钟信号当有时钟时电路正常工作;没有时钟信号时,除复位外所有的输入没有响应,所有的输出没有变化。3) 输入数据数据改变时,数据只影响显示信号显示码的改变。4) 扫描信号复位时,扫描信号sel7:0=8h00;正常工作时,sel只能随着时钟信号上升沿的到来以8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01的循环顺序输出,与输入数据无关。5) 显示信号当输入数据不变的时候,显示信号随着时钟和扫描信号同步变化,并能表示出于数据相应的显示码;输入数据发生改变的时候,显示码随即改变。6) 点阵显示测试时,当电路出于复位状态,点阵上的LED全灭;

33、正常工作时,点阵能自动有规律地显示预期的图样。3.2 仿真平台构建和仿真结果3.2.1 顶层仿真平台与激励仿真激励的构造要尽可能多的构造出所有可能,并能验证电路功能。这里构造一个测试平台,相应文件为dianzhen_tb.v,其中将位于文件dianzhen_stim.v中的激励信号引入,加载到例化的功能模块中,测试平台设定时间单位为100ns,并引用电路模块。构建激励文件,一是要构造时钟clk和异步复位信号rst,复位信号只要开始为零,之后让电路正常工作即可;二是输入数据data,要显示数字和字母,只需开始为0,之后让其按顺序自动变化为62个字符相应的ASCLL码,又因为可能数据不为相应的AS

34、CLL码,最后加一两个其他ASCLL码即可。3.2.2 电路功能仿真结果这里仿真结果截取了仿真中最重要的几个点,如下图。图3-1 仿真开始 开始复位信号为低电平,且第一个上升沿没来时,sel7:0和dout7:0都为x状态,上升沿来后二者进入复位状态,即sel=8h0,dout=8hff;然后进入工作状态后,第一个上升沿二者无变化,因为电路设计时输出加了d触发器,所以二者时序延迟1个周期,之后sel7:0以8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01的循环顺序变化,因为data7:0显示为8h00,这个ASCLL码LED要全亮,所以dout一直为零。图3-2

35、0显示的仿真图1秒后data7:0变为8b30,即0的ASCLL码,之后的第二个时钟上升沿,dout7:0变化为8he7,此时sel=8h01即在驱动最后一行数码管,此后8个时钟周期dout7:0分别为8he7,8hdb,8h99,8h89,8h91,8h99,8hdb,8he7,与sel7:0相对应,正是0的显示方式。图3-3 1显示的仿真图2秒后data变成1的ASCLL码8h31,之后从第一个sel=8h80开始8个工作周期,dout7:0依次为8he7,8hc7,8he7,8he7,8he7,8he7,8he7,8hc3,即1的显示码。图3-4 2显示的仿真图data变成2的ASCLL

36、码8h32,之后从第一个sel=8h80开始8个工作周期,dout7:0依次为8he7,8hdb,8h99,8h99,8hf3,8he7,8hcf,8h81,即2的显示码。图3-5 A显示的仿真图data变成A的ASCLL码8h41,之前是显示字符9,之后从第一个sel=8h80开始8个工作周期,dout7:0依次为8he7,8hc3,8hdb,8h99,8h81,8h3c,8h3c,8h3c,即,A的显示码。图3-6 a显示的仿真图data变成a的ASCLL码8h61,之前是显示字符Z之后,第一个sel=8h80开始8个工作周期,dout7:0依次为8hff,8hff,8hc7,8hb7,8

37、hb7,8hcb,8hff,8hff,即a的显示码。图3-7 z显示和其他字符的仿真图data变成ASCLL码8h7b之前,是显示字符z的ASCLL码8h7a, dout7:0依次为8hff,8hff,8hc3,8hf7,8hef,8hc3,8hff,8hff(从sel=8h80到sel=8h01的完整8个工作周期),即z的显示码,之后显示全为0,即除了数字和大小写字母的ASCLL外,其他字符的ASCLL码LED全亮。3.3 测试环境的搭建与测试结果3.3.1 测试环境模拟本设计是在Kit_FPGA_V2.5的FPGA开发板进行测试的,如图3-8,然后外接一个8X8点阵屏,需要16个引脚,如图

38、3-9、图3-10和图3-11,选取一个拨档开关作为复位,选取频率1KHz时钟,最后输出会在点阵屏上显示。图3-8 Kit_FPGA_V2.5开发板 图3-9 8X8点阵屏 图3-10 开发板的接线 图3-11 点阵上的接线测试时,ROM所访问的.mif文件里的数据如图3-12所示。图3-12 .mif文件3.3.2 电路测试结果复位开关低电平时,点阵无显示,复位拨到高电平随即全亮,之后按持续时间1秒依次显示:0,1,2,3,4,5,6,7,8,9A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,

39、l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;然后全亮2秒,又接着上面的显示。4 电路约束与综合实现FPGA/CPLD设计中的约束主要可以分为两个方面,一是时序约束,另一个是管脚约束,而一般不考虑面积约束、设计规则约束和工作环境约束。本设计的综合工具是Quartus II。4.1 时序约束时序约束主要分为输入/输出延时约束、时钟约束以及异步时钟数据间的约束等内容。本设计中由于是同步设计,而且没有纯组合逻辑的输入与输出,时钟约束变得简单。设计中仅需要对输入延时、输出延时、触发器间的延时进行约束即可。根据实际的工作环境,设计电路工作时钟设定为1KHz就够用了,实际上,这样的时钟约束相

40、对于Cyclone II的器件和Quartus II默认的工作频率而言,是没有必要添加的。但是实现中为了设计的完整性,添加了时钟约束。输入延时和输出延时均设定为时钟周期的60%,时钟周期1ms。时钟约束的tcl语句如下:create_clock -name clk -period 1000000set_input_delay -clock clk 600000 set_output_delay -clock clk 600000 4.2 引脚锁定约束图4-1 引脚锁定由于Kit_FPGA_V2.5的FPG开发板上的电源、时钟、复位功能键等的连接已经固定,管脚约束所要完成的只要锁定即可,但是该开

41、发板需要外接8X8点阵,所以要先仔细阅读开发板的原理图,并找到16合适的管脚连接点阵,并进行引脚约束,引脚约束的图标如图4-1所示。4.3 电路综合报告图4-2 资源报告如图4-2所示,就是本设计综合报告给出的资源报告,其中I/O管脚使用18个,全部组合电路功能块使用514个等。4.4 设计实现与下载1.启动编辑器后,首先进行硬件设置,点击Handware Swtup按扭,选择USB-Blaster;2.分别点击Add File和Add Device添加对应的芯片和配置文件;3.选定配置文件,点击star按钮即可下载到芯片。结论本次设计经过仿真和测试,成功完成地预想的设计,8X8点阵成功点亮顺

42、序显示了数字和字符,并达到了任务书要求,虽然设计过程可圈可点但是最终结果还是令人满意的。在设计的过程中,由于特殊情况,即实验室原有的FPGA实验箱上并无8X8点阵,而且不允许外接,所以当时我着急了,正寻思要不要换个课题,还好有班长和老师相助得到另外的FPGA开发板和点阵用来做本次设计,再在此表示谢意,但是也是这个原因,我也对FPGA的工作原理也比其他同学有了更深的了解。由于初次接触8X8点阵,对其引脚和原理一无所知,于是我捉摸着想是否和数码管的工作原理一样,经过资料查找,发现二者的确有相似之处,当然工程也以报废两个点阵为代价,最后换来的是对LED显示技术的深刻认识。设计最后,也发现设计存在2个

43、不足之处:一是数据编码模块代码过于繁琐,不知使用何种更简单的方法去编码,我想可能才查找表的方式;二是LED显示的结果有些粗糙,一些LED灯该亮的不亮,不亮的亮了,这个或许设计的驱动不够。总之这些问题应当在日后的学习中努力尝试中去解决。参考文献1 江国强.EDA技术与应用.电子工业出版社,2006.7 2 赵全利,秦春.EDA技术及应用教程.机械工业出版社,2010.83 王金明.数字系统设计与Verilog HDL.电子工业出版社,2009.14 李群芳.单片微型计算机与接口技术.电子工业出版社,2013.55 EDA先锋工作室.Altera FPGA/CPLD设计(基础篇).人民邮电出版社,

44、2005.7附录A 设计源代码module dianzhen(clk,rst,dout,sel); input clk,rst;output7:0 dout;output7:0 sel;wire7:0 data;wire clk,rst;reg7:0 dout;reg7:0 sel;reg9:0 cnt;reg7:0 s;reg5:0 add;reg7:0 do0;reg7:0 do1;reg7:0 do2;reg7:0 do3;reg7:0 do4;reg7:0 do5;reg7:0 do6;reg7:0 do7;/ROM模块always(posedge clk,negedge rst) i

45、f(!rst) cnt<=0; else if(cnt=999) cnt<=0; else cnt<=cnt+1;always(posedge clk,negedge rst) if(!rst) add<=0; else if(cnt=999) add<=add+1; else add<=add;rom rom ( /调用ROM.address(add),.clock(clk),.q(data);/扫描产生模块always(posedge clk,negedge rst) if(!rst) s<=8'h00; else case(s) 8

46、9;h00: s<=8'h80; 8'h80: s<=8'h40; 8'h40: s<=8'h20; 8'h20: s<=8'h10; 8'h10: s<=8'h08; 8'h08: s<=8'h04; 8'h04: s<=8'h02; 8'h02: s<=8'h01; 8'h01: s<=8'h80; endcase/数据编码模块always(posedge clk,negedge rst) if(!rs

47、t) begin do0<=8'hff;do1<=8'hff;do2<=8'hff;do3<=8'hff; do4<=8'hff;do5<=8'hff;do6<=8'hff;do7<=8'hff;end else case(data) 8'h30:begin do0<=8he7;do1<=8hdb;do2<=8h99;do3<=8h89; do4<=8h91;do5<=8h99;do6<=8hdb;do7<=8he7;end8&

48、#39;h31:begin do0<=8he7;do1<=8hc7;do2<=8he7;do3<=8he7; do4<=8he7;do5<=8he7;do6<=8he7;do7<=8hc3;end 8h32:begin do7<=8he7;do6<=8hdb;do5<=8h99;do4<=8h99;do3<=8hf3;do2<=8he7;do1<=8hcf;do0<=8h81;end 8h33:begin do7<=8hc3;do6<=8h99;do0<5=8h99;do4<

49、=8hf3;do3<=8hf3;do2<=8h99;do1<=8h99;do0<=8hc3;end 8h34:begin do7<=8hfb;do6<=8hf3;do0<5=8he3;do4<=8hd3;do3<=8hb3;do2<=8h81;do1<=8hf3;do0<=8hf3;end 8h35:begin do7<=8h81;do6<=8h9f;do0<5=8h9f;do4<=8h83; do3<=8hf9;do2<=8h99;do1<=8h99;do0<=8hc3;e

50、nd 8h36:begin do7<=8hf7;do6<=8hef;do5<=8hdf;do4<=8h83; do3<=8h99;do2<=8h99;do1<=8hdb;do0<=8he7;end 8h37:begin do7<=8h81;do6<=8hf9;do5<=8hf9;do4<=8hf3; do3<=8he7;do2<=8he7;do1<=8he7;do0<=8he7;end 8h38:begin do7<=8hc3;do6<=8h99;do5<=8h99;do4<

51、=8hc3; do3<=8h99;do2<=8h99;do1<=8h99;do0<=8hc3;end 8h39:begin do7<=8he7;do6<=8hdb;do5<=8h99;do4<=8h99; do3<=8hc1;do2<=8hfb;do1<=8hf7;do0<=8hef;end 8h41:begin do7<=8he7;do6<=8hc3;do5<=8hdb;do4<=8h99; do3<=8h81;do2<=8h3c;do1<=8h3c;do0<=8h3c;e

52、nd 8h42:begin do7<=8h03;do6<=8h39;do5<=8h39;do4<=8h03; do3<=8h39;do2<=8h39;do1<=8h39;do0<=8h03;end 8h43:begin do7<=8hc1;do6<=8h9e;do5<=8h3f;do4<=8h3f; do3<=8h3f;do2<=8h3f;do1<=8h9e;do0<=8hc1;end 8h44:begin do7<=8h03;do6<=8h39;do5<=8h3c;do4<=8h3c; do3<=8h3c;do2<=8h3c;do1<=8h39;do0<=8h03;end 8h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论