在下面的代码下面的错误发生:如何比较VHDL中的整数?我的错误是什么?
错误(10821):在ClockGen.vhd HDL错误(33):不能推断注册“CONT [0]”,因为它的性能不符合任何支持的寄存器模型
我试着用signed和unsigned变量来做比较,但没有奏效。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY ClockGen IS
GENERIC
(Ratio : INTEGER RANGE 0 TO 100 := 10);
PORT
(clk : IN STD_LOGIC;
reset : IN STD_LOGIC;
clk_en : OUT STD_LOGIC);
END ENTITY ClockGen;
ARCHITECTURE Behavior OF ClockGen IS
SIGNAL cont : INTEGER RANGE 0 TO 100 :=0;
BEGIN
--STATEMENTS
Counting : PROCESS (clk, reset)
BEGIN
IF reset='1'
THEN
cont <= 0; clk_en <= '0';
ELSIF RISING_EDGE(clk)
THEN
cont <= cont + 1;
END IF;
IF cont=Ratio AND clk='1' --THE ERROR OCCURS IN THIS LINE
THEN
clk_en <= '1';
ELSIF cont=Ratio AND clk='0'
THEN
clk_en <= '0';
cont<=0;
END IF;
END PROCESS Counting;
END ARCHITECTURE Behavior;
我不是VHDL专家,但考虑到以下错误信息,我从你的程序有:'节点时序逻辑似乎是由多个clocks.'控制。我不认为实际问题是整数比较,而是周围的结构。 –
phineas