Mudanças entre as edições de "Conhecendo os dispositivos lógicos programáveis - QUARTUS II"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
Este experimento visa conhecer a estrutura interna dos dispositivos lógicos programáveis.  Será utilizado como base o software Quartus II e os dispositivos da ALTERA.
 
Este experimento visa conhecer a estrutura interna dos dispositivos lógicos programáveis.  Será utilizado como base o software Quartus II e os dispositivos da ALTERA.
 +
 +
'''Atenção:  Se você estiver usando a versão mais nova do Quartus veja [[Conhecendo os dispositivos lógicos programáveis - QUARTUS PRIME]].'''
  
 
==Inserindo um circuito para programação==
 
==Inserindo um circuito para programação==
Linha 5: Linha 7:
 
Abra um diagrama esquemático no Quartus II ('''File > Design Files > Block Diagram'''.  Clique em [[Imagem:qsymbol.png]] para selecionar os símbolos e insira um contador "74161" (name: 74161). Em seguida clique em [[Imagem:qpin.png]] para inserir os pinos de entrada e saídas. Opcionalmente você pode usar o botão direito do mouse e inserir todos os pinos de entrada e saída selecionando '''Generate Pins for Symbol Ports'''.
 
Abra um diagrama esquemático no Quartus II ('''File > Design Files > Block Diagram'''.  Clique em [[Imagem:qsymbol.png]] para selecionar os símbolos e insira um contador "74161" (name: 74161). Em seguida clique em [[Imagem:qpin.png]] para inserir os pinos de entrada e saídas. Opcionalmente você pode usar o botão direito do mouse e inserir todos os pinos de entrada e saída selecionando '''Generate Pins for Symbol Ports'''.
  
[[Imagem:Ckt74161.png|700px|center]]
+
{{fig|1|Diagrama Esquemático do projeto| Imagem:Ckt74161.png| 700 px |}}
 
 
  
 
Após salvar o arquivo como "Ckt74161.bdf" em uma pasta vazia com nome AULA1, crie um projeto '''Ckt74161''' utilizando a família '''[https://www.altera.com/en_US/pdfs/literature/hb/max2/max2_mii51002.pdf MAX II]''' com o dispositivo device='''EPM240F100C4'''.   
 
Após salvar o arquivo como "Ckt74161.bdf" em uma pasta vazia com nome AULA1, crie um projeto '''Ckt74161''' utilizando a família '''[https://www.altera.com/en_US/pdfs/literature/hb/max2/max2_mii51002.pdf MAX II]''' com o dispositivo device='''EPM240F100C4'''.   
Linha 13: Linha 14:
  
 
==Observando a estrutura interna do PLD==
 
==Observando a estrutura interna do PLD==
Após isso compile o projeto ('''Processing > Start Compilation'''). Depois de terminada a compilação, clique com o botão direito do mouse sobre o CI 74161 no diagrama esquemático e ('''Locate > Locate in Chip Planner''') o que fará abrir o '''Chip Planner''', indicando onde o 74161 está localizado.  Note que várias cores são utilizada para indicar diferentes tipos de circuitos lógico e taxas de ocupação.
+
Após isso compile o projeto ('''Processing > Start Compilation''').  
 
+
===Chip Planner===
[[Imagem:ChipPlanner_Ckt74161.png|700px|center]]
+
Depois de terminada a compilação, clique com o botão direito do mouse sobre o CI 74161 no diagrama esquemático e ('''Locate > Locate in Chip Planner''') o que fará abrir o '''Chip Planner''', indicando onde o 74161 está localizado.  Note que várias cores são utilizada para indicar diferentes tipos de circuitos lógico e taxas de ocupação.
<center>'''Figura - Taxa de ocupação no Chip Planner''' </center>
+
{{fig|2|Taxa de ocupação no Chip Planner| ChipPlanner_Ckt74161.png| 700 px |}}
  
Na figura acima as áreas indicadas em '''marrom''' correspondem aos pinos de entrada/saída (I/O).  A intensidade indica a ocupação dos pinos e do circuito correspondente a cada pino. As áreas em '''azul''' corresponde aos ''Logic Array Blocks'' (LABs), onde cada LAB contem 10 elementos lógicos. Para visualizar o interior desses circuito e sua ocupação clique sobre um desses elementos lógicos (ou sobre o pino de I/O) e observe o circuito na janela '''Node Properties'''.
+
Na figura acima as áreas indicadas em '''marrom''' correspondem aos pinos de entrada/saída (I/O).  A intensidade indica a ocupação dos pinos e do circuito correspondente a cada pino. As áreas em '''azul''' corresponde aos ''Logic Array Blocks'' (LABs), onde cada LAB contem 10 elementos lógicos.  
  
[[Imagem:IOCkt_MAXII.png|700px|center]]
+
===Node Properties===
<center>'''Figura - Circuito do pino de I/O da família MAX II''' </center>
+
Para visualizar o interior desses circuito e sua ocupação clique sobre um desses elementos lógicos (ou sobre o pino de I/O) e observe o circuito na janela '''Node Properties'''.
 +
{{fig|3|Circuito do pino de I/O da família MAX II| IOCkt_MAXII.png| 700 px |}}
  
[[Imagem:LECkt_MAXII.png|700px|center]]
+
{{fig|4|Circuito do elemento lógico da família MAX II| LECkt_MAXII.png| 700 px |}}
<center>'''Figura - Circuito do elemento lógico da família MAX II''' </center>
 
  
 
Para observar os barramentos e as interconexões possíveis dentro o dispositivos, selecione na janela '''Layers Settings'''.  Use o zoom para visualizar melhor a região desejada
 
Para observar os barramentos e as interconexões possíveis dentro o dispositivos, selecione na janela '''Layers Settings'''.  Use o zoom para visualizar melhor a região desejada
Linha 31: Linha 32:
 
:[x] Ports
 
:[x] Ports
  
[[Imagem:Routing_MAXII.png|700px|center]]
+
{{fig|5|Barramentos de roteamento da família MAX II| Routing_MAXII.png| 700 px |}}
<center>'''Figura - Barramentos de roteamento da família MAX II''' </center>
+
 
 +
Se quiser apenas observar os recursos que estão sendo utilizados de-selecione na janela '''Layers Settings''' [ ] Unused resources.
 +
 
 +
==Pin Planner==
 +
Para observar o leiaute dos pinos externos, e também para definir a posição de cada porta de entrada e saída do circuito é possível utilizar a interface do Pin Planner.
 +
{{fig|6|Pin Planner| PinPlanner_MAXII.png| 800 px |}}
 +
A parte de superior da interface mostra a posição física do pinos e sua função conforme a legenda de símbolos.  Os pinos usados são destacados com cores.  Na parte inferior da mesma interface é possível definir o pino que será atribuído a cada porta através da coluna '''Location''', assim como definir o tipo de interface a ser usada nos pinos de Entrada/Saída (coluna '''I/O Standard''') e também a limitação de corrente nestes pinos (coluna '''Current Strength'''). 
 +
Na borda esquerda da interface tem diversos icones que ativam diferentes visualizações nesta interface.
 +
 
 +
==Relatório do tempo de processamento==
 +
Para visualizar o tempo utilizado pelo Quartus para o processamento, é possível obter os valores na aba '''[Tasks]''' <!-- ou também no '''[Compilation Report > Flow Elapsed Time]''' -->. 
 +
{{fig|7|Tempo de processamento| Elapsed_Time.png| 400 px |}}
 +
A figura mostra que foram usados 39 segundos para realizar todos as tarefas de compilação, desse tempo, 12 segundos foram para realizar a '''Análise e Síntese'''.
  
Se quiser apenas observar os recursos que estão sendo utilizados desselecione na janela '''Layers Settings''' [ ] Unused resources.
+
==RTL Viewer==
 +
Para observar o circuito RTL obtido, siga o procedimento indicado em [[RTL Viewer]].
 +
{{fig|8|RTL Viewer| RTL_Ckt74161.png| 900 px |}}
  
==Atividade Complementar==
+
==Technology Map==
*Modifique a família : '''Cyclone IV E''' e o dispositivo para '''EP4CE6E22A7''', e observe principalmente a mudança que ocorre tanto no tipo de Elemento Lógico e também no circuito dos pinos de I/O.  Este FPGA também apresenta novos componentes, tais como: Memória, Multiplicadores, PLLs.
+
Para observar o mapeamento tecnologico realizado na sintese pelo quartus, siga o procedimento indicado em [[Technology Map Viewer]].
*Modifique a família : '''Arria II GX''' e o dispositivo para '''EP2AGX45CU17C4''', e observe principalmente a mudança que ocorre tanto no tipo de Elemento Lógico (ALUT) que possui um circuito somador de 1 bit e também no circuito dos pinos de I/O.  Este FPGA também apresenta novos componentes, tais como: Memória interna, Elementos DSP, PLL, DLL.
+
{{fig|9|Technology Map Viewer| TM_Ckt74161.png| 900 px |}}

Edição atual tal como às 15h56min de 9 de setembro de 2022

Este experimento visa conhecer a estrutura interna dos dispositivos lógicos programáveis. Será utilizado como base o software Quartus II e os dispositivos da ALTERA.

Atenção: Se você estiver usando a versão mais nova do Quartus veja Conhecendo os dispositivos lógicos programáveis - QUARTUS PRIME.

Inserindo um circuito para programação

Abra um diagrama esquemático no Quartus II (File > Design Files > Block Diagram. Clique em Qsymbol.png para selecionar os símbolos e insira um contador "74161" (name: 74161). Em seguida clique em Qpin.png para inserir os pinos de entrada e saídas. Opcionalmente você pode usar o botão direito do mouse e inserir todos os pinos de entrada e saída selecionando Generate Pins for Symbol Ports.


Figura 1 - Diagrama Esquemático do projeto
700 px
Fonte: Elaborado pelo autor.

Após salvar o arquivo como "Ckt74161.bdf" em uma pasta vazia com nome AULA1, crie um projeto Ckt74161 utilizando a família MAX II com o dispositivo device=EPM240F100C4.

Após salvar o arquivo "Ckt74161.bdf", o software oferece a opção de criar um projeto para o arquivo. Clique [Yes]. Em seguida clique [Next]. Selecione a pasta AULA1, e mantenha o nome do projeto e a top-level entity como Ckt74161, clicando [Next]. Clique novamente [Next] na tela de inclusão dos arquivos, pois o seu arquivo Ckt74161.bdf já foi incluído. No próxima tela de seleção da familia de DLPs e do número do dispositivo selecione Device Family: MAX II e Available device: EPM240F100C4, e clique em [Next], [Next] e [Finish] pois não há nenhum dado para ser alterado nestas telas de configuração.
ATENÇÃO!!!: O Quartus não aceita caminhos de pastas com espaços, acentos ou outros caracteres exceto letras, números e "_"

Observando a estrutura interna do PLD

Após isso compile o projeto (Processing > Start Compilation).

Chip Planner

Depois de terminada a compilação, clique com o botão direito do mouse sobre o CI 74161 no diagrama esquemático e (Locate > Locate in Chip Planner) o que fará abrir o Chip Planner, indicando onde o 74161 está localizado. Note que várias cores são utilizada para indicar diferentes tipos de circuitos lógico e taxas de ocupação.


Figura 2 - Taxa de ocupação no Chip Planner
ChipPlanner Ckt74161.png
Fonte: Elaborado pelo autor.

Na figura acima as áreas indicadas em marrom correspondem aos pinos de entrada/saída (I/O). A intensidade indica a ocupação dos pinos e do circuito correspondente a cada pino. As áreas em azul corresponde aos Logic Array Blocks (LABs), onde cada LAB contem 10 elementos lógicos.

Node Properties

Para visualizar o interior desses circuito e sua ocupação clique sobre um desses elementos lógicos (ou sobre o pino de I/O) e observe o circuito na janela Node Properties.


Figura 3 - Circuito do pino de I/O da família MAX II
IOCkt MAXII.png
Fonte: Elaborado pelo autor.

Figura 4 - Circuito do elemento lógico da família MAX II
LECkt MAXII.png
Fonte: Elaborado pelo autor.

Para observar os barramentos e as interconexões possíveis dentro o dispositivos, selecione na janela Layers Settings. Use o zoom para visualizar melhor a região desejada

[x] Local Routing
[x] Global Routing
[x] Ports

Figura 5 - Barramentos de roteamento da família MAX II
Routing MAXII.png
Fonte: Elaborado pelo autor.

Se quiser apenas observar os recursos que estão sendo utilizados de-selecione na janela Layers Settings [ ] Unused resources.

Pin Planner

Para observar o leiaute dos pinos externos, e também para definir a posição de cada porta de entrada e saída do circuito é possível utilizar a interface do Pin Planner.


Figura 6 - Pin Planner
PinPlanner MAXII.png
Fonte: Elaborado pelo autor.

A parte de superior da interface mostra a posição física do pinos e sua função conforme a legenda de símbolos. Os pinos usados são destacados com cores. Na parte inferior da mesma interface é possível definir o pino que será atribuído a cada porta através da coluna Location, assim como definir o tipo de interface a ser usada nos pinos de Entrada/Saída (coluna I/O Standard) e também a limitação de corrente nestes pinos (coluna Current Strength). Na borda esquerda da interface tem diversos icones que ativam diferentes visualizações nesta interface.

Relatório do tempo de processamento

Para visualizar o tempo utilizado pelo Quartus para o processamento, é possível obter os valores na aba [Tasks] .


Figura 7 - Tempo de processamento
Elapsed Time.png
Fonte: Elaborado pelo autor.

A figura mostra que foram usados 39 segundos para realizar todos as tarefas de compilação, desse tempo, 12 segundos foram para realizar a Análise e Síntese.

RTL Viewer

Para observar o circuito RTL obtido, siga o procedimento indicado em RTL Viewer.


Figura 8 - RTL Viewer
RTL Ckt74161.png
Fonte: Elaborado pelo autor.

Technology Map

Para observar o mapeamento tecnologico realizado na sintese pelo quartus, siga o procedimento indicado em Technology Map Viewer.


Figura 9 - Technology Map Viewer
TM Ckt74161.png
Fonte: Elaborado pelo autor.