DLP29006-Engtelecom (Diário) - Prof. Marcos Moecke

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Registro on-line das aulas

Unidade 1 - Introdução a disciplina

  • 4 ENCONTROS
Unidade 1 - Introdução a disciplina
Encontro 1 (8 fev.)
  • APRESENTAÇÃO DA DISCIPLINA
  • Os materiais, prazos, documentação, histórico de trabalhos anteriores estão publicados nesta wiki.
  • A PÁGINA DA DISCIPLINA contem os materiais que não alteram entre semestre.
  • Nesta página está o REGISTRO DIÁRIO E AVALIAÇÕES.
  • Para a realização e entrega das atividades será utilizada a plataforma Moodle.
  • Para a comunicação entre professor-aluno, além dos avisos no SIGAA, utilizaremos o chat institucional. É necessário que forneçam o seu email institucional para serem cadastrados.
  • Para participar das aulas é recomendado que o aluno acesse a Nuvem do IFSC ou instale a VM com softwares Quartus II e Modelsim.
  • Introdução aos dispositivos lógicos programáveis:
  • Conceito, tipos de PLDs
  • SPLD: PAL, PLA e GAL
  • CPLDs
Exemplos de PLDs

Figura 1.1 - Macrobloco do PLD EP300 da ALTERA
Ep310 macrocell.jpg
Fonte: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html.

Figura 1.2 - Macrocélula dos PLDs Clássicos EP600, EP900, EP1800 da ALTERA (1999)
Macrocell EP900.png
Fonte: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf.

Figura 1.3a - Architetura do PLD EP1800 da ALTERA
Ep1800 block diagram.jpg
Fonte: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html.

Figura 1.3b - Architetura do PLD EP1800 da ALTERA
Ep1800 block diagram2.jpg
Fonte: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf.

Figura 1.5 - Pinagem e tipos de encapsulamento do PLD EP1800 da ALTERA
PackagePinOut EP1810.png
Fonte: https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/archives/classic.pdf.

Figura 1.6 - Architetura do CPLD MAX 5000 da ALTERA
Max 5000 architecture.jpg
Fonte: https://www.altera.com/solutions/technology/system-design/articles/_2013/in-the-beginning.html.
Encontro 2 (9 fev.)
  • Preços
  • Fabricantes de DLPs/FPGAs e familias de DLPs atuais.
  • Ver também:
Leituras complementares para a unidade
  • Historia, processo de produção dos chips.
Curiosidades do mundo digital
Encontro 3 e 4 (14 e 16 fev.)
Encontro 5 (23 fev.)
  • Arquitetura de FPGAs (Xilinx e Altera): CLB, LAB, RAM, DSP, Clock, PLL, I/O
Exemplos de FPGA

Figura 1.7 - Arquitetura simplificada de FPGA da Intel/Altera e Xilinx
ArquiteturaFPGAs.png
Fonte: [1] pag. 423.

Figura 1.8 - Diagrama simplificado da Slice L de um FPGA Xilinx
SliceL FPGAs.png
Fonte: [1] pag. 424.

Figura 1.9 - Diagrama simplificado da ALM de um FPGA Intel/Altera
ALM FPGAs.png
Fonte: [1] pag. 425.

Figura 1.10 - Leiaute de um FPGA Intel/Altera
Leiaute FPGAs.png
Fonte: [1] pag. 426.

Figura 1.11 - Leiaute de um FPGA Xilinx genérico
Leiaute2 FPGAs.jpg
Fonte: https://www.sciencedirect.com/science/article/pii/B9780750678667500032.

Figura 1.12 - Roteamento de sinal em um FPGA
Roteamento FPGAs.jpg
Fonte: https://www.sciencedirect.com/science/article/pii/B9780750678667500032.

Figura 1.13 - Tecnologias usadas na configuração de FPGAs
FPGA programming.png
Fonte: https://www.sciencedirect.com/topics/computer-science/one-time-programmable.
  • Ler pag. 413 a 431 de [1] ou pag. 495 a 501 de de [2].
  • O que é um Schmitt trigger?
  • O que é a JTAG?
