这个3000分频写得对吗
时间:10-02
整理:3721RD
点击:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity qddl is
port(clk,work,clrn: in std_logic;
qut std_logic;
);
end qddl;
architecture arch of qddl is
varible temp : inter range 0 to 3000;
begin
process(clk,work)
begin
if (clk'event and clk='1' and work='1') then
if clrn='0' then temp:=0;
elsif temp:=temp+1;
end if;
end if;
if temp=3000 then q<='1';
else q<='0';
end if;
end process;
end arch;
请问这个分频器能实现每3000个脉冲就输出一个正脉冲吗?这样写法好吗?若不好应该在那里改进?
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity qddl is
port(clk,work,clrn: in std_logic;
qut std_logic;
);
end qddl;
architecture arch of qddl is
varible temp : inter range 0 to 3000;
begin
process(clk,work)
begin
if (clk'event and clk='1' and work='1') then
if clrn='0' then temp:=0;
elsif temp:=temp+1;
end if;
end if;
if temp=3000 then q<='1';
else q<='0';
end if;
end process;
end arch;
请问这个分频器能实现每3000个脉冲就输出一个正脉冲吗?这样写法好吗?若不好应该在那里改进?
这个3000分频写得对吗
有点问题
变量只有在局部才能使用
这段程序在编译时要出错
把varible temp : inter range 0 to 3000放在process(clk,work) 后面
还有本身问题还大
当temp=3000的下一个时钟后temp怎么运行?
所以temp必须是个3000的循环计数功能