请问怎样将模3计数器的vhdl语言程序改为模n计数器的程序??
- UID
- 107526
- 性别
- 男
|
请问怎样将模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计数器的程序??
本人是初学的菜鸟,请各位高手指点一下,感激不尽阿~~!!!! |
|
|
|
|
|
- UID
- 113335
- 性别
- 男
|
请自己仔细分析这段代码。重点是它在什么条件下重新置0。
[此贴子已经被作者于2005-5-28 6:48:56编辑过] |
|
|
|
|
|
- UID
- 107526
- 性别
- 男
|
不好意思,我刚接触这个语言,这个问题是一个也在学习这个的朋友让我帮着问得,我就是因为不会才求助各位高手的,希望知道的人能把改的地方写出来,再次感谢上面这位大侠~~~!! |
|
|
|
|
|
- UID
- 113335
- 性别
- 男
|
这段代码实现的是一个带使能和异步复位功能的三分频器。
如果要得到n分频,先求出n-1的二进制代码,用该二进制码替换掉if(count="10")then中的"10",用该二进制码的位宽替换掉count现在定义的位宽。count最高位输出就是一个clk分频n倍后的信号。 |
|
|
|
|
|