Notícias recentes do mundo dos DLPs

Intel and Altera announced on June 1, 2015, that they had entered into a definitive agreement under which Intel would acquire Altera for $54 per share in an all-cash transaction valued at approximately $16.7 billion. The transaction closed December 28, 2015.

With the recent closing of its acquisition of electronic design automation (EDA) software leader, Mentor Graphics Corporation, Siemens sets out to underscore the significant customer value it envisions for both Electronic Systems and Integrated Circuit (IC) design tools. Mentor is now part of Siemens' product lifecycle management (PLM) software business, making the combined organization the world's leading supplier of industrial software used for product design, simulation, verification, testing and manufacturing. Siemens completes $4.5 billion purchase of Mentor Graphics [2].

AMD (NASDAQ: AMD) today (SANTA CLARA, Calif. 02/14/2022) announced the completion of its acquisition of Xilinx in an all-stock transaction. The acquisition, originally announced on October 27, 2020, creates the industry’s high-performance and adaptive computing leader with significantly expanded scale and the strongest portfolio of leadership computing, graphics and adaptive SoC products.
AMD said it has completed its $49 billion acquisition of Xilinx to create the “industry’s high-performance and adaptive computing leader,” marking the largest chip deal in history. With the acquisition, AMD is expanding beyond its purview of CPUs and GPUs with a large portfolio of reprogrammable chips called field programmable gate arrays, or FPGAs, that it said will significantly expand the company’s opportunities in data centers, embedded computing and telecommunications. Xilinx also has a footprint in other markets, like defense, broadcast and consumer electronics, which will help expand its total addressable market to $135 billion from $80 billion, according to AMD.

|}

Unidade 3 - Tipos de Dados e Operadores em VHDL

  • 8 Encontros
Unidade 3 - Tipos de Dados e Operadores em VHDL

Unidade 4 - Código Concorrente

  • 3 Encontros
Unidade 4 - Código Concorrente

Unidade 5 - Código Sequencial

  • 5 ENCONTROS
Unidade 5 - Código Sequencial

Unidade 6 - Projeto a nível de Sistema

  • 5 Encontros
Unidade 6 - Projeto a nível de Sistema

Unidade 7 - Maquinas de Estado Finitas

Unidade 7 - Maquinas de Estado Finitas
  • 2 AULAS
Encontro 43 (29 nov.)
  • Introdução ao Projeto de Maquinas de Estado Finitas (FSM) em VHDL
  • O que é uma FSM - Finite State Machine

Figura 7.1 - Exemplo de diagrama de estados de uma FSM Fig11.1(a) e implementação em hardware da FSM Fig11.2(a)
Fig11 1 FSM.png
Fonte: Figura 11.1 e 11.2 de [2].
  • Modelo de FSM
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
----------------------------------------------------------
ENTITY < entity_name > IS
PORT (
	clk, rst : IN STD_LOGIC;
	input : IN < data_type > ;
	output : OUT < data_type >);
END entity;
----------------------------------------------------------
ARCHITECTURE < architecture_name > OF < entity_name > IS
	TYPE state IS (A, B, C, ...);
	SIGNAL pr_state, nx_state : state;
	-- ATTRIBUTE ENUM_ENCODING : STRING; --optional attribute
	-- ATTRIBUTE ENUM_ENCODING OF state : TYPE IS "sequential";
	-- ATTRIBUTE SYN_ENCODING OF state : TYPE IS "safe";
