M++

Linguagem descritiva de hardware

Moderadores: 51, guest2003

M++

Mensagempor tcpipchip » 01 Fev 2012 20:54

Implementamos a funcao INC, adicionando novas micro instruções na M++ em cima do DIGITAL WORKS
Veja funcionamento!
http://www.inf.furb.br/~maw/inc/cont.htm
Tambem rescrevemos o analisador lexico e sintatico do montador...(feito em DELPHI)
Mais detalhes em
http://www.inf.furb.br/~maw/mmaismais/
Tem fonte do Delphi lá...otimo exemplo se voce quer contruir seu proprio montador!
TCPIPCHIP
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor chrdcv » 07 Fev 2012 17:45

Putz, muito legal!

Quando fiz Arquitetura I, implementamos o SAP (o qual eu apelidei carinhosamente de SAPECA) do livro do Malvino usando o Logisim. Implementamos a versão CISC (com microcódigo das instruções em uma ROM) e um variante RISC, além de extendermos algumas instruções. Foi um dos trabalhos que mais gostei de fazer!

Vou dar uma revirada nas tralhas lá de casa, caso ache, postarei a implementação a título de curiosidades!

chrdcv
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor tcpipchip » 19 Mar 2012 16:40

Legal...
Este nos fizemos em ARQUITETURA DE COMPUTADORES :)
O que deu mais trabalho foi imprementar a memoria de controle, ou seja, as microinstruções.
Semestre passado eu lancei o desafio de implementar interrupts...mas...nao teve interessados :(
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor tcpipchip » 21 Mar 2012 21:47

Aqui um programa que fizemos para rodar na M++....computador de bordo
Código: Selecionar todos
LOOP:
 //LE MARCHA C
 MOV IN2,A;
 //INVERTE C
 NOT A,A;
 //SALVA /C
 MOV A,B;
 //LE EMBREAGEM
 MOV IN3,A;
 //FAZ /C+D
                OR B,A;
 //SALVA A EM B
 MOV A,B;
 //LE CINTO
 MOV IN1, A;
 //FAZ B.(/C+D)
 AND B,A;
 //SALVE B.(/C+D)
 MOV A,B;
 //LER PORTA
 MOV IN0,A;
 //FAZ A.B.(/C+D)
 AND B,A;
 MOV A,OUT3;
 //IMPRIME ALERTA SE NECESSARIO
 MOV IN0,A;
 //COMPARA SE PORTA VALE ZERO (ABERTA)
 SUB 00,A;
 //PULA SE BANDEIRA LEVANTADA OU SUBTRACAO RETORNO ZERO
 JMPZ  PORTABERTA;
 //CASO CONTRARIO, JOGUE ZERO EM OUT1
 MOV 00,A;
 MOV A,OUT1;
 JMP LOOP;

PORTABERTA:
 MOV CE,A;
 MOV A,OUT1;
 JMP LOOP;
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!


Voltar para Verilog, VHDL, SystemC ( PLAs, CPLDs, FPGAs, etc... )

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x