vhdl编写模可变计数器
发布网友
发布时间:2022-04-29 22:09
我来回答
共1个回答
热心网友
时间:2022-06-24 03:44
oh my god!!!!!你连用了三个时钟上升沿,难怪会说你bad synchronous description.
程序改正如下:
Library ieee;
Use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
Entity counter is
port(clk ,cw, increment,reset: in std_logic;
led : out std_logic_vector (7 downto 0) );
End counter;
Architecture art of counter is注意这里结构体名最好不要与实体名一致
Begin
Process(clk ,cw, increment, reset)
Variable i : std_logic_vector (7 downto 0);
Begin
If reset='1' then --复位不能用其上升沿,直接=1就可以了
i := "00000000";
elsIf(clk'event and clk = '1') then
If(increment = '1') then--这个使能位也一样,
If(cw = '1') then
i := i + 1;
elsIf(cw = '0') then
i := i - 1;
End if;
Else null;
End if;
End if;
led <= i;
End process;
End art;
你可以加入团队一起学习学习
嵌入@live