在下面的代碼下面的錯誤發生:如何比較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