Mudanças entre as edições de "ELD129003-Engtelecom (Diário) - Prof. Marcos Moecke"
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 761: | Linha 761: | ||
== Atividade relâmpago (AR) == | == Atividade relâmpago (AR) == | ||
− | As atividades relâmpago devem ser entregues no Moodle da disciplina. A não entrega dessas atividades não gera nenhum desconto, apenas geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN. | + | As atividades relâmpago devem ser entregues no Moodle da disciplina. A não entrega dessas atividades não gera nenhum desconto, apenas geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN. |
+ | |||
+ | ===AR1 - Conhecendo os dispositivos lógicos programáveis=== | ||
+ | ;Atividade: | ||
+ | Para esse desafio, no PASSO 3 da AE1, selecione o dispositivo EP4CE6E22C7 da família Cyclone IV E. | ||
+ | |||
+ | Utilizando o circuito que realiza o cálculo da distância de Hamming entre dois sinais, procure melhorar o processo de compilação de modo que consiga reduzir ao máximo o tempo de propagação entre entrada e saída. | ||
+ | |||
+ | *Insira restrições de atraso máximo para o compilador utilizando o Synopsys Design Constraints File | ||
+ | *Modifique a técnica utilizada pelo Quartus na otimização em em Optimization Technique por default está selecionado [x] Balanced (Normal flow) . | ||
+ | :*selecione uma das opções de [x] Performance para "procurar" reduzir o tempo de propagação e/ou aumentar a frequência máxima do sistema. | ||
+ | :*selecione uma das opções de [x] Power para "procurar" reduzir a potência utilizados no sistema. | ||
+ | :*selecione [x] Area para "procurar" reduzir o número de elementos lógicos utilizados no sistema. | ||
+ | *Altere a semente iniciaal em Fitter Initial Placement Seed. | ||
+ | |||
+ | ;Entregas: | ||
+ | *Envie o QAR com o projeto compilado e configurado com menor tempo de propagação entre entrada e saída que você conseguiu. | ||
+ | *Envie a captura da imagem mostrando o relatório com este tempo. | ||
+ | *Envie no texto online os seguintes dados: | ||
+ | :1) Optimization Technique usada | ||
+ | :2) Fitter Initial Placement Seed usada | ||
+ | :3) Paramentros usados no Synopsys Design Constraints File | ||
+ | :4) O caminho crítico (aquele que tem o maior tempo de propagação) e o tempo obtido. | ||
+ | |||
+ | ;Bonificação na A1: | ||
+ | *0,5 - para o(a) estudante que obtiver o menor tempo de propagação para o caminho crítico | ||
+ | *0,3 - para o(a) estudante que obtiver o segundo menor tempo de propagação para o caminho crítico | ||
+ | *0,2 - para o(a) estudante que obtiver o terceiro menor tempo de propagação para o caminho crítico | ||
+ | |||
+ | ===AR2 - Desafio: contador bidirecional=== | ||
+ | ; Atividade: | ||
+ | Implementar um contador bidirecional entre MIN e MAX. Uma entrada DIR indica a direção da contagem. Considere DIR = 0 (para contagem crescente) e DIR = 1 (para contagem decrescente). Avaliar a frequencia máxima (Fmax) em que o circuito funcionará utilizando o '''dispositivo EP4CE10F17A7'''. | ||
+ | *Versão 1: Com underflow no valor mínimo (MIN) e overflow no máximo (MAX). | ||
+ | *Versão 2: Com parada no valor mínimo (MIN), se decrescente e também no máximo (MAX) se crescente. | ||
+ | |||
+ | ;Entregas: | ||
+ | * Envie o QAR com o projeto compilado e configurado com o '''maior valor de Fmax''' que você conseguiu. | ||
+ | * Envie a captura da imagem mostrando o relatório com essa frequência. | ||
+ | * Envie a tela da simulação que mostra que o contador funciona (faça contar de 0 até MAX, e também decrementar até o MIN) | ||
+ | * Envie no texto online os seguintes dados: | ||
+ | :1) Qual versão foi implentada (v1 ou v2) | ||
+ | :2) O maior valor de Fmax obtido | ||
+ | |||
+ | ;Bonificação na A1: | ||
+ | *1,0 - para o(a) primeiro estudante que enviar o contador funcionando (versão 1 ou 2) | ||
+ | *1,0 - para o(a) estudante que obtiver o maior valor de Fmax (versão 1) | ||
+ | *1,0 - para o(a) estudante que obtiver o maior valor de Fmax (versão 2) | ||
+ | |||
+ | ;Dicas: | ||
+ | * [[Restringir a frequencia máxima de clock no Quartus II]] | ||
+ | * [[Como obter o Fmax do projeto no Quartus]] | ||
== Atividade extra-classe (AE) == | == Atividade extra-classe (AE) == |
Edição das 19h25min de 3 de abril de 2024
Registro on-line das aulas
Unidade 1 - Aula inicial, Introdução a disciplina
- 1 ENCONTRO
Unidade 1 - Aula inicial, Introdução a disciplina |
---|
|
Unidade REV - PRIMEIRO CONTATO COM VHDL
- 3 ENCONTROS
Unidade REV - PRIMEIRO CONTATO COM VHDL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
library library_name;
use library_name.package_name.all;
entity entity_name is
[generic (
cons_name1: const_type const_value;
cons_name2: const_type const_value;
...
cons_nameN: const_type const_value);]
[port (
signal_name1: mode signal_type;
signal_name2: mode signal_type;
...
signal_nameN: mode signal_type);]
[declarative_part]
[begin
statement_part]
end [entity] [entity_name];
architecture arch_name of entity_name is
[declarative_part]
begin
statement_part
end [architecture] [arch_name];
Para ilustrar essas instruções utilizaremos o exemplo de um Mux4x1. Um multiplexador digital de N entradas e 1 saída, frequentemente abreviado como MUX N:1, é um circuito digital muito utilizado para rotear sinais digitais. Ele desempenha a função de selecionar uma das entradas para ser encaminhada para a saída com base em um sinal de seleção (ou controle).
Dada a função booleana do MUX4:1 é simples para descreve-lo em VHDL utilizando apenas operadores lógicos. entity mux4x1 is
port
(
-- Input ports
X: in bit_vector (3 downto 0);
Sel : in bit_vector (1 downto 0);
-- Output ports
Y : out bit
);
end entity;
-- Implementação com lógica pura
architecture v_logica_pura of mux4x1 is
begin
Y <= (X(0) and (not Sel(1)) and (not Sel(0))) or
...
end architecture;
No entanto, o MUX4:1 também pode ser descrito utilizando a instrução WHEN-ELSE <optional_label>: <target> <=
<value> when <condition> else
<value> when <condition> else
...
<value> else
<value>;
Warning (13012): Latch ... has unsafe behavior
No caso do MUX4:1 ele poderia ser descrito como: -- Implementação com WHEN ELSE
architecture v_WHEN_ELSE of mux4x1 is
begin
Y <= X(0) when Sel = "00" else
X(1) when Sel = "01" else
X(2) when Sel = "10" else
X(3);
end architecture;
Outra forma de descrever o MUX4:1 seria utilizando a instrução WITH-SELECT <optional_label>: with <expression> select
<target> <=
<value> when <choices>,
<value> when <choices>,
...
<value> when others;
Error (10313): VHDL Case Statement error ...: Case Statement choices must cover all possible values of expression
-- Implementação com WITH SELECT
architecture v_WITH_SELECT of mux4x1 is
begin
with Sel select
Y <= X(0) when "00", -- note o uso da ,
X(1) when "01",
X(2) when "10",
X(3) when others; -- note o uso de others, para todos os demais valores.
-- Não pode ser substituido por "11" mesmo que o signal seja bit_vector.
end architecture;
CONFIGURATION <configuration_name> OF <entity_name> IS
FOR <architecture_name> END FOR;
END CONFIGURATION;
-- Design Unit que associa a architecture com a entity
CONFIGURATION cfg_ifsc OF mux4x1 IS
FOR v_logica_pura END FOR;
-- FOR v_WHEN_ELSE END FOR;
-- FOR v_WITH_SELECT END FOR;
END CONFIGURATION;
Figura 2.1 - Código RTL do mux4x1 v_logica_pura Figura 2.2 - Código RTL do mux4x1 v_WHEN_ELSE Figura 2.3 - Código RTL do mux4x1 v_WITH_SELECT
|
Unidade 2 - Dispositivos Lógicos Programáveis
- 3 ENCONTROS
Unidade 2 - Dispositivos Lógicos Programáveis | ||||
---|---|---|---|---|
Unidade 3 - Circuitos sequenciais (Implementação com HDL)
AvaliaçõesDurante o semestre serão realizadas 4 avaliações. As avaliações devem ser enviadas pela plataforma Moodle com os arquivos solicitados.
Atividade relâmpago (AR)As atividades relâmpago devem ser entregues no Moodle da disciplina. A não entrega dessas atividades não gera nenhum desconto, apenas geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN. AR1 - Conhecendo os dispositivos lógicos programáveis
Para esse desafio, no PASSO 3 da AE1, selecione o dispositivo EP4CE6E22C7 da família Cyclone IV E. Utilizando o circuito que realiza o cálculo da distância de Hamming entre dois sinais, procure melhorar o processo de compilação de modo que consiga reduzir ao máximo o tempo de propagação entre entrada e saída.
AR2 - Desafio: contador bidirecional
Implementar um contador bidirecional entre MIN e MAX. Uma entrada DIR indica a direção da contagem. Considere DIR = 0 (para contagem crescente) e DIR = 1 (para contagem decrescente). Avaliar a frequencia máxima (Fmax) em que o circuito funcionará utilizando o dispositivo EP4CE10F17A7.
Atividade extra-classe (AE)A média ponderada das atividades extra-classe será considerada no cálculo do conceito final da UC. A entrega das mesmas será feita pelo Moodle, e cada dia de atraso irá descontar 0,2 na nota da atividade. Muitas dessas atividades também geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN. Para os BÔNUS só serão considerados projetos entregues no prazo. AE1 - Conhecendo os dispositivos lógicos programáveis
Referências Bibliográficas:
|