Mudanças entre as edições de "DLP2-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Edição 2015-1)
Linha 1: Linha 1:
Orignalmente publicada em [[DLP29007-2015-1]].
+
Originalmente publicada em [[DLP29007-2015-2]].
  
= EngTel: Programmable Logic Devices II - 2015-1 =
+
= EngTel: Dispositivos Lógicos Programáveis II - 2015-2 =
  
*'''Lecturers:''' [[Arliones Hoeller]] e [[Marcos Moecke]]
+
*'''Professores:''' [[Arliones Hoeller]] e [[Marcos Moecke]]
*'''Class:''' 29007
+
*'''Turma:''' 29007
*'''Meetings:''' tuesdays at 9:40 and thursdays at 7:30 at Laboratório de Programação.
+
*'''Encontros:''' semanalmente nas terças e quinzenalmente nas quartas às 15:40 no Laboratório de Programação.
*'''Extra-class hours:'''
+
*'''Atendimento Extra-classe:'''
 
**Arliones
 
**Arliones
*** Tuesdays, 14:30 to 15:30
+
*** Terças das 9:40 às 10:35
*** Thursdays, 10:30 to 11:30
+
*** Quintas das 13:30 às 14:25
 
**Marcos
 
**Marcos
*** Tuesdays, 13:30 to 14:30
+
***  
*** Thursdays, 10:30 to 11:30
 
  
== [[DLP2-EngTel_(Plano_de_Ensino)|'''Course Plan''']] (in Portuguese) ==
+
== [[DLP2-EngTel_(Plano_de_Ensino)|'''Plano de Ensino''']] ==
  
== [[Cronograma de atividades (DLP2-EngTel)|'''Class Schedule''']] ==
+
== [[Cronograma de atividades (DLP2-EngTel)|'''Cronograma de Atividades''']] ==
  
== Grades ==
+
= Material das Aulas =
  
{| class="wikitable"
+
== Referências Bibliográficas ==
|-
 
! Registration
 
! T0
 
! T1
 
! T2
 
! T3
 
! T4
 
! T5
 
! Final
 
|-
 
|  ||  ||  ||  ||  ||  ||  ||
 
|}
 
 
 
= Class Material =
 
 
 
== Bibliographic References ==
 
  
 
#Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, Pages 1-22, ISBN 0471720925.
 
#Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, Pages 1-22, ISBN 0471720925.
 
#David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, Pages 3-48, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0.
 
#David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, Pages 3-48, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0.
  
== Lecture Notes ==
+
== Notas de aulas ==
  
These lecture notes are based on the ones made available by Prof. Pong P. Chu at [http://academic.csuohio.edu/chu_p/rtl/rtl_hardware.html].
+
Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [http://academic.csuohio.edu/chu_p/rtl/rtl_hardware.html].
  
 
* [[Media:dlp29007-lecture01-complexity.pdf | Lecture 01: Complexity Mangement and the Design of Complex Digital Systems]]
 
* [[Media:dlp29007-lecture01-complexity.pdf | Lecture 01: Complexity Mangement and the Design of Complex Digital Systems]]
Linha 65: Linha 48:
 
== Recursos de Laboratório ==
 
== Recursos de Laboratório ==
 
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD.  Atualmente a forma mais eficiente de acesso é através do Cliente X2GO.  O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em [[Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado)]].
 
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD.  Atualmente a forma mais eficiente de acesso é através do Cliente X2GO.  O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em [[Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado)]].
 
* [[Media:dlp29007-lecture02-efficient_comb_circuits-operator_sharing-src.zip | 2-1: Operator Sharing Source Code]]
 
* [[Media:dlp29007-lecture02-efficient_comb_circuits-function_sharing-src.zip | 2-2: Function Sharing Source Code]]
 
* [[Media:dlp29007-lecture02-efficient_comb_circuits-layout_related-src.zip | 2-3: Layout-Related Source Code]]
 
  
 
Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].
 
Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].
  
 +
<!--
 
== Homework ==
 
== Homework ==
  
