Você está na página 1de 15

UNIVERSIDADE ESTADUAL DE CAMPINAS

FACULDADE DE TECNOLOGIA - FT

João Paulo Magalhães Fernandes


174387

RELATÓRIO MINI-PROJETOS – CIRCUITOS DIGITAIS II

Limeira
2021
Lista de Figuras

Figura 1 - Ilustração de um MUX ................................................................................................... 5


Figura 2 - Lógica do código do componente MUX......................................................................... 5
Figura 3 - Código em VHDL do MUX ........................................................................................... 6
Figura 4 - Representação do Waveform do MUX ........................................................................... 7
Figura 5 - Ilustração de um DEMUX .............................................................................................. 8
Figura 6 - Código em VHDL do DEMUX ...................................................................................... 9
Figura 7 - Representação do Waveform do DEMUX ................................................................... 10
Figura 8 - Instruções mini-projeto 2 .............................................................................................. 11
Figura 9 - Código em VHDL do controlador de seta .................................................................... 12
Figura 10 - Representação do Waveform "00" .............................................................................. 13
Figura 11 - Representação do Waveform "01" .............................................................................. 14
Figura 12 - Representação do Waveform "10" .............................................................................. 14
Figura 13 - Representação do Waveform "11" .............................................................................. 14
Sumário

CAPÍTULO 1 ........................................................................................................................ 4
1.1 Mini-projeto .................................................................................................... 4
1.2 MUX de 8 entradas e 1 saída ......................................................................... 4
1.2.1 Teoria Multiplexador ................................................................................ 4
1.2.2 Código do Multiplexador .......................................................................... 5
1.2.3 Waveform MUX ........................................................................................ 7
1.3 DEMUX de 1 entrada e 8 saídas..................................................................... 7
1.3.1 Teoria Demultiplexador ............................................................................ 7
1.3.2 Código do Demultiplexador ...................................................................... 9
1.3.3 Waveform DEMUX ................................................................................. 10
1.4 Controlador de seta ...................................................................................... 11
1.4.1 Código do controlador de seta ............................................................... 11
1.4.2 Waveform controlador de seta ............................................................... 13
4

Capítulo 1

1.1 Mini-projeto

1.2 MUX de 8 entradas e 1 saída

1.2.1 Teoria Multiplexador

Um multiplexador, mais conhecido como MUX, é um circuito combinacional dedi-


cado, ou seja, é composto por portas lógicas, principalmente pela porta AND. O MUX
tem que possuir no mínimo duas entradas, e independe do número de entradas (que
seja maior ou igual a dois) o multiplexador vai possuir somente uma saída. Seu objetivo
dentro de um circuito é selecionar uma de suas entradas e conectá-la eletronicamente a
sua única saída. Esta função realizada pelo MUX é denominada como multiplexação,
que é exatamente a seleção dos canais de entrada e saída do circuito. Para fazermos a
escolha do sinal que vai sair do circuito, é utilizado variáveis de seleção, que são apli-
cados a entradas de controle do MUX.
5

Figura 1 - Ilustração de um MUX

1.2.2 Código do Multiplexador

O código a seguir é referente a um MUX de oito entradas e uma única saída. As


entradas foram denominadas como A0 até A7, a saída única como X. Como temos oito
possibilidades de entradas, precisamos de três entradas de seleção (sel0, sel1 e sel2).

Figura 2 - Lógica do código do componente MUX


6

Figura 3 - Código em VHDL do MUX

Para a realização do código em VHDL, as variáveis de entrada e de seleção fo-


ram declaradas como vetor, para não poluir tanto o código com muita informação.

Na função lógica determinada abaixo, segue o seguinte raciocínio: quando o ve-


tor “sel” receber por exemplo o valor “000”, a saída “X” vai receber o sinal de entrada,
que neste caso é A(0), e assim segue sucessivamente até A(7).

Obs. E quando for qualquer outro caso fora do determinado, a saída será “0”.
7

1.2.3 Waveform MUX

Figura 4 - Representação do Waveform do MUX

Na representação de ondas do código do multiplexador, temos as oito entradas


definidas em períodos diferentes para uma melhor visualização da simulação. A ima-
gem acima segue como exemplo o funcionamento correto do MUX. Podemos observar
nas variáveis de seleção (considerando o sel[0] como o bit menos significativo), que
está representando o número 101 em binário, no qual em decimal, representa o número
cinco. Nesse caso, então o sinal de entrada A[5] que tem um período de 160ns e está
sendo representado em vermelho, será o sinal da saída “X” que está sendo representa-
do em azul.