BEGIN
	------Logica Sequencial da FSM:------------
	PROCESS (clk, rst)
	BEGIN
		IF (rst = '1') THEN
			pr_state <= A;
		ELSIF (clk'EVENT AND clk = '1') THEN
			pr_state <= nx_state;
		END IF;
	END PROCESS;
	------Logica Combinacional da FSM:------------
	PROCESS (pr_state, input)
	BEGIN
                ------Valores default das saidas------------
                output <= < value > ;
		CASE pr_state IS
			WHEN A =>
				output <= < value > ;   -- apenas se diferente do valor default
				IF (input =< value >) THEN
					nx_state <= B;
					...
				ELSE
					nx_state <= A;
				END IF;
			WHEN B =>
				output <= < value > ; -- apenas se diferente do valor default
				IF (input =< value >) THEN
					nx_state <= C;
					...
				ELSE
					nx_state <= B;
				END IF;
			WHEN ...
		END CASE;
	END PROCESS;
	------Seção de Saída (opcional):-------
	PROCESS (clk, rst)
	BEGIN
		IF (rst = '1') THEN
			new_output <= < value > ;
		ELSIF (clk'EVENT AND clk = '1') THEN --or clk='0'
			new_output <= output;
		END IF;
	END PROCESS;
END architecture;
  • Usando o template acima descreva em VHDL a FSM indicada na Figura 11.1.
  • Faça a simulação da FSM com Modelsim utilizando um testbench em VHDL que faça a FSM seguir os estados
rst -> A -(x=0)-> A -(x=1)-> A -(x=2)-> B -(x=2)-> B -(x=0)-> C -(x=0)-> C -(x=2)-> C -(x=1)-> A -(x=2)-> B -(x=1)-> A.
Ver pag. 277 a 280 de [2]
Ver Quartus II Handbook Version 13.1: Manually Specifying Enumerated Types Using the enum_encoding Attribute, pag 16-37 sobre a atribuição manual do enum_encoding.
Note que o uso desse atributo faz com que o compilar do Quartus não reconheça a FSM, mas use logica regular para representar o sistema.
Ver Quartus II Handbook Version 13.1: Safe State Machines, pag 16-38.
Encontro 44 (1 dez.)
  • Introdução ao Projeto de Maquinas de Estado Finitas (FSM) em VHDL
  • Máquina de vender doces
  • Use o template da FSM para modelar o sistema mostrado na figurar a seguir.

Figura 7.2 - FSM - Máquina de vender doces (diagrama de estados)
FSM MVD.png
Fonte: Adaptado da Figura 11.3 de [2].

Figura 7.3 - FSM - Máquina de vender doces (diagrama de estados com default
FSM MVD default.png
Fonte: Elaborado pelo autor.
  • Simule a FSM com Modelsim utilizando um testbench em VHDL para gerar o teste mostrado na figura abaixo.

Figura 7.4 - FSM - Máquina de vender doces (simulação)
FSM tb40.png
Fonte: Elaborado pelo autor.
  • Exercício: Altere a FSM para vender doces que custam 30 centavos. Considere que as moedas aceitas são 5, 10, 25 e 50 centavos. Desenho primeiro a FSM e em seguida implemente-a em VHDL e faça a simulação.
Ver pag. 281 a 282 de [2]
Dica: para desenhar a FSM recomendo utilizar um software on-line para tal finalidade. Por Ex. Visual Paradigm.
Encontro 45 (6 dez.)
  • Projeto de FSM temporizadas (nas quais as transições são ativadas também pelo tempo).

Figura 7.9 - Tipos de FSM (Condicional, Temporizada e Hibrida)
FSM type.png
Fonte: Figura 11.12 de [2].
  • Modelo de FSM temporizada
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
----------------------------------------------------------
ENTITY < entity_name > IS
PORT (
	clk, rst : IN STD_LOGIC;
	input : IN < data_type > ;
	output : OUT < data_type >);
END entity;
----------------------------------------------------------
ARCHITECTURE < architecture_name > OF < entity_name > IS
	TYPE state IS (A, B, C, ...);
	SIGNAL pr_state, nx_state : state;
        signal timer: integer range 0 to MAX;
--	ATTRIBUTE ENUM_ENCODING : STRING; --optional attribute
--	ATTRIBUTE ENUM_ENCODING OF state : TYPE IS "sequential";
BEGIN
	------Logica Sequencial da FSM:------------
	PROCESS (clk, rst)
		variable count: integer range o to MAX;
	BEGIN
		IF (rst = '1') THEN
			pr_state <= A;
			count := 0;
		ELSIF (clk'EVENT AND clk = '1') THEN
			count := count + 1;
			if (count >= timer) then
				pr_state <= nx_state;
				count := 0;
			end if;
		END IF;
	END PROCESS;
	------Logica Combinacional da FSM:------------
	PROCESS (pr_state, input)
	BEGIN
                ------Valores default das saidas------------
                output <= < value >;
                ------Valores default do timer------------
		timer <= <value>;
		CASE pr_state IS
			WHEN A =>
				output <= < value > ;   -- apenas se diferente do valor default
				IF (input =< value >) THEN
					timer <= <value>;  -- apenas se diferente do valor default
					nx_state <= B;
					...
				ELSE
					timer <= <value>; -- apenas se diferente do valor default
					nx_state <= A;
				END IF;
			WHEN B =>
				output <= < value > ; -- apenas se diferente do valor default
				IF (input =< value >) THEN
					timer <= <value>;  -- apenas se diferente do valor default
					nx_state <= C;
					...
				ELSE
					timer <= <value>;  -- apenas se diferente do valor default
					nx_state <= B;
				END IF;
			WHEN ...
		END CASE;
	END PROCESS;
	------Seção de Saída (opcional):-------
	PROCESS (clk, rst)
	BEGIN
		IF (rst = '1') THEN
			new_output <= < value > ;
		ELSIF (clk'EVENT AND clk = '1') THEN --or clk='0'
			new_output <= output;
		END IF;
	END PROCESS;
END architecture;
Ver pag. 298 a 301 de [2]
Exemplo de FSM temporizada - semáforo temporizado
  • Usando o template acima descreva em VHDL a FSM de um controlador de semáforo Regular indicado pela FSM da figura abaixo:

Figura 7.10 - Diagrama de estados do controlador de semáforo
Semaforo FSM v2.png
Fonte: Elaborado pelo autor.

Figura 7.11 - Simulação do controlador de semáforo no Modelsim
Semaforo FSM v2 ModelSim.png
Fonte: Elaborado pelo autor.


Exercício - Semaforo
  • Usando o template acima descreva em VHDL a FSM de um controlador de semáforo Regular da Figura 11.15 (pag. 304 de [2]).

Figura 7.12 - Diagrama de estados do controlador de semáforo
Semaforo FSM VD.png
Fonte: Adaptado de Figura 11.15 de [2].

Figura 7.13 - Diagrama de estados do Quartus do controlador de semáforo
Semaforo FSM.png
Fonte: Elaborado pelo autor.
  • Para definir as temporizações utilize GENERICs que permitam instanciar diferentes semáforos em um projeto de controle de tráfego de uma avenida.
Para uma instância do semáforo S1 use (timeRY = 2 segundos; timeGR = 40 segundos; timeYR = 2 segundos; timeRG = 15 segundos.
Para uma instância do semáforo S2 use (timeRY = 5 segundos; timeGR = 90 segundos; timeYR = 5 segundos; timeRG = 30 segundos.
  • Considere que o sinal de clock tem período de 1 segundo.
Encontro 46 (7 dez.)
  • Realize a simulação dos semáforos S1 e S2, destacando as saídas com as cores correspondentes, conforme mostrado abaixo:

Figura 7.14 - Simulação do controlador de semáforo no Modelsim
Semaforo ModelSim.png
Fonte: Elaborado pelo autor.

Unidade 8 - Testbench

Unidade 8 - Testbench
Aula 47 (8 dez.)
  • Simulação de sistemas digitais com Modelsim e testbench em VHDL
  • Tipos de simulação:
1) simulação funcional (usando o QSIM) com entrada gráfica e análise gráfica da saída - OK já visto desde CIL29003
2) simulação temporal (usando o QSIM) com entrada gráfica e análise gráfica da saída - OK já visto desde CIL29003
3) simulação funcional (usando o ModelSim) com entrada gráfica (gerado com comandos force) e análise gráfica da saída - OK já visto
4) simulação temporal (usando o ModelSim) com entrada gráfica (gerado com comandos force) e análise gráfica da saída - Não será visto
5) simulação funcional (usando o ModelSim) com entrada VHDL e análise gráfica da saída - Será visto nesta Unidade
6) simulação temporal (usando o ModelSim) com entrada VHDL e análise gráfica da saída - Será visto nesta Unidade
7) simulação funcional (usando o ModelSim e Matlab) com entrada VHDL e análise em VHDL da saída.
8) simulação temporal (usando o ModelSim e Matlab) com entrada VHDL e análise em VHDL da saída.
  • Para usar o ModelSim 2020.1 na CLOUD-IFSC(191.36.8.56) abra um terminal e digite:
