SISTEMAS DIGITAIS
2025-2026, LEEC, LEAER, LEFT
TRABALHO DE LABORATÓRIO I
F UNÇÕES COMBINATÓRIAS
VERSÃO 1.0
1 INTRODUÇÃO
Pretende-se que os alunos compreendam e apliquem a metodologia usada na síntese e concretização de
funções combinatórias, utilizando circuitos integrados disponíveis comercialmente. Este trabalho é considerado
para avaliação de conhecimentos.
Notas preliminares importantes:
• Este enunciado deverá ser preparado atempadamente por cada aluno separadamente.
• Uns dias antes da aula de laboratório, os alunos de cada grupo devem reunir-se, conferir as
suas respostas e imprimir as folhas de respostas disponível na página da cadeira (uma única
ficha por grupo) e responder às perguntas para casa. Caso surjam dúvidas, devem recorrer aos
horários de dúvidas.
• A folha de respostas preparada, não sendo avaliada, será verificada pelo docente no início da
aula de laboratório. A apresentação da preparação de casa no início da aula é condição
necessária para a realização do laboratório.
• No início da sessão de laboratório, será indicada qual a função lógica para utilizar na folha de
respostas da aula de onde resultará o circuito a ser montado. Esta nova preparação (exceto as
conclusões) deve ser executada nos 10 minutos iniciais da aula. É fundamental que os alunos
venham devidamente preparados para executar esta preparação com rapidez.
• O restante tempo da aula será dedicado à montagem do circuito e à modificação de um projeto
VHDL em ambiente Vivado. Os alunos devem trazer consigo o enunciado do laboratório L0 que
deverá ter sido estudado em casa, de forma a executar a montagem de forma eficiente, verificar
o seu correto funcionamento, e corrigir eventuais erros recorrendo à ponta de prova. Em
particular, é fundamental que ambos os alunos tenham um perfeito conhecimento das ligações
da placa bread-board, do funcionamento da ponta de prova e da base de teste, bem como da
forma como se lê o data-sheet de um circuito integrado. Adicionalmente, os alunos deverão
saber como implementar uma função combinatória simples em ambiente Vivado e confirmar
os resultados em simulação. Para tal, deverão ter lido em casa com atenção o “Guia de
Utilização do Vivado ML Edition” e preparado a pergunta correspondente de casa.
• Os últimos 10 minutos são reservados à escrita das conclusões, sendo a folha de
perguntas/respostas entregue no final da aula. Esta entrega deverá ser feita de forma
eletrónica, devendo os alunos tirar uma foto a cada página (possivelmente enviar as fotos por
email para os próprios) e submeter os ficheiros respetivos no Fénix. Para submeter devem ir
ao portal de estudante do Fénix (e não à página da cadeira), no lado esquerdo devem escolher
projetos, depois Sistemas Digitais, ver ficheiros e submeter ficheiros.
1|P á g i n a
SISTEMAS DIGITAIS
2025-2026, LEEC, LEAER, LEFT
2 PREPARAÇÃO TEÓRICA
Considere o logigrama com entradas A3, A2, A1 e A0 e saída F da figura 1 (na aula será fornecido um circuito
diferente).
Figura 1 - Logigrama do circuito a analisar.
1. Construa a tabela de verdade da função F, implementada pelo circuito mostrado na figura 1, considerando
A3 o bit de maior peso. Justifique.
2. Simplifique a função F o mais possível utilizando álgebra de Boole.
3. Represente o logigrama do novo circuito.
4. Apresente o esquema elétrico do novo circuito. Não se esqueça de referenciar cada integrado utilizado, e
de indicar nas entradas e saídas de cada porta lógica o número do pin do integrado correspondente.
5. Na página da cadeira está disponível o ficheiro [Link] correspondente a um projeto incompleto.
Pretende-se que cada aluno complete este projeto de forma a poder simular o circuito da Figura 1 deste
enunciado. Para tal, execute os passos seguintes:
a) Faça download e descompacte o ficheiro “[Link]”.
b) Na diretoria “lab1a” encontrará o ficheiro “[Link]” (se a extensão não estiver visível, é o ficheiro
lab1 associado ao símbolo do Vivado) e clique duas vezes com o rato de forma a abrir o projeto com a
ferramenta Vivado da Xilinx.
c) O projeto fornecido é parecido com o projeto apresentado na Figura 3 do “Guia de Utilização do
Vivado ML Edition” (GUV), aparte de ligeiras diferenças no interface gráfico da ferramenta e de
outras resultantes do facto de o projeto ilustrado não ser exatamente o mesmo. No painel P2
(Sources) clique no símbolo “>” em frente a “sd(Behavioral) ([Link])” de forma a abrir a árvore de
ficheiros do projeto.
2|P á g i n a
SISTEMAS DIGITAIS
2025-2026, LEEC, LEAER, LEFT
d) Clique duas vezes no ficheiro “[Link]”, onde está “inst_l1 :lab1(Behavioral) ([Link])”. No painel
P5 deverá aparecer um editor com o código do ficheiro “[Link]”. Pode maximizar a janela do editor
se assim o entender, clicando no quadrado no canto superior à direita da janela.
e) O bloco de código VHDL correspondente à “entidade” do circuito (secção “entity lab1 is …”)
define os sinais de entrada e saída do circuito, que já estão pré-preenchidos. Confirme que os sinais
de entrada são “a3, a2, a1, a0” e a saída é “f”.
f) Encontrará, em seguida, o bloco de código VHDL correspondente à “arquitetura” do circuito (secção
“architecture Behavioral of lab1 is …”). Este bloco contempla a linha “signal na3,
na2, na1, na0: std_logic;” com a declaração de sinais auxiliares, que podem ser úteis (por
exemplo) para simplificar a descrição do circuito total. Neste caso, foram definidos os sinais “na3,
na2, na1, na0” que vão corresponder à negação dos sinais de entrada (ver ponto seguinte).
g) A seguir à linha “begin” encontrará a descrição propriamente dita do circuito, que se encontra
incompleta. Apenas estão definidos os sinais auxiliares das negações dos sinais de entrada.
h) Para completar a descrição do circuito da Figura 1, deve começar por declarar as variáveis auxiliares
X1, X2, X3, X4, X5, X6, X7 e X8 (ver alínea f)) e exprimir a função “f” em função das variáveis
auxiliares e de entrada (ver alínea g)). Guarde as modificações efetuadas, clicando no símbolo “save”
do editor ou fazendo (Ctrl+S).
i) Para testar o circuito, já está disponibilizado no projeto um ficheiro testbench com a definição das
entradas do circuito. Para correr a simulação, clique no painel P1 do Vivado em “Run Simulation” e
na janela seguinte em “Run Behavioral Simulation”. Siga os passos 3.4, 3.5 e 3.6 do GUV para
observar corretamente a simulação efetuada, escolhendo para tal um tempo de simulação de 400 ns.
3 REALIZAÇÃO DA MONTAGEM (AULA DE LABORATÓRIO )
Logo que a preparação teórica do trabalho na aula esteja terminada, a partir do esquema eléctrico, monte o
circuito projetado. Para fazer a montagem comece por inserir os circuitos integrados na “breadboard” da base de
montagem. Tenha em atenção os diferentes métodos utilizados para identificar o pino 1 de cada circuito integrado
(recorte semi-circular ou pequeno ponto junto ao pino 1). Oriente os circuitos integrados de modo a que o pino 1
fique no canto superior esquerdo. Tenha ainda em atenção que todos os circuitos integrados necessitam de ser
alimentados (+5V e GND) para funcionarem corretamente. Na utilização da “breadboard” (e, por conseguinte, na
realização da montagem) tenha em atenção a existência de diversas pistas horizontais. As pistas na parte superior
e inferior da “breadboard” destinam-se às linhas de alimentação (+5V e GND). As pistas na zona central da
“breadboard”, com as quais os pinos dos circuitos integrados irão fazer contacto após a sua inserção, destinam-se
a efetuar as ligações entre as diferentes portas lógicas. Note que deve ainda efetuar as ligações das entradas
do circuito aos interruptores existentes na base de montagem e ligar as saídas do circuito aos indicadores
lógicos (LEDs) também disponíveis na base.
(a) Breadboard. (b) Breadboard (esquema das ligações). (c) Montagem exemplo. O uso de fios de dimensão
reduzida diminui a complexidade da montagem e
facilita o teste e a correção de erros.
3|P á g i n a
SISTEMAS DIGITAIS
2025-2026, LEEC, LEAER, LEFT
Figura 2 - Placa usada no laboratório para montar e testar o circuito projetado.
3.1 TESTE DO CIRCUITO
Valide experimentalmente as funções do circuito, preenchendo a última coluna da tabela de verdade com
os valores observados experimentalmente.
Caso o circuito não funcione corretamente, utilize a ponta de prova que lhe é fornecida. Ligue os terminais
de alimentação da ponta de prova à fonte de alimentação (terminal vermelho: +5V; terminal preto: 0V). Ligue a
base de montagem. Observe o que acontece com a ponta de prova quando ela toca nos +5V, na massa e quando
fica "no ar". Usando um fio pequeno como auxiliar, observe com a ponta os níveis lógicos num interruptor nas suas
duas posições.
Nunca force a introdução da ponta de prova nos buracos da “breadboard”. Não só não tem garantia do
resultado (mesmo que haja contacto com o metal interno, este não é fiável), como degrada a “breadboard”.
Siga a metodologia indicada para detetar a(s) falha(s). As falhas mais frequentes na realização de uma montagem
podem ser classificadas em:
a. entrada/saída em aberto (por exemplo, resultante de uma ligação por um fio defeituoso);
b. curto-circuito a Vcc (+5V) ou GND (0V);
c. curto-circuito entre pinos (por exemplo, resultantes de erros de montagem).
Após verificar que todas as ligações efetuadas estão de acordo com o seu projeto, use a ponta de prova lógica para:
1. Verificar as alimentações de todos os circuitos integrados (Vcc e GND).
2. Detetar quais as combinações de entrada para as quais a saída não é correta.
3. Forçar o circuito para uma situação de erro, selecionando uma das combinações de entrada para a qual a
saída não é correta.
4. Percorrer o circuito ponto-por-ponto, no sentido da saída errada para as entradas que a vão
sistematicamente antecedendo, e verificar que valor lógico observado é o valor esperado nesse ponto
(para cada ligação verifique se os valores lógicos nos dois extremos da ligação coincidem).
5. Tendo localizado a origem do erro, corrija-o. Verifique a existência de outros erros. Se necessário regresse
ao ponto 2.
4 SUBMISSÃO DO TRABALHO NO FENIX
A submissão do trabalho no Fenix é condição obrigatória para o trabalho ser avaliado. A submissão
consiste num único ficheiro .zip com o nome grupo<número do grupo>.zip. Este ficheiro deverá conter
os seguintes elementos:
• Folha de respostas preenchida na aula;
• Ficheiro de arquivo do projeto Vivado (também em formato .zip).
4|P á g i n a
SISTEMAS DIGITAIS
2025-2026, LEEC, LEAER, LEFT
O arquivamento do projeto Vivado tem obrigatoriamente de ser feito a partir do próprio Vivado,
selecionando a opção File > Project > Archive Project, e depois ativando as opções tal como se mostra
na Figura 3.
Só serão aceites os projetos cujos ficheiros VHDL tiverem um cabeçalho com o seguinte formato, em que
os elementos em itálico são substituídos pela respetiva informação:
--------------------------------------------------------------
-- Numero do Grupo: <número do grupo>
-- <nome do 1º elemento do grupo> (<número do 1º elemento do grupo>)
-- <nome do 2º elemento do grupo> (<número do 2º elemento do grupo>)
--------------------------------------------------------------
Figura 3: Arquivamento de projecto no Vivado.
5|P á g i n a