cjh19980423 2018-06-13 12:32 采纳率: 0%
浏览 1897
已结题

关于quartus数字钟分频器的问题

从网上下载了一段代码 但是关于分频器有点看不懂
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fenpin is
port(clk:in std_logic;
-- q:out std_logic_vector(9 downto 0);
clk512,clk4,clk1,clk16,clk256:out std_logic);
end fenpin;
architecture behave of fenpin is
signal y:std_logic_vector(9 downto 0);
begin
process(clk)
begin
if(clk='1')then
if(y="1111111111")then
y<="0000000000";
clk512<=y(0);
clk256<=y(1);
clk16<=y(5);
clk4<=y(7);
clk1<=y(9);
else

y<=y+'1';
clk512<=y(0);
clk256<=y(1);
clk16<=y(5);
clk4<=y(7);
clk1<=y(9);
end if;
end if;
end process;
end behave;

这里的y什么时候被赋值 还有分频器的作用是啥

  • 写回答

1条回答 默认 最新

  • qq_28402371 2018-06-13 14:33
    关注

    fpga是并行执行,但一个process内部是顺序执行,process后面的括号是敏感信号,这个代码里面是CLK,也就是说CLK变化时,process就开始执行,按照顺序走完整个process,然后等待CLK再发生变化。有C基础就能看懂PROCESS的代码,知道是把lck做了5种分频。
    分频的作用当然是为了得到想要的时钟,CLK为系统时钟,是单一频率。但在设计某个项目时,一个时钟往往满足不了需求,需要倍频或者分频。比如,一个驱动电机的PWM,一般是几KHz,一个SPI通信时钟一般是几M Hz.等等等等不同的设计需求。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作