用VHDL编写分频器程序

用VHDL编写分频器程序,第1张

这个一般有两种方法,一种是分奇偶分频,因为奇偶分频不一样,所以先判断是奇偶,然后再相应处理就可以了,另一种是一种整体算法思想,不需要判断奇偶数。。。

顶层模块程序:

entity control_clk is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_div: out std_logic

)

end control_clk

architecture rlt_control of control_clk is

component odd_div is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_odd: out std_logic

)

end component

signal clk_odd : std_logic :='0'

component even_div is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_even : out std_logic

)

end component

signal clk_even : std_logic :='0'

signal odd_even : std_logic :='0'

begin

odd_u : odd_div

port map(

Clk_i =>Clk_i,

Data_i =>Data_i,

Clk_odd=>clk_odd

)

even_u : even_div

port map(

Clk_i =>Clk_i,

Data_i =>Data_i,

Clk_even=>clk_even

)

odd_even <= Data_i(0)

process(odd_even,clk_even,clk_odd)

begin

if odd_even ='0' then

Clk_div <= clk_even

else

Clk_div <= clk_odd

end if

end process

end rlt_control

模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语言略。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7827682.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存