Projecto de Sistemas Digitais
|
|
|
- Alícia Oliveira Vilanova
- 9 Há anos
- Visualizações:
Transcrição
1 Projecto de Sistemas Digitais Linguagens de descrição de hardware -Verilog Setembro de 27 António José Duarte Araújo
2 Linguagens de descrição de hardware HDL - Hardware Description Language HDL linguagem de programação linguagem de programação (software): pode ser traduzida em instruções máquina e executada num computador HDL: linguagem com suporte semântico e sintáctico para modelação do comportamento temporal e estrutura espacial do hardware Modelação de um circuito digital com uma HDL descrições comportamentais permitem nível elevado de abstracção metodologia top-down: ferramentas de síntese automática representação textual: portabilidade, edição e documentação AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 2 Linguagens de descrição de hardware Modelação de um circuito digital com uma HDL a favor do esquemático: uma figura diz mais do que mil palavras um esquema transmite melhor a ideia estrutural ferramentas gráficas front- produzem descrições em HDLs editores de esquemático: netlist em HDL (estrutural, gate-level ou RTL) editores de diagramas de estados: descrições sintetizáveis construção de um modelo: duas perspectivas descrever o seu funcionamento apenas para simulação construir uma descrição sintetizável um modelo sintetizável deve descrever bem o seu funcionamento subsets das linguagens e regras de modelação podem deper das ferramentas AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 3
3 Modelação em HDLs: sintetizável/não sintetizável Ferramentas de síntese automática inferem uma estrutura o modelo (comportamental ou estrutural) vai ser hardware regras, restrições e recomações das ferramentas de síntese como é interpretada e traduzida a descrição em HDL simulação e implementação devem concordar construções específicas da tecnologia de implementação Modelos não sintetizáveis não são traduzidos para hardware exemplos: definição de estímulos para simulação; monitorização de sinais modelam o comportamento de outros circuitos só para simulação circuito de relógio memórias ou CPUs circuitos de interface (por exemplo conversores A/D ou D/A) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 4 Modelação em HDLs: recomações gerais Antes de iniciar a construção do modelo definir a arquitectura e estruturar o projecto (particionamento) ferramentas de síntese não processam bem circuitos muito grandes! Problemas de optimização são NP-completos Escrever o código de modo a reflectir a arquitectura estruturado em módulos e funções, ter em mente a reutilização favorecer a legibilidade: nomes, comentários, parêntesis, parâmetros Garantir a precisão da simulação deve traduzir fielmente o comportamento do hardware gerado modelar correctamente o comportamento das partes não sintetizáveis AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 5
4 VHDL e Verilog: comparação Capacidade de modelação semelhante para modelos estruturais VHDL oferece melhor suporte para modelos abstractos e modelos de atrasos Verilog tem melhores construções para modelar ao nível lógico e primitivas de bibliotecas de ASICs e FPGAs Tipos de dados VHDL suporta tipos de dados abstractos criados pelo utilizador em Verilog os tipos são muito simples e mais próximos do hardware (wire e reg) Aprizagem VHDL é fortemente tipada, menos intuitiva, mais verbosa (baseada em ADA) Verilog é mais simples e menos verbosa (baseada em C) Parametrização VHDL tem construções para parametrizar número de bits, replicar estruturas e configurar modelos Verilog suporta apenas modelos com parâmetros, instanciação com redefinição de parâmetros AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 6 VHDL VHDL e Verilog: exemplo (comportamental) library IEEE; use IEEE.STD_Logic_64.all; entity MUX_2_ is port(s,a,b,s2,a2,b2,s3,a3,b3:in std_logic; Y,Y2,Y3:out std_logic); entity MUX_2_; architecture COND_DATA_FLOW of MUX_2_ is Y <= A when S= B; TWO_2 MUXES: process(s2,a2,b2,s3,a3,b3) Y2<=B2; if (S2= ) then Y2<=A2; if; if (S3= ) then Y3<=A3; Y3<=B3; if; process TWO_2 MUXES architecture COND_DATA_FLOW; Verilog module MUX_2_(S,A,B,Y, S2,A2,B2,Y2, S3,A3,B3,Y3); input S,A,B,S2,A2,B2,S3,A3,B3; output Y,Y2,Y3; reg Y2,Y3; assign Y=S?A:B; or A2 or B2 or S3 or A3 or B3) Y2=B2; if (S2) Y2=A2; if (S3) Y3=A3; Y3=B3; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 7
5 VHDL VHDL e Verilog: exemplo (estrutural) library IEEE; use IEEE.STD_Logic_64.all; entity HALF_ADDER is port(a,b:in std_logic; sum,carry:out std_logic); entity HALF_ADDER; architecture STRUCT of HALF_ADDER is component xor2 port(a,b:in std_logic; c:out std_logic); component; component and2 port(a,b:in std_logic; c:out std_logic); component; X: xor2 port map(a=>a,b=>b,c=>sum); A: and2 port map(a=>a,b=>b,c=>carry); STRUCT; Verilog module HALF_ADDER(a,b,sum,carry); input a,b; output sum,carry; xor X(sum,a,b); and A(carry,a,b); module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 8 Verilog HDL Modelação e simulação de circuitos digitais Suporta modelação em diferentes níveis de abstracção Possibilidade de inferir automaticamente hardware com outras ferramentas Largamente difundida na comunidade de projecto de circuitos e sistemas digitais Suporta organização hierárquica com uma sintaxe simples e com fortes semelhanças à linguagem C Permite que o projectista descreva o que o hardware deve fazer sem o implementar, i.e., permite separar comportamento e implementação AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 9
6 Exemplo de um modelo em Verilog mux2_ Entradas Saída O(D, D, S) = D S + D S AND_2 OR_ AND_ AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog Elementos do modelo exemplificado comentário nome do bloco entradas saídas ligações ( fios ) primitivas lógicas interface implementação nomes das instâncias saída entradas operador de negação AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog
7 Formas de modelação de circuitos Estrutural modelo descrito pela interligação de blocos que compõem o circuito (como no exemplo anterior, mux2_) Comportamental modelo descrito pelo comportamento funcional que o circuito deve possuir (como nos exemplos seguintes) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 2 Exemplos de modelos comportamentais O mesmo mux de 2 para, agora com: assign always próximo da equação próximo do algoritmo AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 3
8 Modelação de circuitos combinacionais com assign exp traduz uma atribuição contínua: a expressão exp é permanentemente avaliada e o resultado é continuamente atribuído a O A expressão exp pode conter operadores aritméticos, booleanos, relacionais, lógicos (bit a bit), etc. Consiste na forma mais simples e natural de modelar circuitos combinacionais Introduz maior abstracção que a abordagem estrutural baseada na utilização de portas lógicas AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 4 Modelação de circuitos combinacionais com always lista de sensibilidades consiste num bloco de instruções que é executado sempre que qualquer sinal presente na lista de sensibilidades sofra alteração do valor lógico Num bloco always qualquer atribuição deve ser feita a variáveis declaradas como reg (conceito de segurar o valor lógico) Um bloco always pode conter estruturas de controlo como as usadas num programa (ciclos for, while e repeat, if- e case ) Construção essencial em que se fundamenta a modelação comportamental AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 5
9 Modelação de circuitos combinacionais com always Formas da lista de sensibilidades (admissíveis no Verilog-2) (equivale a indicar na lista todos os sinais lidos no bloco always ) Que acontece se um sinal não estiver na lista de sensibilidades? O simulador ignora qualquer transição desse sinal, pelo que, pode produzir erros nas saídas que dele depem AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 6 Algumas primitivas lógicas inv a na o x no xn Podem ser usadas com mais entradas Primeiro sinal é a saída e os restantes são as entradas São os blocos básicos (primitivas) de uma descrição estrutural AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 7
10 Constantes numéricas 8 b_ o underscore éignorado formato de representação (d, b, o, h) decimal que indica o número de bits Exemplos: 4 d4 6 hff_ Por omissão, uma constante é um decimal (compl. para 2) com 32 bits (se atribuída a sinais com menos bits é truncada a parte mais significativa!) reg [3:] a; initial a = 28; // 28= -> a fica com =2 AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 8 Tipos de operadores Aritméticos Lógicos Relacionais Bitwise Redução Deslocamento Outros Nos exemplos seguintes: A = 4 b, B = 4 b, C = 4 b e D = 4 b AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 9
11 Operadores aritméticos símbolo + adição operação exemplo A+B - * / % ** subtracção multiplicação divisão (quociente) divisão (resto) potência A-B A*B C/B C%B B**B AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 2 Operadores lógicos símbolo! && operação negação e ou exemplos!a,!d A&&B, A&&D A B, A D AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 2
12 Operadores relacionais símbolo operação exemplos ==!= > < >= <= igualdade desigualdade maior que menor que maior ou igual a menor ou igual a A==B B!=D A>B, B>C A<C, B<D A>=C, B>=B B<=C, B<=D AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 22 Operadores bitwise símbolo operação exemplo ~ & ^ ~^ negação e ou ou exclusivo não ou exclusivo ~A A&C A C A^C A~^C AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 23
13 Operadores de redução símbolo operação exemplos & ~ & ~ ^ ~^ e não e ou não ou ou exclusivo não ou exclusivo &A, &D ~ &A, ~ &D A, D ~ A, ~ D ^A, ^D ~^A, ~^D AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 24 Operadores de deslocamento símbolo operação exemplos >> << deslocamento para a direita deslocamento para a esquerda A>>, C>>2 A<<, C<<2 AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 25
14 Outros operadores símbolo { } operação concatenação exemplo {A,B} { { } } replicação {2{A}}? : condicional A==B? C : D AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 26 Projecto de um somador completo A B Ci Co S S = A + B + Ci Co = A B + B Ci + A Ci circuito lógico A B Ci S A B Co Ci S símbolo do full-adder Co AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 27
15 Projecto de um somador completo: Verilog Como verificar que um modelo realiza a função pretida? Elaboração de um testbench para o full-adder AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 28 Projecto de um somador completo: simulação AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 29
16 Projecto de um somador de 4 bits: especificação A 3 B 3 A 2 B 2 A B A B Co A Co S B Ci w A 3 Co S B Ci w A 2 Co S B Ci w A Co S B Ci Ci S 3 S 2 S S ou, mais simplesmente AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 3 Projecto de um somador de 4 bits: verificação funcional Testbench: instância o módulo a testar (adder4) o circuito a testar estímulos de simulação `timescale ns/ps módulo sem interface module adder4_testbench; reg [3:] a, b; reg cin; registos (seguram valores!) wire [3:] s; fios (propagam valores!) wire cout; adder4 DeviceUnderTest(a, b, cin, s, cout); // adder4 DeviceUnderTest(.Ci(cin),.Co(cout),.A(a),.B(b),.S(s)); initial quando o simulador inicia $monitor($time, ci=%b, a=%d, b=%d, s=%d, co=%b, cin, a, b, s, cout); cin=; a=2; b=4; #3 b=2; #3 espera 3 unidades de tempo (3ns) cin=; #3 a=4'b; b=4'b; #3 $stop; controlo do simulador (pára) module sinais ligados por posição sinais ligados por nome monitor de sinais AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 3
17 Projecto de um somador de 4 bits: resultados da simulação (texto) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 32 Projecto de um somador de 4 bits: resultados da simulação (formas de onda) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 33
18 Projecto de um somador de 4 bits: verificação funcional (cont) Verificação exaustiva do somador de 4 bits e se fosse de 32 bits? (com ns por vector seriam necessários 7 anos!) module adder4_testbench; reg [3:] a, b; reg cin; wire [3:] s; wire cout; adder4 DeviceUnderTest(a, b, cin, s, cout); initial $monitor($time, ci=%b, a=%d, b=%d, s=%d, co=%b", cin, a, b, s, cout); cin = ; $display( Verificacao com carry-in = %b, cin); for(a=;a<5;a=a+) for(b=;b<5;b=b+) #4; cin = ; $display( Verificacao com carry-in = %b, cin); for(a=;a<5;a=a+) for(b=;b<5;b=b+) #4; $display( Fim da simulação ); $stop; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 34 Declaração do interface Um módulo pode não ter interface em módulos usados para teste de outros - testbenches module myadder_testbench; // sem entradas nem saídas Declaração de portos de interface unidireccionais: input [7:] din_a, din_b; // din_a, din_b são entradas de 8 bits input clock, reset; output [:8] res; bidireccionais: inout [7:] databus; // onde o MSB é din_a[7] e o LSB é din_a[] // clock, reset são entradas de bit // result é uma saída de 9 bits, onde o // MSB é res[] e o LSB é res[8] // databus é um sinal bidireccional de 8 bits: // pode forçar um nível lógico ou receber um // sinal do exterior Todos os sinais declarados como portos de entrada/saída são do tipo wire (fio) fios (wires) apenas propagam valores lógicos entre uma origem e um destino as saídas que seguram valores lógicos devem ser declaradas como sinais do tipo reg Valores lógicos:,, x (desconhecido) e z (estado de alta impedância) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 35
19 Declaração de sinais Sinais do tipo wire representam fios ou barramentos (vários bits) servem para transportar um valor lógico desde uma origem que o produz um identificador não declarado é considerado um wire de bit wire en_clock, sel_reg; // fios simples (um bit) wire [5:] opr_a, opr_b; // dois barramentos de 6 bits Sinais do tipo reg representam registos (um ou mais bits) seguram valores lógicos reg clock, reset; // registos de bit reg [7:] Ra, Rb; // registos de 8 bits reg [5:] regfile[:3]; // vector de 32 registos com 6 bits cada Campos de vectores de bits Rb; opr_a[5:8]; Rb[3]; regfile[6]; // todo o registo Rb de 8 bits // os 8 bits mais significativos de opr_a // o bit 3 do registo Rb // o elemento no ereço 6 do vector regfile; AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 36 Parametrização Aumentar a legibilidade // Codificaçao de estados: parameter INIT = 2 b; parameter S=2 b, S=2 b; if (state==init) //if (state==2 b) nextstate=s; Tornar a descrição genérica module FCP(a, b, out); // Largura do operando parameter WIDTH = 32; input [WIDTH-:] a, b; module my_multiply(); parameter size=6, delay=5; module my_multiply #(8,2) mult(); valores por omissão valores atribuídos à instância mult AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 37
20 Tempos de propagação Não suportados em modelos sintetizáveis Na instanciação de primitivas são especificados com o operador # and #3 and_(o, x, x2, x3; // tp = 3 unidades de tempo and #(3,5) and_2(out2, a, b); // tplh=3, tphl=5 bufif #(3,2,5) buf_(out, in, en) // tplh=3, tphl=2, tphiz=5 Para cada tempo podem ser especificados valores min, typ e max and #(3:4:5) myand(out2, a, b); // tpmin=3, tptyp=4, tpmax=5 bufif #(:2:3,2:3:4,3:4:6) buf_(out, in, en) //atrasos min:typ:max O valor da unidade de tempo é definido pela directiva `timescale `timescale ns/ps // uma unidade=ns; precisão de simulação=.ns AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 38 Verilog system tasks Algumas funções internas do simulador (system tasks) $monitor() imprime um registo de texto formatado quando um sinal muda de estado a sintaxe é semelhante à função printf() da linguagem C num projecto só pode existir activo um monitor de sinais $time devolve o tempo actual do simulador (um inteiro) $display() quando invocado imprime um registo de texto formatado $stop interrompe a simulação mas pode ser retomada (breakpoint) $finish termina a execução do simulador (em alguns simuladores) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 39
21 Modelos comportamentais Um modelo comportamental é formado por: um ou mais processos que operam concorrentemente assign: blocos combinacionais always: blocos combinacionais, sequenciais ou síncronos Modelo de um full-adder (combinacional) o sinal s está ligado à expressão sempre que module full_adder_comp(a, b, cin, s, cout); input a, b, cin; output s, cout; reg cout; assign s = a ^ b ^ cin; a or b or cin ) cout = (a & b) (a & cin) (b & cin); module modela blocos combinacionais operadores lógicos AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 4 Modelos comportamentais Modelo comportamental do somador de 4 bits sempre que module four_bit_adder_c(a, b, cin, s, cout); input [3:] a, b; input cin; output [3:] s; output cout; reg cout, s; reg [5:] ta, tb, ts; // registos temps. a or b or cin or ta or tb or ts ) ta = { b, a, b }; tb = { b, b, cin }; ts = ta + tb; cout = ts[5]; s = ts[4:]; module concatenação de bits somador extração de resultados AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 4
22 Modelos comportamentais Estruturação em subrotinas task equivalente a um procedimento pode chamar-se a si próprio usando os mesmos registos locais function equivalente a uma função retorna um valor não pode conter instruções com temporizações ou eventos multiply(a,b,acc); task multiply input [5:] a, b; output [3:] prod; task if (testdf(d,d2)==2 b) function [:] testdf; input [:] Duab, Dvab; testdf=2 b; function AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 42 Circuitos síncronos O elemento mais simples: um flip-flop tipo D q segura um valor lógico module my_dff(clk, d, q); input clk, d; output q; reg q; negedge clk ) q <= d; module modela um bloco síncrono com clk sempre que clk AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 43
23 Modelação de circuitos síncronos Ex: acumulador de 8 bits reg_sum segura um valor lógico processo síncrono com clk module acc(clk, reset, a, reg_sum); input clk, reset; input [7:] a; output [7:] reg_sum; reg [7:] reg_sum; negedge clk ) if ( reset ) reg_sum <= 8 d; reg_sum <= a + reg_sum; module sempre que clk reset síncrono com clk reset circuito inferido a D Q reg_sum clk AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 44 Contador up/down processo combinacional module updown_counter(clk, reset, enable, down, dout, _count); input clk, reset, enable, down; output [3:] dout; reg [3:] dout; output _count; processo síncrono com o flanco ascente de clk e reset (assíncrono) a avaliação do sinal de reset tem de ocorrer no início do bloco assign _count = enable & (down? (dout==) : (dout==5) ); posedge clk or posedge reset) if ( reset ) dout <= if ( enable ) if ( down ) dout <= dout ; dout <= dout + ; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 45
24 Testbench para o contador up/down `timescale ns/ps module updown_counter_testbench; reg clk, reset, enable, down; wire [3:] dout; wire _count; instância do contador updown_counter count_(clk, reset, enable, down, dout, _count); initial down = ; reset = ; enable = ; #2 reset = ; // apply reset #6 reset = ; // release reset #3 // count up 3ns enable = ; #4 // disable counter down = ; # // count down enable = ; #3 // enable counter, wait 3ns $stop; // stop simulation initial clk = b; always #5 clk = ~clk; // ns clock period module estímulos sinal de relógio AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 46 Projecto de um contador de 4 bits Modularidade e hierarquia de counter estruturado em 3 módulos: c6, Dff e clockgen clockgen produz o sinal de relógio contador c6 usa instâncias do módulo Dff (flip-flops tipo D) hierarquia do modelo: counter c6 clockgen Dff Dff Dff Dff AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 47
25 Projecto de um contador de 4 bits Modelo do contador c6 module c6(value, clock, fifteen, ten); input clock; output [3:] value; output fifteen, ten; Dff D(value[], clock, ~value[]), D2(value[], clock, value[] ^ value[]), D3(value[2], clock, value[2] ^ &value[:]), D4(value[3], clock, value[3] ^ &value[2:]); assign fifteen = &value; assign ten = value[3] & ~value[2] & value[] & ~value[]; module vector de bits saídas de bit operadores lógicos saída ten vale quando value = AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 48 Projecto de um contador de 4 bits Modelo (comportamental) do flip-flop tipo D (Dff) module Dff(q, clock, d); input clock, d; output q; reg q; initial q = ; (negedge clock) # q = d; q é reg porque segura um valor no início da simulação (t=) sempre que clock module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 49
26 Projecto de um contador de 4 bits Gerador de relógio (clockgen) module clockgen(clock); output clock; reg clock; initial #5 clock = ; always #5 clock = ~clock; para sempre sinal clock gerado: module 5 t= 5 5 unidades de tempo reais: timescale ns/ps arredondamento dos cálculos unidade de atraso AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 5 Projecto de um contador de 4 bits O circuito completo (módulo counter) module counter; wire [3:] count; wire clock, ten, fifteen; c6 contador( count, clock, fifteen, ten); clockgen clock( clock ); initial $monitor($time, Clk=%b, Count=%d, is_=%b, is_5=%b, clock, count, ten, fifteen); module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 5
27 Testbench modelo não sintetizável (testbench) clock reset memórias A/D e D/A interfaces ficheiros geração de estímulos circuito a fabricar análise de respostas registos de texto waveforms ficheiros simula o comportamento de dispositivos externos modelo sintetizável (vai ser um circuito digital) analisa respostas para verificar a correcção do modelo AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 52 Atribuições blocking/nonblocking Atribuições procedimentais (blocking) avaliadas em sequência a=in+in-acc; y=a+b; z=y+a; Admitindo que in=4,in=4,acc= a=4, b=4, y=8 a = 4+4- = 7; y = 7+4 = ; z = +7 = 8; Atribuições non-blocking avaliadas em paralelo a<=in+in-acc; y<=a+b; z<=y+a; a = 7; y = 4+4 = 8; z = 8+4 = 2; AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 53
28 Atribuições blocking/nonblocking module shiftreg(clk, rst, E, A); input clk, rst, E; output A; reg A, B, C, D; clk or posedge rst) if (rst) A=; B=; C=; D=; A=B; B=C; C=D; D=E; module D=E; C=D; B=C; A=B; A<=B; // D<=E; B<=C; // C<=D; C<=D; // B<=C; D<=E; // A<=B; AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 54 Atribuições blocking/nonblocking Quando usar a=b ou a<=b? em processos combinacionais podem-se usar os dois tipos em processos síncronos deve-se usar apenas non-blocking evita a ocorrência de race conditions que podem encravar o simulador clk) if ( dataready ) rdy = ; clk) if ( rdy ) reg = datain; ack = ; AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 55
29 Blocos sequenciais e paralelos // sequencial x = k; # y = a + b; #5 z = y * x; x = k; fork # y = a + b; #5 z = y * x; join inicia bloco paralelo avaliadas em paralelo termina bloco paralelo x y z 5 x y z 5 AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 56 Latches em blocos combinacionais Num modelo de um circuito combinacional as saídas devem ter um valor atribuído para todas as condições das entradas se esta condição não for satisfeita são criadas latches transparentes a ocorrência de latches num bloco que se pretia combinacional é geralmente fatal or b or sel) if ( sel ) y = a; y = b; um multiplexador 2 or b or sel) if ( sel ) y = a; uma latch transparente AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 57
30 Construções condicionais if (condition) statement statement2 case (expression) expr: statement; expr2: statement2; default: statement3; case; casez (z é don t care) casex (z e x são don t care) (expression)?(true):(false) if (a[2:]==3 b && cy) if (done && init) {out, play}=2 b; if (ready) out=2 b; play=; {out, play}=3 b; case (ir[7:4]) 4 b: 4 b: default: case casex (ir[7:4]) 4 bxx: 4 bxx: default: case acc=(ir[7:]==4 b)? : 255; AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 58 Ciclos for(start; _expr; update) statement; for(i=; i<8; i=i+) x[i] = x[i+]; while(condition) statement; repeat(fixed_loop_count) statement; while(i<8) i=i+; repeat() a[i]=a[i+]; i=i+; ; forever statement; forever # clock = ~clock; (têm utilização restrita em modelos sintetizáveis) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 59
31 Modelação de máquinas de estados FSM (Finite State Machine) sequência determinada de estados, sincronizada com relógio estrutura geral entradas saída (saídas Moore) saídas Mealy reset (síncrono) estado actual clock reset (assíncrono) saída próximo estado registo de estado saídas Moore próximo estado AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 6 Modelação de máquinas de estados Codificação de estados (feita manualmente) atribuição de padrões de bits a cada estado o tipo de codificação influencia dimensão do registo de estado complexidade dos circuitos lógicos combinacionais codificações mais usadas sequencial código Gray código Johnson one-hot AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 6
32 Modelação de máquinas de estados Mealy as saídas depem do estado corrente e das entradas o valor das saídas é associado às transições entre estados Moore i A i2/s2 i/s as saídas depem apenas do estado corrente o valor das saídas é associado aos estados C B condição de transição de estado valores das saídas i3 s3 D i4 i3 F s4 E s3 AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 62 Máquinas de estados: especificação Tabela de transição de estados entradas estado próximo saídas i i2 corrente estado Yme Ymo X (S) (S) X (S) (S) X (S) (S) X (S) (S2) X X (S2) (S) Diagrama de transição de estados Ymo X/ i i2/yme XX/ X/ X/ X/ i/yme saídas Mealy saídas Moore S Yme i/yme i2/yme S2 Ymo S Ymo i2/yme AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 63
33 Modelação de máquinas de estados em Verilog Ymo X/ i i2/yme XX/ X/ X/ Modelo incorrecto! Onde estão os erros? X/ faltade reset (síncrono e/ou assíncrono) todas as saídas são registadas Yme não é saída de Mealy não é definido o estado inicial falta o estado 2 b module FSM_mal(clock, i, i2, Yme, Ymo); input clock, i, i2; output Yme, Ymo; reg Yme, Ymo; reg [:] state; clock) case (state) 2 b: Ymo<=; if (i) state<=2 b; Yme<=; Yme<=; 2 b: Ymo<=; if (i2) state<=2 b; Yme<=; state<=2 b; Yme<=; 2 b: Ymo<=; state<=2 b; Yme<=; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 64 Modelação de máquinas de estados em Verilog Modelo correcto Ymo X/ i i2/yme XX/ X/ X/ X/ module FSM_bem(reset, clock, i, i2, Yme, Ymo); input reset, clock, i, i2; output Yme, Ymo; reg Yme, Ymo; reg [:] state, nextstate; clock) if (reset) state<=2 b; state<=nextstate; or i or i2) case (state) 2 b: nextstate=2 b; Ymo=; if (i) nextstate=2 b; Yme=; Yme=; 2 b: Ymo=; if (i2) nextstate=2 b; Yme=; nextstate=2 b; Yme=; 2 b: Ymo=; nextstate=2 b; Yme=; default: Ymo=; nextstate=2 b; Yme=; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 65
34 Modelação de máquinas de estados em Verilog Alternativa : separação da lógica do próximo estado das saídas (registo de estado) or i or i2) case (state) 2 b: if (i) nextstate=2 b; nextstate=2 b; 2 b: if (i2) nextstate=2 b; nextstate=2 b; 2 b: nextstate=2 b; default: nextstate=2 b; module or i or i2) case (state) 2 b: Ymo=; if (i) Yme=; Yme=; 2 b: Ymo=; if (i2) Yme=; Yme=; 2 b: Ymo=; Yme=; default: Ymo=; Yme=; module AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 66 Modelação de máquinas de estados em Verilog Alternativa 2: combinando estado corrente e próximo estado clock or negedge reset) if (!reset) state <= 2 b; case (state) 2 b: if (i) state<=2 b; state<=2 b; 2 b: if (i2) state<=2 b; state<=2 b; 2 b: state<=2 b; default: state<=2 b; module (saídas Ymo e Yme) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 67
35 Modelação de máquinas de estados em Verilog Alternativa 3: combinando estado corrente com próximo estado e modelando Ymo como saída síncrona clock or negedge reset) if (!reset) Ymo<=; state <= 2 b; case (state) 2 b: if (i) Ymo<=; state<=2 b; Ymo<=; state<=2 b; (saída Yme) AJA, FEUP PSDI - Linguagens de descrição de hardware - Verilog 68
Testbench. modelo não sintetizável (testbench) circuito a fabricar. modelo sintetizável (vai ser um circuito digital) Verilog
Testbench modelo não sintetizável (testbench) clock reset memórias A/D e D/A interfaces ficheiros geração de estímulos circuito a fabricar análise de respostas registos de texto waveforms ficheiros simula
Linguagens de descrição de hardware. Modelação de um circuito (digital) com HDL. fluxo de projecto seguindo uma metodologia top-down
Linguagens de descrição de hardware Modelação de um circuito (digital) com HDL fluxo de projecto seguindo uma metodologia top-down descrição em HDL, validação, síntese automática (RTL->lógico) descrições
Linguagens de descrição de hardware. Modelação de um circuito (digital)
Linguagens de descrição de hardware Modelação de um circuito (digital) descrições comportamentais permitem nível elevado de abstracção metodologia top-down: ferramentas de síntese automática representação
Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)
Sistemas Digitais Linguagem Verilog Monitoria SD 2011.2 Daniel Alexandro/Reniê Delgado/Vanessa Ogg Editado por (DARA) Introdução Verilog é uma linguagem, como VHDL, largamente usada para descrever sistemas
Circuitos combinatórios. (Revisão)
Circuitos combinatórios (Revisão) João Canas Ferreira Arquitectura de Computadores FEUP/MIEIC Contém figuras de Computer Organization and Design, D. Patterson & J. Hennessey, 3 a ed., MKP Tópicos Modelação
Modelação de máquinas de estados
Modelação de máquinas de estados FSM (Finite State Machine) sequência determinada de estados, síncrono com relógio estrutura geral saídas (Moore) entradas saída saídas (Mealy) saída saídas (Moore) reset
Treinamento em Projeto de Sistemas Digitais
Treinamento em Projeto de Sistemas Digitais Projetando Sistemas Digitais com SystemVerilog Edna Barros Grupo de Engenharia da Computação Centro de Informática -UFPE Treinamento em Projeto de Sistemas Digitais
Xilinx ISE. O projecto
Xilinx ISE Demonstração do sistema de projecto Especificar um circuito digital em Verilog Simular o funcionamento do circuito Sintetizar o circuito Traduz o código Verilog para um circuito Simplifica o
Módulo 4 Introdução ao VHDL
1 Módulo 4 Introdução ao VHDL Conceitos básicos do VHDL Modelação, Simulação e Síntese de Sistemas Digitais entity declara o interface de um componente; architecture descreve a realização de um componente;
FPGA & VHDL. Tutorial
FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves
VHDL Circuitos Combinacionais
VHDL Circuitos Combinacionais Neste módulo será feita uma revisão de circuitos combinacionais introduzindose alternativas representações em VHDL Uma descrição VHDL, de forma geral, pode seguir uma das
VERILOG. Alex Vidigal Bastos
VERILOG Alex Vidigal Bastos Sumário Objetivos Introdução Hierarquia Estruturas de Modelagem Objetivos Identificar os modelos de componentes do Verilog, incluindo módulos, instâncias e portas; Correta sintaxe
VHDL. Descrição e Projeto de Circuitos Utilizando VHDL
VHDL Descrição e Projeto de Circuitos Utilizando VHDL O projeto de circuitos digitais de forma automatizada se tornou prática industrial comum. As principais vantagens são : Portabilidade de tecnologia
Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno
Fundamentos de Sistemas Digitais Lógica Sequencial Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno 2 Referências Sugiro estudarem nesta ordem de preferência: Floyd, Cap 7 até 7.4, 9, 10. Não tem
Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno
Fundamentos de sistemas digitais Test-bench prof. Dr. Edson Ifarraguirre Moreno 2 / 8 Validação por Simulação Utilizar um circuito de teste: test-bench Contém um circuito gerador de teste e uma instância
1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5
PREFÁCIO 1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO 1 1.1 Bases de Numeração 3 1.1.1 Representação de Números Inteiros em Base b 3 1.1.2 Representação de Números em Base 2 5 1.1.3 Representação de Números Fraccionários
Aula 2 Semântica de VHDL
VHDL - VHSIC Hardware Description Language Aula 2 Semântica de VHDL Leonardo Augusto Casillo Ivan Saraiva Silva 2003-2 Identificadores Usados como referência a todos os objetos declarados no código. Regras:
Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba
Introdução ao VHDL Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva Original por Ayman Wahba VHDL É uma linguaguem de descrição de hardware, ou seja, uma forma estruturada para a descrição de circuitos
Introdução à Linguagem VHDL
Sistemas Digitais EEL 480 Introdução à Linguagem VHDL Luís Henrique M. K. Costa [email protected] UFRJ DEL/Poli e PEE/COPPE P.O. Box 68504 - CEP 21941-972 - Rio de Janeiro - RJ Brasil - http://www.gta.ufrj.br
Introdução à Linguagem VHDL
Fundamentos de Sistemas Digitais 23/abril/2019 Introdução à Linguagem VHDL profs. Alexandre M. Amory e Fernando G. Moraes 1 Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar
1. Objetivos: Familiarizar o aluno com o uso do ambiente de desenvolvimento da Linguagem Verilog. Familiarizar o aluno com a linguagem Verilog.
1. Objetivos: Familiarizar o aluno com o uso do ambiente de desenvolvimento da Linguagem Verilog. Familiarizar o aluno com a linguagem Verilog. 2. Material utilizado: Ambiente Eclipse 3. Introdução: 3.1
FPGA & VHDL. Tutorial Aula 1. Computação Digital
FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma
Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC
Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Linguagem para descrever o funcionamento de um sistema (o que e como o sistema faz). O sistema descrito em HDL
Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.
Introdução à VHDL Gustavo G. Parma Assunto: Introdução à VHDL. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL. 1 Introdução Teórica VHDL, VHSIC (Very High Speed Integrated
Introdução a Sistemas Digitais
Introdução a Sistemas Digitais Definição Sistemas Digitais Projeto Revisão: Circuitos Combinacionais Circuitos Sequênciais Máquinas de Estados Sistemas Digitais Definição Um sistema digital é um sistema
Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA
Introdução VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits Origem: Departamento de Defesa EUA desenvolvida entre anos 70 e 80 descrever e modelar circuitos complexos
Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMATICA LISTA DE EXERCÍCIOS DE SISTEMAS DIGITAIS Prof. Fernanda Gusmão de Lima Kastensmidt E Marcelo Porto (aluno mestrado PPGC) Descreva em VHDL,
Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.
AULA 1 Introdução aos Sistemas Seqüenciais pg. 111 a 117 1. SISTEMAS COMBINACIONAIS Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória
low): Descreve o que o sistema deve fazer utilizando expressões lógicas.
Descrição por fluxo de dados (Data Data-Flow low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes.
Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva
Registradores Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva 2 Registradores Conjunto de elementos de memória (flip-flops ou latches) utilizados para armazenar n bits. Utilizam um único sinal de
CURSO BÁSICO DE VERILOG
CURSO BÁSICO DE VERILOG Seção 1: Visão geral do Verilog Verilog não é uma linguagem de programação de software. Uma linguagem de programação de software é utilizada para executar funções em um processador
Sistemas Digitais. PALs Sequenciais Parâmetros Temporais em PALs Sequenciais ABEL Registos Contadores Registos de Deslocamento ( Shift Registers )
PALs Sequenciais Parâmetros Temporais em PALs Sequenciais ABEL Registos Contadores Registos de Deslocamento ( Shift Registers ) 10ª aula 1-37 PALs Sequenciais 16R8 10ª aula 2-37 Uma Saída de 16R8 8 termos
Exercícios de Fixação
Exercícios de Fixação Para entregar em 07/02/2013 Exercício I Implemente o circuito de seis portas lógicas abaixo em VHDL; Crie um projeto com o simulador Modelsim que contenha o par entidade-arquitetura
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Introdução ao VHDL César A. M. Marcon VHDL Uma Linguagem de Descrição de Hardware 2 Originou como linguagem para descrever hardware, no contexto do programa
Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.
Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes. Descrição
Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture
Capítulo 3 Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer alguns dos principais circuitos digitais sequenciais
SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30
ntes de iniciar a prova, tenha em atenção o seguinte: i. prova contempla perguntas, distribuídas por 6 páginas, e tem a duração de 2h3m. ii. Existem 4 variantes distintas da prova:, B, C e D. iii. prova
Projeto com Linguagens de Descrição de Hardware
Projeto com Linguagens de Descrição de Hardware Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware.
Introdução à Linguagem VHDL
Fundamentos de Sistemas Digitais Introdução à Linguagem VHDL prof. Dr. Alexandre M. Amory Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar verilog e SystemC Bem didático! um
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Introdução à Linguagem VHDL Plano de Ensino Conteúdo Programático 3. Ferramentas de Desenvolvimento 3.4. Editor de texto (programação VHDL ou
Funções de Lógica Combinacional
Fundamentos de Sistemas Digitais Funções de Lógica Combinacional prof. Dr. Alexandre M. Amory prof. Dr. Edson I. Moreno Referências Sugiro estudarem nesta ordem de preferência: Floyd, Cap 6. ppt segue
Primeiro Trabalho de Sistemas Digitais
Primeiro Trabalho de Sistemas Digitais 1 Introdução O objetivo deste trabalho é criar um divisor de frequência simples em linguagem VHDL comportamental e simular o projeto no software ISE. 2 Planejamento
Circuitos sequenciais
Circuitos sequenciais Saídas dependem da sequência das entradas não basta uma tabela de verdade! Exemplo: controlo do nível de água num tanque: entrada de água electro-válvula ABRE sistema digital de controlo
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Introdução à Linguagem VHDL Plano de Ensino Conteúdo Programático 3. Ferramentas de Desenvolvimento 3.4. Editor de texto (programação VHDL ou
Projecto de Sistemas Digitais
Departamento de Engenharia Electrotécnica e de Computadores Duração máxima: 60 minutos, sem consulta. Projecto de Sistemas Digitais 4º ano - 1º semestre 2º miniteste 17 de Dezembro 2007 NOME: [5 valores]
Descrição e Projeto de Circuitos Utilizando VHDL
Descrição e Projeto de Circuitos Utilizando VHDL O projeto de circuitos digitais de forma automatizada se tornou prática industrial comum. As principais vantagens são : Portabilidade de tecnologia Melhor
Uma Introdução às Linguagens de Descrição de Hardware
Uma Introdução às Linguagens de Descrição de Hardware Edson T. Midorikawa (2001) revisado em 03/2007 Este texto tem como objetivo apresentar de forma bem sucinta as Linguagens de Descrição de Hardware,
Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro
Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro Realização de módulo somador-subtractor. Utilização de ambiente Xilinx WebPack de edição de esquemáticos e simulação. Realização
LABORG. VHDL Máquina de estados finitos
LABORG VHDL Máquina de estados finitos Sumário Introdução TRABALHO A FAZER A ENTREGAR 2 Na aula anterior vimos: Introdução VHDL pode ser vista não como uma, mas como várias linguagens modelagem/simulação/síntese
Sistemas Digitais (SD) Lógica Programável
Sistemas Digitais (SD) Lógica Programável Aula Anterior Na aula anterior: Circuitos de controlo, transferência e processamento de dados Exemplo de uma arquitectura simples de um processador Prof. Nuno
Representação de Informação. 1. Converta cada um dos seguintes números para o seu equivalente decimal: a)
SISTEMAS DIGITAIS Caderno de Exercícios Representação de Informação 1. Converta cada um dos seguintes números para o seu equivalente decimal: a) b) i) 1101110.101 2 ii) 0.00101 2 iii) 1011010.1010 2 i)
SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30
SISTEMS DIGITIS EXME ntes de iniciar a prova, tenha em atenção o seguinte: i. prova contempla perguntas, distribuídas por 6 páginas, e tem a duração de 2h3m. ii. Existem 4 variantes distintas da prova:,
Análise de Circuitos Sequënciais Máquinas de Mealy e Moore
INF 8 Técnicas Digitais para Computação Análise de Circuitos Sequënciais Máquinas de Mealy e Moore Aula 23 Técnicas Digitais. Introdução circuito seqüencial síncrono reconhecido se contém flip-flops (ou
Exercícios Referentes à Prova P1
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Referentes à Prova P1 prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno 2 / 11 1. Assinale com V se a sentença estiver correta, caso contrário
Revisão: Projeto de Processadores em VHDL
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Revisão: Projeto de Processadores em VHDL DCA0119 Sistemas Digitais Heitor Medeiros Florencio 1 Sumário
Sistemas Digitais (SD) Lógica Programável
Sistemas Digitais (SD) Lógica Programável Aula Anterior n Na aula anterior: u Circuitos de controlo, transferência e processamento de dados u Exemplo de uma arquitectura simples de um processador 2 Planeamento
12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)
Instituto Federal de Santa Catarina Área de Telecomunicações SST20707 Síntese de Sistemas de Telecomunicações Prof. Roberto de Matos Aviso de direitos Autorais: Transparências baseadas no trabalho do Prof.
Verilog HDL Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE
Verilog HDL Verilog HDL Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE Verilog HDL vs. VHDL Verilog HDL é mais
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 3.0 - Português Aula N o 22: Título: Sumário: Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo Projecto de máquinas
PSI-3451 Projeto de CI Lógicos Integrados. Aula 4
PSI-3451 Projeto de CI Lógicos Integrados Aula 4 A parte prática da aula 4 pretende colocar o aluno em contato com mais algumas estruturas sintáticas da linguagem, particularmente funções e procedimentos,
VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada
VHDL - VHSIC Hardware Description Language Exemplo prático Raiz Quadrada Exemplo de um circuito completo Descrição de um circuito que realiza a raiz quadrada de um número natural; Obtenção de um modelo
Flip-Flops, Registros e Contadores
Flip-Flops, Registros e Contadores 1 D latch 2 Operação do D-latch se C=1 a saída acompanha a entrada se C=0 a saída mantém estado anterior não pode ser usado em circuitos síncronos: leitura e escrita
Introdução VHDL Parte 4 - Testbench
Introdução VHDL Parte 4 - Testbench Prof. Mário Luiz Rodrigues [email protected] Prof. Otávio Gomes [email protected] 1 library IEEE; use IEEE.std_logic_1164.all; entity portae is port( a:
Prof. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 3 Introdução ao VHDL Prof. Leonardo Augusto Casillo O que significa VHDL? Very High Speed Integrated Circuit Hardware Description
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 5-P Processos em VHDL. Comandos de atribuição em VHDL:
