大家帮忙看看下面的程序,有错误,帮忙改改,万分感谢
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity mycounter_60 is
port(clk,clr,en,bcd1wr,bcd10wr:in std_logic;
din:in std_logic_vector(3 downto 0);
bcd1: out std_logic_vector(3 downto 0);
co: out std_logic;
bcd10: out std_logic_vector(2 downto 0));
end mycounter_60;
architecture art2 of mycounter_60 is
signal bcd1n:std_logic_vector(3 downto 0);
signal bcd10n:std_logic_vector(2 downto 0);
begin
PROCESS(clk,clr,en,bcd1wr) is
begin
if(clr='0') then
bcd1n<=(others=>'0');
bcd10n<=(others=>'0');
elsif(clk'event and clk='1') then
if(bcd1wr='1' and en='1') then
bcd1n<=din;
elsif(en='1') then
bcd1n<=bcd1n+1;
if(bcd1n>=9) then
bcd1n<="0000";
end if;
end if;
end if;
end process;
process(bcd10wr,en,bcd1n) is
begin
if(bcd10wr='1' and en='1') then
bcd10n<=din(2 downto 0);
elsif(bcd1n=9 and en='1') then
bcd10n<=bcd10n+1;
if(bcd10n=5) then
bcd10n<="000";
co<='1';
else
co<='0';
end if;
end if;
end process;
bcd1<=bcd1n;
bcd10<=bcd10n;
end art2; |