Como evitar o uso da lógica combinacional no reset síncrono

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Usando lógica combinacional no clear sincrono

Um código em VHDL genérico resultará na maioria das vezes na adição de um circuito combinacional para a entrada clear sincrono.


Figura 1 - RTL do flip-flop D com reset síncrono
FF D RST SINC.png
Fonte: Elaborado pelo autor.
evitando a lógica combinacional no clear sincrono

Para evitar o uso do circuito combinacional para a entrada CLEAR_SYNC no flip_flop D é necessário utilizar a Low-Level Primitives DFFEAS


Figura 2 - RTL de Flip-flop D com reset síncrono (usando o componente DFFEAS)
FF D SCLR.png
Fonte: Elaborado pelo autor.

Figura 3 - Technology Map do flip-flop D com reset síncrono (usando o componente DFFEAS)
TM FF D SCLR.png
Fonte: Elaborado pelo autor.
library ieee;
use ieee.std_logic_1164.all;

entity FF_D is
	port
	(
		clock    : in  STD_LOGIC;

		sync_clr : in  STD_LOGIC;
		d        : in  STD_LOGIC;
		q        : out STD_LOGIC := '0');
end entity;

architecture ifsc of FF_D is
	component DFFEAS
		port
		(
			d      : in  STD_LOGIC;
			clk    : in  STD_LOGIC;
			clrn   : in  STD_LOGIC;
			prn    : in  STD_LOGIC;
			ena    : in  STD_LOGIC;
			asdata : in  STD_LOGIC;
			aload  : in  STD_LOGIC;
			sclr   : in  STD_LOGIC;
			sload  : in  STD_LOGIC;
			q      : out STD_LOGIC);
	end component;
begin
	FFD : DFFEAS
	port map
	(
		d      => d,
		clk    => clock,
		clrn   => '1',
		prn    => '1',
		ena    => '1',
		asdata => '0',
		aload  => '0',
		sclr   => sync_clr,
		sload  => '0',
		q      => q);
end architecture;
Ler