Thiago Schoppen Veronese Rodrigo Horst INE5309 Linguagem Assembly Bastante semelhante ao MIPS Arquitetura RISC Fabricado pela Xilinx Implementação em FPGAs Permite o uso de C através do MB-GCC Pipeline de cinco estágios: Instruction Fetch (IF), Decode (OF), Execute (EX), Access Memory (MEM) e Writeback (WB) Para a maioria das instruções cada estágio leva um ciclo Cinco ciclos para completar uma instrução Uma instrução completada por ciclo Dados e instruções numa BRAM Palavras de instruções e dados de 32 bits Um ciclo para acesso à memória e leitura de cache e dois para escrita na cache Sem gerenciamento de memória SOs portados: µClinux e FreeRTOS São dos seguintes tipos: Tipo A: registrador-registrador Tipo B: registrador-imediato Mapeadas para endereços de memória: Causa Hardware desvia Labels de software Início / Reset 0x0 _start Exceção de usuário 0x8 _exception_handler Interrupção 0x10 _interrupt_handler Break (HW/SW) 0x18 Exceção de hardware 0x20 Reservado pela Xilinx para uso futuro 0x28 _hw_exception_handler 0x4F - 32 registradores de uso geral R0-R31 Até 7 registradores de uso especial Uso do formato Big Endian para representação de dados Há uma convenção para uso dos registradores de uso geral Registrador Tipo Uso R0 Dedicado Valor 0 R1 Dedicado Stack Pointer R2 Dedicado Ponteiro de área de dados somente leitura R3-R4 Volátil Valores de retorno/Temporários R5-R10 Volátil Passagem de parâmetros/Temporários R11-R12 Volátil Temporários R13 Dedicado Ponteiro de área de dados de leitura/escrita R14 Dedicado Endereço de retorno de interrupções R15 Dedicado Endereço de retorno de sub-rotinas R16 Dedicado Endereço de retorno do Debugger R17 Dedicado Endereço de retorno de exceções R18 Dedicado Reservado ao Assembler R19-R31 Não-volátil Uso geral Devem ser salvos nas chamadas de funções Registrador Tipo Uso RPC Especial Contador de programa RMSR Especial Registrador de status da máquina REAR Especial Registrador de endereço de exceção RESR Especial Registrador de status de exceção RFSR Especial Registrador de status de ponto flutuante RBTR Especial Registrador de alvo de desvios RPVR0RPVR11 Especial Registrador de versão do processador 0 até 11 Controladores industriais Aplicações para consumidores Automação comercial Comunicação de dados > Natureza altamente configurável, permitindo grande flexibilidade .text .align .globl .ent 2 main main addik addik r19, r0, 5 r20, r0, 4 mul r21, r19, r20 rtsd nop .end r15,r0 main: main .extern funcao .text .align .globl .ent 2 main main addik swi swi swi swi swi swi swi swi swi swi r1, r1, -68 r14, r1, 0 r15, r1, 4 r16, r1, 8 r17, r1, 12 r19, r1, 16 r20, r1, 20 r21, r1, 24 r22, r1, 28 r23, r1, 32 r24, r1, 36 main: swi swi swi swi swi swi swi r25, r1, 40 r26, r1, 44 r27, r1, 48 r28, r1, 52 r29, r1, 56 r30, r1, 60 r31, r1, 64 brlid nop r15, funcao lwi addik r15, r1, 4 r1, r1, 68 rtsd nop r15,r0 .end main