A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Rodolfo Jardim de Azevedo

Apresentações semelhantes


Apresentação em tema: "Rodolfo Jardim de Azevedo"— Transcrição da apresentação:

1 Rodolfo Jardim de Azevedo
O Processador Leon Rodolfo Jardim de Azevedo

2 Roteiro Características Básicas Configuração Síntese Simulação
Demonstração

3 Características Básicas
Processador RISC Padrão SPARC V8 (IEEE-1754) Palavra de 32 bits Descrição em VHDL-87 Barramento AMBA (AHB e APB) para interligação de periféricos Controlador de memória (SRAM e DRAM)

4 Configuração do Processador
Duas alternativas Interface gráfica make xconfig (Linux) make wconfig (Windows + cygwin) Edição manual dos arquivos device.vhd e target.vhd

5 Interface Gráfica Interface de configuração similar ao do kernel do Linux

6 Opções de Síntese

7 Processador e Cache

8 Unidade de Inteiros

9 Configuração Manual target.vhd device.vhd
Declara as estruturas de configuração device.vhd Cria a estrutura conf que armazena a configuração do leon A constante tkconfig é gerada automaticamente pela interface gráfica.

10 Síntese O diretório syn possui scripts de síntese para diversas ferramentas Arquivo para Leonardo: leon.tcl (sem informações sobre tecnologia) read -dont_elaborate ../leon/amba.vhd read -dont_elaborate ../leon/target.vhd read -dont_elaborate ../leon/device.vhd read -dont_elaborate ../leon/config.vhd read -dont_elaborate ../leon/sparcv8.vhd read -dont_elaborate ../leon/iface.vhd read -dont_elaborate ../leon/macro.vhd ... read -dont_elaborate ../leon/mcore.vhd read -dont_elaborate ../leon/leon.vhd elaborate leon -architecture rtl

11 Síntese (cont.) Informações sobre tecnologia no início do arquivo
FPGA Xilinx XCV800 do kit da XESS set part v800hq240 set process 4 set wire_table xcv800-4_wc load_library xcv

12 Síntese (cont.) read -dont_elaborate ./xsv800.vhd
elaborate xsv800 -architecture rtl set xilinx_exec_path /home/lsc/xilinx/bin/sol set edif_write_arrays FALSE # Comandos para contornar incompatibilidades com a Xilinx set register2register 80 set input2register 80 set register2output 80 optimize .work.xsv800.rtl -target xcv -chip -delay -effort quick optimize_timing .work.xsv800.rtl # Output report_area xsv800.area -cell_usage -all_leafs report_delay xsv800.delay -num_paths 1 -critical_paths -clock_frequency auto_write -downto xcv xsv800.edf

13 Ferramentas da Xilinx Ferramentas de linha de comando:
ngdbuild -p xcv800-4-hq240 -uc xsv800.ucf xsv800.edf xsv800.ngd map -p xcv800-4-hq240 -o xsv800.ncd xsv800.ngd xsv800.pcf par -w xsv800.ncd xsv800.ncd xsv800.pcf trce -skew xsv800.ncd xsv800.pcf -o xsv800.twr -xml xsv800.twx bitgen xsv800.ncd -d -w

14 Simulação Utilizando o ModelSim basta executar o comando make no diretório raiz da distribuição e chamar o simulador Diretórios: tbench: Código VHDL do Test Bench do Leon tsource: Código em C para teste do processador leon: Descrição VHDL do processador

15 Kit da XESS Utilitários com interface gráfica para Windows e versões de linha de comando para Linux gxsload ou xsload: Transferência de arquivos para a placa através da interface paralela gxsetclk ou xsetclk: Altera a freqüência do clock da placa (entre 10KHz e 100MHz)

16 Características SPARC
Conjunto maior de instruções Mais instruções de salto Instruções para ativar código de condição (cc) Suporte a regiões específicas de memória (ASI – Address Space Identifier) Imediato de 30 bits no CALL Big endian

17 Formato das Instruções

18 Instruções (notação) rs1 e rs2 são as origens
rd é o registrador destino ADD rs1, rs2, rd rd = rs1 + rs2 Ex.: ADD %i3, %i4, %o0 ADD rs1, 100, rd rd = rs Ex.: ADD %i3, 100, %o0

19 Registradores Banco de Registradores organizado em janelas
r[0]..r[7] (global) CWP + 1 r[24]..r[31] (in) r[16]..r[23] (local) r[08]..r[15] (out) CWP Current Window CWP - 1 Restore, RETT SAVE, trap

20 Registradores (convenções)
Uso %i7 = %r31 Endereço de retorno %fp = %i6 = %r30 Frame pointer %i0 = %r24 Primeiro parâmetro de entrada e valor de retorno %o7 = %r15 Endereço do CALL %sp = %o6 = %r14 Stack pointer %o0 = %r8 Primeiro parâmetro de saída e valor retornado %g7, %g6, %g5 Reservados %g1 = %r1 Valor temporário %g0 = %r0 0 (zero)

21 Memória do Leon Intervalo Tamanho Conteúdo Controlador
0x – 0x1FFFFFFF 512Mb PROM Controlador de Memória 0x – 0x3FFFFFFF I/O em Memória 0x – 0x7FFFFFFF 1Gb SRAM e/ou SDRAM 0x – 0x8FFFFFFF 256Mb Registradores on-chip Barramento APB 0x – 0x9FFFFFFF Unidade de depuração DSU

22 Alguns Registradores on-chip
Endereço Significado 0x Memory Configuration Register 1 0x Memory Configuration Register 2 0x Memory Configuration Register 3 0x AHB Status Register 0x Cache Control Register 0x Power-down Register 0x Leon Configuration Register 0x Timer 1 Counter Register 0x Timer 1 Reload Register 0x Timer 1 Control Register 0x UART 1 Data Register 0x UART 1 Status Register 0x UART 1 Control Register 0x C UART 1 Scalar Register

23 Leon Configuration Register
Bit Significado 30 Debug suport unit present 29 SDRAM controller present 28:26 Number of implemented Watchpoints 25 UMAC/SMAC instruction implemented 24:20 Number of register windows – 1 19:17 Log2(instruction cache size) in Kb 16:15 Log2(instruction cache line size) in 32bit words 14:12 Log2(data cache size) in Kb 11:10 Log2(data cache line size) in 32bit words 9 UDIV/SDIV instruction implemented 8 UMUL/SMUL instruction implemented 7 Watchdog present 6 Memory status and failing address register present 5:4 FPU type (00 = none, 01 = Meiko) 3:2 PCI core type (00 = none, 01 = InSilicon, 10 = ESA, 11 = Other) 1:0 Write protection type (00 = none, 01 = standard)


Carregar ppt "Rodolfo Jardim de Azevedo"

Apresentações semelhantes


Anúncios Google