通用分频器基本原理_第1页
通用分频器基本原理_第2页
通用分频器基本原理_第3页
通用分频器基本原理_第4页
通用分频器基本原理_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

通用分频器基本原理 整数分频包括偶数分频和奇数分频 对于偶数 N 分频 通常是由模 N 2 计数器实现一个占空比为 1 1 的 N 分频器 分频输出信号模 N 2 自动取反 对于奇数 N 分频 上述方法就不适用了 而是由模 N 计数 器实现非等占空比的奇数 N 分频器 分频输出信号取得是模 N 计数 中的某一位 不同 N 值范围会选不同位 这种方法同样适用于偶数 N 分频 但占空比不总是 1 1 只有 2 的 n 次方的偶数 如 4 8 16 等 分频占空比才是 1 1 这种方法对于奇数 偶数具有通用性 半整 数分频器也是在这种方法基础上实现的 除了一个模 N 计数器 还需 要一个异或模块和一个 2 分频模块 半整数分频器原理如图 1 所示 半整数分频器设计思想 通过异或门和 2 分频模块组成一个改变输入 频率的脉冲添加电路 也就是说 N 0 5 个输入信号周期内产生了 N 个计数脉冲 即输入信号其中的一个含一个脉冲的周期变为含两个脉 冲的周期 而这一改变正是输入频率与 2 分频输出异或的结果 由 2 分频输出决定一个周期产生两个脉冲有两种方式 当一个输入信号来 一个脉冲 前半周期 时 2 分频输出变为 1 clk in 取反 后半周期就 会产生一个脉冲 2 分频输出由 1 变为 0 时 clk in 刚把一个周期 前 半周期 内低电平变为高电平产生一个脉冲 而后半周期的脉冲与 0 异或不变 从而实现 N 0 5 分频 要实现奇数 偶数 半整数通用 分频器只需再加一个控制选择信号 sel 当 sel 1 时 clk in 与 2 分频 输出异或 实现半整数分频 当 sel 0 时 只选通 clk in 实现整数分 频 通用分频器原理如图 2 所示 Verilog 语言的实现 本设计采用层次化的设计方法 首先设计通用分频器中各组成电路元 件 然后通过元件例化的方法 调用各元件 实现通用分频器 1 选择异或门模块 half select modulehalf select sel a b c outputc inputsel a b xoru1 w a b assignc sel w a 当 sel 1 时 clk in 与 2 分频输出异或 实现半整数分频 当 sel 0 时 只选通 clk in 实现整数分频 endmodule 2 模 N 计数器 counter n 实现参数化设计 N 可取 2 256 也可增加 count 位数 使 N 可取更大的值 以 N 7 为例通过设置 sel 分别实现奇数 7 分频 和半整数 6 5 分频 modulecounter n reset en clk in clk out count parameterN 7 inputreset en clk in outputclk out output 7 0 count regclk out reg 7 0 count always posedgeclk in begin if reset begin count 7 0 0 end elseif en begin if count N 1 count 0 else count count1 end end always begin if N clk out count 0 elseif N clk out count elseif N clk out count elseif N 在复杂数字逻辑电路设计中 经常会 用到多个不同的时钟信号 介绍一种通用的分频器 可实现 2 256 之间的任意奇数 偶数 半整数分频 首先简要介绍了 FPGA 器件的 特点和应用范围 接着介绍了通用分频器的基本原理和分类 并以分 频比为奇数 7 和半整数 6 5 的分频器设计为例 介绍了在 QuartusII 开发软件下 利用 Verilog 硬件描述语言来设计数字逻辑电路的过程 和方法 在数字逻辑电路设计中 分频器是一种基本电路 我们常 会遇到偶数分频 奇数分频 半整数分频等 在同一个设计中有时要 求多种形式的分频 通常由计数器或计数器的级联构成各种形式的偶 数分频和奇数分频 实现较为简单 但对半整数分频分频实现较为困 难 但在某些场合下 时钟源与所需的频率不成整数倍关系 此时可 采用小数分频器进行分频 例如 时钟源信号为 130MHz 而电路中需 要产生一个 20MHz 的时钟信号 其分频比为 6 5 因此根据不同设计 的需要 本文利用 Verilog 硬件描述语言 通过 MAXplusII 开发平台 使用 Altera 公司的 FLEX 系列 EPF10K10LC84 3 型 FPGA 设计了一 种能够满足上述各种要求的较为通用的分频器 基于查找表 LUT 的 FPGA 的结构特点 查找表 Look Up Table 简称为 LUT LUT 本质上就是一个 RAM 目前 FPGA 中多使用 4 输入的 LUT 所以每一个 LUT 可以看成一个有 4 位地址线的 16x1 的 RAM 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后 PLD FPGA 开发软件会自动计算逻辑电路的所有可能的结果 并把结 果事先写入 RAM 这样 每输入一个信号进行逻辑运算就等于输入一 个地址进行查表 找出地址对应的内容 然后输出即可 由于 LUT 主 要适合 SRAM 工艺生产 所以目前大部分 FPGA 都是基于 SRAM 工 艺的 而 SRAM 工艺的芯片在掉电后信息就会丢失 一定需要外加一 片专用配置芯片 在上电的时候 由这个专用配置芯片把数据加载到 FPGA 中 然后 FPGA 就可以正常工作 由于配置时间很短 不会影 响系统正常工作 也有少数 FPGA 采用反熔丝或 Flash 工艺 对这种 FPGA 就不需要外加专用的配置芯片 FPGA FieldprogrammableGatesArray 现场可编程门阵列 都是可编 程逻辑器件 它们是在 PAL GAL 等逻辑器件基础上发展起来的 同 以往的 PAL GAL 相比 FPGA CPLD 的规模比较大 适合于时序 组合等逻辑电路的应用 它可以替代几十甚至上百块通用 IC 芯片 这种芯片具有可编程和实现方案容易改动等特点 由于芯片内部硬件 连接关系的描述可以存放在磁盘 ROM PROM 或 EPROM 中 因 而在可编程门阵列芯片及外围电路保持不动的情况下 换一块 EPROM 芯片 就能实现一种新的功能 它具有设计开发周期短 设 计制造成本低 开发工具先进 标准产品无需测试 质量稳定以及实 时在检验等优点 因此 可广泛应用于产品的原理设计和产品生产之 中 几乎所有应用门阵列 PLD 和中小规模通用数字集成电路的场合 均可应用 FPGA 和 CPLD 器件 在现代电子系统中 数字系统所占的 比例越来越大 系统发展的越势是数字化和集成化 而 FPGA 作为可 编程 ASIC 专用集成电路 器件 它将在数字逻辑系统中发挥越来越 重要的作用 通用分频器基本原理 整数分频包括偶数 分频和奇数分频 对于偶数 N 分频 通常是由模 N 2 计数器实现一个 占空比为 1 1 的 N 分频器 分频输出信号模 N 2 自动取反 对于奇 数 N 分频 上述方法就不适用了 而是由模 N 计数器实现非等占空 比的奇数 N 分频器 分频输出信号取得是模 N 计数中的某一位 不 同 N 值范围会选不同位 这种方法同样适用于偶数 N 分频 但占空 比不总是 1 1 只有 2 的 n 次方的偶数 如 4 8 16 等 分频占空比才 是 1 1 这种方法对于奇数 偶数具有通用性 半整数分频器也是 在这种方法基础上实现的 除了一个模 N 计数器 还需要一个异或模 块和一个 2 分频模块 半整数分频器原理如图 1 所示 半整数 分频器设计思想 通过异或门和 2 分频模块组成一个改变输入频率的 脉冲添加电路 也就是说 N 0 5 个输入信号周期内产生了 N 个计数 脉冲 即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周 期 而这一改变正是输入频率与 2 分频输出异或的结果 由 2 分频输 出决定一个周期产生两个脉冲有两种方式 当一个输入信号来一个脉 冲 前半周期 时 2 分频输出变为 1 clk in 取反 后半周期就会产生 一个脉冲 2 分频输出由 1 变为 0 时 clk in 刚把一个周期 前半周期 内低电平变为高电平产生一个脉冲 而后半周期的脉冲与 0 异或不 变 从而实现 N 0 5 分频 要实现奇数 偶数 半整数通用分频器 只需再加一个控制选择信号 sel 当 sel 1 时 clk in 与 2 分频输出异 或 实现半整数分频 当 sel 0 时 只选通 clk in 实现整数分频 通 用分频器原理如图 2 所示 Verilog 语言的实现 本设计 采用层次化的设计方法 首先设计通用分频器中各组成电路元件 然 后通过元件例化的方法 调用各元件 实现通用分频器 1 选择 异或门模块 half select modulehalf select sel a b c outputc inputsel a b xoru1 w a b assignc sel w a 当 sel 1 时 clk in 与 2 分频输出异或 实现半整数分频 当 sel 0 时 只选通 clk in 实现整数分频 endmodule 2 模 N 计数器 counter n 实现参数化设计 N 可取 2 256 也可增加 count 位数 使 N 可取更大的值 以 N 7 为例通过设置 sel 分别实现奇数 7 分频 和半整数 6 5 分频 modulecounter n reset en clk in clk out count parameterN 7 inputreset en clk in outputclk out output 7 0 count regclk out reg 7 0 count always posedgeclk in begin if reset begin count 7 0 0 end elseif en begin if count N 1 count 0 else count count1 end end always begin if N clk out count 0 elseif N clk out count elseif N clk out count elseif N clk out count elseif N clk out count elseif N clk out count elseif N clk out count elseif N clk out count end endmodule 3 2 分频模块 fenpin 2 modulefenpin 2 clk in clk out inputclk in outputclk out regclk out always posedgeclk in begin clk out clk out end endmodule 4 最后通过元件例化的方法 调用各元件 实现通 用分频器最高层设计 modulefenpin reset en sel clk in clk out count inputreset en sel clk in outputclk out output 3 0 count half selectu1 sel clk in b c 调用 half select 元件例化 counter nu2 reset en c clk out count 调用 counter n 元件例化 fenpin 2u3 clk out b 调用 fenpin 2 元件例化 endmodule 仿真结果及硬件电路测试 当 sel 0 N 7 时 实现奇数 7 分频 如图 3 所示 当 sel 1 N 7 时 实现半整数 6 5 分频 如图 4 所示 由此可见 只要改变异或门选通控制 sel 和 N 的值就可实现 2 256 之间的任意奇数 偶数 半整数分频 本设计在 Altera 公司的 FLEX 系列 EPF10K10LC84 3 型 FPGA 构成的测试平台上测试通过 性能 良好 结语 本文旨在介绍一种进行 FPGA 开发时 所需 多种分频的实现方法 如果设计中所需分频形式较多 可以直接利用 本设计 通过对程序的稍微改动以满足自己设计的要求 如果设计中 需要分频形式较少 可以利用本设计部分程序 以节省资源 用 实现基于 的通用分频器 唐晓燕 梁光胜 王 玮 基于基于 FPGAFPGA 的多种形式分频的设计与实现的多种形式分频的设计与实现 作者 dianzi9 来源 电子技术交流网 字体 大 中 小 在百度搜索相关内容 编辑导读 基于 FPGA 的 32 位浮点 FFT 处理器的设计 将软件编译并形成有效硬件的方法 DS P HPI 口与 PC104 总线接口的 FPGA 设计 5 个不朽的法则 转帖 基于 FPGA 的多种形式分频 的设计与实现 基于 FPGA 和 DSP 的音频采集卡的实现 PLD FPGA 结构与原理初步 智能家庭 用可编程逻辑器件桥接各种接口标准 红外动目标识别跟踪系统的 DSP FPGA 实现 DVB C 解交织器的 FPGA 实现 正文 摘摘 要要 本文通过在 Quarturs 开发平台下 一种能够实现等占空比 非等占空比整数分 频及半整数分频的通用分频器的 FPGA 设计与实现 介绍了利用 VHDL 硬件描述语言输入方 式 设计数字电路的过程 关键词关键词 FPGA VHDL 硬件描述语言 数字电路设计 分频器 引言引言 分频器是数字系统设计中的基本电路 根据不同设计的需要 我们会遇到偶数分频 奇数 分频 半整数分频等 有时要求等占空比 有时要求非等占空比 在同一个设计中有时要 求多种形式的分频 通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比 的奇数分频 实现较为简单 但对半整数分频及等占空比的奇数分频实现较为困难 本文 利用 VHDL 硬件描述语言 通过 Quartus 3 0 开发平台 使用 Altera 公司的 FPGA 设计 了一种能够满足上述各种要求的较为通用的分频器 一 电路设计一 电路设计 采用 FPGA 实现半整数分频器 可以采用以下方法 设计一个模 N 的计数器 再设计一个脉 冲扣除电路 每来两个脉冲扣除一个脉冲 即可实现分频系数为 N 0 5 的分频器 脉冲扣 除电路由异或门和一个 2 分频器构成 本设计在半整数分频器原理的基础上 对异或门加 一个使能控制信号 通过对异或门和计数器计数状态值的控制 实现同一个电路完成多种 形式分频 如图 1 所示 二 二 VHDLVHDL 语言的实现语言的实现 现通过设计一个可以实现 8 5 分频 等占空比的 17 分频 2 4 8 16 32 分频 及占空 比为 1 8 和 4 5 的 9 分频等多种形式分频的分频器 介绍该通用分频器的 FPGA 实现 由图 1 所示的电路原理图可知 分频器由带使能端的异或门 模 N 计数器和一个 2 分频器 组成 本设计用 D 触发器来完成 2 分频的功能 实现方法是 将触发器的 Q 反输出端反馈 回输入端 D 将计数器的一个计数输出端作为 D 触发器的时钟输入端 各功能模块的 VHDL 语言实现如下 1 模 N 计数器的实现 一般设计中用到计数器时 我们可以调用 lpm 库中的计数器模块 也可以采用 VHDL 语言自 己设计一个模 N 计数器 本设计采用 VHDL 语言设计一个最大模值为 16 的计数器 输入端 口为 使能信号 en 复位信号 clr 和时钟信号 clk 输出端口为 qa qb qc qd 其 VH DL 语言描述略 2 带使能控制的异或门的实现 输入端为 xor en 异或使能 a 和 b 异或输入 输出端为 c 异或输出 当 xor en 为 高电平时 c 输出 a 和 b 的异或值 当 xor en 为低电平时 c 输出信号 b 其 VHDL 语言略 3 2 分频 触发器 的实现 输入端为 时钟信号 clk 输入信号 d 输出端为 q 输出信号 a q1 输出信号 a 反 其 VHDL 语言略 4 分频器的实现 本设计采用层次化的设计方法 首先设计实现分频器电路中各组成电路元件 然后通过元 件例化的方法 调用各元件 实现整个分频器 其 VHDL 语言略 三 仿真结果及硬件电路的测试三 仿真结果及硬件电路的测试 本设计的目的是通用性和简易性 只要对上述程序稍加改动即可实现多种形式的分频 1 实

温馨提示

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

评论

0/150

提交评论