集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1056|回复: 2

请问一下

[复制链接]
zhiweiqiang33 发表于 2013-5-14 21:25:33 | 显示全部楼层 |阅读模式
-------------------------------------------------------
---本例程实现一个流水灯,led灯从左至右依次点亮,并循环
-------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity one_led is
port(clk:in std_logic;
     rst:in std_logic;
     ledut std_logic_vector(7 downto 0)
    );
end one_led;
architecture one of one_led is
signal clk10hz:std_logic;--定义10HZ时钟信号
signal led_tmp:std_logic_vector(7 downto 0);--定义8个灯的中间信号
begin
--------------------------------------------
-----------------分频器
--本进程将50MHZ时钟分频生成一个10HZ时钟1mhz=10^3khz=10^6hz
--------------------------------------------
process(clk)
variable cnt:integer range 0 to 2499999;
begin
if rising_edge(clk) then
   if cnt=2499999 then
      cnt:=0;
      clk10hz<=not clk10hz;
   else
      cnt:=cnt+1;
   end if;
end if;
end process;
----------------------------------------------
---本进程用信号移位的方式实现led灯的依次亮灭
----------------------------------------------
process(clk10hz,rst)
begin
if rst='0' then
   led_tmp<="01111111";--led低电平点亮
elsif rising_edge(clk10hz) then
   led_tmp<=led_tmp(0)&led_tmp(7 downto 1);--将led_tmp中的0右移依次循环
end if;
end process;
led<=led_tmp;
end one;
   





请问一下,这个历程里为什偏要把50MHZ的时钟分成10HZ
至芯兴洪 发表于 2013-5-14 23:21:21 | 显示全部楼层
频率低才能肉眼看见灯的变化
 楼主| zhiweiqiang33 发表于 2013-5-15 09:32:42 | 显示全部楼层
恩 理论性的东西
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-8-3 08:13 , Processed in 0.072341 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表