Pacote Genéricos
Abrir arquivo fonte ⧉Funções auxiliares de lógica abstrata, genérica para todos os casos.
Tipos
Nome | Tipo | Descrição |
---|---|---|
t_std_logic_array | array(natural range <>) of std_logic_vector | Para facilitar a criação de um banco de registradores, foi criado um tipo de variável que seria uma matriz de vetores. |
Funções
reverse_vector
Recebe um vetor arbitrário e retorna o mesmo invertendo a ordem os bits. Ou seja, para um dado vetor de tamanho n downto 0
, seja vector(n)
passa a ser vector(0)
.
reverse_vector (l: in std_logic_vector) return std_logic_vector
reduce_or
Aplica lógica OU bit-a-bit em um vetor de tamanho n em estrutura de árvore de derivação. Esta abordagem torna os diagramas RTL mais compactos em comparação a abordagem encadeada da biblioteca padrão IEEE. Por exemplo, um vetor v(3 downto 0)
reduzido em lógica encadeada resultaria num circuito equivalente:
( ( v(0) OR v(1) ) OR v(2) ) OR v(3)
O mesmo vetor reduzido em lógica em àrvore reduz a profundidade do curcuito em O(log n)
e facilita a vizualização de diagramas RTL:
( v(0) OR v(1) ) OR ( v(2) OR v(3) )
reduce_or (l : std_logic_vector) return std_logic
reduce_and
Aplica lógica E bit-a-bit em um vetor de tamanho N
em estrutura de árvore de derivação. Esta abordagem torna os diagramas RTL mais compactos em comparação a abordagem encadeada da biblioteca padrão IEEE.- is_equal (l : std_logic_vector; r : std_logic_vector) return std_logic Função que compara um vetor de dados dinâmico com um vetor de estático. O propósito é reduzir o vetor em lógica booleana E bit-a-bit incluindo negações conforme o vetor estático. O retorno é um único bit que assume valor lógico alto quando o vetor a ser comparado é igual ao vetor estático. Este é uma especificação do is_equal_dynamic para o caso em que um dos vetores define um valor constante. Isto gera um circuito com uso de menos recursos.
reduce_and (l : std_logic_vector) return std_logic
is_equal_dynamic
Função que compara dois vetored dinâmicos. O propósito é reduzir o vetor XOR de ambos em lógica booleana E bit-a-bit. O retorno é um único bit que assume valor lógico alto quando ambos os vetores forem ignais.
is_equal_dynamic (l : std_logic_vector; r : std_logic_vector) return std_logic