1 / 6

Projeto de Somador com e sem Sinal Descrição Comportamental

Projeto de Somador com e sem Sinal Descrição Comportamental. Somador Estrutural de 4 Bits (Entidade). B 3. A 3. B 2. A 2. B 1. A 1. B 0. A 0. Somador de 4 Bits. Cout. S 3. S 2. S 1. S 0. entity Adder is port ( A, B: in std_logic_vector(3 downto 0);

maitland
Download Presentation

Projeto de Somador com e sem Sinal Descrição Comportamental

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projeto de Somador com e sem SinalDescrição Comportamental

  2. Somador Estrutural de 4 Bits (Entidade) B3 A3 B2 A2 B1 A1 B0 A0 Somador de 4 Bits Cout S3 S2 S1 S0 entity Adder is port ( A, B: in std_logic_vector(3 downto 0); cout: out std_logic; S : out std_logic_vector(3 downto 0) ); end Adder;

  3. B3 A3 B2 A2 B1 A1 B0 A0 Cout2 Cout1 Cout0 Cout3 0 Cout Add3 Add2 Add1 Add0 Cin3 Cin1 Cin2 S3 S2 S1 S0 Somador Estrutural de 4 Bits (Arquitetura) • library IEEE; • use IEEE.std_logic_1164.all; • architecture Somador of Adder is • signal c: std_logic_vector(3 downto 0); • begin • A0: entity Add portmap(cin=>’0’, A=>A(0),B=>B(0),cout=>c(0),s=>S(0)); • A1: entity Add portmap(cin=>c(0),A=>A(1),B=>B(1),cout=>c(1),s=>S(1)); • A2: entity Add portmap(cin=>c(1),A=>A(2),B=>B(2),cout=>c(2),s=>S(2)); • A3: entity Add portmap(cin=>c(2),A=>A(3),B=>B(3),cout=>c(3),s=>S(3)); • Cout <= c(3); • end Somador;

  4. B3 A3 B2 A2 B1 A1 B0 A0 Somador de 4 Bits Cout S3 S2 S1 S0 Somador Comportamental de 4 Bits (Entidade) • A mesma entidade do somador comportamental. Porque? • Portas de entrada e saída são iguais entity Adder is port ( A, B: in std_logic_vector(3 downto 0); cout: out std_logic; S : out std_logic_vector(3 downto 0) ); end Adder;

  5. Somador Comportamental de 4 Bits (Arquitetura) library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entityAdder is ... endAdder; architectureSomaCompofAdder is signaliA, iB, SOMA: std_logic_vector(4downto 0); begin iA <= '0' & A; iB <= '0' & B; SOMA <= iA + iB; S <= SOMA(3 downto 0); carry <= SOMA(4); endSomaComp; Nova biblioteca para implementar somas Vetores de 5 bits para implementar o carry Concatena bit mais significativo com 0 Soma de 5 bits Apenas 4 bits são atribuídos para a saída Último bit da soma é o carry

  6. Exercícios • Descrevendo o qualificador de overflow de forma comportamental... • V <= '1' when(iA(3) xnor iB(3))='1' and (SOMA(3) xor i(3))='1' • else • '0'; • A descrição está completa? Teste as possibilidades • Faça os demais qualificadores (Negativo e Zero), de forma comportamental • Faça um test-bench e teste todas a possibilidades e verifique que a implementação acima atende o desejado • Faça agora um subtrator, utilizando a descrição estrutural. DICA: use o carry de entrada do circuito. Note que, em complemento de 2, -Y = NOT(Y) + 1 • Faça agora um subtrator e veja se o resultado obtido com overflow é o esperado. Caso não seja, o que deve ser feito para recalcular o overflow?

More Related