Linha 160: Linha 140:
  
 
{{collapse bottom}}
 
{{collapse bottom}}
 +
-->
  
= Class log =
+
= Diário de Aulas =
 
 
== 05/02: Course presentation. Complexity Management. Overview of Complex Digital Systems Desgin. ==
 
 
 
=== Recommended reading ===
 
*Chapter 1 of bibliographic references 1 AND 2.
 
*Lecture notes 1.
 
 
 
 
 
== 12/02 - 26/02: Design of efficient combinational circuits ==
 
 
 
=== Recommended reading ===
 
* Chapter 7 of bibliographic reference 1.
 
* Lecture notes 2.
 
* [http://quartushelp.altera.com/14.0/mergedProjects/report/rpt/rpt_file_multicorner_timing.htm  TimeQuest Help], mainly Propagation Delay Report.
 
 
 
== 12/02: Design of efficient combinational circuits: Operator sharing ==
 
 
 
=== Recommended reading ===
 
* Chapter 7 of bibliographic reference 1.
 
* Lecture notes 2.
 
 
 
 
 
== 19/02: Design of efficient combinational circuits: Function sharing ==
 
 
 
=== Recommended reading ===
 
* Chapter 7 of bibliographic reference 1.
 
* Lecture notes 2.
 
 
 
 
 
== 26/02: Design of efficient combinational circuits: Layout Considerations ==
 
 
 
=== Recommended reading ===
 
* Chapter 7 of bibliographic reference 1.
 
* Lecture notes 2.
 
 
 
 
 
== 03/03: Design of efficient combinational circuits: General Circuits ==
 
 
 
Students presented and discussed the general circuits of section 7.5 of bibliographic reference 1.
 
 
 
=== Recommended reading ===
 
* Chapter 7 of bibliographic reference 1.
 
* Lecture notes 2.
 
 
 
== 05/03: Design of efficient sequential circuits: principle ==
 
 
 
=== Recommended reading ===
 
* Chapter 8 of bibliographic reference 1.
 
* Lecture note 3.
 
 
 
== 12/03, 17/03, 26/03 and 31/03: Design of efficient sequential circuits: principle and practice ==
 
 
 
=== Recommended reading ===
 
* Chapter 8 of bibliographic reference 1.
 
* Chapter 9 of bibliographic reference 1.
 
* Lecture notes 3.
 
* Lecture notes 4.
 
* [http://quartushelp.altera.com/14.0/mergedProjects/tafs/tafs/tcl_pkg_sdc_ver_1.5_cmd_create_clock.htm Quartus II help - create_clock] - ALTERA
 
  
 +
== 28/07: Laboratório: Processadores Embarcados (SoC) ==
  
== 07/04, 09/04 and 16/04: Design of Efficient Finite State Machines: principle and practice ==
+
Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.
  
=== Recommended reading ===
+
A figura abaixo dá uma visão geral do que iremos implementar:
* Chapter 10 of bibliographic reference 1.
 
* Lecture notes 5.
 
  
== 23/04: Register Transfer Methodology: Principle ==
+
https://www.altera.com/content/dam/altera-www/global/en_US/images/support/examples/images/nios2-hw-tutorial.gif
  
=== Recommended reading ===
+
Você precisará destes documentos para desenvolver este tutorial:
* Chapter 11 of bibliographic reference 1.
 
* Lecture notes 6.
 
  
 +
* [https://www.dropbox.com/s/woxn6juwq0ikctf/tt_nios2_hardware_tutorial-with_markings.pdf?dl=1 Tutorial com pontos importantes destacados.]
 +
* [https://www.altera.com/content/dam/altera-www/global/en_US/others/literature/tt/niosii_hw_dev_tutorial.zip Código-base para início do tutorial]
 +
* [http://www.macnicadhw.com.br/c/document_library/get_file?uuid=0612db45-0434-4737-a380-ac846cf662b3&groupId=10157 Esquemático da MercurioIV]
  
== 11/06: Embedded Processors (SoC) ==
+
Recomenda-se seguir este roteiro:
 +
* Analisar e debater figura 1-1 na página 1-2;
 +
* Destacar os requisitos de hardware para o experimento na página 1-3;
 +
* Analisar e debater o fluxo de desenvolvimento de projeto da figura 1-2 na página 1-4;
 +
* Debater as questões de análise de requisitos do sistema na página 1-5;
 +
* Partir para criação do exemplo na página 1-8;
 +
* Seguir tutorial (passos importantes destacados no PDF);
  
In this class we will follow an Altera tutorial to build a System-on-a-Chip (SoC), synthesizing a NIOS processor softcore in a FPGA and loading an OS on it. Later on we will integrate our own logic with this processor.
 
  
The guidelines to this tutorial are on [https://www.altera.com/support/support-resources/design-examples/intellectual-property/embedded/nios-ii/exm-hardware-tutorial.html this page].
+
Se o Eclipse SBT do Nios II não inicializar em um sistema Ubuntu 14.04 ou mais recente, você precisa instalar a libGTK2:
 
 
You will need these additional components:
 
 
 
* [http://www.macnicadhw.com.br/c/document_library/get_file?uuid=0612db45-0434-4737-a380-ac846cf662b3&groupId=10157 MercurioIV schematic]
 
 
 
 
 
If the Eclipse SBT for Nios II does not start in your Ubuntu 14.04 system, you may need to install libGTK2:
 
 
  sudo apt-get install libgtk2.0-0:i386
 
  sudo apt-get install libgtk2.0-0:i386
 
== 23/06: Final Project ==
 
 
=== Overview ===
 
 
[[Arquivo:ProcessadorDeAudioSeguro.png]]
 
 
In this project you'll implement a secure audio transceiver using Macnica's Mercurio IV platform with an Cyclone IV E FPGA. A general overview is presented in the figure above, which is comprised of these blocks:
 
*'''''Inputs'''''
 
** ''in'' ADC: the ADC chip avaliable in the board. It is connected to the FPGA through an SPI interface, delivering a 12-bit decimal value.
 
** ''in'' Shared Key: a 128-bit shared key for the AES block cipher.
 
** ''out'' DAC: the DAC chip avaliable in the board. It is connected to the FPGA through an SPI interface, receiving a 12-bit decimal value.
 
*'''''Processing blocks'''''
 
** Nios II: The Nios II will act as SPI master to read data from the ADC and write data to the DAC. The software in the CPU will read data from the ADC at a 8KHz rate and insert the 12-bit values in an 8-position, 32-bit output FIFO. It will also read data from the input FIFO at an 8KHz rate and write it to the DAC. Note: you will only use the 12 LSB of FIFOs' entries.
 
** Lei A: the LeiA block of the sending segment will read each 12-bit entry from the FIFO and generate a compressed 8-bit output. In the receive segment, the LeiA block will receive 8-bit values from the AES block and expand them to 12-bit values.
 
** AES: The data will be encrypted using an AES-128 algorithm. In the transmission segment, the AES block will need to receive successive 8-bit results from the LeiA block and assembly a 128-bit block to input the cipher. In the receive segment, the AES block will receive successive 8-bit data from the UART block to assembly a 128-bit block to input to the decrypt algorithm.
 
** UART: data transmission will be performed through an UART interface connected to an RS-232 transceiver in the board. The UART receiver and transmitter must be extended from the UART receiver studied in class to include the transceiver and the RTS and CTS signals.
 
 
 
* The following files are avaliable to integrate to your project:
 
** [https://www.dropbox.com/s/t6hi13yz8loifo5/secure_audio_alunos.qar?dl=0 Download here] a QAR File containing the ADC and DAC adaptation circuit and a Nios2 processor. From this file, you will use a the ADC_OUT FIFO as a data source to your LawA compressor, and the DAC_IN FIFO as a data destination for your LawA decompressor.
 
** [https://www.dropbox.com/s/31rpm08dz0zlknt/secure_audio_alunos_application.zip?dl=0 Download here] the ecliplse project of the application that should run on the Nios2 processor. You will need to generate the BSP (sopcinfo file is in the QAR).
 
 
=== Material de apoio para o projeto ===
 
 
* Conversores Analógico-Digital (CAD) e Conversor Digital-Analógico (CDA)
 
:Ver: [http://www.sj.ifsc.edu.br/~fabiosouza/Tecnologo/Telefonia%201/Telefonia%20Digital%20PCM%20-%20parte%202de%202%20antiga.pdf Moecke, M. Curso de Telefonia Digital, ETFSC, 1998]
 
 
* Implementação de um codificador/decodificador para Lei A.
 
[[Arquivo:LeiA.png | Compressão e descompressão pela Lei A]]
 
:FONTE: [http://www.sj.ifsc.edu.br/~fabiosouza/Tecnologo/Telefonia%201/Telefonia%20Digital%20PCM%20-%20parte%202de%202%20antiga.pdf Moecke, M. Curso de Telefonia Digital, ETFSC, 1998], [https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.711-198811-I!!PDF-E&type=items ITU-T, Recommendation G.711 (11/88)]
 
*Implementação de uma [[Interface Serial Assíncrona]].
 
 
== 25/06: Final Project ==
 
 
* Implementation of VHDL description of an AES 128 cypher operating with 128-bit keys and 128-bit data blocks.
 
** See [https://en.wikipedia.org/wiki/Advanced_Encryption_Standard this article] for the description of the algorithm;
 
** Read printed book segment handed on to you in class.
 
** Check out these software implementations that may help you with the Register Transfer Methodology to implement AES. The software in Python is a high-level implementation (easy to understand). The C++ implementations are Object-Oriented and easy to integrate in software projects, but their code show several tweaks to make it faster in x86 machines with ssse3 instructions, or certain DSP devices (only recommended for those with a strong heart).
 
*** [https://github.com/bozhu/AES-Python Python]
 
*** [http://www.cryptopp.com/ C++]
 
*** [http://botan.randombit.net/ C++]
 
 
 
 
[[Arquivo:AES128_overview.png]]
 

Edição das 11h38min de 6 de outubro de 2015

Originalmente publicada em DLP29007-2015-2.

EngTel: Dispositivos Lógicos Programáveis II - 2015-2

  • Professores: Arliones Hoeller e Marcos Moecke
  • Turma: 29007
  • Encontros: semanalmente nas terças e quinzenalmente nas quartas às 15:40 no Laboratório de Programação.
  • Atendimento Extra-classe:
    • Arliones
      • Terças das 9:40 às 10:35
      • Quintas das 13:30 às 14:25
    • Marcos

Plano de Ensino

Cronograma de Atividades

Material das Aulas

Referências Bibliográficas

  1. Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, Pages 1-22, ISBN 0471720925.
  2. David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, Pages 3-48, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0.

Notas de aulas

Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [1].

  • [ Lecture 09: Parameterized Design: Principle]
  • [ Lecture 10: Parameterized Design: Practice]
  • [ Lecture 11: Clock and Synchronization: Principle and Practice]


Recursos de Laboratório

Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD. Atualmente a forma mais eficiente de acesso é através do Cliente X2GO. O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado).

Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.


Diário de Aulas

28/07: Laboratório: Processadores Embarcados (SoC)

Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.

A figura abaixo dá uma visão geral do que iremos implementar:

nios2-hw-tutorial.gif

Você precisará destes documentos para desenvolver este tutorial:

Recomenda-se seguir este roteiro:

  • Analisar e debater figura 1-1 na página 1-2;
  • Destacar os requisitos de hardware para o experimento na página 1-3;
  • Analisar e debater o fluxo de desenvolvimento de projeto da figura 1-2 na página 1-4;
  • Debater as questões de análise de requisitos do sistema na página 1-5;
  • Partir para criação do exemplo na página 1-8;
  • Seguir tutorial (passos importantes destacados no PDF);


Se o Eclipse SBT do Nios II não inicializar em um sistema Ubuntu 14.04 ou mais recente, você precisa instalar a libGTK2:

sudo apt-get install libgtk2.0-0:i386