/opt/intelFPGA/20.1/modelsim_ae/linuxaloem/vsim
Proposta do Exercício
  • Criar um testbench em VHDL para testar uma entity projetada em VHDL. Usar como exemplo o semáforo recém projetado.
  • O primeiro passo é abrir o projeto anteriormente simulado com um arquivo de script .do para criar uma nova simulação usando um testbench em VHDL.
  • Use o comando do Quartus para gerar um template para o testbench. Selecione a entity TOP LEVEL e após fazer a Analysis & Synthesis, selecione (Processing > Start > Start Test Bench Template Writer).
  • Neste passo será gerado um arquivo <nome>.vht dentro da pasta simulation/modelsim:
LIBRARY ieee;                                               
USE ieee.std_logic_1164.all;                                

ENTITY semaforo_vhd_tst IS
END semaforo_vhd_tst;
ARCHITECTURE semaforo_arch OF semaforo_vhd_tst IS
-- constants                                                 
-- signals                                                   
SIGNAL ativar : STD_LOGIC;
SIGNAL clk : STD_LOGIC;
SIGNAL lam1 : STD_LOGIC;
SIGNAL lam2 : STD_LOGIC;
SIGNAL lvd1 : STD_LOGIC;
SIGNAL lvd2 : STD_LOGIC;
SIGNAL lvm1 : STD_LOGIC;
SIGNAL lvm2 : STD_LOGIC;
SIGNAL rst : STD_LOGIC;
COMPONENT semaforo
	PORT (
	ativar : IN STD_LOGIC;
	clk : IN STD_LOGIC;
	lam1 : OUT STD_LOGIC;
	lam2 : OUT STD_LOGIC;
	lvd1 : OUT STD_LOGIC;
	lvd2 : OUT STD_LOGIC;
	lvm1 : OUT STD_LOGIC;
	lvm2 : OUT STD_LOGIC;
	rst : IN STD_LOGIC
	);
