Board logo

标题: 请问怎样将模3计数器的vhdl语言程序改为模n计数器的程序?? [打印本页]

作者: aresxb111    时间: 2005-5-27 01:42     标题: 请问怎样将模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计数器的程序?? 本人是初学的菜鸟,请各位高手指点一下,感激不尽阿~~!!!!
作者: rainmaker    时间: 2005-5-28 06:48

请自己仔细分析这段代码。重点是它在什么条件下重新置0。


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


作者: aresxb111    时间: 2005-5-28 17:19

不好意思,我刚接触这个语言,这个问题是一个也在学习这个的朋友让我帮着问得,我就是因为不会才求助各位高手的,希望知道的人能把改的地方写出来,再次感谢上面这位大侠~~~!!
作者: rainmaker    时间: 2005-5-29 12:55

这段代码实现的是一个带使能和异步复位功能的三分频器。

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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0