Tipo de asignación de señal

2

¿Cuál es el significado de "asignación combinacional" y "asignación registrada" a las señales? En particular, ¿cuáles son las diferencias entre estos dos tipos de tareas?

    
pregunta rrazd

2 respuestas

4

Esencialmente, la diferencia se reduce a si la señal se asigna en el borde del reloj o no.

código de combinación, como     A < = B + 1 tendría A siendo asignado B + 1 "inmediatamente", mientras que

    process(clk)
    begin
        if(rising_edge(clk)) then
            A <= B + 1;
        end if;
    end process;

daría lugar a que A se asigne B + 1 solo en un flanco ascendente de reloj. Con un código como este, otros bloques pueden usar el valor de A garantizando que su valor será estable e invariable después de un borde del reloj.

Los registros, o la sincronización del reloj en general, supongo, son realmente lo que hace posible el diseño de cualquier complicación. Usted crea una tubería de operaciones al colocar un registro en el borde entre las operaciones. Por ejemplo, los operandos de entrada a una ALU deben ser estables (en un registro) para que la ALU pueda ejecutarse correctamente, y el resultado de la ejecución de la ALU debe estar en un registro para que cualquier bloque que use no "vea" el cambio. Valores dentro de la ALU a medida que se realizan los cálculos, pero solo el último resultado estable.

    
respondido por el Kevin H
1

Las asignaciones en VHDL no se especifican como registradas o combinatorias. En VHDL, el tipo de asignación real (el tipo de lógica RTL generada) simplemente se deduce.

Los registros en VHDL se crean explícitamente al asignar una señal en un borde del reloj, aunque solo porque un proceso tiene un reloj, no significa que todas las señales en ese bloque se asignarán en cada borde.

También se pueden inferir registros sin un reloj, si alguna ruta a través de un proceso no asigna una señal, entonces VHDL asume que la intención es bloquear esa señal entre pasadas sucesivas. Esto se llama un cierre inferido (y debe evitarse).

VHDL no conoce la tecnología que va a utilizar. No sabe si su motor de síntesis puede generar T, D, JK, SR o cualquier otro tipo de cierre. Por esa razón, simplemente sugiere un pestillo, depende de la síntesis de la síntesis decidir qué pestillo es el adecuado o si es simplemente imposible. Similarlay el instalador podría decir que un cierre en particular solicitado por la ingeniería de síntesis no está disponible o que no hay suficientes.

    
respondido por el Jason Morgan

Lea otras preguntas en las etiquetas