电子信息综合实践实习报告_第1页
电子信息综合实践实习报告_第2页
电子信息综合实践实习报告_第3页
电子信息综合实践实习报告_第4页
电子信息综合实践实习报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

电子信息综合实践报告电子信息综合实践报告 8 8 位运算器电路设计位运算器电路设计 北华大学电气信息工程学院北华大学电气信息工程学院 1 目目 录录 1 实习目的 2 2 运算器的国内外发展 3 3 FPGA 的发展 3 4 运算器的设计原理 7 5 运算器源程序 13 6 结果分析 22 7 总结及心得体会 22 2 一 一 实习目的实习目的 综合电子系统实习是电子信息类专业学生了综合电子系统实习是电子信息类专业学生了 解电子系统设计解电子系统设计 实现过程 实现过程 培养实践动手能力的实践性教学环节 培养实践动手能力的实践性教学环节 是电子信息工是电子信息工 程等理工科专业学生一门必修的实践性课程 通过学习和实践 程等理工科专业学生一门必修的实践性课程 通过学习和实践 可可 以让学生进一步接触电路板及电子产品的生产实际 以让学生进一步接触电路板及电子产品的生产实际 了解电子工艺了解电子工艺 生产线的流程和基本管理知识 生产线的流程和基本管理知识 使学生通过设计一个课题 使学生通过设计一个课题 巩固巩固 和加深在和加深在 FPGA FPGA 技术技术 等课程中所学到的理论知识和实验技能 等课程中所学到的理论知识和实验技能 掌握常用电子电路中的一般分析和设计方法 掌握常用电子电路中的一般分析和设计方法 熟悉熟悉 VHDLVHDL 和其他开和其他开 发软件的使用方法 发软件的使用方法 提高电子电路的分析 提高电子电路的分析 设计和实验能力 设计和实验能力 为为 以后从事生产和科研工作打下一定的基础 以后从事生产和科研工作打下一定的基础 为今后专业实验 为今后专业实验 毕毕 业设计准备必要的编程知识和操作技能 业设计准备必要的编程知识和操作技能 同时培养学生严谨的工作同时培养学生严谨的工作 作风 作风 养成良好的工作习惯 养成良好的工作习惯 它是基本技能和知识的入门向导 它是基本技能和知识的入门向导 又是创新实践和创新精神的启蒙 又是创新实践和创新精神的启蒙 综合电子系统实习对训练我们基综合电子系统实习对训练我们基 本操作技能 本操作技能 提高我们实际动手能力是难得的一次好机会 提高我们实际动手能力是难得的一次好机会 二 运算器的国内外发展 1 1 国外情况 国外情况 在国外 电子计算器在集成电路发明后 只用短短几年时间在国外 电子计算器在集成电路发明后 只用短短几年时间 就完成了技术飞跃 经过激烈的市场竞争 现在的计算器技术己经就完成了技术飞跃 经过激烈的市场竞争 现在的计算器技术己经 3 相当成熟 计算器已慢慢地脱离原来的相当成熟 计算器已慢慢地脱离原来的 辅助计算工具辅助计算工具 的功能定的功能定 位 正向着多功能化 可编程化方向发展 在各个领域都得到了广位 正向着多功能化 可编程化方向发展 在各个领域都得到了广 泛的应用 用计算器不仅可以实现各种各样复杂的数学计算还可以泛的应用 用计算器不仅可以实现各种各样复杂的数学计算还可以 用来编制 运行程序 甚至解方程组 图形计算器还可以进行图形用来编制 运行程序 甚至解方程组 图形计算器还可以进行图形 处理 计算器内置的软件允许用户进行处理 计算器内置的软件允许用户进行 类似于对计算机的文件和目类似于对计算机的文件和目 录管理等操作 允许用户对图形界面进行定制 同时各种新技术也录管理等操作 允许用户对图形界面进行定制 同时各种新技术也 被应用到计算器里使计算器功能越来越强大 可以说 计算器就是被应用到计算器里使计算器功能越来越强大 可以说 计算器就是 一个一个 微微型微微型 的计算机 的计算机 2 2 国内情况 国内情况 国内也有厂商利用计算器芯片开发新的产品 但对计算器技国内也有厂商利用计算器芯片开发新的产品 但对计算器技 术的研究 计算器芯片的设计还处于起步阶段 计算器的主要功能术的研究 计算器芯片的设计还处于起步阶段 计算器的主要功能 还是在于还是在于 计算计算 不妨称之为 不妨称之为 低档计算器低档计算器 即便是对这种计 即便是对这种计 算器 很多厂商也只从事计算器的组装 销售业务 一些算器 很多厂商也只从事计算器的组装 销售业务 一些 ICIC 设计公设计公 司 芯片提供商也开始研究计算器技术基于司 芯片提供商也开始研究计算器技术基于 FPGAFPGA 的计算器设计 的计算器设计 三 FPGA 的发展 随着随着 EDAEDA 技术的发展 使用硬件语言设计技术的发展 使用硬件语言设计 PLD FPGAPLD FPGA 成为一种成为一种 趋势 目前最主要的硬件描述语言是趋势 目前最主要的硬件描述语言是 VHDLVHDL 和和 VerilogVerilog HDLHDL VHDLVHDL 发展的较早 语法严格 而发展的较早 语法严格 而 VerilogVerilog HDLHDL 是在是在 C C 语言的基础上发展语言的基础上发展 起来的一种硬件描述语言 语法较自由 起来的一种硬件描述语言 语法较自由 VHDLVHDL 和和 VerilogVerilog HDLHDL 两两 者相比 者相比 VHDLVHDL 的书写规则比的书写规则比 VerilogVerilog 烦琐一些 但烦琐一些 但 verilogverilog 自由的自由的 语法也容易让少数初学者出错 语法也容易让少数初学者出错 国外电子专业很多会在本科阶段教国外电子专业很多会在本科阶段教 授授 VHDL VHDL 在研究生阶段教授在研究生阶段教授 verilogverilog 从国内来看 从国内来看 VHDLVHDL 的参考书的参考书 4 很多 便于查找资料 而很多 便于查找资料 而 VerilogVerilog HDLHDL 的参考书相对较少 这给学的参考书相对较少 这给学 习习 VerilogVerilog HDLHDL 带来一些困难 带来一些困难 从从 EDAEDA 技术的发展上看 已出现用技术的发展上看 已出现用 于于 CPLD FPGACPLD FPGA 设计的硬件设计的硬件 C C 语言编译软件 虽然还不成熟 应用极语言编译软件 虽然还不成熟 应用极 少 但它有可能会成为继少 但它有可能会成为继 VHDLVHDL 和和 VerilogVerilog 之后 设计大规模之后 设计大规模 CPLD FPGACPLD FPGA 的又一种手段 的又一种手段 FPGAFPGA 是英文是英文 FieldField ProgrammableProgrammable GateGate ArrayArray 的缩写 即现的缩写 即现 场可编程门阵列 它是在场可编程门阵列 它是在 PALPAL GALGAL CPLDCPLD 等可编程器件的基础上进等可编程器件的基础上进 一步发展的产物 它是作为专用集成电路 一步发展的产物 它是作为专用集成电路 ASICASIC 领域中的一种半 领域中的一种半 定制电路而出现的 既解决了定制电路的不足 又克服了原有可编定制电路而出现的 既解决了定制电路的不足 又克服了原有可编 程器件门电路数有限的缺点 程器件门电路数有限的缺点 FPGAFPGA 采用了逻辑单元阵列采用了逻辑单元阵列 LCALCA LogicLogic CellCell ArrayArray 这样一个概念 内部包括可配置逻辑模块 这样一个概念 内部包括可配置逻辑模块 CLBCLB ConfigurableConfigurable LogicLogic BlockBlock 输入输出模块 输入输出模块 IOBIOB InputInput OutputOutput BlockBlock 和内部连线 和内部连线 InterconnectInterconnect 三个部分 三个部分 FPGAFPGA 的基的基 本特点主要有 本特点主要有 采用采用 FPGAFPGA 设计设计 ASICASIC 电路 用户不需要投片生电路 用户不需要投片生 产 就能得到合用的芯片 产 就能得到合用的芯片 FPGA FPGA 可做其它全定制或半定制可做其它全定制或半定制 ASICASIC 电路的测试样片 电路的测试样片 FPGA FPGA 内部有丰富的触发器和内部有丰富的触发器和 I I O O 引脚 引脚 FPGA FPGA 是是 ASICASIC 电路中设计周期最短 开发费用最低 风险最小的电路中设计周期最短 开发费用最低 风险最小的 器件之一 器件之一 FPGA FPGA 采用高速采用高速 CHMOSCHMOS 工艺 功耗低 可以与工艺 功耗低 可以与 CMOSCMOS TTLTTL 电平兼容 电平兼容 FPGAFPGA 是由存放在片内是由存放在片内 RAMRAM 中的程序来设置其中的程序来设置其 工作状态的 因此 工作时需要对片内的工作状态的 因此 工作时需要对片内的 RAMRAM 进行编程 用户可以进行编程 用户可以 根据不同的配置模式 采用不同的编程方式 加电时 根据不同的配置模式 采用不同的编程方式 加电时 FPGAFPGA 芯片将芯片将 EPROMEPROM 中数据读入片内编程中数据读入片内编程 RAMRAM 中 配置完成后 中 配置完成后 FPGAFPGA 进入工作状进入工作状 5 态 掉电后 态 掉电后 FPGAFPGA 恢复成白片 内部逻辑关系消失 因此 恢复成白片 内部逻辑关系消失 因此 FPGAFPGA 能能 够反复使用 够反复使用 FPGAFPGA 的编程无须专用的的编程无须专用的 FPGAFPGA 编程器 只须用通用的编程器 只须用通用的 EPROMEPROM PROMPROM 编程器即可 当需要修改编程器即可 当需要修改 FPGAFPGA 功能时 只需换一片功能时 只需换一片 EPROMEPROM 即可 这样 同一片即可 这样 同一片 FPGAFPGA 不同的编程数据 可以产生不同 不同的编程数据 可以产生不同 的电路功能 因此 的电路功能 因此 FPGAFPGA 的使用非常灵活 的使用非常灵活 与与 FPGAFPGA 对应的还有对应的还有 DSPDSP 处理器 处理器 DSPDSP 处理器速度虽然很快 并对许多处理器速度虽然很快 并对许多 DSPDSP 应用来说很有应用来说很有 用 但仍有一些应用要求性能再进一步提升 而用 但仍有一些应用要求性能再进一步提升 而 FPGAFPGA 提供了更高的提供了更高的 性能 性能 FPGAFPGA 可以生成一个定制硬件设计 从而控制逻辑能够在硬件可以生成一个定制硬件设计 从而控制逻辑能够在硬件 中实现 不必再利用精确的时钟周期来实现控制功能 此外 通过中实现 不必再利用精确的时钟周期来实现控制功能 此外 通过 裁减硬件架构 裁减硬件架构 FPGAFPGA 可以提供额外的性能 如果最重要的设计考虑可以提供额外的性能 如果最重要的设计考虑 因素是速度 那么可以在因素是速度 那么可以在 FPGAFPGA 中设计完全并行的算法处理方案 现中设计完全并行的算法处理方案 现 在 许多系统已经包含了一个在 许多系统已经包含了一个 FPGAFPGA 用于协议转换 胶合逻辑或一 用于协议转换 胶合逻辑或一 些其它系统功能 如果那个些其它系统功能 如果那个 FPGAFPGA 没有被完全利用 那么把没有被完全利用 那么把 DSPDSP 功能功能 加入其中可以为系统节约成本 而且如果标准发生改变 使用加入其中可以为系统节约成本 而且如果标准发生改变 使用 FPGAFPGA 就不会有任何风险 就不会有任何风险 FPGAFPGA 的配置文件能够像软件那样升级 尽管它的配置文件能够像软件那样升级 尽管它 们必须被存储在系统的非易失性存储器中 目前的们必须被存储在系统的非易失性存储器中 目前的 FPGAFPGA 设计一般采设计一般采 用用 Top downTop down 自顶向下 的设计方法 先将系统划分为各个功能子 自顶向下 的设计方法 先将系统划分为各个功能子 模块 在系统级层次上进行行为描述 再对这些子模块进一步进行模块 在系统级层次上进行行为描述 再对这些子模块进一步进行 行为描述 行为描述 2 2 FPGAFPGA 与与 CPLDCPLD 的比较的比较 FPGAFPGA 是现场可编程逻辑门阵是现场可编程逻辑门阵 列的简称 是电子设计的一个里程碑 列的简称 是电子设计的一个里程碑 CPLDCPLD 是复杂可编程逻辑器件是复杂可编程逻辑器件 的简称 尽管的简称 尽管 FPGAFPGA 和和 CPLDCPLD 都是可编程都是可编程 ASICASIC 器件器件 有很多共同特点有很多共同特点 但由于但由于 CPLDCPLD 和和 FPGAFPGA 结构上的差异结构上的差异 具有各自的特点具有各自的特点 CPLD CPLD 更适合更适合 6 完成各种算法和组合逻辑 完成各种算法和组合逻辑 FPGAFPGA 更适合于完成时序逻辑 换句话说更适合于完成时序逻辑 换句话说 FPGAFPGA 更适合于触发器丰富的结构 而更适合于触发器丰富的结构 而 CPLDCPLD 更适合于触发器有限而更适合于触发器有限而 乘积项丰富的结构 乘积项丰富的结构 CPLD CPLD 的连续式布线结构决定了它的时序延的连续式布线结构决定了它的时序延 迟是均匀的和可预测的 而迟是均匀的和可预测的 而 FPGAFPGA 的分段式布线结构决定了其延迟的的分段式布线结构决定了其延迟的 不可预测性不可预测性 在编程上在编程上 FPGAFPGA 比比 CPLDCPLD 具有更大的灵活性 具有更大的灵活性 CPLDCPLD 通通 过修改具有固定内连电路的逻辑功能来编程 过修改具有固定内连电路的逻辑功能来编程 FPGAFPGA 主要通过改变主要通过改变 内部连线的布线来编程 内部连线的布线来编程 FPGAFPGA 可在逻辑门下编程 而可在逻辑门下编程 而 CPLDCPLD 是在逻是在逻 辑块下编程 辑块下编程 FPGA FPGA 的集成度比的集成度比 CPLDCPLD 高 具有更复杂的布线结构高 具有更复杂的布线结构 和逻辑实现 和逻辑实现 CPLD CPLD 比比 FPGAFPGA 使用起来更方便 使用起来更方便 CPLDCPLD 的编程采用的编程采用 E2PROME2PROM 或或 FASTFLASHFASTFLASH 技术 无需外部存储器芯片技术 无需外部存储器芯片 使用简单 而使用简单 而 FPGAFPGA 的编程信息需存放在外部存储器上 使用方法复杂的编程信息需存放在外部存储器上 使用方法复杂 CPLD CPLD 的的 速度比速度比 FPGAFPGA 快 并且具有较大的时间可预测性 这是由于快 并且具有较大的时间可预测性 这是由于 FPGAFPGA 是是 门级编程 并且门级编程 并且 CLBCLB 之间采用分布式互联 而之间采用分布式互联 而 CPLDCPLD 是逻辑块级编程 是逻辑块级编程 并且其逻辑块之间的互联是集总式的 并且其逻辑块之间的互联是集总式的 在编程方式上 在编程方式上 FPGAFPGA 大部分是基于大部分是基于 SRAMSRAM 编程 编程信息在系统断电时丢失 每次上电时 编程 编程信息在系统断电时丢失 每次上电时 需从器件外部将编程数据重新写入需从器件外部将编程数据重新写入 SRAMSRAM 中 其优点是可以编程任意中 其优点是可以编程任意 次 可在工作中快速编程次 可在工作中快速编程 从而实现板级和系统级的动态配置 从而实现板级和系统级的动态配置 CPLDCPLD 主要是基于主要是基于 EEPROMEEPROM 或或 FLASHFLASH 存储器编程存储器编程 编程次数可达编程次数可达 1 1 万次 万次 优点是系统断电时编程信息也不丢失 优点是系统断电时编程信息也不丢失 CPLDCPLD 又可分为在编程器上编又可分为在编程器上编 程和在系统编程两类 程和在系统编程两类 一般情况下 一般情况下 CPLDCPLD 的功耗要比的功耗要比 FPGAFPGA 大 大 且集成度越高越明显 且集成度越高越明显 随着随着 FPGAFPGA 门数以及性能的提高 可以将现门数以及性能的提高 可以将现 在的许多数字电路部分下载到在的许多数字电路部分下载到 FPGAFPGA 上 实现硬件的软件化 包括上 实现硬件的软件化 包括 7 5151 核 核 DSPDSP 核以及其他的一些数字模块 到最后一个系统板子就剩核以及其他的一些数字模块 到最后一个系统板子就剩 下电源 模拟电路部分 接口部分以及一块下电源 模拟电路部分 接口部分以及一块 FPGAFPGA FPGAFPGA 可以说是芯可以说是芯 片级的片级的 PCBPCB 板 在一个芯片里设计原来的电子系统的所有数字电路板 在一个芯片里设计原来的电子系统的所有数字电路 部分 部分 现在也有将现在也有将 ARMARM 核嵌入到核嵌入到 FPGAFPGA 里面的 比如里面的 比如 AlteraAltera 公司公司 的的 NoisNois 核 核 NoisNois 是一个软核 是有软件编写的一个是一个软核 是有软件编写的一个 3232 位处理器 位处理器 并不是硬件上存在的处理核 该核工作频率为并不是硬件上存在的处理核 该核工作频率为 50HZ50HZ 现在用于许多 现在用于许多 图像处理以及其他的很多网络设备 利用锁相环技术可以将频率成图像处理以及其他的很多网络设备 利用锁相环技术可以将频率成 倍提升 一般的倍提升 一般的 ARMARM 核是将锁相环做到芯片里面的 在变成的时候核是将锁相环做到芯片里面的 在变成的时候 可以对某个可以对某个 寄存器进行设置从而达到分频和倍频的目的 而将寄存器进行设置从而达到分频和倍频的目的 而将 DSPDSP 核嵌入到核嵌入到 FPGAFPGA 里面去实现强大的计算功能是里面去实现强大的计算功能是 AlteraAltera 公司近期推出公司近期推出 的一系列芯片的一个优点 的一系列芯片的一个优点 AlteraAltera 公司的公司的 StratixStratix IIII 系列芯片采系列芯片采 用内嵌的用内嵌的 DSPDSP 核 但是其核 但是其 DSPDSP 核的计算速度比现在业界上最快的核的计算速度比现在业界上最快的 DSPDSP 芯片还要快几个数量级 芯片还要快几个数量级 四 运算器设计原理 1 1 加法器设计 加法器设计 为了能够实现为了能够实现 4 4 位位 BCDBCD 码的加法运算 设计中被加数和加数都为码的加法运算 设计中被加数和加数都为 1616 位二进制数 由于位二进制数 由于 2 2 个个 1616 位二进制数相加可能会产生进位 同时为位二进制数相加可能会产生进位 同时为 了方便数码管显示 和采用了了方便数码管显示 和采用了 2020 位二进制 此外还有清零信号位二进制 此外还有清零信号 rstrst 和加法使能信号和加法使能信号 addadd 当 当 rst 1 rst 1 时对和进行清零 否则当时对和进行清零 否则当 add 1 add 1 时进行加法运算 时进行加法运算 2 2 减法器设计减法器设计 为了实现为了实现 4 4 位位 BCDBCD 码的减法运算 设计中被减数和减数为码的减法运算 设计中被减数和减数为 1616 位二进位二进 8 制数 差为制数 差为 2020 位二进制数 位二进制数 输入的信号有清零信号输入的信号有清零信号 rstrst 减法使 减法使 能信号能信号 subsub 被减数 被减数 a a 减数 减数 b b 输出的信号有差 输出的信号有差 chacha 和借位和借位 coco 由 由 于两个数相减的差有可能为正数也有可能为负数 当差为负数时表于两个数相减的差有可能为正数也有可能为负数 当差为负数时表 现为补码的形式 必须要将负数的补码进行修正 修正时对差的低现为补码的形式 必须要将负数的补码进行修正 修正时对差的低 1616 位求补码运算 而差的正负用借位位求补码运算 而差的正负用借位 coco 来表示 来表示 co 1 co 1 表示差表示差 为负 否则为正 为负 否则为正 3 3 乘法器设计乘法器设计的原理分析乘法器设计乘法器设计的原理分析 乘法运算的方法可以通过乘法运算的方法可以通过 以下实例来说明 以下实例来说明 设被乘数设被乘数 A 1110A 1110 乘数 乘数 B 1101 B 1101 求求 A BA B 由以上实际例子可以看出 由以上实际例子可以看出 1616 位二进制乘法运算可以使用移位相加位二进制乘法运算可以使用移位相加 的方法来实现 被乘数左移的方法来实现 被乘数左移 1616 次 乘数右移次 乘数右移 1616 次 当时钟上升沿次 当时钟上升沿 到来时都对乘数的最低位进行判断 如果乘数的最低位为到来时都对乘数的最低位进行判断 如果乘数的最低位为 1 1 则乘积则乘积 加上已经移位的被乘数 否则加加上已经移位的被乘数 否则加 0 0 乘法器电路结构框图根据乘法原理 采用移位相加的办法来实现乘乘法器电路结构框图根据乘法原理 采用移位相加的办法来实现乘 法运算 如图 法运算 如图 9 4 4 除法器设计除法器设计 此次设计的此次设计的 1616 位二进制除法器采用的是比较相减的方法 先在被除位二进制除法器采用的是比较相减的方法 先在被除 数前添加数前添加 1616 个个 0 0 当时钟脉冲上升沿到来时将前一次高 当时钟脉冲上升沿到来时将前一次高 1616 位与除位与除 数比较 若大于或等于则将被除数的高数比较 若大于或等于则将被除数的高 1616 位减去除数 同时左移并位减去除数 同时左移并 将被除数的第将被除数的第 1 1 位置位置 1 1 若小于则只是将被除数左移 等到下一个 若小于则只是将被除数左移 等到下一个 脉冲到来时再循环此操作 直到第脉冲到来时再循环此操作 直到第 1616 个脉冲之后停止操作 这样进个脉冲之后停止操作 这样进 行行 1616 个脉冲周期之后 被除数的高个脉冲周期之后 被除数的高 1616 位为余数 低位为余数 低 1616 位为商 位为商 除法运算的原理可以通过以下实例来说明 除法运算的原理可以通过以下实例来说明 设被除数设被除数 A 1110A 1110 除 除 数数 B 0110B 0110 求解 求解 A BA B 的过程如下 的过程如下 除法器电路结构框图除法器电路结构框图 10 除法器电路由控制电路 比较电路 减法电路和移位电路组成 控除法器电路由控制电路 比较电路 减法电路和移位电路组成 控 制电路负责产生制电路负责产生 1616 个脉冲的时钟信号 转载信号 运算结束信号 个脉冲的时钟信号 转载信号 运算结束信号 比较电路则是将被除数的高比较电路则是将被除数的高 1616 位和除数进行比较 若大于或等于则位和除数进行比较 若大于或等于则 greatgreat 为为 1 1 否则为 否则为 0 0 减法电路先判断比较电路输出的 减法电路先判断比较电路输出的 greatgreat 是否为是否为 1 1 若为 若为 1 1 则将被除数的高则将被除数的高 1616 位和除数相减 否则不位和除数相减 否则不 进行运算只保存被除数的高进行运算只保存被除数的高 1616 位 移位电路是将被除数进行左移 位 移位电路是将被除数进行左移 并对并对 greatgreat 进行判断 若为进行判断 若为 1 1 则将被除数的第一位置则将被除数的第一位置 1 1 二 二 键盘扫描电路设计键盘扫描电路设计 矩阵式键盘是一种常见的输入装置 在日常生活中 矩阵式键矩阵式键盘是一种常见的输入装置 在日常生活中 矩阵式键 盘在计算机 电话 手机等各式电子产品上已经被广泛应用 我们盘在计算机 电话 手机等各式电子产品上已经被广泛应用 我们 用的是一个用的是一个 4 44 4 矩阵式键盘 其中数字矩阵式键盘 其中数字 0 90 9 作为各种运算的数字输作为各种运算的数字输 入键 入键 为清零功能键 为清零功能键 为运算结果键 为运算结果键 为运算的选为运算的选 择键 择键 键盘上的每一个按键其实就是一个开关 每个键都有一个键盘上的每一个按键其实就是一个开关 每个键都有一个 上拉电阻 该按键的接点会呈现低电平状态 反之 未按下时则呈上拉电阻 该按键的接点会呈现低电平状态 反之 未按下时则呈 现高电平状态 现高电平状态 4x44x4 矩阵键盘 矩阵键盘 三 三 扫描电路设计扫描电路设计 对键盘采用对键盘采用 0 150 15 计数的方式 输计数的方式 输 11 入信号为键盘的列信号 对键盘进行逐行扫描 扫描键盘的编码方入信号为键盘的列信号 对键盘进行逐行扫描 扫描键盘的编码方 式如图式如图 7 27 2 当没有按下键盘时 键盘输入到按键检测电路 当没有按下键盘时 键盘输入到按键检测电路 colcol 的的 值均为值均为 1 1 此时 此时 key 1 key 1 否则当使用者按下键盘按钮时 键盘检 否则当使用者按下键盘按钮时 键盘检 测到按键电路测到按键电路 colcol 的值为的值为 0 0 此时 此时 key 0 key 0 1 1 键盘扫描计数器电路键盘扫描计数器电路 时钟信号时钟信号 clkclk 频率为频率为 1KHz1KHz 按键 按键 key pressedkey pressed 为使能信号 为使能信号 当未按下键盘时当未按下键盘时 key pressed 1 key pressed 1 此时由 此时由 0 150 15 反复计数 并将反复计数 并将 计数值作为按键检测电路的输入信号 直到按下键计数值作为按键检测电路的输入信号 直到按下键 key pressed 0 key pressed 0 时计数器停止输出计数值 时计数器停止输出计数值 2 2 按键检测电路按键检测电路 按键检测电路的输入信号为按键检测电路的输入信号为 colcol 和和 scan cntscan cnt 输出信号为 输出信号为 rowrow 和和 key pressedkey pressed 检测电路根据计数值 检测电路根据计数值 scan cntscan cnt 判断判断 rowrow 和和 key pressedkey pressed scan cntscan cnt 的低的低 2 2 位用于判断扫描的列 位用于判断扫描的列 scan cntscan cnt 的的 低低 2 2 位位 00 00 01 01 10 10 11 11 分别代表第一列 第二列 第三分别代表第一列 第二列 第三 12 列 第四列 而列 第四列 而 scan cntscan cnt 的高的高 2 2 位位 00 00 01 01 10 10 11 11 分别分别 代表第一行 第二行 第三行 第四行 代表第一行 第二行 第三行 第四行 由于键盘的按钮采用机械开关 当按下键盘按钮时 有可能会由于键盘的按钮采用机械开关 当按下键盘按钮时 有可能会 产生误导作 因此要使用键盘消抖动电路 此次设计的消抖动电路产生误导作 因此要使用键盘消抖动电路 此次设计的消抖动电路 采用的是倒数计数器电路 将采用的是倒数计数器电路 将 key pressedkey pressed 作为计数器的输入端 作为计数器的输入端 当多次检测到当多次检测到 key pressed 0 key pressed 0 才判定为按下键盘 否则被认定才判定为按下键盘 否则被认定 为没按下键盘为没按下键盘 3 3 键盘编码电路键盘编码电路 4 4 将键盘 将键盘 1616 个键的每个键进行编码 然后按照每个键的编码值个键的每个键进行编码 然后按照每个键的编码值 译码成实际的数值 键盘编码表如图译码成实际的数值 键盘编码表如图 四 四 控制电路的原理控制电路的原理 当按下键盘按键时 由键盘扫描电路译码出按下的键值 但是当按下键盘按键时 由键盘扫描电路译码出按下的键值 但是 根据通常的运算顺序 先输入一个运算数据 然后输入运算功能键 根据通常的运算顺序 先输入一个运算数据 然后输入运算功能键 再输入另一个运算数据 最后才是输入等于号显示运算结果 这就再输入另一个运算数据 最后才是输入等于号显示运算结果 这就 需要一个控制电路 用于控制当输入运算功能键时第一个运算数据需要一个控制电路 用于控制当输入运算功能键时第一个运算数据 输入停止 而输入运算功能键后开始输入第二个运算数据 当输入输入停止 而输入运算功能键后开始输入第二个运算数据 当输入 等于号码时停止输入第二个运算数据 当输入等于号时 开始显示等于号码时停止输入第二个运算数据 当输入等于号时 开始显示 运算结果 运算结果 控制电路时序控制电路时序 控制电路关键是对于时序的控制 首先控制电路关键是对于时序的控制 首先 必须先设计一个控制模块用于确定键盘输入的键值是清零键 数据必须先设计一个控制模块用于确定键盘输入的键值是清零键 数据 键 还是功能键 然后根据控制模块控制第一个和第二个运算数据键 还是功能键 然后根据控制模块控制第一个和第二个运算数据 输入的使能信号 当检测到数据输入使能信号有效时 必须对输入输入的使能信号 当检测到数据输入使能信号有效时 必须对输入 信号进行左移处理以便储存输入的数据 第一个和第二个数据输入信号进行左移处理以便储存输入的数据 第一个和第二个数据输入 13 的使能信号时序 的使能信号时序 五 五 BCDBCD 码转化为二进制电路设计码转化为二进制电路设计 经过控制电路输出的两个运算数据是经过控制电路输出的两个运算数据是 BCDBCD 码形式的 而此次设码形式的 而此次设 计的加 减 乘 除运算的数据形式都是二进制的 因此必须要将计的加 减 乘 除运算的数据形式都是二进制的 因此必须要将 控制电路输出的两个运算数据转化为控制电路输出的两个运算数据转化为 BCDBCD 码 二进制转化为码 二进制转化为 BCDBCD 码码 的方法是将数据从最左边开始的方法是将数据从最左边开始 4 4 位组成一组 位组成一组 1616 位数据可组成位数据可组成 4 4 组 组 然后分别将第然后分别将第 1 1 2 2 3 3 4 4 组分别乘以组分别乘以 1 1 1010 100100 10001000 后相加便后相加便 可以得到相应可以得到相应 BCDBCD 码的十进制表示 而计算机中的十进制数默认用码的十进制表示 而计算机中的十进制数默认用 二进制表示 再用修正电路将用二进制表示的十进制补二进制表示 再用修正电路将用二进制表示的十进制补 0 0 六 六 运算系统顶层设计原理分析运算系统顶层设计原理分析 运算系统的顶层设计需要将设计好的键盘扫描电路 控制电路 运算系统的顶层设计需要将设计好的键盘扫描电路 控制电路 BCDBCD 码转二进制电路 加法电路 减法电路 乘法电路 除法电路 码转二进制电路 加法电路 减法电路 乘法电路 除法电路 二进制转二进制转 BCDBCD 码电路 显示译码电路 显示电路功能模块连接起来 码电路 显示译码电路 显示电路功能模块连接起来 首先由键盘扫描电路将按下的键进行译码 然后由控制电路输出两首先由键盘扫描电路将按下的键进行译码 然后由控制电路输出两 个运算数据 再由个运算数据 再由 BCDBCD 码转二进制电路将二进制数据送到各运算电码转二进制电路将二进制数据送到各运算电 路 运算的结果由二进制转路 运算的结果由二进制转 BCDBCD 码电路转化为数码管显示所需要的码电路转化为数码管显示所需要的 二进制数 最后使用译码电路将二进制数 最后使用译码电路将 BCDBCD 码转化成数码管显示的信息 码转化成数码管显示的信息 五 运算器源程序 1 1 LEDLED 数码显示部分数码显示部分 module seg driver clk rst n data in turn off sel seg input clk input rst n 14 input 23 0 data in input 5 0 turn off output reg 2 0 sel output reg 7 0 seg reg 4 0 seg data reg 3 0 count always posedge clk or negedge rst n begin if rst n sel 3 b000 else if sel 5 sel sel 1 else sel 3 b000 end always begin if rst n seg 8 hff else case seg data 15 5 d0 seg seg0 5 d1 seg seg1 5 d2 seg seg2 5 d3 seg seg3 5 d4 seg seg4 5 d5 seg seg5 5 d6 seg seg6 5 d7 seg seg7 5 d8 seg seg8 5 d9 seg seg9 5 d10 seg sega 5 d11 seg segb 5 d12 seg segc 5 d13 seg segd 5 d14 seg sege 5 d15 seg segf default seg 8 hff endcase end endmodule 这部分主要是用于显示在输入输出过程中显示数字 16 2 2 4x44x4 键盘码扫描部分键盘码扫描部分 module jzjp clk rst n row col real number flag opcode input clk input rst n input 3 0 row begin if rst n begin number 4 b0000 end else case row col 8 b1110 1110 number 4 b0000 8 b1110 1101 number 4 b0001 8 b1110 1011 number 4 b0010 8 b1110 0111 number 4 b0011 8 b1101 1110 number 4 b0100 8 b1101 1101 number 4 b0101 8 b1101 1011 number 4 b0110 8 b1101 0111 number 4 b0111 17 8 b1011 1110 number 4 b1000 8 b1011 1101 number 4 b1001 8 b1011 1011 number 4 b1010 8 b1011 0111 number 4 b1011 8 b0111 1110 number 4 b1100 8 b0111 1101 number 4 b1101 8 b0111 1011 number 4 b1110 8 b0111 0111 number 4 b1111 default number 4 b0000 endcase end endmodule 这部分主要是用于开发板上的矩阵键盘扫描 3 3 算术逻辑运算单元部分 算术逻辑运算单元部分 module conv rst n flag number opcode data in turn off input rst n input flag input 3 0 number input 3 0 opcode output reg 23 0 data in output reg 5 0 turn off reg 23 0 temp1 18 reg 23 0 temp reg 3 0 code1 reg 3 0 code2 always negedge flag or negedge rst n begin if rst n begin temp1 0 4 hc begin data in data temp temp1 temp end 4 hd begin data in data temp

温馨提示

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

评论

0/150

提交评论