基于CPLD的脉冲计数器的设计(DOC)_第1页
基于CPLD的脉冲计数器的设计(DOC)_第2页
基于CPLD的脉冲计数器的设计(DOC)_第3页
基于CPLD的脉冲计数器的设计(DOC)_第4页
基于CPLD的脉冲计数器的设计(DOC)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1 毕业设计 论文 说明书 作者 学号 1 系部 电子 系 专业 EE 题目 基于 CPLD 的脉冲计数器的设计 指导教师 XX 评阅教师 XX 完成时间 2010 年 3 月 10 日 2 毕业设计毕业设计 论论文文 中文摘要中文摘要 题目 基于 CPLD 的脉冲计数器设计 摘要摘要 介绍了用 CPLD HDL 的 EDA 技术作为开发手段 实现对 16 通道脉冲信号 计数的脉冲计数器的设计 该方法具有设计周期短 内部电路模块可移植的特点 解决了以往数字电路小规模多器件组合的设计瓶颈 经实际电路测试 该系统性能 可靠 关键词 关键词 脉冲计数器 CPLD VHDL 波形仿真 3 毕业设计毕业设计 论论文文 外文摘要外文摘要 TitleTitle Design of pulse counter based on CPLD Abstract Abstract The design of a pulse counter to 16 channels pulse with EDA Technology of CPLD VHDL is presented in the paper The circuit Is different from the traditional digital circuit design composed Of many small scale devices Furthermore the circuit design Cycle is short and parts of the circuit are transplantable Comparing with others Practical circuit testing shows that The system is reliable KeyKey words words pulse counter CPLD VHDL wave shape simulating 4 目目 录录 1 序言 5 2 CPLD 芯片及 VHDL 语言介绍 5 2 1 CPLD 芯片介绍 5 2 1 1 概述 5 2 1 2MAX7000 特点 5 2 1 3 EPM7160S 7 3 脉冲计数器的设计原理 8 3 1 器件特点 9 3 2 如何使用 10 3 3 计数器组模块 10 3 3 1 计数器作用 10 3 3 2 主要的指标 10 3 4 控制器模块 11 3 4 1 控制器 11 3 4 2 主要功能 11 3 4 3 控制器模块 12 3 5 译码器模块 13 3 5 1 译码器概述 13 3 5 2 译码器分类 13 3 5 3 译码器工作原理 14 3 5 4 译码器模块 14 3 6 分频器模块 15 4 功能仿真与测试 15 结论 17 致谢 17 主要参考文献 17 Comment Ol1 什么设计瓶颈啊 Comment Ol2 这个章节里介绍 VHDL 语言了吗 5 1 1 序言序言 CPLD Complex Programmable Logic Device 是一种复杂的用户可编程 逻辑器件 由于用连续连接结构 易于预测延时 从而使电路仿真更加准确 利用 CPLD 高速 高可靠性 可编程 体积小的特点 采用 CPLD HDL 的 EDA 开 发方案 必将有效解决传统的电子系统中由来已久的设计瓶颈 脉冲计数器是 数字电路中的一个典型应用 实际的硬件设计用到的器件较多 连线比较复杂 而且会产生较大的时延 可靠性差 随着复杂可编程逻辑器件的广泛应用 以 EDA 工具作为开发手段 将使整个系统大大简化 提高整体性能和可靠性 本文选用 Altera 公司的 MAX7000 系列芯片 EPM7160S 实现了对 16 路脉 冲进行计数 具有体积小 可靠性高 低功耗 开发周期的特点 2 2 CPLDCPLD 芯片芯片及及 VHDLVHDL 语言介绍语言介绍 2 12 1 CPLDCPLD 芯片介绍芯片介绍 2 1 1 概述 ALTERA 的 MAX7000 系列 CPLD 提供高性能的逻辑解决方案 密度从 600 10000 个可用门不等 32 512 个宏单元 同时 MAX7000 系列的同一密度产品还提供 多种封装形式 对于各种应用具有相当灵活的适应性 2 1 2 MAX7000 特点 高性能低功耗 CMOS EEPROM 技术 遵循 IEEE Std 1149 1 Joint Test Action Group JTAG ISP circuitry compliant with IEEE Std 1532 标准 ISP 特性 5 ns pin to pin 延时 最高频率 175 4 MHz 6 I O 接口支持 5V 3 3V 和 2 5V 等多种电平 PCI 兼容 功能 本设计采用 EDA 技术 根据图 1 所示的脉冲计数器电路图 按照自 顶向下的设计思路 先编写各个模块的 VHDL 源程序 然后再对各个模块进行组 合 最后编写顶层描述的 VHDL 源程序 如图 2 所示 16 位计数器是设计的最 低层 而计数器组 译码器 控制器 分频器为设计的第二层 脉冲计数器组 装程序为设计的最高层 复杂可编程逻辑器件 CPLD 几乎可适用于所有的门阵 列和各种规模的数字集成电路 它以其编程方便 集成度高 速度快 价格低 等特点越来越受到设计者的欢迎 本设计中选用的 CPLD 为 ALTERA 公司的 EPM7128SLC84 10 属于 MAX7000 系列 是工业界速度最快的高集成度可编程 逻辑器件 本文中 CPLD 开发软件用 MAX PLUS lI 该软件是一个完全集成化 易学易用的可编程逻辑设计环境 并且广泛支持各种硬件描述语言 它还具有 与结构无关性 多平台运行 丰富的设计库和模块化的工具等许多功能特点 本设计中 CPLD 是脉冲发生器设计的核心所在 其内部集成了两组脉冲发生器 具体包括译码器 锁存器和可置数计数器 每组脉冲发生器中有三个 8 位锁存 器 一个 16 位可置数计数器和一个 8 位可置数计数器 CPLD 主要是由可编程逻辑宏单元 MC Macro Cell 围绕中心的可编程互连 矩阵单元组成 其中 MC 结构较复杂 并具有复杂的 I O 单元互连结构 可由用 户根据需要生成特定的电路结构 完成一定的功能 由于 CPLD 内部采用固定长 度的金属线进行各逻辑块的互连 所以设计的逻辑电路具有时间可预测性 避 免了分段式互连结构时序不完全预测的缺点 7 2 1 3 EPM7160S 8 3 3 脉冲计数器的设计原理脉冲计数器的设计原理 生产实践中变化着的各种物理量 通过光电 声电 热电 压电等效应转 换成电脉冲信号 输人计数器 计数器则通过电路元件本身固有的特殊功能 9 组成不同的电路状态来表示不同的 数 将输入的脉冲信号 按 数 的关系 一一接收下来 进行传送 运算 并通过数字管显示出来 所以计数器就是把 电路不同稳定状态跟 敷 对应起来 用状态的有规律变化表示 数 的规律性 变化 我们习惯于使用十进位计数制 如数字仪表 计算机和数控计数器的数字 管都是按十进制显示的 但是在电子技术中很难找到一种基本单元电路具有十 个不同的状态 用来代表十个数 而两个不同稳定状态的电路则很易找到如双 稳态触发器就具有两个稳定状态 因此 通常就将十进制的数 数 编成数字 装置容易接受的二进制的数 经数字装置运算后 再把二进制的数 翻译 成 人们所习惯的十进制的数 在数字技术中 用符号 0 和 1 表示两种对立的状态 倒如把输出低电 位记为 0 输出高电位记为 1 我们把它叫做 代码 虽然 代码只是一 种符号 但不同于十进制数字运算中的 0 1 2 3 用代码组合来表示一个 El 的数建项工作口 q 傲 编码 而编码的方案有好 多种 把计数电路所算出的二进制结果 翻译 成十进制数 口 q 做 译码 由门电路构成的译码器担负着译码任务 译码以后的十进制数 再通过显示电路和数码管显示出来 所以一般说来 计数器包括按一定编码要求的计数电路 和把二进制数译 成十进制数的译码器及把十进制数表示出来的显示器这三个基本部分 3 13 1 器件特点器件特点 它具有编程灵活 集成度高 设计开发周期短 适用范围宽 开发工具先 进 设计制造成本低 对设计者的硬件经验要求低 标准产品无需测试 保密 性强 价格大众化等特点 可实现较大规模的电路设计 因此被广泛应用于产 品的原型设计和产品生产 一般在 10 000 件以下 之中 几乎所有应用中小规模 通用数字集成电路的场合均可应用 CPLD 器件 CPLD 器件已成为电子产品不可 缺少的组成部分 它的设计和应用成为电子工程师必备的一种技能 Comment Ol3 这是在介绍 CPLD 呢 还是脉冲计数器啊 Comment Ol4 这图不复杂 能否自 己动手画一下啊 10 3 23 2 如何使用如何使用 CPLD 是一种用户根据各自需要而自行构造逻辑功能的数字集成电路 其 基本设计方法是借助集成开发软件平台 用原理图 硬件描述语言等方法 生 成相应的目标文件 通过下载电缆 在系统 编程 将代码传送到目标芯片 中 实现设计的数字系统 3 33 3 计数器组模块计数器组模块 3 3 1 计数器作用 计数器可以用来显示产品的工作状态 一般来说主要是用来表示产品已经 完成了多少份的折页配页工作 3 3 2 主要的指标 在于计数器的位数 常见的有 3 位 4 位和 6 位的 很显然 3 位数的计数 器最大可以显示到 999 4 位数的最大可以显示到 9999 6 位数的计数器最大可 以显示到 999999 计数器组由 16 个 16 位加法计数器组成 每个 16 位加法计数器结构均相同 单个计数器的 VHDL 语言描述如下 11 entity singlecounter is port impulse in std logic res in std logic en in std logic ent inout std logic vector 15 downto 0 end singlecounter architecture archcount of singlecounter is begin process impulse rst en begin if rst 1 then cnt others 0 elsif inpulse event and inpuse 1 then if en 1 then ent cnt 1 end if end if end process end archcount 其中 en 为计数器使能信号 en 为 1 计数器开始计数 en 为 0 计数器停止工作 并把计数结果锁存 rst 为复位信号 高电平有效 将 16 个这样相同的计数器装配起来 就组成了计数器组 3 43 4 控制器模块控制器模块 3 4 1 控制器 由程序计数器 指令寄存器 指令译码器 时序产生器和操作控制器组成 它是发布命令的 决策机构 即完成协调和指挥整个计算机系统的操作 12 3 4 2 主要功能 从内存中取出一条指令 并指出下一条指令在内存中位置 对指令进行译码或测试 并产生相应的操作控制信号 以便启动规定的动 作 指挥并控制 CPU 内存和输入 输出设备之间数据流动的方向 3 4 3 控制器模块 本模块的功能是在控制器使能信号 cnt cntrl ld en 的下降沿使计数器 组置位信号 rst 置 1 en 置 0 ready 置 0 并初始化内部定时器 timer 在 cnt cntrl ld en 的上升沿将 Po 口的数据赋给内部定时器 并发计数器组 使能信号 en 此时内部定时器开始定时 同时脉冲计数器组开始计数 当定时 器值为 0 时 使 en 置 0 脉冲计数器停止计数 同时 ready 置 1 通知主机计 数结束 控制器 Block controler 的 VHDL 语言描述如下 entity block controler is port cnt cntrl ld en in std 1ogic p0 in std logic vector 7 downto 0 clk in std logic en Out std logic rst out std logie ready out std logic end block eontroler architure archcontroler og block controler is signal timer std logic vector 7 downto 0 begin process clk cnt cntrl ld en begin if cnt cntrl ld en event and ent cntrl ld en 0 then timer 00000000 en 0 rst 1 ready 0 elsif cnt entsl ld en event and cnt cntrl ld en 13 1 then timer p0 en 1 rst 0 ready 0 elseif clk event and clk 1 then timer timer 一 1 if timer 00000000 then en 0 rst 0 timer 00000000 ready 1 end if end if end if end process end archcontroler 其中 cnt cntrl ld en 是控制器使能信号 P0 为定时器初值数据端口 3 53 5 译码器模块译码器模块 3 5 1 译码器概述 译码器是组合逻辑电路的一个重要的器件 其可以分为 变量译码和显示 译码两类 变量译码一般是一种较少输入变为较多输出的器件 一般分为 2n 译码和 8421BCD 码译码两类 显示译码主要解决二进制数显示成对应的十 或十六进制数的转换功能 一般其可分为驱动 LED 和驱动 LCD 两类 译码是编码的逆过程 在编码时 每一种二进制代码 都赋予了特定的含 义 即都表示了一个确定的信号或者对象 把代码状态的特定含义 翻译 出 来的过程叫做译码 实现译码操作的电路称为译码器 或者说 译码器是可以 将输入二进制代码的状态翻译成输出信号 以表示其原来含义的电路 14 3 5 2 译码器分类 译码器的种类很多 但它们的工作原理和分析设计方法大同小异 其中二 进制译码器 二 十进制译码器和显示译码器是三种最典型 使用十分广泛的译 码电路 译码器是典型的组合数字电路 译码器是将一种编码转换为另一种编码的 逻辑电路 学习译码器必须与各种编码打交道 从广义的角度看 译码器有四 类 二进制码译码器 也称最小项译码器 N 中取一译码器 最小项译码器一 般是将二进制码译为十进制码 代码转换译码器 是从一种编码转换为另一种编码 显示译码器 一般是将一种编码译成十进制码或特定的编码 并通过显示 器件将译码器的状态显示出来 编码器 一般是将十进制码转换为相应的其它编码 其实质与代码转换译 码器一样 编码是译码的反过程 根据需要 输出信号可以是脉冲 也可以是高电平或者低电平 3 5 3 译码器工作原理 译码器是一种具有 翻译 功能的逻辑电路 这种电路能将输入二进制代 码的各种状态 按照其原意翻译成对应的输出信号 有一些译码器设有一个和 多个使能控制输入端 又成为片选端 用来控制允许译码或禁止译码 3 5 4 译码器模块 本模块的功能是根据地址总线 P2 和 P0 上的地址 并集合 wr rd 的信号进 行译码 输出内部器件的控制信号 译码器 Block decoder 的实体说明如下 Entity block decoder is Port p2 in std logic vector 7downto0 P0 adr in std logic vector 7downto0 15 Rd in std logic wr in std logic Cnt cntrl ld en out std logic Rd cn0a en out std logic Rd cn15b en out std logic End block decoder 其中 Cnt cntrl ld en 为控制器装载定时器初值使能信号 它用来通知 控制器装载定时器初值 并开始计数 上升沿有效 Rd cnXX en 为计数 锁存 器读使能信号 用于控制计数 锁存器向内部数据总线写数据 3 63 6 分频器模块分频器模块 本模块的功能是将标准的 10kHz 时钟信号 clk in 分频为 1Hz 的时钟信号 clk out 分频器 block fqdivider 的 VHDL 语言描述如下 Entity block fqdivider is Port clk in in std logic Clk out out std logic End block fqdivider Architecture rtl of block fqdivider is Constant divide period integer range 0 to 65535 100 Begin process clk in variabl

温馨提示

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

评论

0/150

提交评论