好文档 - 专业文书写作范文服务资料分享网站

分频器的VHDL代码在数字电路中,常需_001

天下 分享 时间: 加入收藏 我要投稿 点赞

分频器的VHDL代码

在数字电路中,常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号。我们知道,在硬件电路设计中时钟信号是最重要的信号之一。 下面我们介绍分频器的 VHDL 描述,在源代码中完成对时钟信号 CLK 的 2 分频, 4 分频, 8 分频, 16 分频。 这也是最简单的分频电路,只需要一个计数器即可。

LIBRARY IEEE;

USE

USE

USE

ENTITY clkdiv IS

PORT(clk : IN STD_LOGIC;

clk_div2 : OUT STD_LOGIC;

clk_div4 : OUT STD_LOGIC;

clk_div8 : OUT STD_LOGIC;

clk_div16 : OUT STD_LOGIC);

END clkdiv;

ARCHITECTURE rtl OF clkdiv IS

SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS(clk)

BEGIN

IF (clk'event AND clk='1') THEN

IF(count=\

Count <= (OTHERS =>'0' );

ELSE

Count <= count +1;

END IF ;

END IF ;

END PROCESS;

clk_div2 <= count(0);

clk_div4 <= count(1);

clk_div8 <= count(2);

clk_div16 <= count(3);

END rtl;

对于分频倍数不是 2 的整数次幂的情况,我们只需要对vhDL源代码中的计数器进行一下计数控制就可以了,如下面源代码描述一个对时钟信号进行 6 分频的分频器。

LIBRARY IEEE;

USE

USE

USE

ENTITY clkdiv_1 IS

PORT(clk : IN STD_LOGIC; clk_div6 : OUT STD_LOGIC);

END;

ARCHITECTURE rtl OF clkdiv_1 IS

SIGNAL count : STD_LOGIC_VECTOR(1 DOWNTO 0);

SIGNAL clk_temp : STD_LOGIC;

BEGIN

PROCESS(clk)

BEGIN

IF (clk'event AND clk='1') THEN

IF(count=\

count <= (OTHERS =>'0' );

clk_temp <=NOT clk_temp;

ELSE

count <= count +1;

END IF ;

END IF ;

END PROCESS;

clk_div6 <= clk_temp;

END rtl;

对于上述源代码描述的这种分频器,在硬件电路设计中应用十分广泛,设计人员常采用这

种分频器来产生选通信号、中断信号和数字通信中常常用到的帧头信号等。 精心搜集整理,只为你的需要

分频器的VHDL代码在数字电路中,常需_001

分频器的VHDL代码在数字电路中,常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号。我们知道,在硬件电路设计中时钟信号是最重要的信号之一。下面我们介绍分频器的VHDL描述,在源代码中完成对时钟信号CLK的2分频,4分频,8分频,16分频。这也是最简单的分频电路,只需要一个计数器即可。LIBRARYIE
推荐度:
点击下载文档文档为doc格式
7afr84qjgi05ej21u0rq9kfa25180i00k8i
领取福利

微信扫码领取福利

微信扫码分享