集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1118|回复: 2

VHDL分频程序,希望大家帮帮忙,给我详细解释一下,谢谢了

[复制链接]
ABCDEFG 发表于 2014-5-2 14:06:05 | 显示全部楼层 |阅读模式
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity even_div1 is
      
       port(   clk: in std_logic;
               clkout: out std_logic);
end even_div1;

architecture Behavioral of even_div1 is
       signal temp_clk:std_logic:='0';
       signal cnt:integer range 0 to 7;
begin
       process(clk)
       begin
              if rising_edge(clk) then
                     cnt<=cnt+1;
                     if cnt=4 then
                            temp_clk<= not temp_clk;
                            cnt<=0;
                     else
                            cnt<=cnt+1;
                     end if;
              end if;
       end process;
       clkout<=temp_clk;
end Behavioral;
这个是书上一个十分频的例子,我想问signal cnt:integer range 0 to 7;这句程序的的那个CNT取值范围是随便定的吗,可以写range 0 to 4吗,还有这个CNT的初值是多少?谢谢了
至芯兴洪 发表于 2014-5-2 16:40:31 | 显示全部楼层
初始值根据芯片不同而不同,因为没有复位信号,初始值就不确定,一般为0.
cnt的宽度根据分频值确定,位宽可根据分频值调整。
linyuxuan 发表于 2014-6-26 22:12:37 | 显示全部楼层
硬件中不存在变量,数据均以信号线存在,那么信号线表示的值都是2的n次方减一的范围,计数用到4,写成0到4没问题,用到5,就写成0到7,因为写成0-5和0-7用的线的根数相同。简单浅显吧。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-5-7 07:24 , Processed in 0.059134 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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