使用VHDL进行分频器设计.doc

上传人:hw****26 文档编号:3961409 上传时间:2019-09-04 格式:DOC 页数:41 大小:812KB
下载 相关 举报
使用VHDL进行分频器设计.doc_第1页
第1页 / 共41页
使用VHDL进行分频器设计.doc_第2页
第2页 / 共41页
使用VHDL进行分频器设计.doc_第3页
第3页 / 共41页
使用VHDL进行分频器设计.doc_第4页
第4页 / 共41页
使用VHDL进行分频器设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、使用 VHDL 进行分频器设计作者:ChongyangLee摘要使用 VHDL 进行分频器设计作者:ChongyangLee本文使用实例描述了在 FPGA/CPLD 上使用 VHDL 进行分频器设计,包括偶数分频、非 50%占空比和 50%占空比的奇数分频、半整数(N+0.5)分频、小数分频、分数分频以及积分分频。所有实现均可通过 Synplify Pro 或 FPGA 生产厂商的综合器进行综合,形成可使用的电路,并在 ModelSim 上进行验证。目录概述.1 计数器 .1 普通计数器.1 约翰逊计数器 .3 分频器 .4 偶数分频器.4 奇数分频器.6 半整数分频器 .9 小数分频器.11

2、 分数分频器.15 积分分频器.18 概述分频器是数字电路中最常用的电路之一,在 FPGA 的设计中也是使用效率非常高的基本设计。基于 FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供的锁相环电路,如 ALTERA 提供的 PLL (Phase Locked Loop),Xilinx 提供的 DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。使用锁相环电路有许多优点,如可以实现倍频;相位偏移;占空比可调等。但 FPGA 提供的锁相环个数极为有限,不能满足使用要求。因此使用硬件描述语言实现分频电路经常使用在数字电路设

3、计中,消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、可编程等优点。计数器计数器是实现分频电路的基础,计数器有普通计数器和约翰逊计数器两种。这两种计数器均可应用在分频电路中。普通计数器最普通的计数器是加法(或减法)计数器。下面是加法计数器的VHDL实现,其Synplify Pro下的RTL View如 图 1所示。-file Name: ripple.vhd-Description: 带复位功能的加法计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_uns

4、igned.all;entity ripple isgeneric (width: integer := 4);port(clk, rst: in std_logic;cnt: out std_logic_vector(width - 1 downto 0);end ripple;architecture a of ripple issignal cntQ: std_logic_vector(width - 1downto 0);beginprocess(clk, rst)beginif (rst = 1) thencntQ 0);elsif (clkevent and clk = 1) th

5、encntQ 4)port map(clk = clk_tb, rst = rst_tb, cnt = cnt_tb);clk_tb 0);elsif (rising_edge(clk) thencntQ(width - 1 downto 1) = cntQ(width - 2 downto 0);cntQ(0) = not cntQ(width - 1);end if;end process;3cnt = cntQ;end a;代码 3 约翰逊计数器 VHDL 代码图 3 约翰逊计数器 RTL 视图显然,约翰逊计数器没有有效利用寄存器的所有状态,假设最初值或复位状态为 0000,则依次为 0

6、000、0001 、0011、0111、1111、1110、1100 、1000、0000 如此循环。再者,如果由于干扰噪声引入一个无效状态,如 0010,则无法恢复到有效到循环中去,需要我们加入错误恢复处理,在此不再赘述。分频器如前所述,分频器的基础是计数器,设计分频器的关键在于输出电平翻转的时机。下面使用加法计数器分别描述各种分频器的实现。偶数分频器偶数分频最易于实现,欲实现占空比为 50%的偶数 N 分频,一般来说有两种方案:一是当计数器计数到 N/2-1 时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输出为 0 到 N/2-1 时,时钟输出为 0 或 1,计数器输出为 N/2 到 N-1 时,时钟输出为 1 或 0,当计数器计数到N-1 时,复位计数器,如此循环下去。需要说明的是,第一种方案仅仅能实现占空比为 50%的分频器,第二种方案可以有限度的调整占空比,参考非 50%占空比的奇数分频实现。在如下所示的以 6 分频为例的 VHDL 代码中, architecture a 使用的是第一种方案,architecture b 使用的是第二种方案。更改 configuration 可查看不同方案的综合结果。-filename clk_div1.vhd

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。