Escolar Documentos
Profissional Documentos
Cultura Documentos
Relatório de Projeto
Elaboração:
Gustavo Vinicius Pelisser de Souza
Lucas Ribeiro
CAMPO MOURÃO
PERÍODO LETIVO <2022/1>
1. Problema
2. Arquitetura de Hardware
Os quadros 00, 01, 02, 03, 04 abaixo mostram a entidades de hardware utilizadas
para a construção do projeto completo, com bloco de subtração completo, bloco com a
subtração com as entradas de 4 bits, bloco comparador e blocos multiplexadores para
seleção do sinal desejado.
END ARCHITECTURE;
COMPONENT fullsub IS
PORT (A,B, BorrowIn: IN bit;
S, BorrowOut: OUT bit);
END COMPONENT;
BEGIN
A => AS(0),
B => BS(0),
BorrowIn => '0',
S => SS(0),
BorrowOut => BORROW(0)
);
A => AS(1),
B => BS(1),
BorrowIn => BORROW(0),
S => SS(1),
BorrowOut => BORROW(1)
);
A => AS(2),
B => BS(2),
BorrowIn => BORROW(1),
S => SS(2),
BorrowOut => BORROW(2)
);
A => AS(3),
B => BS(3),
BorrowIn => BORROW(2),
S => SS(3),
BorrowOut => BORROW(3)
);
END ARCHITECTURE;
ENTITY AmaiorB IS
PORT( A, B: bit_vector(3 DOWNTO 0);
MAIOR: OUT bit);
END ENTITY;
ARCHITECTURE comportamento OF AmaiorB IS
BEGIN
MAIOR <= (((not B(3)) and A(3)) OR ((A(3) XNOR B(3)) and ((not
B(2)) and A(2))) OR ((A(3) XNOR B(3)) and (A(2) XNOR B(2)) and
((not B(1)) and A(1))) OR ((A(3) XNOR B(3)) and (A(2) XNOR B(2))
and (A(1) xnor B(1)) and (not B(0) and A(0)))) OR ((A(3) xnor B(3))
and (A(2) xnor B(2)) and (A(1) xnor B(1)) and (A(0) xnor B(0))) when
(A > "0000" and B > "0000") ELSE '0';
END ARCHITECTURE;
ENTITY MuxQuosciente IS
PORT(Selecionador: IN bit; Resultado_Anterior: IN
std_logic_vector (3 downto 0);
Quosciente: OUT std_logic_vector (3 downto 0));
END ENTITY;
BEGIN
ENTITY MuxResto IS
PORT(Selecionador: IN bit; A, ResultadoSub:
std_logic_vector (3 downto 0);
A_ResultadoSub: OUT std_logic_vector (3
downto 0));
END ENTITY;
END ARCHITECTURE;
3. Testbenchs
Para cada bloco foi feito um testbench com o objetivo de testar cada bloco
individualmente. Os quadros abaixo mostram o código desenvolvido e as imagens
mostram o resultado da simulação.
END ARCHITECTURE;
ENTITY testsub IS
END ENTITY;
BEGIN
bc1 : fullsub PORT MAP(A,B,BorrowIn,S,BorrowOut);
PROCESS
BEGIN
END PROCESS;
END ARCHITECTURE;
END ARCHITECTURE;
ENTITY subtrator4bits IS
PORT (AS,BS, BorrowIn: in bit_vector(3 DOWNTO 0);
SS, BorrowOut: out bit_vector(3 DOWNTO 0));
END ENTITY;
COMPONENT fullsub IS
PORT (A,B, BorrowIn: IN bit;
S, BorrowOut: OUT bit);
END COMPONENT;
A => AS(0),
B => BS(0),
BorrowIn => '0',
S => SS(0),
BorrowOut => BORROW(0)
);
A => AS(1),
B => BS(1),
BorrowIn => BORROW(0),
S => SS(1),
BorrowOut => BORROW(1)
);
A => AS(2),
B => BS(2),
BorrowIn => BORROW(1),
S => SS(2),
BorrowOut => BORROW(2)
);
A => AS(3),
B => BS(3),
BorrowIn => BORROW(2),
S => SS(3),
BorrowOut => BORROW(3)
);
PROCESS
BEGIN
END ARCHITECTURE;
ENTITY testecomparador IS
END ENTITY;
COMPONENT AmaiorB IS
PORT( A, B: bit_vector(3 DOWNTO 0);
MAIOR: OUT bit);
END COMPONENT;
BEGIN
END PROCESS;
END ARCHITECTURE;
Quadro 10 – Waveform comparador 4 bits
ENTITY MuxQuosciente IS
PORT(Selecionador: IN bit; Resultado_Anterior: IN std_logic_vector (3
downto 0);
Quosciente: OUT std_logic_vector (3 downto 0));
END ENTITY;
BEGIN
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_signed.all;
use ieee.std_logic_unsigned.all;
ENTITY testemux IS
END ENTITY;
COMPONENT MuxQuosciente IS
PORT(Selecionador: IN bit;
Resultado_Anterior: IN std_logic_vector (3 downto 0);
Quosciente: OUT std_logic_vector (3 downto 0));
END COMPONENT;
BEGIN
END PROCESS;
END ARCHITECTURE;
ENTITY MuxResto IS
PORT(Selecionador: IN bit; A, ResultadoSub: std_logic_vector (3
downto 0);
A_ResultadoSub: OUT std_logic_vector (3 downto
0));
END ENTITY;
BEGIN
END ARCHITECTURE;
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_signed.all;
use ieee.std_logic_unsigned.all;
ENTITY testemux2 IS
END ENTITY;
COMPONENT MuxResto IS
PORT(Selecionador: IN bit; A, ResultadoSub: std_logic_vector (3
downto 0);
A_ResultadoSub: OUT std_logic_vector (3 downto
0));
END COMPONENT;
BEGIN
END PROCESS;
END ARCHITECTURE;
COMPONENT MuxResto IS
PORT(Selecionador: IN bit; A, ResultadoSub: std_logic_vector (3
downto 0);
A_ResultadoSub: OUT std_logic_vector (3 downto
0));
END COMPONENT;
COMPONENT MuxQuosciente IS
PORT(Selecionador: IN bit; Resultado_Anterior: IN
std_logic_vector (3 downto 0);
Quosciente: OUT std_logic_vector (3 downto 0));
END COMPONENT;
ENTITY AmaiorB IS
PORT( A, B: bit_vector(3 DOWNTO 0);
MAIOR: OUT bit);
END COMPONENT;
COMPONENT subtrator4bits IS
PORT (AS,BS, BorrowIn: in bit_vector(3 DOWNTO 0);
SS, BorrowOut: out bit_vector(3 DOWNTO 0));
END COMPONENT;
END ARCHITECTURE;
COMPONENT SistemaGeral IS
PORT (A,B : IN bit_vector(3 downto 0);
S : out bit_vector(3 downto 0);
R : out bit_vector(3 downto 0));
END COMPONENT;
BEGIN
bc1: SistemaGeral PORT MAP(A,B,S,R);
PROCESS
BEGIN
END PROCESS;
END ARCHITECTURE;
4. RTL Viewer
Esta sessão tem como objetivo mostrar como a descrição de hardware foi
mapeada no software Quartus Prime.