GithubHelp home page GithubHelp logo

walberfa / vhdl Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 24 KB

Implementações em VHDL para a disciplina Projeto de Sistemas VLSI do Mestrado em Ciência da Computação (2021.1)

VHDL 100.00%

vhdl's Introduction

VHDL

Implementações em VHDL para a disciplina Projeto de Sistemas VLSI do Mestrado em Ciência da Computação (2021.1)

A seguir breves explicações dos códigos.

Nota: os arquivos com "_tb" são arquivos de testbench, precisam ser utilizados na simulação junto com os outros arquivos

paridade

Faz a operação xor entre três entradas a, b e c, e armazena o resultado em p

O operador xor segue a seguinte tabela verdade:

a b a xor b
0 0 0
0 1 1
1 0 1
1 1 0

decto4

É um decodificar de 2 bit para 4 bits.

Recebe uma entrada s com dois bits, e tem uma saída x com 4 bits.

Segue a tabela verdade a seguir:

s x
00 0001
01 0010
10 0100
11 1000

ula_simples

Unidade lógica e aritmética (ULA) simples.

Possui uma entrada ctrl de controle, com 3 bits, e outras duas entradas src0 e src1 com 8 bits cada.

A saída result também tem 8 bits.

Obedece a tabela verdade a seguir:

ctrl result
0** src0 + 1
100 src0 + src1
101 src0 - src1
110 src0 and src1
111 src0 or src1

greater_than

Este greater than é um comparador de 2 bits cuja saída fica em nível lógico alto quando A é maior que B.

Deste modo, o circuito obedecerá a seguinte tabela verdade:

a b a > b
00 00 0
00 01 0
00 10 0
00 11 0
01 00 1
01 01 0
01 10 0
01 11 0
10 00 1
10 01 1
10 10 0
10 11 0
11 00 1
11 01 1
11 10 1
11 11 0

ring_counter

O ring counter é um contador cíclico que muda de estado a cada ciclo de clock, na borda de subida.

Se o reset está em nível lógico alto, a saída é "0001", mas senão, então o 1 da saída vai deslocar para a direita a cada novo ciclo.

Isso pode ser melhor percebido na tabela verdade abaixo:

reset clock q
1 x 0001
0 high 1000
0 high 0100
0 high 0010
0 high 0001
0 high 1000

Os códigos podem ser testados no https://www.edaplayground.com/

Como testar?

  • Fazer login no site com conta do Google ou Facebook
  • Copiar e colar os arquivos de design e testbench nos respectivos lugares
  • Atualizar a linguagem utilizada para "VHDL". O site deixa "Systemverilog/Verilog" como default
  • Escolher a ferramenta GHDL em "Tools & Simulators"
  • Marcar a opção "Open EPWave after run" para visualizar a forma de onda gerada no teste
  • Clique em "Run" para executar

vhdl's People

Contributors

walberfa avatar

Watchers

 avatar

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.