Mudanças entre as edições de "DLP29007-Engtelecom(2017-2) - Prof. Marcos Moecke"
Ir para navegação
Ir para pesquisar
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
{{DivulgueEngtelecom}} | {{DivulgueEngtelecom}} | ||
+ | {{collapse top| Unidade 1 - Processo de Síntese do código VDHL}} | ||
==Unidade 1== | ==Unidade 1== | ||
;Aula 6 e 7 (22 e 29 Ago): | ;Aula 6 e 7 (22 e 29 Ago): | ||
Linha 15: | Linha 16: | ||
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture02-synthesis.pdf Unidade 2: Processo de Síntese do código VDHL] | ::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture02-synthesis.pdf Unidade 2: Processo de Síntese do código VDHL] | ||
::Ver [https://www.altera.com/support/support-resources/operation-and-testing/io/io-features.html#ProgrammableDelay IO -features: Programmable Delay] Uso dos atrasos programáveis nos pinos programáveis de I/O | ::Ver [https://www.altera.com/support/support-resources/operation-and-testing/io/io-features.html#ProgrammableDelay IO -features: Programmable Delay] Uso dos atrasos programáveis nos pinos programáveis de I/O | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top| Unidade 3 - Eficiência de Circuitos Combinacionais}} | ||
==Unidade 3== | ==Unidade 3== | ||
;Aula 8 e 9 (4 e 5 Set): | ;Aula 8 e 9 (4 e 5 Set): | ||
Linha 29: | Linha 32: | ||
::Ver pag. 163 a 211 de <ref name="PONG2006a" /> | ::Ver pag. 163 a 211 de <ref name="PONG2006a" /> | ||
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture03-efficient_comb_circuits.pdf Unidade 3: Eficiência de Circuitos Combinacionais] | ::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture03-efficient_comb_circuits.pdf Unidade 3: Eficiência de Circuitos Combinacionais] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
:* Comparação de circuitos somadores de M entradas de N bits. Comparar a implementação em árvore x cadeia. Experimente utilizando tipos Integer e/ou (un)signed. Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo. | :* Comparação de circuitos somadores de M entradas de N bits. Comparar a implementação em árvore x cadeia. Experimente utilizando tipos Integer e/ou (un)signed. Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo. | ||
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]] | ::*Ver [[Medição de tempos de propagação em circuitos combinacionais]] | ||
− | + | {{collapse bottom}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | {{collapse top| Unidade 4 - Eficiência de Circuitos Sequenciais}} | ||
==Unidade 4== | ==Unidade 4== | ||
− | ;Aula | + | ;Aula 10 (11 Set): |
* Eficiência de Circuitos Sequenciais | * Eficiência de Circuitos Sequenciais | ||
:* Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos) | :* Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos) | ||
Linha 119: | Linha 108: | ||
::Ver pag. 213 a 239 de <ref name="PONG2006a" /> | ::Ver pag. 213 a 239 de <ref name="PONG2006a" /> | ||
+ | ;Aula 11 (12 Set): | ||
* Eficiência de Circuitos Sequenciais | * Eficiência de Circuitos Sequenciais | ||
:* Analise Temporal | :* Analise Temporal | ||
Linha 128: | Linha 118: | ||
::Ver [http://www.altera.com/support/support-resources/design-examples/design-software/timequest/clocking/tq-clock.html TimeQuest Clock Analysis] | ::Ver [http://www.altera.com/support/support-resources/design-examples/design-software/timequest/clocking/tq-clock.html TimeQuest Clock Analysis] | ||
− | ;Aula | + | ;Aula 12 (18 Set): |
* Eficiência de Circuitos Sequenciais | * Eficiência de Circuitos Sequenciais | ||
:*Praticas deficientes de projeto e soluções: | :*Praticas deficientes de projeto e soluções: | ||
Linha 174: | Linha 164: | ||
*Ver pag. 257 a 274 de <ref name="PONG2006a" /> | *Ver pag. 257 a 274 de <ref name="PONG2006a" /> | ||
*Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice] | *Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice] | ||
− | |||
− | |||
* Eficiência de Circuitos Sequenciais | * Eficiência de Circuitos Sequenciais | ||
:* Modulação por largura de pulso (PWM) | :* Modulação por largura de pulso (PWM) | ||
Linha 189: | Linha 177: | ||
Figura 4.2 - PWM com buffer de saída - não tem ''gliches'' na saída. | Figura 4.2 - PWM com buffer de saída - não tem ''gliches'' na saída. | ||
</center> | </center> | ||
+ | |||
+ | ;Aula 13 (19 Set): | ||
+ | |||
:*Uso de registradores como armazenamento temporário - Vetor de registradores. | :*Uso de registradores como armazenamento temporário - Vetor de registradores. | ||
:*FIFO (''First In First Out'') baseada em vetor de registradores. | :*FIFO (''First In First Out'') baseada em vetor de registradores. | ||
Linha 197: | Linha 188: | ||
*Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice] | *Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice] | ||
− | ;Aula | + | ;Aula 14 (26 Set): |
+ | * Eficiência de Circuitos Combinacionais | ||
+ | :* Comparação de circuitos somadores de M entradas de N bits. Comparar a implementação em árvore x cadeia. Experimente utilizando tipos Integer e/ou (un)signed. Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. (opcionalmente pode ser usado o circuito para determinar a distância de Hamming) | ||
+ | :*O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo. | ||
+ | ::*Ver [[Medição de tempos de propagação em circuitos combinacionais]] | ||
+ | ::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/optimize/ace/acv_view_acv_overview.htm About the Chip Planner] | ||
+ | ::*Ver [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito | Uso de LogicLock para definir a área a ser ocupada pelo circuito]] | ||
+ | ::*Ver [[Uso de restrições de tempo e exceções no projeto]] | ||
+ | ::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/comp/increment/comp_view_qid.htm About Incremental Compilation] | ||
+ | :* Exercício: Verificar os tempos de propagação do caminho crítico nos somadores implementados usando FPGA da familia Ciclone e Ciclone IV E, Considerando um circuito com 8 entradas de 12 bits. | ||
+ | ::*Sem usar LogicLock anote os resultados. Observe a disposição dos elementos lógicos no '''Chip Planner'''. | ||
+ | ::*Usando o LogicLock, selecione uma região qualquer do chip para implementar o circuito, e faça a compilação do circuito. Use regiões na Vertical, na Horizontal e Retangular e anote os resultados. | ||
+ | ::*Anote em um tabela o número de Elementos lógicos (Totais|Normais|Aritméticos), o tempo de propagação do caminho crítico, indicando a origem e destino dele. Desconsidere os dois primeiros e dois últimos tempos indicados no '''Path Report''', pois são referentes a entrada do sinal e saída dos sinais até a região de interesse no FPGA. | ||
+ | ::*Sem usar LogicLock, insira um arquivo de restrição SDC com a restrição (set_max_delay -from a* -to y* T), onde T é o atraso maximo entre as entradas a* até as saídas y*. Procure obter tempos de atraso menores que os anteriores. | ||
+ | ::*Experimente aumentar os tempos de atraso usando (set_min_delay -from a* -to y* T). | ||
+ | ::*Compare seus resultados com o dos colegas que escolheram outras regiões do chip. | ||
+ | <!-- | ||
;Aula 17 (25 Abr) - Marcos: | ;Aula 17 (25 Abr) - Marcos: | ||
* Eficiência de Circuitos Sequenciais | * Eficiência de Circuitos Sequenciais | ||
Linha 271: | Linha 278: | ||
END ARCHITECTURE; | END ARCHITECTURE; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | expand=true | Unidade 8 - Projeto Hierarquico e Parametrizado}} | ||
==Unidade 8== | ==Unidade 8== | ||
− | ;Aula 24 ( | + | ;Aula 24 (21 Nov): |
− | *Projeto Hierárquico | + | *Projeto Hierárquico ([https://www.dropbox.com/s/wts1ai0ltlg27p9/DLP29007%20-%20Projeto%20Hierarquico%20Parametrizado%20v2.pdf?dl=0 Slides - Projeto Hierárquico e Parametrizado]) |
:* COMPONENTS (declaração e instanciação). Mapeamento dos nomes das portas por nome X posição | :* COMPONENTS (declaração e instanciação). Mapeamento dos nomes das portas por nome X posição | ||
:* GENERIC | :* GENERIC | ||
Linha 280: | Linha 290: | ||
:* Subprogramas (FUNCTION e PROCEDURE) | :* Subprogramas (FUNCTION e PROCEDURE) | ||
:* LIBRARY e PACKAGE | :* LIBRARY e PACKAGE | ||
− | :* PARTITION (fisica e lógica) | + | :* PARTITION (fisica e lógica) ver como usar em: |
− | + | ::*[http://quartushelp.altera.com/15.0/mergedProjects/optimize/dpp/dpp_pro_using_dpp.htm Using the Design Partition Planner], | |
− | |||
− | ;Aula 25 ( | + | <center> |
+ | Exemplo de sistema particionado visto no Design Partition Planner | ||
+ | :[[Arquivo:DesignPartitionPlanner_QII_Ex1.png | Exemplo de uso do Design Partition Planner | 400 px ]] | ||
+ | Exemplo de sistema acima visto no Chip Planner (CICLONE IV E) | ||
+ | :[[Arquivo:ChipPlanner_QII_Ex1.png | Exemplo de uso do Design Partition Planner - Chip Planner | 400 px]] | ||
+ | </center> | ||
+ | :* Adicionalmente consulte mais detalhes sobre compilação incremental e particionamento em: | ||
+ | ::*[http://quartushelp.altera.com/15.0/mergedProjects/comp/increment/comp_view_qid.htm About Incremental Compilation], | ||
+ | ::*[https://www.altera.com/en_US/pdfs/literature/an/an567.pdf AN 567: Quartus II Design Separation Flow], | ||
+ | ::*[https://www.altera.com/en_US/pdfs/literature/wp/wp-01062-quartus-ii-increasing-productivity-incremental-compilation.pdf Increasing Productivity With Quartus II Incremental Compilation], | ||
+ | ::*[https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/qts/qts_qii5v1.pdf Quartus II Handbook Volume 1: Design and Synthesis], | ||
+ | ::*[https://www.altera.com/en_US/pdfs/literature/hb/qts/qts_qii51015.pdf Quartus II Incremental Compilation for Hierarchical and Team-Based Design], | ||
+ | ::*[https://www.altera.co.jp/ja_JP/pdfs/literature/hb/qts/qts_qii51017.pdf Best Practices for Incremental Compilation Partitions and Floorplan Assignments]) | ||
+ | ::*Ver pag. 473 a 498 de <ref name="PONG2006a" /> | ||
+ | |||
+ | ;Aula 25 (27 Nov): | ||
*Projeto Parametrizado | *Projeto Parametrizado | ||
:*Tipos de parâmetros (tamanho e características) | :*Tipos de parâmetros (tamanho e características) | ||
Linha 304: | Linha 328: | ||
::*Exemplo L14.16 (up_or_down) X L14.17 (up_and_down) X L14.20 (up + down) | ::*Exemplo L14.16 (up_or_down) X L14.17 (up_and_down) X L14.20 (up + down) | ||
::Ver pag. 499 a 543 de <ref name="PONG2006a" /> | ::Ver pag. 499 a 543 de <ref name="PONG2006a" /> | ||
− | + | {{collapse bottom}} | |
==Referências Bibliográficas:== | ==Referências Bibliográficas:== |
Edição atual tal como às 12h13min de 27 de novembro de 2017
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Unidade 1 - Processo de Síntese do código VDHL |
---|
Unidade 1
|
Unidade 3 - Eficiência de Circuitos Combinacionais |
---|
Unidade 3
|
Unidade 4 - Eficiência de Circuitos Sequenciais | ||
---|---|---|
Unidade 4
--Por exemplo em um contador de 0 a 9 use um CLEAR síncrono
r_next <= (others => '0') when r_reg = 9 else r_reg + 1;
--Em um contador
r_next <= r_reg + 1 when ena = '1' else r_reg;
-- Não use multiplos clocks
elsif (clk'event and clk='1') then
...
elsif (sclk'event and sclk='1') then
...
elsif (mclk'event and mclk='1') then
...
-- Use um único clock com vários enables.
elsif (clk'event and clk='1') then
...
s_next <= (others=>'0') when (s_reg=59 and s_en='1') else
s_reg + 1 when s_en='1' else
s_reg;
...
m_next <= (others=>'0') when (m_reg=59 and m_en='1') else
m_reg + 1 when m_en='1' else
m_reg;
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 0000 ...
0001 0010 0100 1000 0001 ...
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 ...
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 ...
0001 1000 0100 0010 1001 1100 0110 1011 0101 1010 1101 1110 1111 0111 0011 0001 ...
Figura 4.1 - PWM sem buffer de saída - tem gliches na saída. Figura 4.2 - PWM com buffer de saída - não tem gliches na saída.
|
Unidade 8 - Projeto Hierarquico e Parametrizado |
---|
Unidade 8
Exemplo de sistema particionado visto no Design Partition Planner Exemplo de sistema acima visto no Chip Planner (CICLONE IV E)
a = (a'range => '1')
gen_label: if <boolean_exp> generate
-- expressões concorrentes
end generate;
|
Referências Bibliográficas: