0

次のコードでは、次のエラーが発生します。

エラー (10821): ClockGen.vhd(33) での HDL エラー: サポートされているレジスタ モデルと動作が一致しないため、"cont[0]" のレジスタを推論できません

符号付き変数と符号なし変数を使用して比較を試みましたが、うまくいきませんでした。

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;
4

3 に答える 3