1.3 DEMUX de 1 entrada e 8 saídas

1.3.1 Teoria Demultiplexador

Um demultiplexador, mais conhecido como DEMUX, também é um circuito com-


binacional dedicado como o multiplexador. O DEMUX é o inverso do MUX, possuindo
8

uma única entrada e duas ou mais saídas. Sua função é selecionar, através das variá-
veis de seleção, qual de suas saídas devem receber a informação que está presente
em sua única entrada.

Figura 5 - Ilustração de um DEMUX


9

1.3.2 Código do Demultiplexador

Figura 6 - Código em VHDL do DEMUX

Para a realização do código em VHDL, as variáveis de saída e de seleção foram


declaradas como vetor, para não poluir tanto o código com muita informação.

No processo lógico do demultiplexador, segue o seguinte pensamento: quando o


vetor “sel” receber por exemplo o valor “101”, a saída X(5), neste exemplo, vai receber o
sinal de entrada “i”, e assim segue essa lógica para os demais exemplos.

Obs. E quando for qualquer outro caso fora do determinado, a saída será “00000000”.
10

1.3.3 Waveform DEMUX

Figura 7 - Representação do Waveform do DEMUX

Na representação de ondas do código do demultiplexador, temos apenas uma


entrada “i” definida no período de 200ns que está definida em vermelho. Também te-
mos três entradas de variáveis de seleção “sel” e oito saídas enumeradas de X[0] até
X[7]. A imagem acima demonstra o exemplo do correto funcionamento do DEMUX. On-
de no modelo caracterizado, as entradas de seleção estão indicando o valor “111” em
binário, que em decimal representa o número sete. Portanto, neste caso o sinal de en-
trada “i” vai ser direcionado para a saída que as entradas de seleção estão indicando,
que no caso é o X[7] que está indicado em azul.
11

1.4 Controlador de seta

1.4.1 Código do controlador de seta

A proposta do miniprojeto 2, pede a realização de um código em VHDL, que im-


plemente a máquina de estado do controlador de seta e alerta do veículo Thunderbird
1965, conforme instruções a seguir:

Figura 8 - Instruções mini-projeto 2


12

Figura 9 - Código em VHDL do controlador de seta

Para a realização do código em VHDL, foram declaradas como entrada o clock e


o vetor de seleção “sel” que vai de 0 até 1. Portanto, os vetores de estados de alavan-
ca, foram declarados como buffer, ou seja, podem ser tanto como entrada ou saída.
Temos os seguintes estados de alavanca:

• O vetor “lnd”, que indica a lanterna direita e vai de 0 até 2;

• O vetor “lne” que indica a lanterna esquerda e vai de 0 até 2;

• O vetor “lnt” que indica a lanterna traseira e vai de 0 até 5;

• O vetor “n” que indica a posição neutra e vai de 0 até 5.

O raciocínio lógico que está presente no processo desse miniprojeto é o seguin-


te:

1. Se o vetor de seleção “sel” for “00”, ele vai acionar a posição neutra, con-
sequentemente o vetor “n” vai receber “000000”

2. Se o vetor de seleção “sel” for “01”, ele vai acionar a lâmpada direita, onde
o vetor “lnd” vai receber a seguinte sequência binária: 000-001-011-111.
13

3. Se o vetor de seleção “sel” for “10”, ele vai acionar a lâmpada esquerda,
onde o vetor “lne” vai receber a seguinte sequência binária: 000-100-110-
111.

4. Se o vetor de seleção “sel” for “11”, ele vai acionar a lâmpada traseira,
onde o vetor “lnt” vai receber a seguinte sequência binária: 000000-
111111.

1.4.2 Waveform controlador de seta

Compilando o Waveform, com o vetor de seleção “sel” indicado em “00”, vai ser
acionado o vetor neutro (n) , ou seja, como explicado acima, nenhuma lanterna vai
acender.

Figura 10 - Representação do Waveform "00"


14

Posteriormente, com a variável de seleção em “01”, a lâmpada direira (lnd) vai


ser acionada na sequência determinada anteriormente.

Figura 11 - Representação do Waveform "01"

Depois, compilando as ondas do código em VHDL com o vetor de seleção em


“10”, temos que a lâmpada esquerda (lne) vai ser ligada na sequência já definida.

Figura 12 - Representação do Waveform "10"


15

E a última opção de seleção do vetor “sel” é quando estiver indicando o valor


“11” em binário, onde as lâmpadas traseiras vão ser acesas na sequência prevista na
proposta do projeto.

Figura 13 - Representação do Waveform "11"

Você também pode gostar