vhdl分频器(VHDL分频器的仿真文件)
vhdl语言做分频器,1000000hz变成1hz的
就是把1MHz分频成1hz,两种方法,一种是用fpga自带的锁相环或者时钟管理器,直接设置输出成1hz就行了。另外一种方法就是用hdl实现,包括vhdl和verilog。分频算法如下:计数器开始计数,寄到500000,输出高电平或者低电平;再从500000计数到1000000,输出电平反向。如此反复即可输出1hz时钟信号。
友情提醒:虽然用hdl可以分频时钟信号,但是不建议这样做,因为这样得到的时钟信号不是最优的,可靠性得不到保障,最好选用fpga自带的锁相环或者时钟管理器进行分频和倍频,这样得到的时钟最可靠。
用VHDL语言写分频器
library
ieee;
use
ieee.std_logic_1164.all;
use
ieee.std_logic_unsigned.all;
entity
div
is
generic(n:integer
:=1000000);
port
(clk:in
std_logic;
q:out
std_logic);
end
div;
architecture
behave
of
div
is
signal
count
:integer
range
n-1
downto
0:=n-1;
begin
process(clk)
begin
if
rising_edge(clk)
then
count=count-1;
if
count=n/2
then
q='0';
else
q='1';
end
if;
if
count=0
then
count=n-1;
end
if;
end
if;
end
process;
end
behave;
如何用VHDL实现分频?
模N计数器的实现
一般设计中用到计数器时,我们可以调用lpm库中的计数器模块,也可以采用VHDL语言自己设计一个模N计数器。本设计采用VHDL语言设计一个最大模值为16的计数器。输入端口为:使能信号en,复位信号clr和时钟信号clk;输出端口为:qa、qb、qc、qd。其VHDL语言描述略。
带使能控制的异或门的实现
输入端为:xor_en:异或使能,a和b:异或输入;输出端为:c:异或输出。当xor_en为高电平时,c输出a和b的异或值。当xor_en为低电平时,c输出信号b。其VHDL语言略。
2分频(触发器)的实现
输入端为:时钟信号clk,输入信号d;输出端为:q:输出信号a,q1:输出信号a反。其VHDL语言略。
4.分频器的实现
本设计采用层次化的设计方法,首先设计实现分频器电路中各组成电路元件,然后通过元件例化的方法,调用各元件,实现整个分频器。其VHDL语言略。