END COMPONENT;
BEGIN
	i1 : semaforo
	PORT MAP (
-- list connections between master ports and signals
	ativar => ativar,
	clk => clk,
	lam1 => lam1,
	lam2 => lam2,
	lvd1 => lvd1,
	lvd2 => lvd2,
	lvm1 => lvm1,
	lvm2 => lvm2,
	rst => rst
	);
init : PROCESS                                               
-- variable declarations                                     
BEGIN                                                        
        -- code that executes only once                      
WAIT;                                                       
END PROCESS init;                                           
always : PROCESS                                              
-- optional sensitivity list                                  
-- (        )                                                 
-- variable declarations                                      
BEGIN                                                         
        -- code executes for every event on sensitivity list  
WAIT;                                                        
END PROCESS always;                                          
END semaforo_arch;
  • Note que a entity desse testbench não possui nem parâmetros genéricos (generic) nem portas de entrada ou saída (port), pois o objetivo dela é encapsular o dispositivo sob testes (Device Under Test (DUT)), no caso a entity semaforo.
  • Esse testbench será usado para gerar os estímulos necessários para a simulação desse DUT, o qual já está declarado e instanciado como um componente dentro da entity semaforo_vhd_tst. No template gerado, também são gerados sinais (signal) para conectar a cada uma das portas de entrada e saída do DUT.
  • Logo após da instanciação do DUT, estão dois esboços de process, os quais são usados para realizar a simulação, conforme indicado a seguir.
  • Usaremos como base para criar os estímulos o script tb_semaforo.do
