Giter Site home page Giter Site logo

andrekwr / z01.1-fury Goto Github PK

View Code? Open in Web Editor NEW

This project forked from guidiamond/z01.1-insonia

0.0 1.0 0.0 32.61 MB

Repositório da disciplina de Elementos de Sistemas

License: Other

VHDL 49.25% Python 8.62% Mathematica 0.23% Scheme 0.01% HTML 0.07% Standard ML 0.01% Assembly 4.89% Shell 3.86% Stata 1.02% Verilog 0.45% Forth 0.01% Tcl 4.64% Java 26.27% Hack 0.68%

z01.1-fury's Introduction

Desenvolvendo um computador operacional do ZERO!

Material disponível na wiki

Clonando

$ git clone https://github.com/Insper/Z01.1
$ cd Z01.1
$ git submodule update --init --recursive
$ git submodule foreach 'git stash; git checkout master; git pull'

z01.1-fury's People

Contributors

andrekwr avatar rafaelcorsi avatar caiofauza avatar vfermat avatar pedromtelho avatar gustavobb avatar eduardomarossi avatar

Watchers

James Cloos avatar

z01.1-fury's Issues

AND 16 BITS

Arquivo : And16.vhd
Descrição : And bit a bit entre duas palavras de 16 bits.

Register64

Descrição : É um registrador de 64 bits criado a partir do Register32 porém agora para armazenar um vetor de entrada de 64 bits de tamanho.

Dependência : Register32

add

Arquivo : add.nasm

HalfAdder

Objetivo: Adiciona dois bits que resulta em um bit de soma e outro de carry out.
Dependencia: Não tem.

sub

Arquivo : sub.nasm

FullAdder

Objetivo: Adiciona três bits, dois referentes às entradas e o outro referente ao carry in. O resultado é um bit com a soma e outro com o carry out.

Dependência: Não tem.

ULA

Descrição : A entidade que faz o mapeamento de todas as demais, interligando os blocos (zerador, comparador, inversor, Add ....) em um único bloco.

Dependência: Comparador16, Zerador16, Inversor16, Add16

Zerador16

Descrição : Zera um vetor de entrada quando o bit de controle z (zx ou zy) for igual a '1'. Não modifica o vetor de entrada se o bit for '0'. O resultado é um novo vetor de 16 bits.

Dependência: Não tem.

Comparador16

Descrição : Verifica se o vetor de saída (16 bits) é igual a zero (zr) e se menor que Zero (ng). Caso igual a zero, faz com que o sinal zr seja igual a '1' e caso contrário '0'. Se o sinal de entrada for negativo faz com que ng receba '1' e '0' caso contrário.

Dependência: Não tem.

Ram64

Descrição : Similar a RAM8 porém com 64 endereços.

Dependência : Ram8, Mux8Way16, Dmux8Way

Ram8

Descrição : É uma memória de 8 endereços com 16 bits de largura. O componente possui como entrada o vetor input de 16 bits, o endereço a ser armazenado (address) o sinal load que indica quando é para ser armazenado e o clock. Como saída temos o valor lido no endereço especificado quando load for igual a 0. Note que sinal LOAD tem como função similar o do READ/WRITE, quando zero, indica que queremos ler o valor armazenado, quando 1 indica que queremos escrever (write) nessa posição.

Dependência : Register16, Mux8Way16, Dmux8Way

BinaryDigit

Descrição : É um registrador feito para armazenar um único bit de informação (0 ou 1). A interface do módulo consiste em uma entrada (d) para o bit a ser armazenado, um sinal de load para indicar quando o bit de entrada deve ser armazenado um sinal de clock e a saída output* que é o bit armazenado;

Dependência: FlipFlopD e Mux2Way

abs

Arquivo : abs.nasm

pow

Arquivo : pow.nasm

mod

Arquivo : mod.nasm

Ram4k

Descrição : Similar a RAM8 porém com 4512 endereços.

Dependência : Ram512, Mux8Way16, Dmux8Way

ProgramCounter

Descrição : O program counter será o nosso endereçador de memória da CPU, ele será responsável por apontar para a próxima instrução a ser executada. Como normalmente um código segue um fluxo sequencial (uma linha na sequência da outra) o PC possui a habilidade de se auto incrementar a cada clock (apontando assim para a próxima instrução), mas ele tem que suportar condições (if, while, ...) rompendo com esse fluxo contínuo.

Dependência : inc16

Linha

Arquivo : line.nasm

Inversor16

Descrição : Inverte um vetor de entrada quando o bit de controle n (nx ou ny) for igual a '1', e não modifica o vetor de entrada caso contrário. O resultado é um novo vetor de 16 bits.

Dependência: Não tem.

Register16

Descrição : É um registrador de 16 bits criado a partir do Register8 porém agora para armazenar um vetor de entrada de 16 bits de tamanho;

Dependência : Register8

OR 8 Way

Arquivo : Or8Way.vhd
Descrição : OR entre 8 bits, resulta em uma única saída

mov

Arquivo : mov.nasm
Descrição : Copia RAM[1] para RAM[3]; Copia RAM[0] para RAM[1]; Salva 0 em RAM[4].

NOR 8 Way

Arquivo : Nor8Way.vhd
Descrição : NOR entre 8 bits, resulta em uma única saída

OR 16 bits

Arquivo : Or16.vhd
Descrição : OR bit a bit entre duas palavras de 16 bits.

Register32

Descrição : É um registrador de 32 bits criado a partir do Register16 porém agora para armazenar um vetor de entrada de 32 bits de tamanho.

Dependência : Register16

Add16

Descrição : Adiciona dois vetores de 16 bits resultando em um vetor de 16 bits (sem carry out do bit mais significativo - MSB).

Dependência: Não tem.

Inc16

Descrição : Adiciona '1' a um vetor de 16 bits resultando em um vetor de 16 bits (sem carry out do MSB).

Dependência: Add16

Register8

Descrição : É um registrador de 8 bits criado a partir do binaryDigit porém agora para armazenar um vetor de entrada de 8 bits de tamanho;

Dependência : BinaryDigit

NOT de 16 bits

Arquivo : Not16.vhd
Descrição : NOT bit a bit entre duas palavras de 16 bits.

Ram512

Descrição : Similar a RAM8 porém com 512 endereços.

Dependência : Ram64, Mux8Way16, Dmux8Way

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.