vhdl分频器

标签:
杂谈 |
vhdl分频器
vhdl分频器就是把输入时钟的频率降低后再输出时钟的模块。今天我们只讨论等占空比的偶数分频和奇数分频,关于小数分频以及倍频将不做介绍,有兴趣的朋友可以自行研究。在之之前我们先看下前面讲的模-m计数器。
vhdl分频器是数字系统设计中的基本电路,根据不同设计的需要,我们会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,有时要求非等占空比。在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单。但对半整数分频及等占空比的奇数分频实现较为困难。
vhdl分频器设计
在数字电路中,常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号。我们知道,在硬件电路设计中时钟信号时非常重要的。
vhdl分频器设计举例:
设计一个分频器,用VHDL语言写的。将100MHz的信号分成1hz与1khz!
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY counter IS
PORT
(
END counter;
ARCHITECTURE bhv OF counter IS
BEGIN
KHZ:PROCESS(clock)
VARIABLE cout:INTEGER:=0;
BEGIN
IF clock'EVENT AND clock='1' THEN
cout:=cout+1;
IF cout<=500 THEN q1khz<='0';
END IF;
END IF;
END PROCESS;
HZ:PROCESS(q1khz)
VARIABLE cout:INTEGER:=0;
BEGIN
IF q1khz'EVENT AND q1khz='1' THEN
cout:=cout+1;
IF cout<=500 THEN q1hz<='0';
END IF;
END IF;
END PROCESS;
END bhv;
基于VHDL的多种分频的实现方法
vhdl分频器的实现
现通过设计一个可以实现8.5分频,等占空比的17分频,2、4、8、16、32分频,及占空比为1∶8和4∶5的9分频等多种形式分频的分频器,介绍该通用分频器的FPGA实现。
http://www.52solution.com/images/eesmart/article/image/00.png
图1vhdl分频器原理图
由图1电路原理图可知,分频器由带使能端的异或门、模N计数器和一个2分频器组成,本设计用D触发器来完成2分频的功能,实现方法是:将触发器的Q反输出端反馈回输入端D,将计数器的一个计数输出端作为D触发器的时钟输入端。各功能模块的VHDL语言实现如下。
1.模N计数器的实现
一般设计中用到计数器时,我们可以调用lpm库中的计数器模块,也可以采用VHDL语言自己设计一个模N计数器。本设计采用VHDL语言设计一个最大模值为16的计数器。输入端口为:使能信号en,复位信号clr和时钟信号clk;输出端口为:qa、qb、qc、qd。其VHDL语言描述略。
2.带使能控制的异或门的实现
输入端为:xor_en:异或使能,a和b:异或输入;输出端为:c:异或输出。当xor_en为高电平时,c输出a和b的异或值。当xor_en为低电平时,c输出信号b。其VHDL语言略。
3.2.vhdl分频(触发器)的实现
输入端为:时钟信号clk,输入信号d;输出端为:q:输出信号a,q1:输出信号a反。其VHDL语言略。
4.vhdl分频器的实现
本设计采用层次化的设计方法,首先设计实现分频器电路中各组成电路元件,然后通过元件例化的方法,调用各元件,实现整个分频器。其VHDL语言略。
vhdl分频器
原创文章:"http://www.52solution.com/knowledge/knowledgeinfo/id/804"
【请保留版权,谢谢!】文章出自我爱方案网。