mình co viiet chuơng trinh vhdl cho vi xu li
coolrunner2 cplds
xc2c256
chuơng trình mình viết la nhan nút thi dêm lên nhấn nữa thi đếm xuống .
chuơng trinh như sau
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 21:43:57 04/03/2008
-- Design Name:
-- Module Name: pack - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity pack is
Port ( CLK : in STD_LOGIC;
CLR : in STD_LOGIC;
BUTTON : in STD_LOGIC;
LED1 : out STD_LOGIC_VECTOR (6 downto 0);
LED2 : out STD_LOGIC_VECTOR (6 downto 0));
end pack;
architecture Behavioral of pack is
PROCEDURE HIENTHI(SIGNAL LED1: out STD_LOGIC_VECTOR (6 downto 0);SIGNAL LED2 :out
STD_LOGIC_VECTOR (6 downto 0);X : IN INTEGER)IS
TYPE MANG_LED IS ARRAY (0 TO 9 )OF STD_LOGIC_VECTOR (6 downto 0);
constant MA_LED : MANG_LED := ("1000000","1111001","0100100","0110000","0011001" ,
"0010010","0000010","1111000","0000000","0010000") ;
BEGIN
LED1 <= MA_LED(X/10);
LED2 <= MA_LED(X MOD 10);
END HIENTHI;
BEGIN
PROCESS(CLK,CLR,BUTTON)
VARIABLE CHIATAN,DEM,SO :INTEGER := 0;
BEGIN
IF CLR = '1' THEN
SO:=0;
DEM:=0;
CHIATAN:=0;
ELSIF CLK='1' AND CLK'EVENT THEN
CHIATAN := CHIATAN+1;
IF CHIATAN=1843200 THEN
IF BUTTON ='1' THEN
DEM:= DEM+1;
IF DEM =2 THEN DEM := 0 ; END IF;
END IF;
IF DEM=1 THEN
SO:=SO+1;
IF SO=100 THEN SO :=0; END IF;
END IF;
IF DEM=0 THEN
SO:=SO-1;
IF SO=-1 THEN SO :=99; END IF;
END IF;
HIENTHI(LED1,LED2,SO);
end if;
END IF;
END PROCESS;
end Behavioral;
và mình bien dich có lỗi như sau :
ERROR:Xst:769 - "C:/Xilinx/demlenxuong/pack.vhd" line 47: Operator <DIVIDE> must have constant operands or first operand must be power of 2
bạn nào biết xin chỉ giúp cảm ơn nhiều
coolrunner2 cplds
xc2c256
chuơng trình mình viết la nhan nút thi dêm lên nhấn nữa thi đếm xuống .
chuơng trinh như sau
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 21:43:57 04/03/2008
-- Design Name:
-- Module Name: pack - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity pack is
Port ( CLK : in STD_LOGIC;
CLR : in STD_LOGIC;
BUTTON : in STD_LOGIC;
LED1 : out STD_LOGIC_VECTOR (6 downto 0);
LED2 : out STD_LOGIC_VECTOR (6 downto 0));
end pack;
architecture Behavioral of pack is
PROCEDURE HIENTHI(SIGNAL LED1: out STD_LOGIC_VECTOR (6 downto 0);SIGNAL LED2 :out
STD_LOGIC_VECTOR (6 downto 0);X : IN INTEGER)IS
TYPE MANG_LED IS ARRAY (0 TO 9 )OF STD_LOGIC_VECTOR (6 downto 0);
constant MA_LED : MANG_LED := ("1000000","1111001","0100100","0110000","0011001" ,
"0010010","0000010","1111000","0000000","0010000") ;
BEGIN
LED1 <= MA_LED(X/10);
LED2 <= MA_LED(X MOD 10);
END HIENTHI;
BEGIN
PROCESS(CLK,CLR,BUTTON)
VARIABLE CHIATAN,DEM,SO :INTEGER := 0;
BEGIN
IF CLR = '1' THEN
SO:=0;
DEM:=0;
CHIATAN:=0;
ELSIF CLK='1' AND CLK'EVENT THEN
CHIATAN := CHIATAN+1;
IF CHIATAN=1843200 THEN
IF BUTTON ='1' THEN
DEM:= DEM+1;
IF DEM =2 THEN DEM := 0 ; END IF;
END IF;
IF DEM=1 THEN
SO:=SO+1;
IF SO=100 THEN SO :=0; END IF;
END IF;
IF DEM=0 THEN
SO:=SO-1;
IF SO=-1 THEN SO :=99; END IF;
END IF;
HIENTHI(LED1,LED2,SO);
end if;
END IF;
END PROCESS;
end Behavioral;
và mình bien dich có lỗi như sau :
ERROR:Xst:769 - "C:/Xilinx/demlenxuong/pack.vhd" line 47: Operator <DIVIDE> must have constant operands or first operand must be power of 2
bạn nào biết xin chỉ giúp cảm ơn nhiều

Comment