Você está na página 1de 45

HDL Hardware Description Language

Tarcsio Fischer

HDL Hardware Description Language

Objetivos
- O que HDL? - Viso geral - Um pouco de histria - Aplicaes - Sistemas Digitais - ASIC - FPGA - Linguagens - VHDL - Verilog - Outras - Softwares - Mercado de Trabalho

HDL Hardware Description Language

O que HDL ? - Viso geral


- Hardware Description Language (Linguagem de descrio de hardware) - Linguagem formal para descrio de circuitos digitais - Maneira rpida de descrever hardware - Diferena entre uma linguagem de programao de software: paralelismo

HDL Hardware Description Language

O que HDL ? - Um pouco de histria


- ISP (Instruction Set Processor) e KARL 1977 - Eram mais parecidas com programao de software - Conseguiam simular, mas no sintetizar - Verilog 1985 - Padro industrial - VHDL - VHSIC HDL = Very High Speed Integrated Circuit HDL - Padro industrial

HDL Hardware Description Language

Aplicaes Sistemas Digitais


- O que so? - Circuitos digitais conectados com uma funo especfica - Exemplos: - Calculadoras - Computadores - etc.

HDL Hardware Description Language

Aplicaes Sistemas Digitais


- Niveis de abstrao - Transistores e Circuito eltrico - Nivel lgico

HDL Hardware Description Language

Aplicaes Sistemas Digitais


- Niveis de abstrao - Nivel Register Transfer (RT)

HDL Hardware Description Language

Aplicaes Sistemas Digitais


- Niveis de abstrao - Nivel de sistema

HDL Hardware Description Language

Aplicaes ASICs
- Application Specific Integrated Circuits - Circuitos integrados criados para um determinado propsito e para determinada situao - Muitos ASICs hoje em dia so SoCs completos

HDL Hardware Description Language

Aplicaes ASICs
- Application Specific Standart Product - Circuitos integrados criados para um determinado propsito e para diversas situaes - Podem ser usados para desde industrias automotivas at de comunicaes - Exemplo: IC para codificao/decodificao de video

HDL Hardware Description Language

Aplicaes ASICs
- Essas tecnologias so desenvolvidas com ajuda da linguagem HDL. - Caso contrario, seria uma tarefa praticamente impossvel criar um sistema digital completo em um curto periodo de tempo.

HDL Hardware Description Language

Aplicaes FPGA
- Field-programmable gate array - Circuito Integrado programavel um arduino ? no. um microcontrolador ? No! um processador? NO!

HDL Hardware Description Language

Aplicaes FPGA
- Como funciona? - So feitas a partir de milhares de logic-cells

HDL Hardware Description Language

Aplicaes FPGA

HDL Hardware Description Language

Aplicaes FPGA
- Exemplo

HDL Hardware Description Language

Aplicaes FPGA
- Como programar uma FPGA ? - Usando a HDL ! - Vantagens - Facilidade de programar/reprogramar - Custo relativamente baixo - Empresas - Xilinx - Altera

HDL Hardware Description Language

Aplicaes FPGA
Xilinx Altera

HDL Hardware Description Language

Aplicaes FPGA
- Altera DE2 Board

HDL Hardware Description Language

Aplicaes FPGA
- Altera Digital Camera Development Platform

HDL Hardware Description Language

Linguagens VHDL

VHDL: Como funciona?

HDL Hardware Description Language

Linguagens VHDL
Entidades - O que ? Viso geral do componente entity NAME_OF_ENTITY is port (signal_names: mode type; signal_names: mode type; : signal_names: mode type); end [NAME_OF_ENTITY];

HDL Hardware Description Language

Linguagens VHDL
Entidades - Exemplo entity adder is port (i0, i1: in std_logic; -- Entrada de 2 bits ci: in std_logic; -- Carry in s: out std_logic; -- Saida co: out std_logic); -- Carry out end adder;

HDL Hardware Description Language

Linguagens VHDL
Arquitetura - Dita como uma entidade se comporta Exemplo architecture comportamento of adder is begin s <= i0 XOR i1 XOR ci; co <= (i0 AND i1) OR (i0 AND ci) OR (i1 AND ci); end comportamento;

HDL Hardware Description Language

Linguagens VHDL
entity somador4bits is port (a, b: in std_logic_vector(3 downto 0); Cin : in std_logic; sum: out std_logic_vector (3 downto 0); Cout: out std_logic); end somador4bits;

HDL Hardware Description Language

Linguagens VHDL
architecture comportamento of somador4bits is signal c: std_logic_vector (4 downto 0); component adder port(a, b, c: in std_logic; sum, carry: out std_logic); end component; begin FA0: FULLADDER port map (a(0), b(0), Cin, sum(0), c(1)); FA1: FULLADDER port map (a(1), b(1), c(1), sum(1), c(2)); FA2: FULLADDER port map (a(2), b(2), c(2), sum(2), c(3)); FA3: FULLADDER port map (a(3), b(3), c(3), sum(3), c(4)); Cout <= c(4); end comportamento;

HDL Hardware Description Language

Linguagens VHDL
ENTITY somador4bitsv2 IS PORT ( a, b : IN STD_LOGIC_VECTOR (3 DOWNTO 0); s : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); END somador4bitsv2; ARCHITECTURE comportamento OF somador4bitsv2 IS BEGIN s <= a + b; END comportamento;

HDL Hardware Description Language

Linguagens VHDL
entity bancoDeRegistradores is port ( clk : in std_logic; reset : in std_logic; escreve, le : in std_logic; regEscrita valEscrita reg0, reg1 val0, val1 : in : in std_logic_vector(3 downto 0); std_logic_vector(15 downto 0);

); end bancoDeRegistradores;

: in std_logic_vector(3 downto 0); : out std_logic_vector(15 downto 0)

HDL Hardware Description Language

Linguagens VHDL
architecture comportamento of bancoDeRegistradores is type tMemoria is array(0 to 15) of std_logic_vector(15 downto 0); signal registradores : tMemoria; signal valorSaida1, valorSaida2 : std_logic_vector(15 downto 0); Begin

HDL Hardware Description Language

Linguagens VHDL
-- Leitura process (clk) begin if clk'event and clk = '1' then if le = '1' then valorSaida1 <= registradores(to_integer(unsigned(reg0))); valorSaida2 <= registradores(to_integer(unsigned(reg1))); end if; end if; end process; val0 <= valorSaida1; val1 <= valorSaida2;

HDL Hardware Description Language

Linguagens VHDL
process (clk, reset) begin -- Escrita em registrador if clk'event and clk = '0' and escreve = '1' then registradores(to_integer(unsigned(regEscrita))) <= valEscrita; -- Reset assincrono elsif reset'event and reset = '1' then for i in 0 to 15 loop registradores(i) <= (others => '0'); end loop; end if; end process;

HDL Hardware Description Language

Linguagens VHDL

E como testar ?

HDL Hardware Description Language

Linguagens VHDL
Test-Bench clk<= not clk after 50 ns; process begin regEscrita <= "0000"; reg0 <= "0000"; reg1 <= "0000"; wait for 25 ns; reset <= '1'; wait for 50 ns; wait for 50 ns; reset <= '0';

HDL Hardware Description Language

Linguagens VHDL
Formas de onda

HDL Hardware Description Language

Linguagens Verilog

module full_adder(a,b,cin,sum,cout); input a, b, cin; output sum, cout; assign sum = cin ^ a ^ b; assign cout = ~cin & a & b | cin & (a | b); endmodule

HDL Hardware Description Language

Linguagens Verilog
module counter(clk, reset, result, ena); input clk; input reset; input ena; output [7:0] result; reg [7:0] result; always @(posedge clk or posedge reset) begin if (reset) result = 0; else if (ena) result = result + 1; end endmodule

HDL Hardware Description Language

Linguagens Outras
- AHDL - Altera HDL - Proprietaria - ADA-like - MyHDL - From python to Silicon - Python-like - Tem como objetivo facilidade de uso - Recomendada para iniciantes em Sistemas Digitais E MUITAS outras...

HDL Hardware Description Language

Linguagens Outras
C TO VERILOG - Resultado de estudos academicos da Haifa University - Tenta converter cdigo C para Verilog - possvel tentar on-line no prprio site http://www.c-to-verilog.com/online.html

HDL Hardware Description Language

Linguagens Softwares
Altera Quartus II - Windows/Linux

HDL Hardware Description Language

Linguagens Softwares
Altera ModelSim - Windows/Linux

HDL Hardware Description Language

Linguagens Softwares
Xilinx ISE

HDL Hardware Description Language

Linguagens Softwares
GHDL + GTKWave [LINUX]

HDL Hardware Description Language

Mercado de Trabalho
O que pedem? - Conhecimentos em HDL (geralmente VHDL ou Verilog) - Experincia com FPGA - Conhecimentos em alguma ferramenta tanto de sintese quanto de teste - Lgica/Linguagem de programao - Ingls - Entre outras coisas...

HDL Hardware Description Language

Mercado de Trabalho
Quanto pagam? - O piso salarial por volta de R$3.000,00 - Salarios podem ir at mais de R$15.000,00

HDL Hardware Description Language

Mercado de Trabalho
Quem so eles ? (Algumas empresas interessantes) - Ceitec - Porto Alegre - Freescale - So Paulo

HDL Hardware Description Language

Bibliografia
http://www.wikipedia.org/ http://www.fpga4fun.com/ http://ghdl.free.fr/ LEE, Weng Fook. VHDL: coding and logic synthesis with synopsys ASHENDEN, Peter J. The student''s guide to VHDL

Você também pode gostar