Disciplinas‎ > ‎2011_1‎ > ‎GSI013‎ > ‎

Material de Apoio

Exemplo completo no Ramses: Totalizar N posições consecutivas da memória a partir de um endereço dado.

Exemplo Ramses

                   LDR A #0            ;zera o total
                   LDR X e              ;inicializa o ponteiro
                   LDR B n              ;inicializa o contador
LOOP:         JZ  TOTALIZA     ; testa se o contador é zero
                   ADD A 0,X          ; soma com posição de memória
                   ADD X #1            ;incrementa o ponteiro
                   SUB B #1            ;decrementa o contador
                   JMP LOOP         ; retorna ao início do laço
TOTALIZA:  STR A total         ;grava o total na memória
                   HLT

ORG 128
         n:      DB 10
         e:      DB 140
         total: DB 0

ORG 140
         vetor: DAB 2,6,5,7,9,3,7,10,0,2


Resposta do exercício 5 (thanks to Patrick!): http://minerva.ufpel.edu.br/~guntzel/AOC1/AOC1_aula14.pdf

Exercícios de revisão

Descreva em VHDL e simule os seguintes circuitos:


1- Um multiplexador 8-1 de 16 bits. 


2- Um demultiplexador 1-8 de 16bits. 


3-      Um somador  de 4 bits usando componentes de somador de 1 bit 


4- Um test bench para o simulador do exercício 3.


5- Um código que receba um valor de 16 bits, um divisor em potência de 2 com 4 bits, e devolva o módulo do valor lido. 


6- Uma ULA de 8 bits com as seguintes operações:

- saída = A + B 

- saída = A - B 

- saída = A or B 

- saída = A and B 

- saída = A xor B 

- saída = inv(A) inverte o valor de A 

- saída = 0 (coloca zero na saída)


7-Um contador de 16 bits UP/Down com reset, e carga paralela.


8- Um registrador de 8 bits com deslocamento para esquerda, direira, hold e carga paralela.

-----------------------

9- Diferencie lógica combinacional de processos seqüenciais.


10- Qual a diferença entre uma latch  e um flip-flop?


11- Como caracteriza-se um reset assíncrono? Qual a diferença para um reset síncrono?


12- Diferencie descrição comportamental de descrição estrutural.


13- Dê um exemplo de descrição em VHDL de uma máquina de estados finitos?


14- Qual a diferença entre uma FSM de Mealy e uma FSM de Moore? 


15- Por que é dito que a parte sintetizáveis do VHDL é um subconjunto seu? O que isso significa e para que serve a outra parte?


16- Quais as principais características, vantagens e desvantagens entre µP, DSP e FPGA?


17- Quais as principais etapas no fluxo de projeto de sistemas digitais? Cite e explique cada uma.

 

18- Diferencie arquitetura de computadores de organização de computadores.


19- Desenhe uma máquina hipotética de 5 níveis segundo Stallings e explique sucintamente o que ocorre em cada nível e entre cada nível.


20 - O que diz a lei de Moore?



Slides do Prof. Kris Gaj, da Universidade George Mason. (Role a página até Viewgraph)


TB para o Lab 1

-- test bench

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity soma_tb is
-- empty
end soma_tb;

architecture arch_tb of soma_tb is

-- component
component soma
port 
(
A : in std_logic_vector(7 downto 0);
B : in std_logic_vector(7 downto 0);
C : out std_logic_vector(7 downto 0) -- green leds
);
end component;

-- sinais internos
signal inA : std_logic_vector(7 downto 0) := "00001100"; --inicializacao valida apenas para simulacao
signal inB : std_logic_vector(7 downto 0) := "00000000" ;
signal outC : std_logic_vector(7 downto 0);

begin
-- port map = instanciacao
UUT: soma
port map (
A => inA,
B => inB,
C => outC
);

--test bench
TestingB: process
begin

  inB <= inB + 1;
  wait for 10 ns;

end process;

