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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(13 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 Prime''' e os dispositivos da INTEL/ALTERA.
 
Este experimento visa conhecer a estrutura interna dos dispositivos lógicos programáveis.  Será utilizado como base o software '''Quartus Prime''' e os dispositivos da INTEL/ALTERA.
Se você está usando a versão '''Quartus II''', acesse [[Conhecendo os dispositivos lógicos programáveis - QUARTUS II]].
+
 
 +
'''Atenção: Se você estiver usando uma versão mais antiga do Quartus II, veja [[Conhecendo os dispositivos lógicos programáveis - QUARTUS II]].'''
 +
 
  
 
==Inserindo um circuito para programação==
 
==Inserindo um circuito para programação==
Linha 6: Linha 8:
 
Abra um diagrama esquemático no Quartus ('''File > New > Design Files > Block Diagram'''.  Clique em [[Imagem:qsymbol.png]] para selecionar os símbolos e insira um contador '''74161''' (name: 74161) e tecle '''ESC'''. 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 ('''File > New > Design Files > Block Diagram'''.  Clique em [[Imagem:qsymbol.png]] para selecionar os símbolos e insira um contador '''74161''' (name: 74161) e tecle '''ESC'''. 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| Ckt74161.png| 700 px |}}
 
 
  
 
Após salvar o arquivo como "Ckt74161.bdf" em uma pasta vazia com nome '''LAB1''', 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 '''LAB1''', 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 19: Linha 20:
 
===Chip Planner===
 
===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 Node > 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.
 
Depois de terminada a compilação, clique com o botão direito do mouse sobre o CI 74161 no diagrama esquemático e ('''Locate Node > 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.
{{fig|1|Taxa de ocupação no Chip Planner| ChipPlanner_Ckt74161_QuartusPrime.png| 700 px |}}
+
{{fig|2|Taxa de ocupação no Chip Planner| ChipPlanner_Ckt74161_QuartusPrime.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. A cor azul mais escura indica os elementos lógicos que estão sendo usados no projeto, e a sombra vermelha indica quais os elementos lógicos corresponde ao componente que você selecionou no diagrama esquemático.
+
Na Figura 1 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. A cor azul mais escura indica os elementos lógicos que estão sendo usados no projeto, e a sombra vermelha indica quais os elementos lógicos corresponde ao componente que você selecionou no diagrama esquemático.
 +
 
 +
'''Dica:''' Para mudar o nível de zoom você pode segurar a tecla [Ctrl] e girar o ''scroll'' do ''mouse''.
  
 
===Node Properties===
 
===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'''.
+
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|2|Circuito do pino de I/O da família MAX II| IOCkt_MAXII.png| 700 px |}}
+
{{fig|3|Circuito do pino de I/O sendo usado como entrada  - família MAX II| InCkt_MAXII.png| 700 px |}}
 +
 
 +
{{fig|4|Circuito do pino de I/O sendo usado como saída -  família MAX II| OutCkt_MAXII.png| 700 px |}}
  
{{fig|3|Circuito do elemento lógico  da família MAX II| LECkt_MAXII.png| 700 px |}}
+
{{fig|5|Circuito do elemento lógico  da família MAX II| LECkt_MAXII.png| 700 px |}}
  
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. '''Dica:''' ''Se a janela/aba '''Layers Settings''' não estiver visível, você pode reapresentá-la clicando em [View > Layers Settings].''
 
:[x] Local Routing
 
:[x] Local Routing
 
:[x] Global Routing
 
:[x] Global Routing
 
:[x] Ports
 
:[x] Ports
  
{{fig|4|Barramentos de roteamento da família MAX II| Routing_MAXII.png| 700 px |}}
+
{{fig|6|Barramentos de roteamento da família MAX II| Routing_MAXII_QuartusPrime.png| 700 px |}}
  
 
Se quiser apenas observar os recursos que estão sendo utilizados de-selecione na janela '''Layers Settings''' [ ] Unused resources.
 
Se quiser apenas observar os recursos que estão sendo utilizados de-selecione na janela '''Layers Settings''' [ ] Unused resources.
  
 
==Pin Planner==
 
==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.
+
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 '''[Assignments > Pin Planner]'''.
{{fig|5|Pin Planner| PinPlanner_MAXII.png| 800 px |}}
+
{{fig|7|Pin Planner| PinPlanner_MAXII_QuartusPrime.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''').   
 
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.
 
Na borda esquerda da interface tem diversos icones que ativam diferentes visualizações nesta interface.
 +
'''Dicas:'''
 +
*Para mostrar o ''Fitter Placements'', clique em '''[View > Show > Show Fitter Placements]''', ou no ícone correspondente.
 +
*Para mostrar o ''Pin Legend'', clique em '''[View > Pin Legend Window''', ou no ícone correspondente.
  
 
==Relatório do tempo de processamento==
 
==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]''' -->
+
Para visualizar o tempo utilizado pelo Quartus para o processamento, é possível obter os valores na aba '''[Tasks]'''. Recomendo selecionar o fluxo '''[Compilation]'''.
{{fig|6|Tempo de processamento| Elapsed_Time.png| 400 px |}}
+
<!-- ou também no '''[Compilation Report > Flow Elapsed Time]''' -->  
 +
{{fig|8|Tempo de processamento| Elapsed_Time_QuartusPrime.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'''.
 
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==
 
==RTL Viewer==
 
Para observar o circuito RTL obtido, siga o procedimento indicado em [[RTL Viewer]].
 
Para observar o circuito RTL obtido, siga o procedimento indicado em [[RTL Viewer]].
{{fig|6|RTL Viewer| RTL_Ckt74161.png| 900 px |}}
+
{{fig|9|RTL Viewer| RTL_Ckt74161_QuartusPrime.png| 900 px |}}
  
 
==Technology Map==
 
==Technology Map==
 
Para observar o mapeamento tecnologico realizado na sintese pelo quartus, siga o procedimento indicado em [[Technology Map Viewer]].
 
Para observar o mapeamento tecnologico realizado na sintese pelo quartus, siga o procedimento indicado em [[Technology Map Viewer]].
{{fig|7|Technology Map Viewer| TM_Ckt74161.png| 900 px |}}
+
{{fig|10|Technology Map Viewer| TM_Ckt74161_QuartusPrime.png| 900 px |}}

Edição atual tal como às 16h00min 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 Prime e os dispositivos da INTEL/ALTERA.

Atenção: Se você estiver usando uma versão mais antiga do Quartus II, veja Conhecendo os dispositivos lógicos programáveis - QUARTUS II.


Inserindo um circuito para programação

Abra um diagrama esquemático no Quartus (File > New > Design Files > Block Diagram. Clique em Qsymbol.png para selecionar os símbolos e insira um contador 74161 (name: 74161) e tecle ESC. 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
Ckt74161.png
Fonte: Elaborado pelo autor.

Após salvar o arquivo como "Ckt74161.bdf" em uma pasta vazia com nome LAB1, 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]. Mantenha a pasta que já foi selecionada LAB1 , e mantenha o nome do projeto e a top-level entity como Ckt74161, clicando [Next]. Na aba Project Type mantenha Empty project, clicando em [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 família de DLPs e do número do dispositivo selecione Device Family: MAX II e Available device: EPM240F100C4, e clique em [Next]. Na tela EDA Tool Settings, selecione a ferramenta de simulação a ser usada e a linguagem Simulation > [ModelSim-Altera] > [VHDL] e clique em [Next]. A próxima tela mostrará o Summary na qual estão os principais parâmetros do projeto e do dispositivo selecionado. Clique em [Finish].

ATENÇÃO!!!: O Quartus não aceita caminhos de pastas com espaços, acentos ou outros caracteres exceto letras, números e "_", iniciando sempre com letras.

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 Node > 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 QuartusPrime.png
Fonte: Elaborado pelo autor.

Na Figura 1 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. A cor azul mais escura indica os elementos lógicos que estão sendo usados no projeto, e a sombra vermelha indica quais os elementos lógicos corresponde ao componente que você selecionou no diagrama esquemático.

Dica: Para mudar o nível de zoom você pode segurar a tecla [Ctrl] e girar o scroll do mouse.

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 sendo usado como entrada - família MAX II
InCkt MAXII.png
Fonte: Elaborado pelo autor.

Figura 4 - Circuito do pino de I/O sendo usado como saída - família MAX II
OutCkt MAXII.png
Fonte: Elaborado pelo autor.

Figura 5 - 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. Dica: Se a janela/aba Layers Settings não estiver visível, você pode reapresentá-la clicando em [View > Layers Settings].

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

Figura 6 - Barramentos de roteamento da família MAX II
Routing MAXII QuartusPrime.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 [Assignments > Pin Planner].


Figura 7 - Pin Planner
PinPlanner MAXII QuartusPrime.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. Dicas:

  • Para mostrar o Fitter Placements, clique em [View > Show > Show Fitter Placements], ou no ícone correspondente.
  • Para mostrar o Pin Legend, clique em [View > Pin Legend Window, ou no ícone correspondente.

Relatório do tempo de processamento

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


Figura 8 - Tempo de processamento
Elapsed Time QuartusPrime.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 9 - RTL Viewer
RTL Ckt74161 QuartusPrime.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 10 - Technology Map Viewer
TM Ckt74161 QuartusPrime.png
Fonte: Elaborado pelo autor.