Mudanças entre as edições de "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
 
Linha 2: Linha 2:
 
Um código em VHDL genérico resultará na maioria das vezes na adição de um circuito combinacional para a entrada 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.
  
{{fig|1|RTL do flip-flop D com reset síncrono| FF_D_RST_SINC.png| 400 px | }}
+
{{fig|1|RTL do flip-flop D com reset síncrono| FF_D_RST_SINC.png| 800 px | }}
  
 
;evitando a lógica combinacional no clear sincrono
 
;evitando a lógica combinacional no clear sincrono

Edição atual tal como às 14h53min de 18 de outubro de 2023

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