TestingA: process
begin

  inA <= inA + 1;
  wait for 10 ns;

end process;

end arch_tb;



Processadores hipotéticos (transparências e exemplos relacionados com o livro do Prof Raul Fernando Weber)


Exercícios para o Neander

1. Somar duas variáveis de 8 bits conforme o mapa de memória abaixo:
            end. 128: primeira variável
            end. 129: segunda variável
            end. 130: resuldado

2. Subtrair duas variáveis de 8 bits conforme o mapa de memória abaixo:
            end. 128: minuendo
            end. 129: subtraendo
            end. 130: resuldado

3. Determine qual a maior das três variáveis positivas conforme o mapa de memória abaixo:
            
            end. 128: primeira variável
            end. 129: segunda variável
            end. 130: terceira variável
            end. 131: resultado (maior das três)

4. Limpar o acumulador: faça pelo menos 5 programas diferentes que zerem o acumulador (dica: atribuição direta, laço, subtração, ou, e, deslocamentos, etc).

5. Limpar 32 posições consecutivas de memória, conforme o mapa de memória abaixo:
            end. 128: indicação do endereço inicial (>130, <220)



Abaixo estão os softwares que serão usados no decorrer da disciplina. 
Todos eles são gratuitos ou de uso livre em ambientes acadêmicos.

No caso das ferramentas da Altera (Quartus II e Modelsim) deve-se instalar primeiro o Quartus, depois o Modelsim e por último o service pack 1 para o Modelsim.

A pasta uP Weber contém simuladores e material de apoio para os simuladores de processadores do livro do Raul Fernando Weber (ver a bibliografia da disciplina).


Tabela de pinos da DE2: DE2 Pin Table

Laboratórios da placa DE2

LFSR - resumo

Linear Feedback Shift Register:  Circuitos geradores de sequência pseudo-aleatória usando registradores de deslocamento com realimentação. Tem aplicações em sistemas CDMA, geração de CRC, critpografia e testes de sistemas de telecomunicações.

Consiste num polinômio primitivo de grau n na forma: p(x)=1 + c1x + c2x^2 + c3X^3 +... cnx^n
Onde: 
  • Os termos 1 e x^n estão sempre presentes
  • Os coeficientes c1,c2,c3,..cn podem ser 0 ou 1
  • Os polinômios devem ser irredutíveis (não divisíveis por outro de menor ordem)
Exemplo:
  • P(x) = 1 + x^2 + x^3 + X^4 + x^8


LFSR simples em VHDL

  1 -----www.asic-world.com/examples/vhdl/lfsr.html
  2 -- Design Name : lfsr
  3 -- File Name   : lfsr.vhd
  4 -- Function    : Linear feedback shift register
  5 -- Coder       : Deepak Kumar Tala (Verilog)
  6 -- Translator  : Alexander H Pham (VHDL)
  7 -------------------------------------------------------
  8 library ieee;
  9     use ieee.std_logic_1164.all;
 10 
 11 entity lfsr is
 12   port (
 13     cout   :out std_logic_vector (7 downto 0); 14     enable :in  std_logic;                   -- Enable counting
 15     clk    :in  std_logic;                   -- Input rlock
 16     reset  :in  std_logic                    -- Input reset
 17   );
 18 end entity;
 19 
 20 architecture rtl of lfsr is
 21     signal count           :std_logic_vector (7 downto 0);
 22     signal linear_feedback :std_logic;
 23 
 24 begin
 25     linear_feedback <= not(count(7) xor count(3));
 26 
 27 
 28     process (clk, reset) begin
 29         if (reset = '1') then
 30             count <= (others=>'0');
 31         elsif (rising_edge(clk)) then
 32             if (enable = '1') then
 33                 count <= (count(6) & count(5) & count(4) & count(3) 
 34                           & count(2) & count(1) & count(0) & 
 35                           linear_feedback);
 36             end if;
 37         end if;
 38     end process;
 39     cout <= count;
 40 end architecture;


SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
Ċ
Visualizar Download
  11k versão 1 24 de mar. de 2011 16:47 Daniel Mesquita
Ċ
Visualizar Download
  13k versão 1 24 de mar. de 2011 16:47 Daniel Mesquita
Ċ
Visualizar Download
The Low Carb VHDL Tutorial  487k versão 1 23 de ago. de 2011 13:45 Daniel Mesquita
Ċ
Visualizar Download
VHDL Instructions and Building Blocks  175k versão 1 23 de ago. de 2011 13:46 Daniel Mesquita
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

Visualizar
Versão para Linux (577Mb)  18 de fev. de 2011 19:01 Daniel Mesquita
ċ

Visualizar
Versão para Linux (3.1 Gb)  18 de fev. de 2011 19:01 Daniel Mesquita
ċ

Visualizar
Service pack 1 do Modelsim. Versão para Linux (616Mb)  18 de fev. de 2011 19:01 Daniel Mesquita
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

Visualizar
O Modelsim é um simulador de VHDL disponibilizado pela Altera em uso conjunto com o Quartus II (versão Windows 586Mb)  18 de fev. de 2011 19:01 Daniel Mesquita
ċ

Visualizar
O QuartusII Web é uma versão gratuita do software de projeto, validação e síntese para FPGAs da Altera (versão Windows 3.0Gb)  18 de fev. de 2011 19:01 Daniel Mesquita
ċ

Visualizar
Service pack 1 do Modelsim. Versão para Windows (586Mb)  18 de fev. de 2011 19:01 Daniel Mesquita
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

Visualizar
Material do CD-ROM da Placa, com exemplos, manuais, tutoriais e drivers.  18 de fev. de 2011 19:19 Daniel Mesquita
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

Download
Exemplo de uso do display com o processador Cesar  1k versão 2 2 de jun. de 2011 15:38 Daniel Mesquita
ċ

Visualizar Download
Biblioteca de funcções para o processador Cesar  9k versão 2 2 de jun. de 2011 15:27 Daniel Mesquita
Ċ
Visualizar Download
Exercícios resolvidos para o processador Cesar  2133k versão 2 2 de jun. de 2011 15:27 Daniel Mesquita
Ċ
Visualizar Download
Arquitetura e organização do processador Cesar  2062k versão 2 2 de jun. de 2011 15:27 Daniel Mesquita
ċ

Visualizar
  18 de fev. de 2011 19:11 Daniel Mesquita
ċ

Visualizar
Renomear a extensão .toc para .exe. Versão para Windows.  18 de fev. de 2011 19:11 Daniel Mesquita
ć
Visualizar Download
Arquitetura do processador hipotético Neander  172k versão 2 2 de jun. de 2011 15:03 Daniel Mesquita
ć
Visualizar Download
Organização do processador hipotético Neander  602k versão 2 2 de jun. de 2011 15:03 Daniel Mesquita
ċ

Visualizar
Versão para Windows.  18 de fev. de 2011 19:11 Daniel Mesquita
ċ

Visualizar
Versão Windows  18 de fev. de 2011 19:11 Daniel Mesquita
ċ

Visualizar
Versão para Windows  18 de fev. de 2011 19:11 Daniel Mesquita
ć
Visualizar Download
Instruções do processador Ramses  211k versão 2 2 de jun. de 2011 15:03 Daniel Mesquita
ć
Visualizar Download
Modos de endereçamento para o processador Ramses  36k versão 2 2 de jun. de 2011 15:03 Daniel Mesquita
ć
Visualizar Download
Organização do processador Ramses  2799k versão 2 2 de jun. de 2011 15:03 Daniel Mesquita
ċ

Visualizar
  18 de fev. de 2011 19:11 Daniel Mesquita
ċ

Visualizar
Simulador do processador hipotético Neander  5 de mai. de 2011 16:15 Daniel Mesquita
Comments