vcom -93 -work work {../../semaforo.vhd}
vsim work.semaforo
do wave_curto.do
force -freeze sim:/semaforo/rst 1 0, 0 10
force -freeze sim:/semaforo/clk 1 0, 0 {0.5sec} -r 1sec
force -freeze sim:/semaforo/ativar 0 0, 1 10.3sec, 0 55.5sec, 1 70sec, 0 106.22sec, 1 120sec
run 150sec
  • Exemplos de criação de sinais para testbench em VHDL
Geração de sinal de clock
-- DECLARAR
constant tclk: time := 1 ns;
signal clk   : std_logic := '0';

-- CLOCK COM PERIODO DE 2*tclk (COM CÓDIGO CONCORRENTE)
clk <= not clk after tclk;

-- CLOCK COM PERIODO DE 2*tclk (COM CÓDIGO SEQUENCIAL)
PROCESS                                              
BEGIN  
  clk <= '1';
  wait for tclk;
  clk <= '0';
  wait for tclk;
END PROCESS;
Geração de sinal de reset
-- DECLARAR
constant treset: time := 100 ps;
signal reset   : std_logic;

-- RESET COM DURAÇÃO DE treset (COM CÓDIGO CONCORRENTE)
reset <= '1', '0' after treset;

-- RESET COM DURAÇÃO DE treset (COM CÓDIGO SEQUENCIAL)
PROCESS                                              
BEGIN  
  reset <= '1';
  wait for treset;
  reset <= '0';
  wait;
END PROCESS;
Geração de uma sequência binária
-- DECLARAR
constant t_a: time := 100 ps;
constant Nbits: natural := 8;
signal a  : std_logic_vector(Nbits-1 downto 0);

-- GERAÇÂO DO SINAL a = [0 1 2 3 4 ...] COM DURAÇÃO DE t_a em cada valor (COM CÓDIGO SEQUENCIAL)
PROCESS                                              
BEGIN  
	for i in 0 to 2**Nbits-1 loop
		a <= std_logic_vector(to_unsigned(i,Nbits));
		wait for t_a;
	end loop;
END PROCESS;
Geração de uma sequência pseudoaleatória

No exemplo abaixo é utilizado um tipo de Linear-feedback shift register

-- DECLARAR
constant t_a: time := 100 ps;
constant Nbits: natural := 8;
signal a  : std_logic_vector(Nbits-1 downto 0) := (0 => '1', 3 => '1', others => '0');

-- GERAÇÂO DO SINAL a COM DURAÇÃO DE t_a em cada valor (COM CÓDIGO SEQUENCIAL)
-- USANDO UM CONTADOR LFSR
PROCESS                                              
BEGIN  
	for i in 0 to 2**Nbits-1 loop
		a <= (a(0) xor a(2) xor a(3) xor a(4)) & a(Nbits-1 downto 1);  -- para 8 bits
		wait for t_a;
	end loop;
END PROCESS;
  • Após a criação do testbench, o projeto terá os arquivos semaforo.vhd e, semaforo.vht, os quais serão utilizados no Modelsim para realizar a simulação.
  • Para facilitar a simulação no Modelsim recomenda-se criar também os arquivos de script tb_semaforo.do.


-->

Avaliações

Nas avaliações A1 e A2 serão realizadas de forma presencial e vocês poderão consultar apenas as folhas entregues:

Dica use também como fonte de consulta os templates do Quartus.
Ao final das avaliações o aluno deverá enviar a avaliação para a plataforma Moodle com os arquivos solicitados.
Data das avaliações
  • A1 - Unidade 1 a Unidade 4: dia 1/11
  • A2 - Unidade 5 a Unidade 7: dia XX/12
  • PF - Projeto Final: dia 13/12
  • R12 - Recuperação A1 e A2 : dia 15/12


Atividade relâmpago (AR)

As atividades relâmpago devem ser entregues no Moodle da disciplina. Elas geram BÔNUS que são adicionados aos conceitos das avaliações A1 e A2.


Atividade extra-classe (AE)

A soma das atividades Extra-classe será correspondente a 20% do conceito final na disciplina. 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 possuem BÔNUS que são adicionados aos conceitos das avaliações A1 e A2. Para os BÔNUS só serão considerados projetos entregues no prazo.

