Laboratório de Sistemas Digitais
DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA
UNIVERSIDADE DE COIMBRA
MiEEC, 1.º ano, 1.º semestre DEEC-FCTUC
LAB07 – Componentes Datapath: temporizador e calculadora com ALU i
1. Introdução ...................................................................................................................... 1
1.1 Componentes Datapath ......................................................................................................... 1
1.2 Módulos da biblioteca UP-Core da Altera ................................................................................. 2 1.2.1 CLK_DIV .......................................................................................................................................... 2 1.2.2 DEC_7SEG ....................................................................................................................................... 3
2. Somador de 4 bits com propagação do transporte ............................................................. 3
2.1 Actividades........................................................................................................................... 4
3. Temporizador com contador ascendente BCD ................................................................... 5
3.1 Actividades........................................................................................................................... 7
4. Controlador para cronometrar passagem de veículos ......................................................... 8
4.1 Actividades........................................................................................................................... 8
5. Calculadora de 4 bits, 4 operações, com botões e 7seg ..................................................... 9
5.1 ALU de 4 bits com 4 operações ............................................................................................ 10
5.2 Actividades......................................................................................................................... 11
6. Calculadora de 8 bits, 4 operações, com botões e 7seg ....................................................11
6.1 Actividades......................................................................................................................... 11
7. Preparação do trabalho ..................................................................................................12
8. Lista de verificação .........................................................................................................12
9. Referências ....................................................................................................................13
10. Pinos principais da placa DE2 ..........................................................................................14
1. Introdução
1.1 Componentes Datapath
Nas aulas de laboratório anteriores, trabalhámos com blocos de construção de circuitos
digitais cada vez mais complexos: portas, multiplexers, descodificadores, registos simples, e
controladores. Controladores são bons para sistemas com entradas/saídas de controlo, ou
seja com entradas de apenas um bit (ou poucos). Estas podem representar algum evento ou
estado do meio onde o circuito actua, como por exemplo um bit a indicar o estado de um
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 2/14 DEEC-FCTUC
botão. Mas em muitos casos, o circuito digital a implementar tem que lidar com entradas
mais complexas, entradas de dados, ou seja, múltiplos bits representando colectivamente
uma só entidade, como por exemplo 7 bits a indicar um valor de temperatura em binário. É
então necessário ter blocos de construção para circuitos digitais que manipulam dados.
Os componentes de datapath, ou componentes para projecto ao nível da transferência
de registos (RTL register-transfer-level), armazenam ou transformam dados. A sua
interligação forma o datapath (caminho ou fluxo de dados). Existem diversos componentes
datapath: registos, deslocadores (shifters), somadores (adders), comparadores, contadores,
multiplicadores, subtractores, unidades aritméticas e lógicas (ALUs arithmetic-logic units),
ficheiros de registos. Juntando controladores com datapaths obtemos “processadores”,
circuitos digitais dedicados para processar dados.
Neste trabalho, vamos implementar alguns destes componentes e também trabalhar
com alguns componentes da biblioteca disponibilizada com as placas FPGA da Altera
apresentados na secção seguinte.
1.2 Módulos da biblioteca UP-Core da Altera
Para trabalhar com algumas das funcionalidades da placa DE2 da Altera [3], como
VGA, teclado e rato, existe uma biblioteca de módulos UP-Core da Altera [2]. Estes módulos
estão disponíveis na página da cadeira no InforEstudante (ficheiro de2.zip). Os respectivos
ficheiros devem ficar na directoria c:\altera\90\quartus\libraries\de2, devendo
indicar a localização da biblioteca no projecto, através do comando: Project >
Add/Remove Files in Project > User Libraries (Current Project).
1.2.1 CLK_DIV
As placas da Altera geram sinais de relógio internamente, mas têm uma frequência
demasiado elevada para muitas aplicações, sendo necessário colocar divisores de frequência
para gerar os valores pretendidos. O módulo CKL_DIV implementa contadores para efectuar
essa divisão, disponibilizando um conjunto de sinais de relógio com frequências em
potências de 10. Na Fig. 1 é representado o símbolo deste módulo, que tem como pino de
entrada um clock de 50 MHz (pino PIN_N2 da DE2 [3]).
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 3/14 DEEC-FCTUC
Fig. 1. CLK_DIV: divisor de relógio para DE2.
1.2.2 DEC_7SEG
Um outro módulo disponível é o descodificador hexadecimal para 7 segmentos
DEC_7SEG (Fig. 2), que tem uma entrada em bus para o número binário
(hex_digit[3..0]) e 7 saídas para os segmentos. No Quartus II, as ligações de bus são
feitas por nome e não por ligação gráfica. Na Fig. 2, temos uma entrada IN_BYTE[7..0] a
indicar o valor de dois dígitos enviados para dois visores de 7 segmentos.
Fig. 2. DEC_7SEG: descodificador de hexadecimal para 7 segmentos.
Na página da cadeira no InforEstudante está disponível um ficheiro VHDL
(dec_7seg_b.vhd) com a implementação deste descodificador considerando uma entrada
em bus para o número binário (hex_digit[3..0]) e uma saída em bus para os 7
segmentos (HEX0[6..0]).
2. Somador de 4 bits com propagação do transporte
Projectar um circuito somador seguindo o método standard de projecto de lógica
combinacional leva a tabelas de verdade muito extensas e com muitos 1s/0s nas saídas, o
que se traduz em muita lógica combinacional. Por exemplo, um somador de 8 bits tem uma
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 4/14 DEEC-FCTUC
tabela de verdade com 2(8+8) = 65,536 linhas, cuja implementação implica cerca de 8 mil
transístores. Um projecto alternativo para este somador seria seguir os mesmos passos que
o algoritmo de adição manual, ou seja uma coluna de cada vez. Para cada coluna basta
calcular a soma e adicionar o transporte (carry) à coluna seguinte. Temos pois que
projectar um componente que permita somar dois bits mais o transporte (os bits da coluna),
e que gere o bit de soma (sum) e o bit de transporte (carry). Este componente designa-se
por somador completo (full-adder). A Fig. 3 apresenta a sua tabela de verdade e o
respectivo circuito. A Fig. 4 mostra como podemos criar uma cascata de somadores
completos para implementar um somador de 4 bits.
Fig. 3. Somador completo (full-adder).
Fig. 4. Somador de 4 bits com propagação do transporte (carry-ripple).
2.1 Actividades
a) Num novo projecto, crie em VHDL um componente SomaCompl que implemente a
funcionalidade de um somador completo (full-adder), descrevendo o seu
comportamento e não a sua estrutura.
a0
c o s F A
c o
b3
a2
b2
s3
s2
s1
ci
b a
c o s F A
ci
b a
a1
b1
c o s F A
ci
b a
s0
a0
b0
ci
c o s F A
ci
b a
( a )
a3
a2
a1
a0
b3
s3
s2
s1
s0
c o ci
b2
b1
b0
( b )
4-bit adder
c o
ci b a
s
Full
adder
s 0 1 1 0 1 0 0 1
c o 0 0 0 1 0 1 1 1
ci 0 1 0 1 0 1 0 1
b 0 0 1 1 0 0 1 1
a 0 0 0 0 1 1 1 1
I nputs O utputs
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 5/14 DEEC-FCTUC
b) Crie um novo componente Soma4bit, a partir da composição gráfica de 4 somadores
completos, ou seja um somador de 4 bits com propagação do transporte (4 bit carry-
ripple adder).
c) Utilizando o componente anterior, projecte um circuito para somar dois números
binários de 4 bits e apresentar o resultado. Recorrendo a 4 visores de 7 segmentos, e
ao módulo DEC_7SEG da biblioteca UP-Core ou ao módulo dec_7seg_b, deve
visualizar os dois números a somar, especificados por dois conjuntos de 4
interruptores. Os dois visores mais à direita deverão mostrar os dois valores a somar.
Os dois visores mais à esquerda deverão ser utilizados para visualizar o resultado da
soma dos dois números − o dígito mais à esquerda será 1 quando a soma
“transbordar” e tiver carry out a 1.
Notas: Não esquecer de indicar o novo ficheiro do desenho esquemático do seu circuito como
o principal do seu projecto (top-level entity), seleccionando essa opção com o botão do lado
direito do rato sobre o ficheiro na janela do Project Navigator. Para a atribuição de pinos da
FPGA às entradas e saídas do circuito, utilize nomes de acordo com a lista standard DE2, de
forma a poder utilizar o ficheiro DE2_pin_assignments.csv1 para importar a atribuição
de pinos.
d) Compile o projecto. Se ocorrer algum erro, volte atrás para corrigir os erros de
projecto.
e) Programe a FPGA e teste o circuito.
3. Temporizador com contador ascendente BCD
Um contador BCD (decimal codificado em binário: Binary Coded Decimal) limita a
contagem de grupos de 4 bits aos dígitos decimais, ou seja em vez de contar de 0 a 15 com
4 bits (16 valores) só conta de 0 a 9 (10 valores). Consegue-se assim uma correspondência
directa entre grupos de bits e dígitos decimais do número representado, facilitando por
exemplo a visualização em visores de 7 segmentos. A Fig. 5 mostra a estrutura interna de
um contador ascendente de 4 bits que facilmente podemos adaptar para BCD.
1 Consultar a última página deste enunciado.
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 6/14 DEEC-FCTUC
Fig. 5. Contador ascendente de 4 bits.
Para limitar a contagem, podemos recorrer a um registo com reset, e alterar o AND
que detecta a contagem terminal, tc, para detectar o último valor de contagem pretendido
e ligar esta saída ao reset. Mas isto só funcionará se o reset for síncrono, pois se for
assíncrono perdemos este último patamar de contagem, transitando logo para zero. Com
reset assíncrono temos que detectar o primeiro valor não desejado, ou seja um à frente do
último.
Uma outra abordagem é descrever o comportamento pretendido em VHDL, e deixar a
tarefa de síntese para as ferramentas de CAD (computer aided design). Podemos declarar
um módulo VHDL com as entradas e saídas apropriadas para um contador BCD, indicando
no comportamento as transições de estado para cada valor de contagem. A Fig. 6 apresenta
uma descrição comportamental mais compacta, recorrendo à biblioteca aritmética sem sinal
para standard logic. Esta define operadores aritméticos como adição e subtracção para
vectores de bits.
1 -- contador BCD (4 bits, 1 digitos decimal)
2 library ieee;
3 use ieee.std_logic_1164.all;
4 use ieee.std_logic_arith.all;
5 use ieee.std_logic_unsigned.all;
6
7 entity contaBCD is
8 port ( clk, reset, cnt: in std_logic;
9 dec: out std_logic_vector(3 downto 0);
10 carry: out std_logic
11 );
12 end contaBCD;
13
14 architecture behavior of contaBCD is
15 -- registo interno
ld 4-bit register
C t c 4
4 4
4
c n t
4-bit up-counter
+1
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 7/14 DEEC-FCTUC
16 signal dec_reg: std_logic_vector(3 downto 0);
17 begin
18 process(clk, reset, cnt)
19 begin
20 if (reset = '0') then
21 dec_reg <= "0000";
22 carry <= '0';
23 elsif (cnt = '1' and (clk'event and clk = '1')) then
24 if ( dec_reg = 9) then
25 dec_reg <= "0000";
26 carry <= '1';
27 else
28 dec_reg <= dec_reg + 1;
29 carry <= '0';
30 end if;
31 end if;
32 end process;
33
34 process(dec_reg)
35 begin
36 -- colocar valor do registo interno na saída.
37 dec <= dec_reg;
38 end process;
39 end behavior;
40
Fig. 6. contaBCD.vhd com descrição comportamental recorrendo à biblioteca
aritmética sem sinal para simplificar a especificação do comportamento pretendido.
Nota: Este ficheiro está disponível na página da cadeira no InforEstudante, no material de apoio a este trabalho.
3.1 Actividades
a) Num novo projecto, crie em VHDL um componente ContaBCD, um contador com
entradas cnt (conta se estiver a 1), reset asserido a zero e clk, e saídas
dec[3..0] e carry (transporte de saída). Sendo um contador BCD ao chegar a 9
(10012) passa para 0 (00002) e carry vai a 1.
b) Utilizando o componente anterior, projecte um circuito temporizador com resolução de
0.1 segundos que conte de 0 a 9 segundos. Como entrada de relógio pode escolher a
frequência apropriada do módulo CLK_DIV da biblioteca UP-Core, e recorrer a dois
visores de 7 segmentos para indicar a contagem. Deve ainda utilizar dois botões: um
para accionar/parar a contagem e outro para reset.
Não esquecer de indicar o novo ficheiro do desenho esquemático do seu circuito como o
principal do seu projecto (top-level entity), seleccionando essa opção com o botão do lado
direito do rato sobre o ficheiro na janela do Project Navigator. Para a atribuição de pinos da
FPGA às entradas e saídas do circuito, utilize nomes de acordo com a lista standard DE2, de
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 8/14 DEEC-FCTUC
forma a poder utilizar o ficheiro DE2_pin_assignments.csv2 para importar a atribuição
de pinos.
c) Compile o projecto. Se ocorrer algum erro, volte atrás para corrigir os erros de
projecto.
d) Programe a FPGA e teste o circuito.
4. Controlador para cronometrar passagem de veículos
Pretende-se cronometrar a passagem de veículos num determinado percurso, dispondo
de um par de sensores e de um temporizador. Inicialmente o controlador deve ter o
temporizador a zero e aguardar que o veículo accione o primeiro sensor s1, neste instante
inicia a contagem, asserindo a entrada cnt do temporizador, e depois só quando detectar a
passagem no segundo sensor, s2, é que pára o temporizador. Só passa um veículo de cada
vez, e para cronometrar uma nova passagem, temos que pulsar um botão cron.
4.1 Actividades
a) Projecte a máquina de estados finitos para o controlador de cronometragem de
veículos. Considere que dispõe de um temporizador BCD com entradas de contagem e
reset controladas pela máquina de estados finitos, ficando o valor de contagem sempre
ligado directamente ao mostrador.
Importante: O projecto do controlador deve ser realizado previamente, antes de vir para a
aula prática de laboratório em que se realizará este trabalho. Caso contrário, não terá tempo de
cumprir todos os objectivos do trabalho durante as 3h da aula prática laboratorial.
b) Siga os restantes passos de projecto de controladores para obter a arquitectura e a
lógica combinacional necessária para o cronómetro de passagem de veículos.
c) Crie um novo projecto no qual deve incluir um componente CombLogic, que
implementa a parte da lógica combinacional do controlador, o registo de estado do
controlador, e o temporizador composto por décadas ContaBCD, já implementado no
ponto 3.1. Deve agora utilizar dois botões para simular os sensores de passagem dos
veículos s1 e s2, e um outro para re-armar o circuito, cron.
2 Consultar a última página deste enunciado.
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 9/14 DEEC-FCTUC
Não esquecer de indicar o novo ficheiro do desenho esquemático do seu circuito como o
principal do seu projecto (top-level entity), seleccionando essa opção com o botão do lado
direito do rato sobre o ficheiro na janela do Project Navigator. Para a atribuição de pinos da
FPGA às entradas e saídas do circuito, utilize nomes de acordo com a lista standard DE2, de
forma a poder utilizar o ficheiro DE2_pin_assignments.csv3 para importar a atribuição
de pinos.
d) Compile o projecto. Se ocorrer algum erro, volte atrás para corrigir os erros de
projecto.
e) Programe a FPGA e teste o circuito.
5. Calculadora de 4 bits, 4 operações, com botões e 7seg
Uma unidade aritmética e lógica (ALUs arithmetic-logic units) é um componente que
pode fazer várias operações aritméticas (adição, subtracção, incrementar, etc.) e lógicas
(AND, OR, etc.), mediante a selecção das entradas de controlo. Por exemplo, podemos ter
uma ALU que implemente as funções indicadas na Fig. 7.
Fig. 7. Tabela de operações para ALU.
Podemos construir esta ALU com componentes separados para cada operação e
multiplexers. Mas ficamos com demasiados fios e desperdiçamos energia nos circuitos que
realizam todas as operações, quando só um dos resultados é utilizado de cada vez.
Um projecto mais eficiente utiliza apenas um somador e alguma lógica adicional a
condicionar as entradas A e B do somador (Fig. 8). A lógica adicional designa-se por
3 Consultar a última página deste enunciado.
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 10/14 DEEC-FCTUC
extensor aritmético e lógico (arithmetic-logic extender). O extensor modifica as entradas A e
B, de forma que o resultado da operação desejada fique à saída do somador.
Fig. 8. Implementação da ALU com somador e extensor aritmético e lógico.
O extensor processa bit a bit em função das entradas de selecção, sendo todos iguais
os módulos abext da Fig. 2. Para completar o projecto do extensor para a ALU, temos que
criar lógica para ia(x,y,z,a,b) e ib(x,y,z,a,b) para abext, e criar lógica para
cin(x,y,z).
5.1 ALU de 4 bits com 4 operações
Pretende-se implementar uma ALU de 4 bits que permita somar, subtrair e realizar as
operações lógicas AND e OR. A ALU tem as entradas A e B de 4 bits, os bits de selecção de
operação x e y, e as saídas S de 4 bits. A sua implementação deve recorrer a um extensor
aritmético e lógico, descrito anteriormente. A Fig. 9 indica a tabela de operações pretendida.
Fig. 9. Tabela de operações para ALU de 4 bits.
x y Operação
0 0 A+B
0 1 A-B
1 0 A OR B (bit a bit)
1 1 A AND B (bit a bit)
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 11/14 DEEC-FCTUC
5.2 Actividades
a) Tendo em conta o funcionamento do extensor aritmético e lógico e a tabela de
operações da Fig. 9, crie a tabela de verdade para ia(x,y,a,b), ib(x,y,a,b),
cin(x,y). Num novo projecto, crie em VHDL um componente ab_ext, que
implemente a funcionalidade do extensor, descrevendo o seu comportamento e não a
sua estrutura.
b) Crie um novo componente ALU_4bit_ext a partir da composição gráfica de 4
ab_ext e da lógica adicional necessária para gerar a saída do cin.
c) Utilizando o componente anterior e o Soma4bit construído em 2.1 b), crie um novo
componente ALU_4bit que implemente a ALU de 4 bits pretendida.
d) Utilizando o componente anterior, projecte um circuito para testar a ALU de 4 bits com
dois números indicados por SW[3..0] e SW[7..4], e a operação seleccionada por
KEY[1..0]. O resultado deve ser indicado no visor de 7 segmentos (HEX0[6..0]).
e) Compile o projecto. Se ocorrer algum erro, volte atrás para corrigir os erros de
projecto.
f) Programe a FPGA e teste o circuito.
6. Calculadora de 8 bits, 4 operações, com botões e 7seg
Pretende-se agora aumentar a capacidade da calculadora para 8 bits e dois dígitos
hexadecimais. É necessário uma nova ALU de 8 bits, que se pode construir com os mesmos
componentes anteriores, associando dois Soma4bit para ter um somador de 8 bits e
acrescentando mais extensores nos bits de entrada.
6.1 Actividades4
a) No mesmo projecto, crie um novo componente ALU_8bit com as mesmas operações
da ALU_4bit, recorrendo aos mesmos sub-componentes para a implementar, como
descrito acima.
4 A execução das actividades até à secção 5, inclusive, permite obter uma classificação de 100% no trabalho. A realização deste último conjunto de actividades (6.1) será valorizada através duma bonificação que pode ir até 120% da cotação do trabalho.
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 12/14 DEEC-FCTUC
b) Utilizando o componente anterior, e adaptando o circuito anterior da calculadora que
permitia indicar os dígitos com interruptores, implemente uma nova calculadora de 8
bits com a mesma ALU. Agora, é necessário ler um total de 4 dígitos hexadecimais,
dois para cada número de entrada, indicados por SW[7..0] e SW[15..8]. A
operação pretendida é indicada mais uma vez com KEY[1..0].
c) Programe a FPGA e teste o circuito.
7. Preparação do trabalho
Com o objectivo de preparar convenientemente este trabalho que irá realizar na aula
de laboratório, deverá:
1. Ler atentamente este documento até ao fim.
2. Consultar as referências indicadas na introdução do trabalho e outras referências
bibliográficas que sejam relevantes para o trabalho.
3. Executar as actividades 4.1 a), b) do projecto do controlador.
4. Pedir ao docente da aula de laboratório, no início da aula, para esclarecer eventuais
dúvidas.
Facultativamente, se tiver o SW de CAD Quartus II instalado no seu PC (o Quartus II é
distribuído gratuitamente através do sítio Web da Altera5), poderá desenhar previamente
parte dos esquemáticos solicitados ao longo do trabalho e escrever o código VHDL solicitado
na actividade 2.1 a) e trazê-los para a aula.
A preparação mais ou menos cuidada do trabalho será tida em conta na
avaliação que o docente realizará durante a aula.
8. Lista de verificação
Deverá chamar o docente no final de cada conjunto de actividades propostas neste
documento (ex. no final do ponto 2.1).
Importante: Antes de dar por terminado este trabalho laboratorial, ou abandonar a
aula laboratorial, verifique se o docente verificou e avaliou a execução de todas as
actividades sumariadas na tabela seguinte. Só assim poderá dar o trabalho por terminado.
5 www.altera.com
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 13/14 DEEC-FCTUC
Actividade
Somador de 4 bits com propagação do transporte
1 2.1 a), b) SomaCompl: somador completo em VHDL,
Soma4bit: somador de 4 bits com propagação do transporte
2 2.1 c), d), e) Circuito para visualizar e somar dois números.
Implementação e teste na FPGA.
Temporizador com contador ascendente BCD
3 3.1 a) ContaBCD: contador BCD de 4 bits
4 3.1 b), c), d) Temporizador de dois dígitos com start/stop e reset.
Implementação e teste na FPGA
Controlador para cronometrar passagem de veículos
5 4.1 a), b) Projecto do controlador para cronometrar passagem de veículos
6 4.1 c)
4.1 d), e)
Circuito para cronometrar passagem de veículos com visor de 7 segmentos.
Implementação e teste na FPGA.
Calculadora de 4 bits, 4 operações, com botões e 7seg
7 5.1 a) ab_ext: componente para extensor aritmético e lógico
8 5.1 b) ALU_4bit_ext: extensor aritmético e lógico para ALU de 4 bits
9 5.1 c) ALU_4bit: unidade aritmética e lógica de 4 bits com 4 operações
10 5.1 d), e), f) Calculadora de 4 bits, 4 operações, com botões e 7seg
Implementação e teste na FPGA
Calculadora de 8 bits, 4 operações, com botões e 7seg
11 6.1 a) ALU_8bit: unidade aritmética e lógica de 8 bits com 4 operações
12 6.1 b), c) Calculadora de 8 bits, 4 operações, com teclado e VGA.
Implementação e teste na FPGA
9. Referências
[1] Digital Design. Frank Vahid, John Wiley & Sons, 2006.
[2] Rapid Prototyping of Digital Systems – A Tutorial Approach. James Hamblen e
Michael Furman, Kluwer Academic Publishers, 2001.
[3] DE2 Development and Education Board. Altera, 72 páginas, 2006.
i Conteúdo pedagógico preparado em Setembro de 2011 pelos docentes Jorge Lobo e Rui P. Rocha do DEEC-FCTUC, que asseguram a leccionação da unidade curricular Laboratório de Sistemas Digitais (MiEEC, 1.º ano, 1.º semestre).
LAB07 – Componentes Datapath: temporizador e calculadora com ALU Laboratório de Sistemas Digitais
MiEEC, 1.º ano, 1.º semestre Pág. 14/14 DEEC-FCTUC
10. Pinos principais da placa DE2
( Dispositivo: Cyclone II, EP2C35F672C6 | Ficheiro: DE2_pin_assignments.csv )
# Altera’s DE2 board
To,Location
# push-buttons
KEY[0],PIN_G26
KEY[1],PIN_N23
KEY[2],PIN_P23
KEY[3],PIN_W26
# Switches
SW[0],PIN_N25
SW[1],PIN_N26
SW[2],PIN_P25
SW[3],PIN_AE14
SW[4],PIN_AF14
SW[5],PIN_AD13
SW[6],PIN_AC13
SW[7],PIN_C13
SW[8],PIN_B13
SW[9],PIN_A13
SW[10],PIN_N1
SW[11],PIN_P1
SW[12],PIN_P2
SW[13],PIN_T7
SW[14],PIN_U3
SW[15],PIN_U4
SW[16],PIN_V1
SW[17],PIN_V2
# Red LEDs
LEDR[0],PIN_AE23
LEDR[1],PIN_AF23
LEDR[2],PIN_AB21
LEDR[3],PIN_AC22
LEDR[4],PIN_AD22
LEDR[5],PIN_AD23
LEDR[6],PIN_AD21
LEDR[7],PIN_AC21
LEDR[8],PIN_AA14
LEDR[9],PIN_Y13
LEDR[10],PIN_AA13
LEDR[11],PIN_AC14
LEDR[12],PIN_AD15
LEDR[13],PIN_AE15
LEDR[14],PIN_AF13
LEDR[15],PIN_AE13
LEDR[16],PIN_AE12
LEDR[17],PIN_AD12
# Green LEDs
LEDG[0],PIN_AE22
LEDG[1],PIN_AF22
LEDG[2],PIN_W19
LEDG[3],PIN_V18
LEDG[4],PIN_U18
LEDG[5],PIN_U17
LEDG[6],PIN_AA20
LEDG[7],PIN_Y18
LEDG[8],PIN_Y12
#
# 7 segments
# hex0
HEX0[0],PIN_AF10
HEX0[1],PIN_AB12
HEX0[2],PIN_AC12
HEX0[3],PIN_AD11
HEX0[4],PIN_AE11
HEX0[5],PIN_V14
HEX0[6],PIN_V13
# hex1
HEX1[0],PIN_V20
HEX1[1],PIN_V21
HEX1[2],PIN_W21
HEX1[3],PIN_Y22
HEX1[4],PIN_AA24
HEX1[5],PIN_AA23
HEX1[6],PIN_AB24
# hex2
HEX2[0],PIN_AB23
HEX2[1],PIN_V22
HEX2[2],PIN_AC25
HEX2[3],PIN_AC26
HEX2[4],PIN_AB26
HEX2[5],PIN_AB25
HEX2[6],PIN_Y24
# hex3
HEX3[0],PIN_Y23
HEX3[1],PIN_AA25
HEX3[2],PIN_AA26
HEX3[3],PIN_Y26
HEX3[4],PIN_Y25
HEX3[5],PIN_U22
HEX3[6],PIN_W24
# hex4
HEX4[0],PIN_U9
HEX4[1],PIN_U1
HEX4[2],PIN_U2
HEX4[3],PIN_T4
HEX4[4],PIN_R7
HEX4[5],PIN_R6
HEX4[6],PIN_T3
# hex5
HEX5[0],PIN_T2
HEX5[1],PIN_P6
HEX5[2],PIN_P7
HEX5[3],PIN_T9
HEX5[4],PIN_R5
HEX5[5],PIN_R4
HEX5[6],PIN_R3
# hex6
HEX6[0],PIN_R2
HEX6[1],PIN_P4
HEX6[2],PIN_P3
HEX6[3],PIN_M2
HEX6[4],PIN_M3
HEX6[5],PIN_M5
HEX6[6],PIN_M4
# hex7
HEX7[0],PIN_L3
HEX7[1],PIN_L2
HEX7[2],PIN_L9
HEX7[3],PIN_L6
HEX7[4],PIN_L7
HEX7[5],PIN_P9
HEX7[6],PIN_N9
# 50MHz clock
CLOCK_50,PIN_N2
# PS2
PS2_CLK,PIN_D26
PS2_DAT,PIN_C24
# VGA
VGA_R[9],PIN_E10
VGA_G[9],PIN_D12
VGA_B[9],PIN_B12
VGA_HS,PIN_A7
VGA_VS,PIN_D8
VGA_CLK,PIN_B8
VGA_BLANK,PIN_D6
Top Related