No hay entradas factibles para el subprograma "rising_edge"

2

Es la primera vez que codifiqué en VHDL y corrí a un problema que no tengo ni idea de cómo resolverlo. Cuando intento compilar mi código en modelsim, me da "No hay entradas factibles para Subprograma rising_edge" . Aquí está mi código.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.MATH_REAL.ALL;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;

ENTITY cnt IS
    PORT(
        clk, res_cnt, cnt_en : IN BIT;
        dataOut: OUT INTEGER
    );
END cnt;

ARCHITECTURE base OF cnt IS
    SIGNAL data: INTEGER;
BEGIN
    PROCESS (clk)
    BEGIN
        IF rising_edge(clk) THEN
            data <= 1 WHEN res_cnt = '1' ELSE (data + 1);
        END IF;
    END PROCESS;

    dataOut <= data;
END base;
    
pregunta Bat

1 respuesta

3

No uses el tipo BIT , usa STD_LOGIC en su lugar. Probablemente es por eso que tienes tu error. No hay una rutina de aumento de cobertura para BIT en las bibliotecas que está utilizando, pero seguramente existe para std_logic .

Además, ¿por qué incluyó IEEE.MATH_REAL , IEEE.std_logic_unsigned y IEEE.std_logic_arith ? No lo está utilizando, y en realidad nunca debe incluir los dos últimos (estos paquetes no están en el estándar IEEE). Utilice IEEE.numeric_std en su lugar.

    
respondido por el Staszek

Lea otras preguntas en las etiquetas