AE1 - Palavras-cruzadas INTRODUÇÃO

AE1 - Palavras-cruzadas INTRODUÇÃO

AE2 - Conhecendo os dispositivos lógicos programáveis

AE2 - Conhecendo os dispositivos lógicos programáveis
Objetivos
  • Conhecer o Quartus II e as características dos dispositivos lógicos programáveis
  • Analisar os tempos de propagação em um circuito combinacional
  • Alterar configurações do compilador
  • Fazer a simulação funcional e temporal de um circuito combinacional.
Atividade
  • Ao escolher a família de FPGAS, escolha inicialmente um dispositivo da família Cyclone II, ou Max II. Anote o código desse dispositivo.
  • Capture as telas solicitadas e depois utilize-as no relatório da atividade.
  • Anote o tempo utilizado para cada uma das etapas do processo de compilação.
  • Anote o número de elementos lógicos utilizados e o número de pinos utilizados, bem com o percentual em relação ao número total do dispositivo.
  • Anote algum erro (Error) ou alertas (Warnings) que o Quartus II indicar no painel de mensagens [Messages]
  • Ao final salve o projeto em um arquivo QAR (sugestão PJ1.QAR)
  • PASSO 2: Repita a atividade descrita em Conhecendo os dispositivos lógicos programáveis, trocando a família e dispositivo a ser usado na implementação. Escolha nesta vez um dispositivos da família Cyclone IV E ou Stratix II GX. Anote o código desse dispositivo.
  • Observe as mudanças que ocorrem tanto no tipo de Elemento Lógico disponível, no Chip Planner, no Pin Planner, e no circuito dos pinos de I/O. Note que estes FPGAs também apresenta novos componentes, tais como: Memória, Multiplicadores, DSP, PLL, DLL, etc. Verifique se consegue encontra-los no leiaute mostrado no Chip Planner, e documente aqueles que encontrar.
  • Compare os resultados obtidos nos procedimentos do PASSO 1 e PASSO 2.
  • Ao escolher a família de FPGAS, escolha um dispositivo FPGA da família Cyclone IV E. Anote o código desse dispositivo.
  • Capture as telas mostradas no roteiro e depois utilize-as no relatório da atividade.
  • Anote o máximo tempo de propagação entre entrada e saída.
  • Anote o número de elementos lógicos utilizados e o número de pinos utilizados, bem com o percentual em relação ao número total do dispositivo.
  • Experimente modificar as configurações do compilador, conforme mostrado em Configurando o compilador. Se desejar mude a semente inicial trocando o valor de [Seed: 1]
  • Experimente inserir diferentes restrições de atraso máximo para o compilador, e analise o resultado obtido.
  • Anote algum erro (Error) ou alertas (Warnings) que o Quartus II indicar no painel de mensagens [Messages]
  • Ao final salve o projeto em um arquivo QAR (sugestão PJ2.QAR)
  • PASSO 4: Realize a simulação funcional e também a temporal de um dos projetos CI74161 ou do cálculo da distância de Hamming

ATENÇÃO: Se está com problemas com a simulação funcional, veja esta página Quartus Prime QSIM problems

  • Capture as telas que mostram o circuito funcionando e depois utilize-as no relatório da atividade.
Entregas
  1. Envie um arquivo QAR contendo todos os arquivos necessário para compilar cada um dos projetos.
  2. Envie um relatório em PDF, incluindo as imagens capturadas (inclua um título para cada figura) e escreva para cada imagem um texto comentando o que representa. O relatório também deve ter a identificação (autor, título, data) uma breve introdução e uma conclusão. A descrição dos procedimentos feita na página wiki não precisa incluída no relatório.
  3. Use preferencialmente o Overleaf para gerar o relatório. Mas o uso de MS-Word, Libreoffice e Google Docs também é permitida.
  4. A entrega será feita através do Moodle da disciplina. Observe o prazo de entrega.
  1. 1,0 1,1 1,2 1,3 1,4 PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
  2. 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 PEDRONI, Volnei A. Circuit Design and Simulation with VHDL; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335