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

下载本文档

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

文档简介

EDA 技术与 FPGA 应用课程设计报告 I 成成 绩绩 评评 定定 表表 学生姓名王靖班级学号 专 业 电子科学与技 术 课程设计题目 8X8LED 点阵数字 显示驱动电路设计 评 语 组长签字: 成绩 日期 20 年 月 日 EDA 技术与 FPGA 应用课程设计报告 II 课程设计任务书课程设计任务书 学 院信息科学与工程学院专 业电子科学与技术 学生姓名王靖班级学号 课程设计题目8X8LED 点阵数字显示驱动电路设计 实践教学要求与任务实践教学要求与任务: : 用 8X8LED 点阵实现简单数字与英文字符的显示。 (1)LED 共阳方式; (2)采用扫描的方式显示信息,信息内容可存于文件; (3)显示方式:自动滚动或者手动选择; (4)自行设计设计下载后的验证方案; (5)完成全部流程:设计文档、模块设计、代码输入、功能仿真、约束与综合、布 局布线、下载验证等。 工作计划与进度安排工作计划与进度安排: : 本设计持续两周,其中最后一天为答辩时间。 第 1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始 设计方案和验证方案的准备; 第 3-5 天:完成设计与验证方案,经指导老师验收后进入模块电路设计(验收设计文 档) ; 第 6-7 天:完成模块电路设计,进行代码输入,并完成代码的仿真(验收代码与仿真 结果) ; 第 8-9 天:约束设计、实现、下载验证(验收验证实现) ; 第 10 天:修正设计、整理设计资料,验收合格后进行答辩。 指导教师: 201 年 月 日 专业负责人: 201 年 月 日 学院教学副院长: 201 年 月 日 EDA 技术与 FPGA 应用课程设计报告 III 摘 要 8X8LED 点阵数字显示驱动电路就是简单地将要显示的信息进行编码后,输出相 应的显示和扫描信号连接到点阵上显示。本文详细介绍了如何用 FPGA 在 8X8LED 点 阵显示方案设计的过程,并在此基础上将整体电路分为 ROM、数据编码、选择显示、 扫描产生等主要功能块。 整体过程采用 Verilog HDL 语言对电路进行功能模块的逻辑设计,然后在 Modelsim 上进行功能仿真,接着在 Quartus II 进行逻辑综合与管脚锁定,最后适配下 载到 Altare 公司的 Cyclone II 芯片的 EP2C5T144C8 上进行验证。在此过程中,顺利的 建立了激励文件和测试平台,功能和时序的仿真,完成了对点阵显示的验证,从而保 证了所设计电路的可行性和准确性。 关键词关键词 Verilog HDL;FPGA;仿真;综合;验证 EDA 技术与 FPGA 应用课程设计报告 IV 目 录 引 言 .1 1 总体电路结构设计 .2 1.18X8 点阵显示原理.2 1.2 关键功能电路设计.3 1.3 电路接口.5 1.4 电路功能框图.5 1.5 验证方案.6 2 模块设计 .7 2.1 ROM 模块设计 .7 2.2 数据编码模块设计.8 2.3 扫描产生模块设计 .10 2.4 选择显示模块设计 .10 3 设计仿真与测试 .12 3.1 仿真与测试的功能列表.12 3.2 仿真平台构建和仿真结果 .12 3.2.1 顶层仿真平台与激励.12 3.2.2 电路功能仿真结果.13 3.3 测试环境的搭建与测试结果 .15 3.3.1 测试环境模拟.15 3.3.2 电路测试结果.16 4 电路约束与综合实现 .17 4.1 时序约束 .17 4.2 引脚锁定约束 .17 4.3 电路综合报告 .18 4.4 设计实现与下载 .18 结论 .19 参考文献 .20 EDA 技术课程设计报告 1 引 言 FPGA 是以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单 的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。 这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大 多数的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或 者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把 FPGA 内部的逻辑块连接起来,就 好像一个电路试验板被放在了一个芯片里。一个出厂后的成品 FPGA 的逻辑块和连接 可以按照设计者而改变,所以 FPGA 可以完成所需要的逻辑功能。本设计就是通过对 8X8 点阵驱动电路的设计,来更熟悉地对 FPGA 进行学习和掌握。 本设计方案是在 Cyclone II 芯片的 EP2C5T144C8 上实现验证,Cyclone II 芯片是 Altera 公司的 2004 年推出的新款 FPGA 器件,其成本比上一代产品 Cyclone 器件低了 30%,逻辑容量大了三倍多。 本设计的综合工具 Quartus II 是 Altera 公司的综合性 PLD/FPGA 开发软件,支持原理图、VHDL、Verilog HDL 以及 AHDL 等多种设计输入 形式。本设计的仿真工具是 Mentor 公司的 Modelsim10.1a,这是业界最优秀的 HDL 语 言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。 基本流程是这样的:首先根据设计任务要求进行方案的设计,包括 8X8 点阵显示 原理的熟悉、电路接口的确定、功能框图与模块的划分、验证方案等,然后就是用 Verilog HDL 对设计电路进行描述、建立测试平台和激励、在仿真工具上进行仿真和矫 正,接着在综合工具上进行时序约束、管脚锁定,最后下载到芯片上实现和验证。 EDA 技术课程设计报告 2 1 总体电路结构设计 1.1 8X8 点阵显示原理 本设计所使用的为一个共阳极 8X8 单色 LED 点阵,型号为 1588AB-5,点阵的外 部引脚的图如图 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 点阵外观及引脚图 图 1-2 0 的显示图样 图 1-3 8X8 点阵 LED 等效电路图 EDA 技术课程设计报告 3 LED 的点亮方式可以按行顺序点亮(行扫描法) ,也可以按列顺序点亮(列扫描法) ,本电路设计采用行描方式。行扫描方式的扫描顺序为从下到上,依次点亮,则顺序 输出的扫描码为 8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01。如果想 要显示“0”如图 1-2,则只需从上到下各行的显示码分别为 8he8,8hdb,8h99,8 h88,8h91,8h99,8hdb,8he7,即可显示出“0”字样。对于扫描信号的频率,因为 人的肉眼所能分辨的最大频率一般为 25Hz 左右,大于这个频率,肉眼所看到的点阵是 连续点亮,所有本设计使用的工作时钟为 1KHZ 是绰绰有余的。 1.2 关键功能电路设计 本电路设计的主要难在于对数据信息的显示编码,即数据编码功能块的设计。任 务要求显示 0-9 的数字和大小写的英文字符,共 62 个显示图样,则首先必须对这 62 个要显示的数据进行字模提取,就是要提取各个图样的显示码。 表 1.1 各个字符(数字)对应的 ASCLL 码和显示码表 数字和字母ASCLL 码(十六进制)显示码(十六进制) 0308he7,8hdb,8h99,8h89,8h91,8h99,8hdb,8he7 1318he7,8hc7,8he7,8he7,8he7,8he7,8he7,8hc3 2328he7,8hdb,8h99,8h99,8hf3,8he7,8hcf,8h81 3338hc3,8h99,8h99,8hf3,8hf3,8h99,8h99,8hc3 4348hfb,8hf3,8he3,8hd3,8hb3,8h81,8hf3,8hf3 5358h81,8h9f,8h9f,8h83,8hf9,8h99,8h99,8hc3 6368hf7,8hef,8hdf,8h83,8h99,8h99,8hdb,8he7 7378h81,8hf9,8hf9,8hf3,8he7,8he7,8he7,8he7 8388hc3,8h99,8h99,8hc3,8h99,8h99,8h99,8hc3 9398he7,8hdb,8h99,8h99,8hc1,8hfb,8hf7,8hef A418he7,8hc3,8hdb,8h99,8h81,8h3c,8h3c,8h3c B428h03,8h39,8h39,8h03,8h39,8h39,8h39,8h03 C438hc1,8h9e,8h3f,8h3f,8h3f,8h3f,8h9e,8hc1 D448h03,8h39,8h3c,8h3c,8h3c,8h3c,8h39,8h03 E458h00,8h3f,8h3f,8h01,8h3f,8h3f,8h3f,8h00 F468h00,8h3f,8h3f,8h01,8h3f,8h3f,8h3f,8h3f G478hc3,8h99,8h3c,8h3f,8h30,8h3c,8h99,8hc3 H488h3c,8h3c,8h3c,8h00,8h3c,8h3c,8h3c,8h3c I498hc3,8he7,8he7,8he7,8he7,8he7,8he7,8hc3 J4a8hc0,8hf9,8hf9,8hf9,8hf9,8h39,8h33,8h87 K4b8h39,8h33,8h27,8h0f,8h27,8h33,8h39,8h3c EDA 技术课程设计报告 4 L4c8h3f,8h3f,8h3f,8h3f,8h3f,8hx,8h3e,8h00 续表 1.1 各个字符(数字)对应的 ASCLL 码和显示码表 M4d8h7e,8h3c,8h18,8h24,8h3c,8h3c,8h3c,8h3c N4e8h7c,8h3c,8h1c,8h2c,8h34, 8h37,8h3c,8h3e O4f8hc3,8h99,8h3c,8h3c,8h3c,8h3c,8h99,8hc3 P508h01,8h3c,8h3c,8h01,8h3f,8h3f,8h3f,8h3f Q518hc3,8h99,8h3c,8h3c,8h34,8h38,8h99,8hc2 R528h01,8h3c,8h3c,8h01,8h0f,8h27,8h33,8h38 S538hc1,8h9c,8h3f,8h8f,8hf1,8hfc,8h39,8h83 T548h00,8he7,8he7,8he7,8he7,8he7,8he7,8he7 U558h3c,8h3c,8h3c,8h3c,8h3c,8h3c,8h3c,8h81 V568h3c,8h3c,8h3c,8h99,8h99,8hdb,8hc3,8he7 W578h3c,8h24,8h24,8h24,8h24,8h24,8h24,8h99 X588h3c,8h18,8hdb,8he7,8he7,8hdb,8h18,8h3c Y598h3c,8h3c,8h99,8hc3,8he7,8he7,8he7,8he7 Z5a8h00,8hf9,8hf3,8he7,8hcf,8h9f,8h3f,8h00 a618hff,8hff,8hc7,8hb7,8hb7,8hcb,8hff,8hff b628hbf,8hbf,8ha3,8h9d,8h9d,8ha3,8hff,8hff c638hff,8hff,8hc7,8h9f,8h9f,8hc7,8hff,8hff d648hfd,8hfd,8hc5,8hb9,8hb9,8hc5,8hff,8hff e658hf8,8hc7,8hbb,8h83,8hbf,8hc7,8hff,8hff f668hf7,8hef,8hc7,8hef,8hef,8hef,8hff,8hff g678hff,8hff,8hc3,8hbb,8hbb,8hc3,8hfb,8h8e h688hdf,8hdf,8hc7,8hdb,8hdb,8hdb,8hff,8hff i698hef,8hff,8hcf,8hef,8hef,8hc7,8hff,8hff j6a8hf7,8he7,8hf7,8hf7,8hf7,8hf7,8hd7,8hef k6b8hdf,8hdf,8hd7,8hcf,8hd7,8hdb,8hff,8hff l6c8hef,8hef,8hef,8hef,8hef,8he7,8hff,8hff m6d8hff,8hff,8hc3,8hd5,8hd5,8hd5,8hff,8hff n6e8hff,8hff,8h87,8hdb,8hdb,8hdb,8hff,8hff o6f8hff,8hff,8he7,8hdb,8hdb,8he7,8hff,8hff p708hff,8hff,8h87,8hdb,8hc7,8hdf,8hdf,8hdf q718hff,8hff,8he1,8hdb,8he3,8hfb,8hfb,8hf9 r728hff,8hff,8ha3,8hdf,8hdf,8hdf,8hff,8hff s738hff,8he3,8hdf,8he7,8hfb,8hc7,8hff,8hff t748hef,8hef,8hc7,8hef,8heb,8hf7,8hff,8hff u758hff,8hff,8hdb,8hdb,8hdb,8he1,8hff,8hff v768hff,8hff,8h99,8hdb,8hdb,8he7,8hff,8hff w778hff,8hff,8hab,8hab,8hab,8hd7,8hff,8hff x788hff,8hff,8hdb,8he7,8he7,8hdb,8hff,8hff y798hff,8hff,8hdb,8hdb,8hdb,8he3,8hf7,8hcf EDA 技术课程设计报告 5 z7a8hff,8hff,8hc3,8hf7,8hef,8hc3,8hff,8hff 1.3 电路接口 驱动电路根据信号功能将接口分为 4 部分,分别是时钟信号、复位信号、扫描信 号、显示信号。具体接口如下表 1.2 所示。 表 1.2 接口信号表 名称 IO 属性 描述备注 clkIn 输入时钟,1KHz 频率上升沿有效 rstIn 复位信号,给整个电路初值低电平复位 sel7:0out7bit 的扫描信号,从左到右列扫描,赋有扫描码高点平有效 dout7:0out 7bit 的显示信号,与 sel 信号同步,当 sel=8h80 时,把第一个扫描码赋给 dout,当 sel=8h40 时, 把第二个扫描码赋给 dout 以此类推 低电平点亮 1.4 电路功能框图 依照任务要求和功能,将电路分为 4 个功能模块:对 ROM 的操作和读出数据模块、 对数据的编码模块、产生扫描信号的模块、根据控制信号选择显示输出模块。 电路的功能框图如下所示。 EDA 技术课程设计报告 6 图 1.1 电路功能框图 图中输入信号只需时钟信号 clk 和复位信号 rst,分别要接到有需要时钟和复位的 模块,电路的输出为 dout7:0和 sel7:0接到 8X8 点阵上。 ROM 模块包括一个 1000 进制计数器、一个 64 进制计数器、一个 ROM,其中 1000 进制计数器是对工作频率为 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,8 h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01 循环输出。 选择显示模块 select 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 模块,所以激励文 件不仅要对时钟和复位信号进行设定,还要对数据 data7:0信号进行设定。本设计需 要显示 10 个数字、26 个大写字母和 26 个小写字母共 62 个字符,所以要分别把这 62 个字符对应的 ASCLL 码赋给 data,当然也可能输入其他字符,本设计对于其他字符一 律 LED 灯全亮。 对于硬件上的验证,本设计采用自动滚动显示方式,即只需要根据时钟和复位信 号输入,硬件自己读出 ROM 模块里文件的数据,然后是点阵上点亮或熄灭对应的 LED 灯,显示出想要的图样。 EDA 技术课程设计报告 7 2 模块设计 本设计共有 4 个主要的功能模块,分别是 ROM 模块、数据编码模块、扫描产生模 块和选择显示模块,这里对模块的详细功能和时序关系进行细致说明。 2.1 ROM 模块设计 ROM 模块功能是要自动读出文件中要显示的信息送到后面的驱动电路中,则需要 一个 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 是对 ROM 进行设置,本设计只 显示 62 个字符,随意 ROM 的容量就设置 64(第一个位置给 00,最后一个给其他字符 的 ASCLL 码) 。 图 2-1 ROM 的调用 图 2-2 ROM 的设置 EDA 技术课程设计报告 8 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 主要是对 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=8 hdb,do0=8he7 即可在点阵上显示出“0”。 复位时,分别给 64bit 的输出赋为 1(即全灭) ,如果 data 不是数字和字母的 ASCLL 码,则输出全赋为 0(即全亮) 。 EDA 技术课程设计报告 9 模块最后将 do0、do1do7 输出给后面的选择显示模块。 数据编码模块 data coding 的接口信号有时钟 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 流程图 EDA 技术课程设计报告 10 2.3 扫描产生模块设计 扫描产生模块 scanning out 主要是通过时钟驱动产生需要的扫描信号 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 个时钟周期的扫描信号,用来驱动点 阵 高电平驱动 LED 扫描产生模块的工作波形图如图 2-5。 图 2-5 扫描产生模块的工作波形图 2.4 选择显示模块设计 选择显示模块 select show 功能是根据扫描产生模块的 s7:0来选择编码产生的 64bit 显示码对 dout7:0赋值,从而避免了显示时无法点亮正确的 LED 灯而出现显示混 乱,即让显示码和扫描码同步,如 s=8h80 时,将 do77:0赋给 dout7:0,s=8h80 即 EDA 技术课程设计报告 11 驱动第一行的 8 个 LED 灯,而 dout7:0=do77:0即用来点亮第一行 8 个 LED 灯。 考虑到组合电路输出的波形不够理想,dout7:0使用 8bit 的 d 触发器输出的从而得 到理想的波形,但是于此同时延迟了一个工作周期,造成与扫描码不同步,所以最后 扫描码 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 个时钟周期的扫描信号,用来驱动点 阵 高电平驱动 LED data7:0in 从 ROM 模块送来的 ASCLL 码数据,用于编码 do07:0in点阵显示第 8 行 8 个 LED 的显示码 do17:0in点阵显示第 7 行 8 个 LED 的显示码 do77:0in点阵显示第 1 行 8 个 LED 的显示码 dout7:0out最后的输出显示码低电平点亮 LED 选择显示模块的工作波形图如图 2-6。 图 2-6 选择显示模块的工作波形图 EDA 技术课程设计报告 12 3 设计仿真与测试 功能验证分为两部分,一部分是电路功能与时序的软件仿真,采用 Moldsim 完成; 另一部分是将配置文件下载后在开发板上对设计进行测试,通过开关、按键、8X8 点 阵 LED 显示屏方式进行。 3.1 仿真与测试的功能列表 功能仿真与测试要针对每一条设计需要实现的功能进行。设计中要求实现的、需 要仿真与测试功能列表如下: 1) 复位功能当复位信号低有效时,电路应处于复位状态:任何输入没有响应、 输出全是复位状态;当复位信号变为高电平时,电路正常工作。 2) 时钟信号当有时钟时电路正常工作;没有时钟信号时,除复位外所有的输 入没有响应,所有的输出没有变化。 3) 输入数据数据改变时,数据只影响显示信号显示码的改变。 4) 扫描信号复位时,扫描信号 sel7:0=8h00;正常工作时,sel 只能随着时 钟信号上升沿的到来以 8h80,8h40,8h20,8h10,8h08,8h04,8 h02,8h01 的循环顺序输出,与输入数据无关。 5) 显示信号当输入数据不变的时候,显示信号随着时钟和扫描信号同步变化, 并能表示出于数据相应的显示码;输入数据发生改变的时候,显示码随即改变。 6) 点阵显示测试时,当电路出于复位状态,点阵上的 LED 全灭;正常工作时, 点阵能自动有规律地显示预期的图样。 EDA 技术课程设计报告 13 3.2 仿真平台构建和仿真结果 3.2.1 顶层仿真平台与激励 仿真激励的构造要尽可能多的构造出所有可能,并能验证电路功能。这里构造一 个测试平台,相应文件为 dianzhen_tb.v,其中将位于文件 dianzhen_stim.v 中的激励信 号引入,加载到例化的功能模块中,测试平台设定时间单位为 100ns,并引用电路模块。 构建激励文件,一是要构造时钟 clk 和异步复位信号 rst,复位信号只要开始为零,之 后让电路正常工作即可;二是输入数据 data,要显示数字和字母,只需开始为 0,之后 让其按顺序自动变化为 62 个字符相应的 ASCLL 码,又因为可能数据不为相应的 ASCLL 码,最后加一两个其他 ASCLL 码即可。 3.2.2 电路功能仿真结果 这里仿真结果截取了仿真中最重要的几个点,如下图。 图 3-1 仿真开始 开始复位信号为低电平,且第一个上升沿没来时,sel7:0和 dout7:0都为 x 状态, 上升沿来后二者进入复位状态,即 sel=8h0,dout=8hff;然后进入工作状态后,第一 EDA 技术课程设计报告 14 个上升沿二者无变化,因为电路设计时输出加了 d 触发器,所以二者时序延迟 1 个周 期,之后 sel7:0以 8h80,8h40,8h20,8h10,8h08,8h04,8h02,8h01 的循环 顺序变化,因为 data7:0显示为 8h00,这个 ASCLL 码 LED 要全亮,所以 dout 一直 为零。 图 3-2 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 显示的仿真图 EDA 技术课程设计报告 15 data 变成 2 的 ASCLL 码 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,8hb7,8hcb,8hff,8hff,即 a 的显 EDA 技术课程设计报告 16 示码。 图 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 个引脚,如图 3-9、图 3-10 和图 3-11,选取一个拨档开关作为 复位,选取频率 1KHz 时钟,最后输出会在点阵屏上显示。 图 3-8 Kit_FPGA_V2.5 开发板 图 3-9 8X8 点阵屏 图 3-10 开发板的接线 图 3-11 点阵上的接线 EDA 技术课程设计报告 17 测试时,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,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; 然后全亮 2 秒,又接着上面的显示。 EDA 技术课程设计报告 18 4 电路约束与综合实现 FPGA/CPLD 设计中的约束主要可以分为两个方面,一是时序约束,另一个是管脚 约束,而一般不考虑面积约束、设计规则约束和工作环境约束。本设计的综合工具是 Quartus II。 4.1 时序约束 时序约束主要分为输入/输出延时约束、时钟约束以及异步时钟数据间的约束等内 容。本设计中由于是同步设计,而且没有纯组合逻辑的输入与输出,时钟约束变得简 单。设计中仅需要对输入延时、输出延时、触发器间的延时进行约束即可。 根据实际的工作环境,设计电路工作时钟设定为 1KHz 就够用了,实际上,这样 的时钟约束相对于 Cyclone II 的器件和 Quartus II 默认的工作频率而言,是没有必要添 加的。但是实现中为了设计的完整性,添加了时钟约束。输入延时和输出延时均设定 为时钟周期的 60%,时钟周期 1ms。 时钟约束的 tcl 语句如下: create_clock -name clk -period set_input_delay -clock clk set_output_delay -clock clk 4.2 引脚锁定约束 图 4-1 引脚锁定 EDA 技术课程设计报告 19 由于 Kit_FPGA_V2.5 的 FPG 开发板上的电源、时钟、复位功能键等的连接已经固 定,管脚约束所要完成的只要锁定即可,但是该开发板需要外接 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 按钮即可下载到芯片。 EDA 技术课程设计报告 20 结论 本次设计经过仿真和测试,成功完成地预想的设计,8X8 点阵成功点亮顺序显示 了数字和字符,并达到了任务书要求,虽然设计过程可圈可点但是最终结果还是令人 满意的。在设计的过程中,由于特殊情况,即实验室原有的 FPGA 实验箱上并无 8X8 点阵,而且不允许外接,所以当时我着急了,正寻思要不要换个课题,还好有班长和 老师相助得到另外的 FPGA 开发板和点阵用来做本次设计,再在此表示谢意,但是也 是这个原因,我也对 FPGA 的工作原理也比其他同学有了更深的了解。由于初次接触 8X8 点阵,对其引脚和原理一无所知,于是我捉摸着想是否和数码管的工作原理一样, 经过资料查找,发现二者的确有相似之处,当然工程也以报废两个点阵为代价,最后 换来的是对 LED 显示技术的深刻认识。设计最后,也发现设计存在 2 个不足之处:一 是数据编码模块代码过于繁琐,不知使用何种更简单的方法去编码,我想可能才查找 表的方式;二是 LED 显示的结果有些粗糙,一些 LED 灯该亮的不亮,不亮的亮了, 这个或许设计的驱动不够。总之这些问题应当在日后的学习中努力尝试中去解决。 EDA 技术课程设计报告 21

温馨提示

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

评论

0/150

提交评论