Pietro Biasuz
Alan Diego dos Santos
Arquitetura e Organização
Componentes Básicos

Registradores









REM (Registrador de Endereço)
RDM (Registrador de Dados)
PC (registrador e incrementador)
Ra
Rb
Rx
RAux
RegFlags (Negative, Carry, Zero)
Multiplexadores 4x1
Componentes Básicos

ULA (combinacional )









ADD
OR
AND
NOT
SUB
NEG
SHR
Memória
Unidade de Controle (seqüencial)




LDR
STR
JMP
JN, JC, JZ
4 Modos de enderaçamento

Definidos diretamente pelos últimos bits
da instrução
 Direto - “00”
 Indireto – “01”
 Imediato – “10”
 Indexado – “11”
Problema Encontrado

A memória gerada pelo Core Generator
possui os seguintes sinais para operar:
 Clock
 Addr – endereço de leitura ou escrita
 WE – ‘0’ para Read ou ‘1’ para Write
 Din – valor de entrada
 Dout – valor de saída
Problema Encontrado

Apesar de gerar com sucesso a
memória e testá-la separadamente dos
demais
componentes,
inicializá-la
utilizando o arquivo .mif, as leituras
obtidas sempre eram UNDEFINED no
Test Bench.
Solução
Ao setarmos a sensibilidade da memória
para a borda de subida (Rising Edge
Triggered) e ao utilizarmos a configuração
de Read After Write não era possível
realizar a leitura.
 Achamos que a possível causa desse
comportamento é porque a leitura da
memória,
nessas
configurações
é
realizada só na metade final do ciclo de
clock, e assim os dados seriam perdidos.

Solução

Testamos 2 novas configurações e
assim, a memória funcionou como o
esperado.
 sensibilidade para a borda de descida do
clock (Falling Edge Triggered)
Read After Write
 sensibilidade para a borda de subida do
clock (Rising Edge Triggered)
Read Before Write
Resultado
Freqüência Máxima: 128 MHz
 Tsetup: 4,32 ns
 LUTs: 253
 FlipFlops: 92

Download

VHDL arquitetura ramses