1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda com desenho de ALU

Discussão em 'Programação' iniciada por moody, 13 de Abril de 2008. (Respostas: 3; Visualizações: 691)

  1. Olá!

    Eu preciso de implementar um "set greater than" e um "branch less or equal" na minha ALU 16 bit(MIPS arquitectra),mas estou com algumas dificuldades,principalmente no "branch less or equal".
    Eu sei que num set greater than a>b é igual a a-b>0,e quando o bit sinal(para numeros com sinal) estiver a 0,significa que ou o resultado ou é zero ou é maior.Neste momento o julgo que tenho na fig. 1 é um "set greater than o requal" em vez de um "set greater than" pois ele não ve após ver se o bit sinal é zero,o LSB que iria excluir o "equal".
    Eu pensei fazer um AND entre o bit sinal(já invertido) do resultado e o LSB do resultado,mas não sei se estará correcto.
    Na fig. 2,no "branch less or equal" o que fiz foi fazer um "branch equal"(também era um requisito da minha ALU) e fazer um OR entre o bit sinal do resultado(se for menor o resultado está a 1) e o bit invertido que resulta do OR do "branch if equal" e depois u multiplexer para seleccionar entre um "branch if equal" ou um "branch if less or equal".Esta solução estará correcta?

    Desde já,obrigada pela ajuda!

    fig. 1
    http://img174.imageshack.us/img174/715/sgtop2.jpg


    fig.2
    http://img405.imageshack.us/img405/6933/blegy6.jpg
     
  2. rj.rodrigues

    rj.rodrigues Power Member

    SingleCycle ou multiCycle ??
     
  3. ...

    Singlecycle!
     
  4. rj.rodrigues

    rj.rodrigues Power Member

    Já n me lembro bem como era, mas vê lá esta imagem:

    http://www.cs.pitt.edu/~panickos/courses/cs0447/simple_datapath.jpg

    Para fazeres o "set greater than" é a fazer ( slt and Zero ) negado (invertido)

    "branch less or equal" é o (slt and Zero and branch) ligado ao multiplexar em cima k seleciona o PC + 4 ou o endereço alvo de branch
     

Partilhar esta Página