首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请问怎样将模3计数器的vhdl语言程序改为模n计数器的程序??

请问怎样将模3计数器的vhdl语言程序改为模n计数器的程序??

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter3 is port(clk,reset,en:in std_logic; qa,qbut std_logic); end counter3; architecture behavior of counter3 is signal count:std_logic_vector(1 downto 0); begin process(reset,clk) begin if reset='1'then count(1 downto 0)<="00"; else if(clk 'event and clk='1')then if(en='1')then if(count="10")then count<="00"; else count<=count+1; end if; end if; end if; end if; end process; qa<=count(0); qb<=count(1); end behavior; 上面这个是模3计数器的vhdl语言的程序,请问怎样把它改成模n计数器的程序?? 本人是初学的菜鸟,请各位高手指点一下,感激不尽阿~~!!!!
请自己仔细分析这段代码。重点是它在什么条件下重新置0。


[此贴子已经被作者于2005-5-28 6:48:56编辑过]

不好意思,我刚接触这个语言,这个问题是一个也在学习这个的朋友让我帮着问得,我就是因为不会才求助各位高手的,希望知道的人能把改的地方写出来,再次感谢上面这位大侠~~~!!
这段代码实现的是一个带使能和异步复位功能的三分频器。

如果要得到n分频,先求出n-1的二进制代码,用该二进制码替换掉if(count="10")then中的"10",用该二进制码的位宽替换掉count现在定义的位宽。count最高位输出就是一个clk分频n倍后的信号。
返回列表