Resultado de la síntesis: RTL vs Technology Map Viewer

3

Estoy evaluando este código a continuación. Pero vi que la salida lógica de la RTL y el Visor de mapas tecnológicos son diferentes. Yo uso Quartus Prime Elite Edition. ¿Me estoy perdiendo algo?

esta es la tabla de verdad

                      RTL                          Technology Map
A    (NOT A)   p_a    ((A XOR p_a) AND A)          ((NOT A) AND p_a)
0      1        0           0                            0        
0      1        1           0                            1                
1      0        0           1                            0                  
1      0        1           0                            0      

library ieee;
use ieee.std_logic_1164.all;

entity keypad is
port (
    clk             : in std_logic;
    rst             : in std_logic;
    a               : in std_logic;
    b               : in std_logic;
    c               : in std_logic;
    d               : in std_logic;
    e               : in std_logic;
    keypad      : out std_logic_vector (4 downto 0)
    );
end entity keypad;


architecture rtl of keypad is

signal p_a, p_b, p_c, p_d, p_e  : std_logic;

BEGIN

KEY:    process(A, B, C, D, E, rst, clk)
        begin
        if      rst = '1' then
            p_a <= '0';
            p_b <= '0';
            p_c <= '0';
            p_d <= '0';
            p_e <= '0';
        elsif clk'event AND clk='1' then    
            p_a <= A;
            p_b <= B;
            p_c <= C;
            p_d <= D;
            p_e <= E;
        end if;
        end process;

keypad(4) <= '1' when a /= p_a and a = '1' else '0';        
keypad(3) <= (B XOR p_b) AND B;
END architecture;

Agradezco cualquier sugerencia.

    
pregunta Codelearner777

4 respuestas

1

Esto lo encontrarás mucho cuando uses los visores de la lista de redes gráfica. El compilador hace cosas inteligentes que puede que no esperes, y que no siempre son inmediatamente obvias.

La razón es porque la celda lógica combinacional tiene entradas de inversión en su ejemplo. Debe verificar tanto el contenido (F) como la celda del peine en la vista de propiedades:

Luego los contenidos:

Laceldadelpeine:

Haysusinversoresperdidos.Laceldacombinatoriacomoentradas"Active Low", por lo que la lógica interna tiene que invertirlas.

Puede consultar la vista de la ecuación para confirmar:

Aquí vemos que la ecuación se convierte en:

$$ \ overline {p \ _a} \ cdot a $$

    
respondido por el Tom Carpenter
2

Son equivalentes. El visor de código / rtl da la ecuación como (B xor p_b) y B y la vista del mapa de tecnología lo muestra como B y! P_b. Lo primero se puede simplificar a lo segundo como sigue

\ $ (A \ oplus B) A \ $

\ $ (A \ bar {B} + \ bar {A} B) B \ $

\ $ AA \ bar {B} + A \ bar {A} B \ $

\ $ A \ bar {B} + 0 \ $ (\ $ A \ bar {A} \ $ es 0, por lo que el lado derecho es 0)

\ $ A \ bar {B} \ $

    
respondido por el C_Elegans
2

Ambos son equivalentes. El visor RTL muestra qué lógica digital está implementada por su código HDL. Sería lo que dibuje en un papel, si diseñara un circuito digital que satisfaga sus requisitos funcionales. El visor de tecnología muestra cómo se implementa este circuito digital dentro de FPGA. Depende de la tecnología dentro de FPGA. Por ejemplo. Una puerta OR se implementa como una LTU simple dentro de FPGA. Muestra cómo se utilizan las LUT, qué IOB ha usado, si está utilizando buffers en líneas, etc.

En su visor de tecnología, muestra que la combinación de lógica producida por dos compuertas lógicas se implementa como una sola tabla de verdad en una LUT dentro de FPGA. Así como C_elegants ha respondido.

    
respondido por el MITU RAJ
0

El asignador lógico utiliza símbolos "funcionales", que es solo un cuadrado con la función que cumple el bloque. Esto puede asignarse a todo tipo de lógica.

Por ejemplo, si usa un '+', la función será 'sumador': un cuadrado con dos entradas y una salida. Que los mapas en las puertas numerosas. También se puede mapear en diferentes puertas, p. un sumador de arrastre de ondulación lenta o un sumador de arrastre de avance más rápido.

También permite que una herramienta funcione con una mezcla de, por ejemplo, Verilog y VHDL. Usan dos compiladores para mapear el lenguaje en primitivos funcionales y luego pueden usar una herramienta para ir a las puertas y optimizar.

Y pueden usar una herramienta diferente para ir a las puertas y optimizar para un tipo de FPGA totalmente diferente.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas