FPGA十分频程序,用VHDL写!!急求!!!

FPGA十分频程序,用VHDL写!!急求!!!,第1张

我这让握个是可以实现多个分频的。

LIBRARY IEEE

USE IEEE.STD_LOGIC_1164.ALL

USE IEEE.STD_LOGIC_UNSIGNED.ALL

ENTITY DVF IS

PORT(CLK:IN STD_LOGIC ----时钟输入---

D:IN STD_LOGIC_VECTOR(7 DOWNTO 0) ----这个输入11111111-1010=1110101即是十分频----

FOUT:OUT STD_LOGIC)----对CLK十分频后的输出----

END

ARCHITECTURE ONE OF DVF IS

SIGNAL FULL:STD_LOGIC

SIGNAL F_T:STD_LOGIC

BEGIN

P_REG:PROCESS(CLK)

VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF CNT8="坦孙庆11111111"THEN

CNT8:=D

FULL<='1'

ELSE CNT8:=CNT8+1

FULL<='0'

END IF

END IF

END PROCESS P_REG

P_DIV:PROCESS(FULL)

VARIABLE CNT2:STD_LOGIC

BEGIN

IF FULL'EVENT AND FULL='1' THEN

CNT2:=NOT CNT2

IF CNT2='1' THEN

F_T<='凯野1'

ELSE F_T<='0'

END IF

END IF

END PROCESS P_DIV

FOUT<=F_T

END

module div(clk25M,clkout) //分频,产生1HZ频率

input clk25M //输入24MHz,输出1Hz

output reg clkout

integer A=0//计数器

always@(posedge clk10M)

if(A<=12500000)A<=A+1 //计隐颤模数器每记到12.5M,洞友clk翻转一次

else begin clkout<灶缓=~clkoutA<=0end

endmodule

FPGA是大规唤手正模可编程器件,芯片,主要是门阵列芯片。根据你的硬件程序,它可以“变成”任何电路,CPU,DSP,或者是图形处理器,等等。。

分频器一般用计数器就可以和悔薯迹实现了。2分频,也就是说对原来的时钟计数,每记2个数让新的时钟输出翻转。新的时钟周期不就是原来的2倍么,这就完成了2分频。同理可以实现任意分频,只要用计数器记满你想分频的倍率然后让新时钟输出翻转即可。 翻转的意思是,1变0,0变1。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存