VHDL ENTIDADES DE PROJETO

Tamanho: px
Começar a partir da página:

Download "VHDL ENTIDADES DE PROJETO"

Transcrição

1 ENTIDADES DE PROJETO Uma entidade de projeto é o módulo básico de um projeto em. Pode representar desde uma porta lógica até um circuito complexo. É composta de duas partes: Declaração da entidade Arquitetura

2 ENTIDADES DE PROJETO A Declaração da entidade representa a interface com o mundo externo A arquitetura representa a funcionalidade ou descrição do funcionamento do circuito. DECLARAÇÃO Entidade de Projeto ARQUITETURA

3 ENTIDADES DE PROJETO A Declaração da entidade é constituída de duas palavras reservadas: ENTITY Vem seguida do nome do circuito projetado PORT É empregada para definir o modo e o tipo de portas ou sinais de entrada e saída. ENTITY circuito PORT (a,b: IN BIT; c: OUT BIT); END circuito; a e b são portas ou sinais de entrada c é uma porta ou sinal de saída IN e OUT são modos de operação das portas de entrada e saída

4 ENTIDADES DE PROJETO O corpo da arquitetura inicia-se com a palavra reservada ARQUITECTURE seguida de um nome identificador e o nome da declaração de entidade associada a ela. ARQUITECTURE exemplo OF circuito IS REGIÃO DE DECLARAÇÕES: Declarações de sinais e constantes Declaração de componentes Declaração e corpo de sub-programas Definição de novos tipos de dados locais REGIÃO DE COMANDOS CONCORRENTES END;

5 ENTIDADES DE PROJETO CIRC_ 1 PORTA AND ENTITY porta IS PORT ( a, b: IN BIT: c: OUT BIT); END porta; ARCHITECTURE porta_and OF porta IS ATRIBUIÇÃO SIMPLES DE SINAL <= c <= a AND b; END porta_and;

6 MODOS DE OPERAÇÃO DE UMA PORTA IN: A porta opera exclusivamente como entrada OUT: A porta opera exclusivamente como saída INOUT : A porta é bidirecional. Adequada para o modelamento de baramentos bidirecionais. BUFFER: Uma porta de modo OUT não pode controlar um sinal interno da entidade. Uma porta BUFFER pode.

7 MODOS DE OPERAÇÃO DE UMA PORTA IN A OUT D Sinal X OUT E IN B BUFFER F INOUT C INOUT G O sinal F é controlado pelo sinal B e pode controlar o sinal interno X F = f(b) X= f(f)

8 CLASSES DE OBJETOS OBJETOS SÃO ELEMENTOS QUE CONTÊM UM VALOR ARMAZENADO CLASSES DE OBJETOS: CONSTANT (CONSTANTE) VARIABLE ( VARIÁVEL) SIGNAL FILE (SINAL) (ARQUIVO)

9 CLASSES DE OBJETOS CONSTANT (CONSTANTE) ASSOCIA UM NOME SIMBÓLICO A UM NÚMERO EM UMA EXPRESSÃO ARITMÉTICA. VARIABLE ( VARIÁVEL) LOCAL DE ARMAZENAGEM DE DADOS TEMPORÁRIOS DE UM PROCESSO. SIGNAL (SINAL) REPRESENTAM FIOS QUE CONECTAM ENTRE SI OS MÓDULOS BÁSICOS DE UM PROJETO. FILE ASSOCIADOS À CRIAÇÃO DE ARQUIVOS.

10 CLASSES DE OBJETOS VARIÁVEIS SÃO EMPREGADAS EM REGIÕES DE CÓDIGO SEQUENCIAL SINAIS SÃO EMPREGADOS EM REGIÕES DE CÓDIGO SEQUENCIAL E CONCORRENTE. OBJETOS SÃO DECLARADOS NAS REGIÕES DE DECLARAÇÃO DE ARQUITETURAS E PROCESSOS. CONSTANT DECLARAÇÕES DE OBJETOS X:TIPO_CONSTANTE :=VALOR INICIAL; VARIABLE V:TIPO_VARIABLE :=VALOR INICIAL; SIGNAL S:TIPO_SINAL :=VALOR INICIAL; Obs: Em verde, opcional.

11 TIPOS OS OBJETOS EM SÃO DECLARADOS SEGUNDO TIPOS DEFINIDOS. OS TIPOS SE DIVIDEM EM: ESCALARES E COMPOSTOS TIPOS ESCALARES: BIT: 1, 0 BOOLEAN: TRUE, FALSE CHARACTER: a, b,c, A, B, C,?, { INTEGER: 123, 12, 2#1101#, 16#5C# REAL: 1,23; 100,23; 1,23E+2 TIME: 1us, 100 ps, 1fs

12 TIPOS COMPOSTOS: ARRAY(VETOR): TIPOS ARRAYS PREDEFINIDOS NO PADRÃO: BIT_VECTOR E STRING. BIT_VECTOR: MATRIZ DE n ELEMENTOS DO TIPO BIT. STRING: MATRIZ DE n ELEMENTOS DO TIPO CARACTER.

13 TIPOS DEFINIÇÃO DE NOVOS TIPOS: A DECLARAÇÃO DE UM NOVO TIPO É FEITA A PARTIR DA PALAVRA RESERVADA TYPE TYPE novo_tipo IS ( a, b, c) ; -- Criando tipo enumerado SIGNAL x: novo_tipo; -- Objeto empregando o novo tipo

14 OPERADORES OS OPERADORES SÃO DIVIDIDOS EM CLASSES: LÓGICOS: AND OR NAND NOR XOR XNOR RELACIONAIS: = /= < <= > >= DESLOCAMENTO: SLL SRL SLA SRA ROL ROR ADIÇÃO: + - & SINAL: + - MULTIPLICAÇÃO: * / MOD REM DIVERSOS: ** ABS NOT

15 COMANDOS CONCORRENTES BÁSICOS CONSTRUÇÃO WHEN ELSE ( ATRIBUIÇÃO CONDICIONAL DE SINAL) ENTITY mux IS PORT (input0, input1, sel : IN BIT; output : OUT BIT ); output END mux; ARCHITECTURE CIRC_2 OF mux IS output <= input0 WHEN sel = '0' ELSE input1; END CIRC_2; sel input0 input1

16 COMANDOS CONCORRENTES BÁSICOS high q1 mid q0 low CONSTRUÇÃO WHEN ELSE ENTITY cod IS PORT ( high, mid, low : IN BIT; q: OUT INTEGER RANGE 0 TO 3); END cod; ARCHITECTURE CIRC_3 OF cod IS q <= 3 WHEN high = '1 ELSE 2 WHEN mid = '1' ELSE 1 WHEN low = '1' ELSE 0; END CIRC_3

17 COMANDOS CONCORRENTES BÁSICOS CONSTRUÇÃO WHEN ELSE COM OPERADORES LÓGICOS ENTITY DECO IS PORT ( ea,eb: IN INTEGER RANGE 7 DOWNTO 0; I0,I1,I2,I3: IN BIT; q: OUT BIT); END DECO; ARCHITECTURE CIRC_4 OF CURSO IS q <= I3 OR I2 WHEN EA =2 AND EB=1 ELSE I2 WHEN EA=4 OR EB =6 ELSE I0 OR I1 WHEN EA=6 AND EB=3 ELSE I2; END CIRC_4;

18 COMANDOS CONCORRENTES BÁSICOS CONSTRUÇÃO WHEN ELSE COM OPERADORES LÓGICOS Equal0 ea[1..0] I1 I0 2' h2 -- A[1..0] B[1..0] OUT EQUAL Equal1 q~0 eb[1..0] 2' h1 -- A[1..0] B[1..0] OUT 0 1 q I2 I3 q~1 EQUAL q~2

19 COMANDOS CONCORRENTES BÁSICOS CONSTRUÇÃO WITH SELECT ( ATRIBUIÇÃO DE SINAL SELECIONADO) ENTITY mux IS PORT (d0, d1, d2, d3 : IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; output : OUT BIT ); END mux; so s1 do d1 output ARCHITECTURE CIRC_5 OF mux IS d2 WITH s SELECT output <= d0 WHEN 0, d1 WHEN 1, d2 WHEN 2, d3 WHEN 3; END CIRC_5; d3 s[1..0] d3 d2 d1 d0 Mux0 SEL[1..0] DATA[3..0] MUX OUT output

20 COMANDOS CONCORRENTES BÁSICOS CONSTRUÇÃO WITH SELECT FORMATO GERAL WITH expressao_escolha SELECT sinal_destino<= expressao_a WHEN CONDICAO_1, expressao_b WHEN CONDICAO_2, expressao_c WHEN CONDICAO_3 condicao_4, expressao_d WHEN CONDICAO_5 TO condicao_7, expressao_e WHEN OTHERS; O delimitador equivale a uma condição OU. A condição usando TO representa uma faixa de valores de um tipo escalar

21 COMANDOS CONCORRENTES BÁSICOS COMANDO PROCESS UM PROCESSO DEFINE UMA ÁREA CONTENDO COMANDOS SEQUENCIAIS. COMPONENTES DE UM PROCESSO: REGIÃO DE DECLARAÇÃO: PERMITE DECLARAR TIPOS, CONSTANTES E VARIÁVEIS. REGIÃO DE COMANDOS SEQUENCIAIS: ÁREA CONTENDO OS COMANDOS SEQUENCIAIS. INICIA COM A PALAVRA E TERMINA COM END PROCESS;

22 COMANDOS CONCORRENTES BÁSICOS COMANDO PROCESS ENTITY nome IS PORT (a,b : IN TIPO_SINAL; c,d : OUT TIPO_SINAL ); END nome; ARCHITECTURE nome OF nome IS Declarações Códigos concorrentes PROCESS (x,y..) Begin Códigos sequenciais End process; End nome; O que está dentro de architecture e fora de process é concorrente entre si. O que está dentro de process é sequencial. Uma arquitetura pode ter mais de um processo. O processo (process) é concorrente com com tudo que estiver fora dele, inclusive outro processo.

23 COMANDOS CONCORRENTES BÁSICOS COMANDO PROCESS LISTA SENSITIVA OU LISTA DE SENSIBILIDADE PROCESS( X,Y) X E Y SÃO SINAIS QUE, AO SOFREREM QUALQUER VARIAÇÃO, DÃO INÍCIO AO PROCESSO. SE UMA VARIAÇÃO DE X PROVOCAR UMA VARIAÇÃO DE Y OU VICE-VERSA O PROCESSO RODA NOVAMENTE. UM PROCESSO SÓ NÃO TEM LISTA SENSITIVA SE CONTIVER O COMANDO WAIT.

24 COMANDOS CONCORRENTES BÁSICOS COMPARAÇÃO ENTRE WHEN ELSE E WITH SELECT NA CONSTRUÇÃO WHEN ELSE A ORDEM EM QUE AS CONDIÇÕES SÃO APRESENTADAS INDICA A ORDEM EM QUE SÃO EXECUTADAS. A PRIMEIRA TEM PRIORIDADE MÁXIMA E A ÚLTIMA TEM PRIORIDADE MÍNIMA. NA CONSTRUÇÃO WITH SELECT TODAS AS CONDIÇÕES TEM A MESMA PRIORIDADE.

25 COMANDOS SEQUENCIAIS BÁSICOS CONSTRUÇÃO IF ELSE ENTITY mux IS PORT (d0,d1,d2,d3 IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; output : OUT BIT ); END mux; ARCHITECTURE CIRC_6 OF mux IS PROCESS (d0,d1,d2,d3,s); IF s=0 then output<=d0; ELSIF s=1 then output<=d1; ELSIF s=2 then output<=d2; ELSE output<=d3; END PROCESS; END CIRC_6;

26 COMANDOS SEQUENCIAIS BÁSICOS CONSTRUÇÃO IF ELSE ENTITY mux IS PORT s: IN INTEGER RANGE 3 DOWNTO 0; output : OUT BIT_VECTOR( 1 DOWNTO 0); END mux; ARCHITECTURE CIRC_6 OF mux IS PROCESS (s); IF s=0 then output<= 00 ; ELSIF s=1 then output<= 01 ; ELSIF s=2 then output<= 10 ; ELSE output<= 11 ; END PROCESS; END CIRC_6; ( Mux usando BIT_VECTOR)

27 COMANDOS SEQUENCIAIS BÁSICOS SINTAXE DA INSTRUÇÃO IF IF x>2 then z=4; IF x>2 then z=4; ELSE z=3; IF x=2 then z=4; ELSIF x=3 then z=6; ELSIF x=4 then z=7; ELSE z=10; A instrução ELSIF permite negar a condição anterior e especificar uma nova condição. A Instrução ELSE pode vir depois de IF e vários ELSIF e nega todas as condições anteriores.

28 COMANDOS SEQUENCIAIS BÁSICOS CONSTRUÇÃO CASE WHEN (MULTIPLEXADOR 4-1) ENTITY mux IS PORT (d0, d1, d2, d3 : IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; output : OUT BIT ); END mux; ARCHITECTURE CIRC_7 OF mux IS PROCESS(d0,d1,d2,d3,s) CASE s IS WHEN 0 => output<=d0; WHEN 1 => output<=d1; WHEN 2 => Output<=d2; WHEN 3 => Output<=d3; END CASE; END PROCESS; END circ_7;

29 COMANDOS SEQUENCIAIS BÁSICOS CONSTRUÇÃO CASE WHEN FORMATO GERAL CASE EXPRESSAO_DE_ESCOLHA IS WHEN CONDICAO_1 WHEN CONDICAO_2 WHEN CONDICAO_3 CONDICAO_4 WHEN CONDICAO_5 TO CONDICAO_9 WHEN OTHERS END CASE; => COMANDO_A => COMANDO_B; COMANDO_C; => COMANDO_D; => COMANDO_D; => COMANDO_E;COMANDO_F AS CONDIÇÕES DEVEM SER MUTUAMENTE EXCLUSIVAS, OU SEJA, NÃO PODE HAVER MAIS DE UMA CONDIÇÃO VERDADEIRA. TODAS AS CONDIÇÕES POSSUEMA MESMA PRIORIDADE. O DELIMITADOR EQUIVALE A UMA CONDIÇÃO OU AS PALAVRAS TO E DOWNTO PODEM SER USADOS PARA DELIMITAR UMA FAIXA DE CONDIÇÕES A PALAVRA RESERVADA OTHERS PODE SER EMPREGADA PARA NA ÚLTIMA CONDIÇÃO PARAAGRUPAR AS CONDIÇÕES NÃO RELACIONADAS NA LISTA.

30 COMANDOS SEQUENCIAIS BÁSICOS COMPARAÇÃO ENTRE WHEN ELSE E IF ELSE A CONSTRUÇÃO WHEN ELSE SÓ PODE SER USADA EM REGIÕES DE CÓDIGO CONCORRENTE E A INSTRUÇÃO IF ELSE É USADA EM REGIÕES DE CÓDIGO SEQUENCIAL. SEMPRE QUE POSSÍVEL DEVE-SE ESCOLHER A INTRUÇÃO CASE NO LUGAR DA INSTRUÇÃO IF, POIS CASE APRESENTA TODAS OS VALORES POSSÍVEIS PARA O SINAL ESPECIFICADO. JÁ A INSTRUÇÃO IF, MAIS VERSÁTIL, PODE DEIXAR ALGUNS VALORES NÃO ESPECIFICADOS. CADA VALOR NÃO ESPECIFICADO VAI GERAR UM LATCH ADICIONAL NO HARDWARE PARA ARMAZENÁ-LO.

31 COMANDOS SEQUENCIAIS BÁSICOS COMANDO WAIT O COMANDO WAIT SUSPENDE A EXECUÇÃO DE UM PROCESSO OU DE UM PROCEDIMENTO. A CONSTRUÇÃO WAIT ON ATUA DE MODO SEMELHANTE À LISTA SENSITIVA DE UM PROCESSO. O PROCESSO FICA SUSPENSO A TÉ QUE HAJA A VARIAÇÃO DE UM DOS SINAIS RELACIONADOS NA LISTA. NA CONSTRUÇÃO WAIT UNTIL O PROCESSO FICA SUSPENSO ENQUANTO A EXPRESSÃO BOOLEANA CONTIDA NO COMANDO NÃO FOR SATISFEITA. NA CONSTRUÇÃO WAIT FOR O PROCESSO FICA SUSPENSO POR UM PERÍODO DE TEMPO, REINICINADO NO COMANDO SEGUINTE, APÓS O PERÍODO DE TEMPO DEFINIDO.

32 COMANDOS SEQUENCIAIS BÁSICOS COMANDO WAIT WAIT ON SINAL_A, SINAL_B,SINAL_C; WAIT UNTIL X= 1 ; WAIT FOR 50ns; WAIT UNTIL X= 1 FOR 50ns; AS FERRASMENTAS DE SÍNTESE, NORMALMENTE NÃO SUPORTAM A CONSTRUÇÃO WAIT FOR. SE UM PROCESSO CONTÉM UMA LISTA SENSITIVA WAIT NÃO É PERMITIDA. MAIS DE UM COMANDO WAIT PODE SER INCLUÍDO EM UM PROCESSO.

33 COMANDOS SEQUENCIAIS BÁSICOS COMANDO WAIT (WAIT UNTIL) ENTITY W IS PORT(A, B: IN BIT; S: OUT BIT); END W ; ARCHITECTURE CIRC_8 OF W IS PROCESS WAIT UNTIL A='1' AND B='0'; S<=A; END PROCESS; END circ_8;

34 COMANDO WAIT (WAIT ON) COMANDOS SEQUENCIAIS BÁSICOS ENTITY W IS PORT(A,B:IN BIT; S:OUT BIT); END W; ARCHITECTURE CIRC_9 OF W IS PROCESS S<= 0 ; A:= 1 ; WAIT FOR 20ns; S<=A; END PROCESS; END circ_9; ESTE CÓDIGO NÃO É SINTETIZÁVEL NO QUARTUSII DA ALTERA. O COMPILADOR MOSTRA A MENSSAGEM DE ERRO ABAIXO: Error (10533): Wait Statement error at W.vhd(9): Wait Statement must contain condition clause with UNTIL keyword

35 COMANDO NULL COMANDOS SEQUENCIAIS BÁSICOS ENTITY NADA IS PORT(A:BIT_VECTOR(1 DOWNTO 0); S:OUT BIT_VECTOR(1 DOWNTO 0)); END NADA; ARCHITECTURE NADA OF CIRC_10 IS PROCESS(A) CASE A IS WHEN "00" => S<="01"; WHEN "01" => S<="10"; WHEN "10" => S<="11"; WHEN "11" => S<=NULL; END CASE; END PROCESS; END NADA; O COMANDO NULL NÃO REALIZA NENHUMA OPERAÇÃO. A EXECUÇÃO É PASSADA PARA O PRÓXIMO COMANDO. É ÚTIL NAS CONSTRUÇÕES CASE WHEN E IF ELSE, QUANDO NENHUMA AÇÃO DEVE SER TOMADA PARA UMA DETERMINADA CONDIÇÃO.

36 ATRIBUTOS ATRIBUTOS SÃO INFORMAÇÕES RELATIVAS A UM SINAL. GRANDE PARTE DOS ATRIBUTOS EM NÃO SÃO SINTETIZÁVEIS PELAS FERRAMENTAS DE SÍNTESE, MAS SÃO USADOS EM DESCRIÇÕES QUE TÊM A FINALIDADE DE TESTAR OUTRAS ENTIDADES. ATRIBUTOS SINTETIZÁVEIS: S EVENT : É VERDADEIRO SE OCORREU UMA MUDANÇA DE VALOR NO SINAL. É FALSO SE NÃO OCORREU. S STABLE: É VERDADEIRO SE NÃO OCORREU UMA MUDANÇA DE VALOR NO SINAL. É FALSO SE OCORREU UMA MUDANÇA DE VALOR NO SINAL. EXEMPLOS: IF S EVENT THEN B<=A; ATRIBUI O VALOR DE a A b SE s MUDA DE VALOR. IF S EVENT AND S= 1 THEN B<=A; ATRIBUI O VALOR DE a A b NA TRANSIÇÃO DE SUBIDA DO SINAL s. IF S STABLE THEN B<=A; ATRIBUI O VALOR DE a A b SE O SINAL s NÃO MUDA DE VALOR.

37 ATRIBUTOS ATRIBUTOS NÃO SINTETIZÁVEIS: S DELAYED[t] : GERA UM NOVO SINAL ATRASADO t UNIDADES DE TEMPO. S STABLE[t]: GERA UM NOVO SINAL BOOLEAN VERDADEIRO SE NÃO OCORREU UMA TROCA DE VALOR DO SINAL. S TRANSACTION: GERA UM NOVO SINAL TIPO BIT, COMPLEMENTADO A CADA ATRIBUIÇÃO DE VALOR DE S. S LAST_VALUE: VALOR DO SINAL ANTES DO ÚLTIMO EVENTO. S LAST_EVENT:TEMPO DECORRIDO DESDE A ÚLTIMA TROCA DE VALOR DO SINAL ATRIBUTOS NÃO ACEITOS PELO ALTERA QUARTUS II S QUIET[t]: NOVO SINAL TIPO BOOLEAN, VERDADEIRO SE NENHUM VALOR FOI ATRIBUIDO POR UM PERÍODO DE TEMPO S ACTIVE: VERDADEIRO SE FOI ATRIBÚIDO UM NOVO VALOR AO SINAL, MESMO SE FOR UM VALOR IGUAL AO ANTERIOR

38 ATRIBUTOS ATRIBUTOS RELATIVOS A VETORES (SINTETIZÁVEIS): S HIGH : LIMITE SUPERIOR DO VETOR. S LOW: LIMITE INFERIOR DO VETOR. S RIGTH: LIMITE DIREITO DO VETOR S LEFT: LIMITE ESQUERDO DO VETOR. S LENGTH: NUMEROS DE LEMENTOS NO VETOR. S RANGE: FAIXA DO VETOR S REVERSE_RANGE: FAIXA OPOSTA À OBTIDA COM O ATRIBUTO RANGE OBS: SE O VETOR TIVER MAIS DE UMA DIMENSÃO UM PARÂMETRO DEVE SER USADO NO ATRIBUTO. POR EXEMPLO: S HIGH[n], ONDE n É A DIMENSÃO DO VETOR.

39 EXEMPLOS: ATRIBUTOS CONSTANT X: BIT_VECTOR(0 TO 7) := ; X(0) X(7) X HIGH = 7 X LOW = 0 X RIGHT =7 X LEFT = 0 X RANGE = 0 TO 7 X REVERSE_RANGE = 7 TO 0 CONSTANT X: BIT_VECTOR(7 DOWNTO 0) := ; X(7) X(0) X HIGH = 7 X LOW = 0 X RIGHT = 0 X LEFT = 7 X RANGE = 7 DOWNTO 0 X REVERSE_RANGE = 0 TO 7

40 ATRIBUTOS ATRIBUTOS RELATIVOS A TIPOS (NÃO SINTETIZÁVEIS): S HIGH : ELEMENTO DE POSIÇÃO MAIS ELEVADA NO TIPO. S LOW : ELEMENTO DE POSIÇÃO MAIS INFERIOR NIO TIPO. S SUCC(e) : ELEMENTO QUE SUCEDE O ELEMENTO e NO TIPO. S PRED(e) : ELEMENTO QUE PRECEDE O ELEMENTO e NO TIPO. S RIGHT : ELEMENTO DE POSIÇÃO MAIS A DIREITA NO TIPO. S LEFT : ELEMENTO DE POSIÇÃO MAIS A ESQUERDA NO TIPO. S RIGHTOF(e) : ELEMENTO À DIREITA DO ELEMENTO e NO TIPO. S LEFTOF(e) : ELEMENTO À ESQUERDA DO ELEMENTO e NO TIPO. S VAL(p) : ELEMENTO DE POSIÇÃO p NO TIPO. S POS(e) : POSIÇÃO DO ELEMENTO e NO TIPO.

41 EXEMPLOS: ATRIBUTOS SUBTYPE S IS CHARACTER RANGE A TO Z ; A B... F G H... Y Z S POS(g) S LEFT S LEFTOF(g) S RIGHTOF(g) S RIGHT S LOW S PRED(g) S SUCC(g) S HIGH S VAL(71)

42 CIRCUITOS SÍNCRONOS CIRC_UITOS SENSÍVEIS A NÍVEL (LATCH) LATCH DE UM BIT COM ENABLE, SET E RESET ENTITY LT IS PORT(D,EN,RESET,SET:IN BIT; Q:OUT BIT); END LT; ARCHITECTURE CIRC_11 OF LT IS PROCESS(D,EN,RESET,SET) IF RESET='1' THEN Q<='0'; ELSIF SET='1' THEN Q<='1'; ELSIF EN='1' THEN Q<=D; END PROCESS; END circ_11;

43 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS A NÍVEL (LATCH) LATCH DE OITO BITS COM ENABLE, SET E RESET ENTITY LT IS PORT(D: IN BIT_VECTOR(7 DOWNTO 0); EN,RESET,SET: IN BIT; Q: OUT BIT_VECTOR(7 DOWNTO 0)); END LT; ARCHITECTURE CIRC_11 OF LT IS PROCESS(D,EN,RESET,SET) IF RESET='1' THEN Q<= ; ELSIF SET='1' THEN Q<= ; ELSIF EN='1' THEN Q<=D; END PROCESS; END circ_11;

44 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (FLIP-FLOPS) FLIP-FLOP TIPO D COM SET E RESET ENTITY FFD IS PORT(CLK,D,EN,RESET,SET:IN BIT; Q:OUT BIT); END FFD; ARCHITECTURE CIRC_12 OF FFD IS PROCESS(CLK,RESET,SET) IF RESET='1' THEN Q<='0'; ELSIF SET='1' THEN Q<='1'; ELSIF CLK'EVENT and CLK='1' THEN IF EN='1' THEN Q<=D; END PROCESS; END circ_12;

45 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (FLIP-FLOPS) FLIP-FLOP TIPO T ENTITY FFT IS PORT ( clk: IN BIT; q: OUT BIT); END FFT; ARCHITECTURE EXEMPL013 OF FFT IS SIGNAL s: BIT; PROCESS(clk) IF CLK'EVENT AND CLK = '1' THEN s<= NOT s; q<= s; END PROCESS; END exemplo13;

46 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (FLIP-FLOPS) FLIP-FLOP TIPO RS LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FFRS IS PORT ( set, reset,clk: IN STD_LOGIC; q: OUT STD_LOGIC); END FFRS; ARCHITECTURE CIRC_14 OF FFRS IS PROCESS(clk) IF CLK'EVENT AND CLK = '1' THEN IF set = '1' THEN q<='1'; IF reset = '1' THEN q<='0'; IF set='1' AND reset='1' THEN Q<='X'; END PROCESS; END circ_14;

47 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (FLIP-FLOPS) FLIP-FLOP TIPO JK ENTITY FFJK IS PORT ( j, k,clk: IN BIT; q: OUT BIT); END FFJK; ARCHITECTURE CIRC_15 OF FFJK IS SIGNAL S:BIT; PROCESS(clk) IF CLK'EVENT AND CLK = '1' THEN IF j = '1' AND k='0' THEN q<='1'; IF k = '1' AND j ='0' THEN q<='0'; IF j = '1' AND k = '1' THEN s <= NOT s; q <= s; END PROCESS; END circ_15;

48 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES) REGISTRADOR DE OITO BITS ENTITY REG1 IS PORT (clk : IN BIT; d: IN INTEGER RANGE 255 DOWNTO 0; q: OUT INTEGER RANGE 255 DOWNTO 0); END REG1; ARCHITECTURE CIRC_ 16 OF REG1 IS PROCESS WAIT UNTIL clk = '1'; -- PODERIA SER: IF CLK EVENT AND CLK= 1 q <= d; END PROCESS; END circ_16;

49 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES) REGISTRADOR COM CLEAR E PRESET ASSÍNCRONOS ENTITY REG2 IS PORT (clk,pre,clr : IN BIT; d: IN BIT_VECTOR(7 DOWNTO 0); q:out BIT_VECTOR(7 DOWNTO 0)); END REG2; ARCHITECTURE CIRC_17 OF REG2 IS PROCESS (clk, clr, pre) IF clr = '1' THEN q <= " "; ELSIF pre = '1' THEN q <= " "; ELSIF clk'event AND clk = '1' THEN q <= d; END PROCESS; END circ_17;

50 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES) REGISTRADOR COM LOAD ASSÍNCRONO ENTITY REG3 IS PORT (clk,load : IN BIT; data,d:in INTEGER RANGE 255 DOWNTO 0; q:out INTEGER RANGE 255 DOWNTO 0); END REG3; ARCHITECTURE CIRC_18 OF REG3 IS PROCESS (clk, load, data) IF load = '1' THEN q <= data; ELSIF clk'event AND clk = '1' THEN q <= d; END PROCESS; END circ_18;

51 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) PARA A DIREITA BITS b7 b6 b5 b4 b3 b2 b1 b0 ORDEM A7 A6 A5 A4 A3 A2 A1 A0 ANTES BITS 0 b7 b6 b5 b4 b3 b2 b1 ORDEM A7 A6 A5 A4 A3 A2 A1 A0 DEPOIS PARA A ESQUERDA BITS b7 b6 b5 b4 b3 b2 b1 b0 ORDEM A7 A6 A5 A4 A3 A2 A1 A0 ANTES BITS b6 b5 b4 b3 b2 b1 b0 0 ORDEM A7 A6 A5 A4 A3 A2 A1 A0 DEPOIS

52 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) REGISTRADOR COM DESLOCAMENTO PARA A DIREITA ENTITY reg4 IS PORT (ld,clk,sht : IN BIT; d: IN BIT_VECTOR(7 DOWNTO 0); q: OUT BIT_VECTOR(7 DOWNTO 0)); END reg4; ARCHITECTURE CIRC_19 OF reg4 IS PROCESS (clk) VARIABLE num:bit_vector(7 DOWNTO 0); IF CLK'EVENT AND CLK='1'THEN IF ld='1' THEN num<=d; ELSIF sht ='1' THEN num(6 downto 0):=num(7 downto 1); num(7):='0'; q<=num; END PROCESS; END circ_19;

53 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) REGISTRADOR COM DESLOCAMENTO PARA A ESQUERDA ENTITY reg5 IS PORT (ld,clk,sht : IN BIT; d: IN BIT_VECTOR(7 DOWNTO 0); q: OUT BIT_VECTOR(7 DOWNTO 0)); END reg5; ARCHITECTURE CIRC_20 OF reg5 IS PROCESS (clk) VARIABLE num:bit_vector(7 DOWNTO 0); IF CLK'EVENT AND CLK='1' THEN IF ld='1' THEN num<=d; ELSIF sht ='1' THEN num(7 downto 1):=num(6 downto 0); num(0):='0'; q<=num; END PROCESS; END circ_20;

54 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) REGISTRADORES USANDO INSTRUÇÃO DE DESLOCAMENTO E ROTAÇÃO DESLOCAMENTO ARITMÉTICO SLA (shift left arithmetic) : O BIT MAIS À ESQUERDA É PERDIDO. O BIT MAIS À DIREITA É REPETIDO, OCUPANDO O LUGAR VAGO. SRA (shift rigth arithmetic) :O BIT MAIS À DIREITA É PERDIDO. O BIT MAIS À ESQUERDA É REPETIDO, OCUPANDO O LUGAR VAGO. PERDIDO REPETIDO NÚMERO DE DESLOCAMENTOS CONSTANT X: BIT_VECTOR:= ; Z<= X SLA 1; - - Z= REPETIDO CONSTANT X: BIT_VECTOR:= ; Z<= X SRA 1; - - Z= PERDIDO

55 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) REGISTRADORES USANDO INSTRUÇÃO DE DESLOCAMENTO E ROTAÇÃO DESLOCAMENTO LÓGICO SLL (shift left logical) : O BIT MAIS À ESQUERDA É PERDIDO. O BIT VAGO, MAIS À DIREITA, É OCUPADO POR ZERO. SRL (shift rigth logical) :O BIT MAIS À DIREITA É PERDIDO. O BIT VAGO, MAIS À ESQUERDA É OCUPADO POR ZERO. PERDIDO CONSTANT X: BIT_VECTOR:= ; NÚMERO DE DESLOCAMENTOS Z<= X SLL 1; - - Z= CONSTANT X: BIT_VECTOR:= ; Z<= X SRL 1; - - Z= PERDIDO

56 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) REGISTRADORES USANDO INSTRUÇÃO DE DESLOCAMENTO E ROTAÇÃO ROTAÇÃO ROL (rotate logical left) : O BIT MAIS À ESQUERDA, PASSA A OCUPAR A POSIÇÃO MAIS À DIREITA. NENHUMA BIT É PERDIDO. ROR (rotate logical rigth) :O BIT MAIS À DIREITA PASSA A OCUPAR A POSIÇÃO MAIS À ESQUERDA. NENHUM BIT É PERDIDO. ROTACIONADO CONSTANT X: BIT_VECTOR:= ; NÚMERO DE ROTAÇÕES Z<= X SLL 1; - - Z= ROTACIONADO CONSTANT X: BIT_VECTOR:= ; Z<= X SRL 1; - - Z=

57 CIRCUITOS SÍNCRONOS CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) ENTITY reg6 IS PORT (ld,clk,sht : IN BIT; d1: IN BIT_VECTOR(7 DOWNTO 0):=" "; d2: IN BIT_VECTOR(7 DOWNTO 0):=" "; d3: IN BIT_VECTOR(7 DOWNTO 0):=" "; d4: IN BIT_VECTOR(7 DOWNTO 0):=" "; d5: IN BIT_VECTOR(7 DOWNTO 0):=" "; d6: IN BIT_VECTOR(7 DOWNTO 0):=" "; q_sla,q_sra,q_sll,q_srl,q_rol,q_ror: OUT BIT_VECTOR(7 DOWNTO 0)); END reg6; ARCHITECTURE CIRC_21 OF reg6 IS PROCESS (clk) VARIABLE num1,num2,num3,num4,num5,num6: BIT_VECTOR(7 DOWNTO 0); IF CLK'EVENT AND CLK='1' THEN IF ld='1' THEN num1:=d1; num2:=d2; num3:=d3; num4:=d4; num5:=d5; num6:=d6; ELSIF sht ='1' THEN num1:=num1 sla 1; num2:=num2 sra 1; num3:=num3 sll 1; num4:=num4 srl 1; num5:=num5 rol 1; num6:=num6 ror 1; q_sla<=num1; q_sra<=num2; q_sll<=num3; q_srl<=num4; q_rol<=num5; q_ror<=num6; END PROCESS; END circ_21;

58 CIRCUITOS SENSÍVEIS À TRANSIÇÃO (REGISTRADORES DE DESLOCAMENTO) CIRCUITOS SÍNCRONOS POLI-UPE D Q PRE ENA CLR D ENA Q PRE CLR D Q PRE ENA CLR D ENA Q PRE CLR D Q PRE ENA CLR D Q PRE ENA CLR D Q PRE ENA CLR D Q PRE ENA CLR SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 num1[7..1] num1[0] num2[6..0] num2[7] num3[7..0] num4[7..0] num5[7..0] num6[7..0] num1~[6..0] num1~[13..7] num2~[6..0] num3~[7..0] 1' h0 -- num3~[15..8] num4~[7..0] 1' h0 -- num4~[15..8] num5~[7..0] num6~[15..8] ld d1[7..0] d2[7..0] d3[7..0] d4[7..0] d5[7..0] d6[7..0] q_sla[7..0] q_sra[7..0] q_sll[7..0] q_srl[7..0] q_rol[7..0] q_ror[7..0] clk sht num5~[15..8] num2~[13..7] num6~[7..0]

59 CIRCUITOS CONTADORES CIRCUITOS SÍNCRONOS CONTADOR DE 8 BITS COM ENABLE SÍNCRONO ENTITY CONT1 IS PORT(en, clk: IN BIT; q:out INTEGER RANGE 255 DOWNTO 0); END CONT1; ARCHITECTURE CIRC_22 OF CONT1 IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 255 DOWNTO 0; IF (clk 'EVENT AND clk = '1') THEN IF en = '1' THEN cnt := cnt + 1; q<= cnt; END PROCESS; END circ_22;

60 CIRCUITOS CONTADORES CIRCUITOS SÍNCRONOS CONTADOR DE 8 BITS COM LOAD SÍNCRONO ENTITY CONT2 IS PORT (ld, clk: IN BIT; d: IN INTEGER RANGE 255 DOWNTO 0; q: OUT INTEGER RANGE 255 DOWNTO 0); END CONT2; ARCHITECTURE CIRC_23 OF CONT2 IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 255 DOWNTO 0; IF (clk 'EVENT AND clk = '1') THEN IF ld = '0' THEN cnt := d; ELSE cnt := cnt + 1; q<=cnt; END PROCESS; END circ_23;

61 CIRCUITOS CONTADORES CIRCUITOS SÍNCRONOS CONTADOR UP/DOWN COM ENABLE SÍNCRONO. ENTITY CONT3 IS PORT(en, up, clk: IN BIT; q:out INTEGER RANGE 255 DOWNTO 0); END CONT3; ARCHITECTURE CIRC_24 OF CONT3; PROCESS (clk) VARIABLE cnt : INTEGER RANGE 255 DOWNTO 0; IF (clk'event AND clk = '1') THEN IF en = '1' THEN IF up ='1' THEN cnt:= cnt +1; ELSE cnt:= cnt -1; END PROCESS; END circ_24;

62 CIRCUITOS CONTADORES CIRCUITOS SÍNCRONOS CONTADOR UP/DOWN COM ENABLE E CLEAR SÍNCRONOS. ENTITY cont4 IS PORT(clr,en,up, clk: IN BIT; q:out INTEGER RANGE 255 DOWNTO 0); END cont4; ARCHITECTURE CIRC_25 OF cont4 IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 255 DOWNTO 0; IF clk'event AND clk = '1' THEN IF clr = '0' THEN cnt := 0; ELSE IF en = '1' THEN IF up ='1' THEN cnt := cnt +1; ELSE cnt := cnt -1; q<=cnt; END PROCESS; END circ_25;

63 CIRCUITOS CONTADORES CIRCUITOS SÍNCRONOS CONTADOR DE OITO BITS MÓDULO MENOR DO QUE 255 ENTITY CONT5 IS PORT(clk: IN BIT; q:out INTEGER RANGE 255 DOWNTO 0); END CONT5; ARCHITECTURE CIRC_26 OF CONT5 IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 255 DOWNTO 0; IF (clk'event AND clk = '1') THEN IF cnt = 200 THEN cnt := 0; ELSE cnt := cnt + 1; q<=cnt; END PROCESS; END Circ_26;

64 MÁQUINAS DE ESTADO MÁQUINA MEALY S0 S1 x = 1 /z = 0 CIRCUITOS SÍNCRONOS S2 ENTITY MAQ2 IS PORT( clr,clk,x: IN BIT; z:out BIT); END MAQ2; ARCHITECTURE CIRC_27 OF MAQ2 IS TYPE ESTADOS IS (S0, S1, S2); SIGNAL EST: ESTADOS; PROCESS (clr,clk,x) IF clr = '1' THEN EST <= S0; ELSIF clk'event AND clk = '1' THEN CASE EST IS WHEN S0 => IF x = '0' THEN z <= '1'; EST<=S2; ELSE z<= '1'; EST<=S1; WHEN S1 => IF x = '0' THEN z<= '1'; EST<=S1; ELSE z<= '0'; EST<=S2; WHEN S2 => IF x = '0' THEN z<= '0'; EST<=S1; ELSE z<= '0'; EST<=S0; END CASE; END PROCESS; END circ_27;

65 S0 POLI-UPE MÁQUINAS DE ESTADO MÁQUINAS MOORE z = 0 x = 1 S1 z = 1 z = 1 S2 CIRCUITOS SÍNCRONOS ENTITY MAQ2 IS PORT( clr,clk,x: IN BIT; z:out BIT); END MAQ2; ARCHITECTURE CIRC_28 OF MAQ2 IS TYPE ESTADOS IS (S0, S1, S2); SIGNAL EST: ESTADOS; PROCESS (clr,clk,x) IF clr = '1' THEN EST <= S0; ELSIF (clk'event AND clk = '1') THEN CASE EST IS WHEN S0 => z <= '0'; IF x = '0' THEN EST <= S1; ELSE EST <= S1; WHEN S1 => z <= '1'; IF x = '0' THEN EST <= S2; ELSE EST <= S1; WHEN S2 => z <='1'; IF x = '0' THEN EST <= S1; ELSE EST <= S0; END CASE; END PROCESS; END circ_28;

66 MÁQUINA COM DOIS PROCESSOS CIRCUITOS SÍNCRONOS S0 S1 x = 1 /z = 0 S2 ENTITY MAQ3 IS PORT( clr,clk,x: IN BIT; z:out BIT); END MAQ3; ARCHITECTURE CIRC_29 OF MAQ3 IS TYPE ESTADOS IS (S0, S1, S2); SIGNAL atual,prox: ESTADOS; PROCESS(clr,clk) IF CLR='1' THEN Atual<=S0; ELSIF CLK'EVENT AND CLK='1' THEN Atual<=prox; END PROCESS; PROCESS (atual, prox,x) CASE atual IS WHEN S0 => IF x = '0' THEN z<= '1'; prox<=s2; ELSE z<= '1'; prox<=s1; WHEN S1 => IF x = '0' THEN z<= '1'; prox<=s2; ELSE z<= '0'; prox<=s2; WHEN S2 => IF x = '0' THEN z<= '0'; prox<=s1; ELSE z<= '0'; prox<=s0; END CASE; END PROCESS; END circ_29;

67 CIRCUITOS TRI-STATES BUFFER DE OITO BITS TRI-STATE LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BUFF IS PORT (en : STD_LOGIC; d: IN STD_LOGIC_VECTOR(7 DOWNTO 0); q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END BUFF; ARCHITECTURE CIRC_30 OF BUFF IS PROCESS (en,d) IF en = '1' THEN q <= d; else q <= "ZZZZZZZZ"; END PROCESS; END circ_30;

68 CIRCUITOS TRI-STATES BARRAMENTO BIDIRECIONAL TRI-STATE LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY BBT IS PORT( bidir: INOUT STD_LOGIC_VECTOR (7 DOWNTO 0); oe, clk : IN STD_LOGIC; inp : IN STD_LOGIC_VECTOR (7 DOWNTO 0); outp : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END BBT; ARCHITECTURE CIRC_31 OF BBT IS SIGNAL a : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL b : STD_LOGIC_VECTOR (7 DOWNTO 0); PROCESS(clk) IF clk = '1' AND clk'event THEN a <= inp; outp <= b; END PROCESS; PROCESS (oe, bidir) - IF( oe = '0') THEN bidir <= "ZZZZZZZZ"; b <= bidir; ELSE bidir <= a; b <= bidir; END PROCESS; END circ_31;

69 SUBPROGRAMAS EM EXISTEM DOIS TIPOS DE SUBPROGRAMAS: FUNÇÕES (FUNCTIONS) PROCEDIMENTOS (PROCEDURES) UM SUBPROGRAMA É COMPOSTO DE : DECLARAÇÃO DECLARAÇÃO CORPO FUNCTION SOMA ( X: IN INTEGER; Y: IN INTEGER) RETURN INTEGER FUNCTION SOMA ( X: INTEGER; Y:INTEGER) RETURN INTEGER IS VARIABLE M: INTEGER RANGE 0 TO 15; M:= X+ Y; RETURN M; END SOMA; CORPO COMO O CABEÇALHO DO CORPO TEM AS INFORMAÇÕES DA DECLARAÇÃO ESTA É OPCIONAL.

70 SUBPROGRAMAS PONTO DE INSERÇÃO DO CORPO DE UM SUBPROGRAMA: DECLARAÇÃO DE UMA ENTIDADE CORPO DE UMA ARQUITETURA CORPO DE UM SUBPROGRMA CORPO DE UM PACOTE

71 FUNÇÕES CABEÇALHO DO CORPO DA FUNÇÃO. FUNCTION nome_funcao( SIGNAL a: IN tipo_a; SIGNAL b: IN tipo_b) tipo_retorno IS; RETURN FUNCTION nome_funcao( CONSTANT a: IN tipo_a; CONSTANT b: IN tipo_b) RETURN tipo_retorno IS; OS PARÃMETROS a E b SÃO CHAMADOS DE PARÂMETROS FORMAIS. ELES PODEM SER DA CLASSE SIGNAL OU CONSTANT. COMO ESTES PARÂMETROS SÃO DECLARADOS OBRIGATORIAMENTE NO MODO IN, A DECLARAÇÃO DE MODO PODE SER OMITIDA. SEMPRE QUE A CLASSE DO PARÃMETRO NÃO FOR DECLARADA, ASSUME-SE QUE É CONSTANT. O CÓDIGO DE UMA FUNÇÃO DEVE RETORNAR UM VALOR COERENTE COM A SUA DECLARAÇÃO

72 FUNÇÕES CHAMADA DE UMA FUNÇÃO UMA FUNÇÃO PODE SER CHAMADA DA ÁREA CONCORRENTE (DENTRO DE ARQUITETURA) OU DA ÁREA SEQUENCIAL (DENTRO DE PROCESSO). UMA FUNÇÃO RETORNA APENAS UM VALOR. ESTE RETORNO É FEITO ATRAVÉS DA PALAVRA CHAVE RETURN S<= EXEMPLO ( X,Y); S É UM SINAL QUE RECEBE O VALOR RETORNADO PELA FUNÇÃO EXEMPLO. X E Y SÃO CHAMADOS PARÂMETROS REAIS. ASSOCIAÇÃO ENTRE PARÂMETROS FORMAIS E PARÂMETROS REAIS. FORMAL: CONSTANT FORMAL: SIGNAL REAL: VARIABLE, CONSTANT, SIGNAL REAL: SIGNAL A CLASSE VARIABLE NÃO É PERMITIDA COMO PARÂMETRO FORMAL.

73 FUNÇÕES EXEMPLO 1: FUNÇÃO CHAMADA DA ÁREA CONCORRENTE. ENTITY SOMADOR1 IS PORT( A, B: IN INTEGER RANGE 15 DOWNTO 0; S: OUT INTEGER RANGE 15 DOWNTO 0); END SOMADOR1; ARCHITECTURE SOMADOR1 OF SOMADOR1 IS FUNCTION SOMA ( X: INTEGER; Y:INTEGER) RETURN INTEGER IS VARIABLE M: INTEGER RANGE 0 TO 15; M:= X+ Y; RETURN M; END SOMA; S<=SOMA(A,B); END SOMADOR1;

74 FUNÇÕES EXEMPLO 2: FUNÇÃO CHAMADA DA ÁREA SEQUENCIAL. ENTITY SOMADOR2 IS PORT( A, B: IN INTEGER RANGE 15 DOWNTO 0; S: OUT INTEGER RANGE 15 DOWNTO 0); END SOMADOR2; ARCHITECTURE SOMADOR2 OF SOMADOR2 IS FUNCTION SOMA ( X: INTEGER; Y:INTEGER) RETURN INTEGER IS RETURN X+Y; END SOMA; PROCESS(A,B) VARIABLE VA,VB:INTEGER RANGE 15 DOWNTO 0; VA:=A; VB:=B; S<=SOMA(VA,VB); END PROCESS; END SOMADOR2;

75 FUNÇÕES EXEMPLO 3: FUNÇÃO CHAMADA DA ÁREA SEQUENCIAL. ENTITY SOMADOR2 IS PORT( A, B: IN INTEGER RANGE 15 DOWNTO 0; S: OUT INTEGER RANGE 15 DOWNTO 0); END SOMADOR2; ARCHITECTURE SOMADOR2 OF SOMADOR2 IS FUNCTION SOMA ( X: INTEGER; Y:INTEGER) RETURN INTEGER IS RETURN X+Y; END SOMA; PROCESS(A,B) S<=SOMA(A,B); END PROCESS; END SOMADOR2;

76 PROCEDIMENTOS CABEÇALHO DO CORPO DE UM PROCEDIMENTO. A DECLARAÇÃO DE UM PROCEDIMENTO OCORRE NA ÁREA DE DECLARAÇÃO DA ARQUITETURA( ANTES DO DE ARQUITETURA) PROCEDURE nome_procedure( SIGNAL a: IN tipo_a; SIGNAL b: OUT tipo_b) IS; PROCEDURE nome_procedure( VARIABLE a: IN tipo_a; SIGNAL b: OUT tipo_b) IS; OS PARÃMETROS a E b SÃO CHAMADOS DE PARÂMETROS FORMAIS. ELES PODEM SER DA CLASSE SIGNAL, VARIABLE, CONSTANT OU FILE, SENDO UTILIZADOS OS MODOS IN, OUT E INOUT. SEMPRE QUE A CLASSE DO PARÃMETRO NO MODO IN NÃO FOR DECLARADA, ASSUME-SE QUE É CONSTANT. SEMPRE QUE A CLASSE DO PARÂMETRO NO MODO OUT OU INOUT NÃO FOR DECLARADA ASSUME-SE QUE ELA É VARIABLE. UM PROCEDIMENTO PODE ALTERAR OS VALORES DOS DADOS PASSADOS A ELE. PROCEDIMENTOS PERMITEM O RETORNO DE MAIS DE UM VALOR

77 PROCEDIMENTOS CHAMADA DE UM PROCEDIMENTO UM PROCEDIMENTO PODE SER CHAMADA DA ÁREA CONCORRENTE (DENTRO DE ARQUITETURA) OU DA ÁREA SEQUENCIAL (DENTRO DE PROCESSO). ARCHITECTURE X OF X IS Corpo do procedimento Meu_proced ( x,y ); -- Outros comandos -- End X; A LINHA DE CÓDIGO ACIMA É UMA CHAMADA DE PROCEDIMENTO. X E Y SÃO CHAMADOS PARÂMETROS REAIS.

78 PROCEDIMENTOS ASSOCIAÇÃO ENTRE PARÂMETROS FORMAIS E PARÂMETROS REAIS. FORMAL: CONSTANT FORMAL: SIGNAL FORMAL: VARIABLE REAL: VARIABLE, CONSTANT, SIGNAL REAL: SIGNAL REAL: VARIABLE

79 PROCEDIMENTOS EXEMPLO 1: PROCEDIMENTO CHAMADA DA ÁREA CONCORRENTE. ENTITY SUB1 IS PORT( A, B, C: IN INTEGER RANGE 15 DOWNTO 0; S1,S2: OUT INTEGER RANGE 15 DOWNTO 0); END SUB1; ARCHITECTURE SUB1 OF SUB1 IS PROCEDURE SUBTRAI ( X, Y, Z: IN INTEGER RANGE 15 DOWNTO 0) ; SIGNAL MAIS, MENOS: OUT INTEGER RANGE 15 DOWNTO 0) IS MAIS<= X+ Y; MENOS<= X- Z; END SUBTRAI; SUBTRAI (A, B, C, S1, S2) END SUB1;

80 PROCEDIMENTOS EXEMPLO 2: PROCEDIMENTO CHAMADA DA ÁREA SEQUENCIAL. ENTITY SUB2 IS PORT( A, B, C: IN INTEGER RANGE 15 DOWNTO 0; S1,S2: OUT INTEGER RANGE 15 DOWNTO 0); END SUB2; ARCHITECTURE SUB2 OF SUB2 IS PROCEDURE SUBTRAI ( CONSTANT X: IN INTEGER RANGE 15 DOWNTO 0; VARIABLE Y : IN INTEGER RANGE 15 DOWNTO 0 ; SIGNAL Z: IN INTEGER RANGE 15 DOWNTO 0; VARIABLE MAIS: OUT INTEGER RANGE 15 DOWNTO 0; SIGNAL MENOS:OUT INTEGER RANGE 15 DOWNTO 0) IS MAIS<= X+ Y; MENOS<= X- Z; END SUBTRAI; PROCESS(A,B,C) VARIABLE VB, VMAIS: INTEGER RANGE 15 DOWNTO 0; VB:=B; SUBTRAI(A,VB,C,VMAIS,S2); S1<=VMAIS; END PROCESS; END SUB2;

81 PROCEDIMENTOS EXEMPLO 3: PROCEDIMENTO COM ASSOCIAÇÃO NOMEADA E USO DE ATRIBUTO ENTITY FLIP IS PORT( CLK D,: IN BIT; Q,Q_B: BUFFER BIT); END FLIP; ARCHITECTURE FLIP OF FLIP IS PROCEDURE FF(SIGNAL RELOGIO,DADO:IN BIT; SIGNAL VALOR, VALOR_B:OUT BIT) IS IF RELOGIO EVENT AND RELOGIO= 1 THEN VALOR<= DADO; VALOR_B<= NOT DADO; END FF; PROCESS(CLK) FF(RELOGIO=>CLK, DADO=>D, VALOR=>Q, VALOR_B=>Q_B); END PROCESS; END FLIP;

82 COMANDO GENERATE O COMANDO GENERATE PERMITE REPETIR COMANDOS CONCORRENTES. É ÚTIL NA GERAÇÃO DE CIRCUITOS QUE APRESENTAM UMA REGULARIDADE NA SUA ESTRUTURA OU QUE PODEM CONSTRUÍDOS A PARTIR DE UM CONJUNTO DE CÉLULAS IDÊNTICAS INTERLIGADAS DA MESMA MANEIRA. EXISTEM DOIS ESQUEMAS DE GERAÇÃO: GERAÇÃO FOR E GERAÇÃO IF GERAÇÃO FOR FOR x IN valor_inicial TO valor_final GENERATE; FOR x IN valor_final DOWNTO valor_inicial GENERATE; FOR x IN sinal RANGE GENERATE; FOR x IN sinal REVERSE RANGE GENERATE;

83 COMANDO GENERATE...FOR IMPLEMENTANDO SOMADOR DE N BITS COM COMANDO GENERATE. CONTADOR DE UM BIT; ENTITY SOM_1 IS PORT SOM_1(a, b, vem:in BIT; s,vai:out bit); End som_1; ARCHITECTURE SOM_1 OF SOM_1 IS S<= A XOR B XOR VEM; -- SOMA VAI<=(A AND B) OR (A AND VEM) OR (B AND VAI); --VAI UM

84 COMANDO GENERATE...FOR SOMADOR DE TRÊS BITS y(2) x(2) y(1) x(1) y(0) x(0) ve b vem a vai F(1) b vem a vai F(2) b vem a vai va s s s s(2) s(1) s(0) Sinais internos

85 COMANDO GENERATE...FOR SOMADOR DE TRÊS BITS ENTITY SOM_3 IS PORT(X, Y :IN BIT_VECTOR(2 DOWNTO 0); VE:IN BIT; VA:OUT BIT; S:OUT BIT_VECTOR(2 DOWNTO 0); END SOM_3; ARCHITECTURE SOM_3 OF SOM_3 IS SIGNAL F: BIT_VECTOR( 3 DOWNTO 0); F(0)<=VE; F<=SI(3); FOR i IN 0 TO 1 GENERATE S(i)<=X(i) XOR Y(i) XOR F(i); SI(i+1)<=(X(i) AND Y(i)) OR (X(i) AND F(i)) OR (Y(i) AND F(i)); END GENERATE; END SOM_3;

86 GERAÇÃO IF COMANDO GENERATE...IF

87 GENÉRICOS GENÉRICOS PERMITEM QUE INFORMAÇÕES SEJAM PASSADAS AO CIRCUITO, TAIS COMO PARÂMETROS E CARACTERÍSTICAS QUE PODEM SER ALTERADOS SEM QUE PARA ISTO O CÓDIGO TENHA QUE SER MUDADO, PODENDO O CIRCUITO SER USADO EM VÁRIAS APLICAÇÕES. O VALOR DE UM GENÉRICO PODE SER ESPECIFICADO EM: DECLARAÇÃO DE ENTIDADES DECLARAÇÃO DE COMPONENTES SOLICITAÇÃO DE COMPONENTES CONFIGURAÇÕES BLOCOS

88 GENÉRICOS GENÉRICO EM ENTIDADES: ENTITY nome_entidade IS GENERIC( generico_1:tipo_generico_1:=valor_generico_1; generico_2:tipo_generico_2:=valor_generico); PORT(------); END nome_entidade; GENÉRICO EM COMPONENTES: COMPONENT nome_componente GENERIC( generico_1:tipo_generico_1:=valor_generico_1; generico_2:tipo_generico_2:=valor_generico); PORT(------); END COMPONENT;

89 GENÉRICOS E GENERATE SOMADOR DE 3 BITS COM GENÉRICO. ENTITY SOM_N IS GENERIC(n:INTEGER:=3); -- Número de bits PORT(X, Y :IN BIT_VECTOR(n-1 DOWNTO 0); VE:IN BIT; VA:OUT BIT; S:OUT BIT_VECTOR(n-1 DOWNTO 0); END SOM_N; ARCHITECTURE SOM_N OF SOM_N IS SIGNAL F: BIT_VECTOR( N DOWNTO 0);-- Vai um interno F(0)<=VE; F<=F(N); FOR i IN 0 TO N-1 GENERATE S(i)<=X(i) XOR Y(i) XOR F(i); SI(i+1)<=(X(i) AND Y(i)) OR (X(i) AND F(i)) OR (Y(i) AND F(i)); END GENERATE; END SOM_3;

90 ESTRUTRURAL MÉTODOS: 1- DECLARAR CADA COMPONENTE JÁ EXISTENTE NA ARQUITETURA DA ENTIDADE FINAL DO PROJETO. OS CÓDIGOS DE CADA BLOCO DEVEM ESTAR NA MESMA PASTA DO PROJETO TOTAL 2- DECLARAR UM PACOTE (PACKAGE) CONTENDO DECLARAÇÕES DOS COMPONENTES EXISTENTES. NÃO É PRECISO DECLARAR OS COMPONENTES NA ARQUITETURA DO PROJETO FINAL

91 ESTRUTRURAL MÉTODO 1 dado0 d0 dado1 dado2 dado3 d1 d2 d3 multiplexador s1 s0 q1 q0 q saida ENTIDADE MÃE en enable contador clk clock SINAL INTERNO

92 ESTRUTRURAL MÉTODO 1 ENTITY mux IS PORT (d0, d1, d2, d3 : IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; q : OUT BIT ); END mux; ARCHITECTURE mux OF mux IS WITH s SELECT q <= d0 WHEN 0, d1 WHEN 1, d2 WHEN 2, d3 WHEN 3; END mux;

93 ESTRUTRURAL MÉTODO 1 ENTITY cont IS PORT (q: OUT INTEGER RANGE 3 DOWNTO 0; clk, en: IN BIT); END cont; ARCHITECTURE cont OF cont IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 3 DOWNTO TO 0; IF (clk 'EVENT AND clk = '1') THEN IF en = '1' THEN cnt := cnt + 1; q<= cnt; END PROCESS; END cont;

94 ESTRUTRURAL MÉTODO 1 ENTITY mae IS PORT (saida: OUT BIT; clock,enable,dado0,dado1,dado2, dado3 : IN BIT); END mae; ARCHITECTURE cir_32 OF mae IS SIGNAL x:integer RANGE 3 DOWNTO 0; COMPONENT mux PORT (d0, d1, d2, d3: IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; q : OUT BIT ); END COMPONENT; COMPONENT cont PORT (q: OUT INTEGER RANGE 0 TO 3; clk, en: IN BIT); END COMPONENT MUX1: MUX PORT MAP(D0=>DADO0, D1=>DADO1, D2=>DADO2, D3=>DADO3, S=>X, Q=>SAIDA); CONT1: CONT PORT MAP(EN=>ENABLE, CLK=>CLOCK, Q=>X); END circ_32;

95 ESTRUTRURAL COMANDO GENERATE...FOR y(2) x(2) y(1) x(1) y(0) x(0) ve b vem a vai F(1) b vem a vai F(2) b vem a vai va s s s s(2) s(1) s(0) Sinais internos

96 ESTRUTRURAL COMANDO GENERATE...FOR ENTITY SOM_N IS GENERIC(n:INTEGER:=3); -- Número -- De bits PORT(X, Y :IN BIT_VECTOR(n-1 DOWNTO 0); VE:IN BIT; VA:OUT BIT; S:OUT BIT_VECTOR(n-1 DOWNTO 0); END SOM_N; ARCHITECTURE SOM_N OF SOM_N IS SIGNAL F: BIT_VECTOR( N DOWNTO 0); COMPONENT SOM_1 IS PORT SOM_1(a, b, vem:in BIT; s,vai:out bit); END COMPONENT; F(0)<=VE; VA<=F(N); FOR i IN 0 TO N-1 GENERATE SOM_1_1:SOM_1 PORT MAP(a=>X(i), b=>y(i), vem=>f(i), s=>s(i), vai=>f(i+1)); END GENERATE; END SOM_N;

97 ESTRUTRURAL MÉTODO 2 PACOTE É UM ARQUIVO COMPILADO CONTENDO DECLARAÇÕES DE TIPOS, SINAIS GLOBAIS E COMPONENTES. O PACOTE TAMBÉM ARMAZENA CONSTANTES E SUBPROGRAMAS REGIÕES DE UM PACOTE: 1- DECLARAÇÃO DE UM PACOTE 2- CORPO DE UM PACOTE DECLARAÇÃO CORPO

98 ESTRUTRURAL MÉTODO 2 DECLARAÇÃO DO PACOTE. PACKAGE nome_pacote IS -- declaração de subprogramas, constantes, componentes, tipos, subtipos, variáveis. END nome_pacote CORPO DO PACOTE PACKAGE BODY nome_pacote IS -- declaração de subprogramas, constantes, componentes, tipos, subtipos, variáveis. -- Corpo de subprogramas END nome_pacote;

99 ESTRUTRURAL MÉTODO 2 EXEMPLO DE PACOTES SEM CORPO 1 PACKAGE exemplo_1 IS CONSTANT: INTEGER RANGE 0 TO 31:=20; END exemplo_1; 2 PACKAGE exemplo_2 IS COMPONENT X PORT(a,b:IN BIT; c:out BIT): END COMPONENT; COMPONENT Y PORT(d,e:IN BIT; f:out BIT): END COMPONENT; END exemplo_2;

100 ESTRUTRURAL MÉTODO 2 EXEMPLO DE PACOTE COM CORPO 1 PACKAGE exemplo_3 IS - - declaração do pacote FUNCTION AND3 (SIGNAL i0, i1, i2: IN BIT) RETURN BIT; FUNCTION OR3 ( SIGNAL i0, i1, i2:in BIT); RETUR BIT; END exemplo_3; 2 PACKAGE BODY exemplo_3 IS - - corpo do pacote FUNCTION AND3 (SIGNAL i0, i1, i2: IN BIT) RETURN BIT IS; RETURN (i0 AND i1 AND i2); END AND3; FUNCTION OR3 ( SIGNAL i0, i1, i2:in BIT); RETUR BIT IS; RETURN (i0 OR i1 OR i2); END OR3; END exemplo_3;

101 ESTRUTRURAL MÉTODO 2 EXEMPLO DO USO DE UM PACOTE USE WORK.EXEMPLO_3.ALL; ENTITY USO_PACOTE IS PORT(A, B, C: IN BIT; S_AND, S_OR: OUT BIT); END USO_PACOTE; ARCHITECTURE UP OF USO_PACOTE IS S_AND<= AND3(A, B, C); S_OR<=OR3(A, B, C); END UP;

102 ESTRUTRURAL MÉTODO 2 dado0 d0 dado1 dado2 dado3 d1 d2 d3 multiplexador s1 s0 q1 q0 q saida ENTIDADE MÃE en enable contador clk clock SINAL INTERNO

103 ESTRUTRURAL MÉTODO 2 ENTITY mux IS PORT (d0, d1, d2, d3 : IN BIT; s: IN INTEGER RANGE 3 DOWNTO 0; q : OUT BIT ); END mux; ARCHITECTURE mux OF mux IS WITH s SELECT q <= d0 WHEN 0, d1 WHEN 1, d2 WHEN 2, d3 WHEN 3; END mux;

104 ESTRUTRURAL MÉTODO 2 ENTITY cont IS PORT (q: OUT INTEGER RANGE 3 DOWNTO 0; clk, en: IN BIT); END cont; ARCHITECTURE cont OF cont IS PROCESS (clk) VARIABLE cnt : INTEGER RANGE 3 DOWNTO 0; IF (clk 'EVENT AND clk = '1') THEN IF en = '1' THEN cnt := cnt + 1; q<= cnt; END PROCESS; END cont;

105 ESTRUTRURAL MÉTODO 2 ENTITY mae IS PORT (saida: OUT BIT; clock,enable,dado0,dado1,dado2, dado3 : IN BIT); END mae; ARCHITECTURE cir_32 OF mae IS SIGNAL x:integer RANGE 0 TO 3; MUX1: MUX PORT MAP(D0=>DADO0, D1=>DADO1, D2=>DADO2, D3=>DADO3, S=>X, Q=>SAIDA); CONT1: CONT PORT MAP(EN=>ENABLE, CLK=>CLOCK, Q=>X); END circ_32;

106 ESTRUTRURAL MÉTODO 2 CRIAÇÃO DE UM PACOTE PARA USO DOS DISPLAYS DA PLACA DE-1 CÓDIGO DO PACOTE PACKAGE CURSO_ IS FUNCTION DISPLAY(CONSTANT VALOR_BIN:IN INTEGER) RETURN BIT_VECTOR; constant zero:bit_vector(6 downto 0):=" ";--a b c d e f g constant um:bit_vector(6 downto 0):=" "; constant dois:bit_vector(6 downto 0):=" "; constant tres:bit_vector(6 downto 0):=" "; constant quatro:bit_vector(6 downto 0):=" "; constant cinco:bit_vector(6 downto 0):=" "; constant seis:bit_vector(6 downto 0):=" "; constant sete:bit_vector(6 downto 0):=" "; constant oito:bit_vector(6 downto 0):=" "; constant nove:bit_vector(6 downto 0):=" "; END CURSO_; PACKAGE BODY CURSO_ IS FUNCTION DISPLAY(CONSTANT VALOR_BIN:IN INTEGER) RETURN BIT_VECTOR IS

107 ESTRUTRURAL MÉTODO 2 CRIAÇÃO DE UM PACOTE PARA USO DOS DISPLAYS DA PLACA DE-1 (CONT) CASE VALOR_BIN IS WHEN 0=>RETURN zero; WHEN 1=>RETURN UM; WHEN 2=>RETURN DOIS; WHEN 3=>RETURN TRES; WHEN 4=>RETURN QUATRO; WHEN 5=>RETURN CINCO; WHEN 6=>RETURN SEIS; WHEN 7=>RETURN SETE; WHEN 8=>RETURN OITO; WHEN 9=>RETURN NOVE; WHEN OTHERS=>RETURN " "; END CASE; END DISPLAY; END CURSO_;

108 ESTRUTRURAL MÉTODO 2 CRIAÇÃO DE UM PACOTE PARA USO DOS DISPLAYS DA PLACA DE-1 CÓDIGO DO CONTADOR use WORK.CURSO_.all; entity contador is port(clk,enable:in bit; q:out BIT_VECTOR(6 DOWNTO 0)); end contador; architecture contador of contador is begin process(clk) variable cnt:integer range 0 to 15; begin if clk'event and clk= '1' then if enable='1' then cnt:=cnt+1; if cnt=10 then cnt:=0; end if; end if; end if; q<=display(cnt); end process; end contador;

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona VHDL Lógica Síncrona Circuitos combinacionais respondem a estímulos com um atraso que depende de sua implementação Para sincronizar subsistemas em lógica combinacional utiliza-se barreiras temporais, que

Leia mais

Circuitos Seqüenciais

Circuitos Seqüenciais Circuitos Seqüenciais Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva Circuitos Seqüenciais Um circuito seqüencial síncrono consiste de um circuito combinacional e uma rede de memória formada por

Leia mais

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

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

Leia mais

Eletrônica Digital para Instrumentação

Eletrônica Digital para Instrumentação G4 Eletrônica Digital para Instrumentação Prof. Márcio Portes de Albuquerque (mpa@cbpf.br) Prof. Herman P. Lima Jr (hlima@cbpf.br) Centro Brasileiro de Pesquisas Físicas Ministério da Ciência e Tecnologia

Leia mais

VHDL. Descrição e Projeto de Circuitos Utilizando VHDL

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

Leia mais

Modelagem de Sistemas com VHDL

Modelagem de Sistemas com VHDL Modelagem de Sistemas com VHDL A abstração empregada por projetistas de sistemas digitais pode ser expressa em dois domínios: No domínio estrutural, um componente é descrito em termos de um conjunto de

Leia mais

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans LABORG Parte 3 - VHDL: Processos, Paralelismo e o Comando process Fernando Gehm Moraes Ney Laert Vilar Calazans 31/março/2014 Sumário Ø Introdução Ø Processos em VHDL Ø TRABALHO A FAZER Ø A ENTREGAR 2

Leia mais

Demonstração de imagens de auxílio didático. VHDL - Descrição e Síntese de Circuitos Digitais Roberto d Amore

Demonstração de imagens de auxílio didático. VHDL - Descrição e Síntese de Circuitos Digitais Roberto d Amore Demonstração de imagens de auxílio didático VHDL - Descrição e Síntese de Circuitos Digitais Roberto d Amore ISBN 85-216-1452-7 Editora LTC www.ltceditora.com.br Para imagens de um curso completo consulte:

Leia mais

Projetos de Circuitos Digitais em VHDL e FPGA

Projetos de Circuitos Digitais em VHDL e FPGA Projetos de Circuitos Digitais em VHDL e FPGA Cap. 2 - Introdução ao VHDL Prof. Erivelton Geraldo Nepomuceno Engenharia Elétrica UFSJ - Universidade Federal de São João del-rei 13 de março de 2019 Objetivo

Leia mais

VHDL Circuitos Combinacionais

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

Leia mais

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 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:

Leia mais

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

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.

Leia mais

Lab 3. Timing Timing Constraints Simulação

Lab 3. Timing Timing Constraints Simulação Lab 3 Timing Timing Constraints Simulação A. Mariano - 2014 1 VHDL processes Para um designer, process é um bloco de instruções que funciona de maneira sequencial e que é chaveado quando algum dos sinais

Leia mais

Organização e Arquitetura de Computadores II

Organização e Arquitetura de Computadores II Organização e Arquitetura de Computadores II Rômulo Calado Pantaleão Camara Romulo.camara@univasf.edu.br www.univasf.edu.br/~romulo.camara 60h/02h Disciplinas Correlacionadas Programação Org. e Arq. de

Leia mais

Aula 2 Semântica de VHDL

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:

Leia mais

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 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

Leia mais

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

Circuitos Sequenciais. Sistemas digitais

Circuitos Sequenciais. Sistemas digitais Circuitos Sequenciais Sistemas digitais Agenda } Introdução } Latchs (trava) } Latch NAND e Latch NOR } Flip-Flop Set-Reset (FF S-R) } FF S-R Latch NAND, FF S-R Latch NOR, FF S-R Latch NAND com Clock }

Leia mais

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

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,

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Módulo 4 Introdução ao VHDL

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;

Leia mais

Capítulo 7 Circuitos sequenciais: latches, flipflops, registradores, contadores

Capítulo 7 Circuitos sequenciais: latches, flipflops, registradores, contadores MC62 Mario Côrtes IC / Unicamp IC-UNICAMP MC 62 Circuitos Lógicos e Organização de Computadores IC/Unicamp Prof Mario Côrtes Capítulo 7 Circuitos sequenciais: latches, flipflops, registradores, contadores

Leia mais

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão. 14 3.2 Projeto da Unidade de Controle (VHDL) 3.2.1 Diagrama ASM (Algorithmic State Machine) ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema

Leia mais

CAPÍTULO 5 CONTADORES NA FORMA DE CIRCUITO INTEGRADO

CAPÍTULO 5 CONTADORES NA FORMA DE CIRCUITO INTEGRADO 1 CAPÍTULO 5 CONTADORES NA FORMA DE CIRCUITO INTEGRADO INTRODUÇÃO Devido a necessidade geral de contadores, já existem muitos contadores de forma de CI's. Na série TTL 74 os mais simples são o 74LS90,

Leia mais

Lógica Reconfigurável

Lógica Reconfigurável UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA MESTRADO EM SISTEMAS DE ENERGIA Lógica Reconfigurável - amauriassef@utfpr.edu.br

Leia mais

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1 Conteúdo Página Operações Lógicas Binárias: AND, OR...2 Operações Lógicas Binárias: OR Exclusivo (XOR)...3 Contatos Normalmente Abertos e Normalmente Fechados. Sensores e Símbolos... 4 Exercício...5 Resultado

Leia mais

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr.

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr. PCS3225 Sistemas Digitais II Biestáveis em VHDL Marcos A. Simplicio Jr. Slides baseados em material de Edson Midorikawa e Bruno Albertini PCS3225-2015 1 Tópicos VHDL: recapitulação Circuitos sequenciais

Leia mais

Circuitos Lógicos Aula 23

Circuitos Lógicos Aula 23 Circuitos Lógicos Aula 23 Rodrigo R. Paim ECI, LAND - UFRJ 09/06/2011 Circuitos Lógicos Aula 23 Aula Passada Aritmética Binária Representação binária com sinal Complemento a 2 Adição e Subtração Multiplicação

Leia mais

Tipos enumerados definem uma lista de valores, e são especialmente úteis na

Tipos enumerados definem uma lista de valores, e são especialmente úteis na Usando a palavra reservada TYPE é possível definir tipos personalizados. Por exemplo, pode-se definir tipos enumerados (Enumerated) e tipos compostos (Array). Tipos enumerados definem uma lista de valores,

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Descrição e Projeto de Circuitos Utilizando VHDL

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

Leia mais

Introdução à Linguagem VHDL

Introdução à Linguagem VHDL Sistemas Digitais EEL 480 Introdução à Linguagem VHDL Luís Henrique M. K. Costa luish@gta.ufrj.br UFRJ DEL/Poli e PEE/COPPE P.O. Box 68504 - CEP 21941-972 - Rio de Janeiro - RJ Brasil - http://www.gta.ufrj.br

Leia mais

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200. AULA 5 Aplicação com divisor de freqüência com o CI 74293. Livro Texto pág.197 a 200. 1. Contadores Assíncronos comerciais CI 74293. 1.1 Configuração Interna. 1.2 Bloco contador assincrono ou modulante,

Leia mais

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2 TIPO INTEGER 2 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FF3_tipoD_nivel IS PORT(CLK, RST, SET : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(2 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END FF3_tipoD_nivel;

Leia mais

Circuitos Digitais Cap. 6

Circuitos Digitais Cap. 6 Circuitos Digitais Cap. 6 Prof. José Maria P. de Menezes Jr. Objetivos Flip-Flops e Dispositivos Correlatos Latch com portas NAND Latch com portas NOR Sinais de Clock e Flip-Flops com Clock Flip-Flop S-C

Leia mais

VHDL. Prof. Maurício A Dias Laboratório de Lógica Digital

VHDL. Prof. Maurício A Dias Laboratório de Lógica Digital VHDL Prof. Maurício A Dias Laboratório de Lógica Digital Introdução VHDL é uma linguagem para descrever sistemas digitais utilizada universalmente. Origem: VHDL é proveniente de VHSIC Hardware Description

Leia mais

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 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

Leia mais

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)

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.

Leia mais

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr G03 Eletrônica Digital para Instrumentação Prof: hlima@cbpf.br Centro Brasileiro de Pesquisas Físicas Ministério da Ciência, Tecnologia e Inovação (MCTI) PACOTES (package) Entidades e Arquiteturas são

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto Circuitos Seqüenciais: Latches e Flip-Flops Fabrício Noveletto Objetivos Usar portas lógicas para construir latches básicos Explicar a diferença entre um latch S-R e um latch D Reconhecer a diferença entre

Leia mais

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 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

Leia mais

Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA

Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA Sistemas Digitais Reconfiguráveis Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA Liliana Rocha Nicolau Lopes da Costa 27611 Ano Lectivo de 2006/2007 Universidade de Aveiro 1. Objectivos

Leia mais

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

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

Leia mais

Figura 1 - Diagrama de um sistema de controle de temperatura que requer conversão analógico-digital para permitir o uso de técnicas de processamento

Figura 1 - Diagrama de um sistema de controle de temperatura que requer conversão analógico-digital para permitir o uso de técnicas de processamento 1 2 3 Figura 1 - Diagrama de um sistema de controle de temperatura que requer conversão analógico-digital para permitir o uso de técnicas de processamento digital - (Sistemas Digitais: Princípios e Aplicações

Leia mais

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 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

Leia mais

EA773 - Experimento 5

EA773 - Experimento 5 EA773 - Experimento 5 Wu Shin - Ting DCA - FEEC - Unicamp 19 de Novembro de 2009 O projeto consiste em implementar uma calculadora com memória com uso de barramento de 8 bits. Neste documento são discutidos

Leia mais

- Arquitetura de sistemas digitais- Cap 1 - Introdução

- Arquitetura de sistemas digitais- Cap 1 - Introdução - Arquitetura de sistemas digitais- Cap 1 - Introdução Prof. Alan Petrônio - www.ufsj.edu.br/alan - 2012 Conteúdos/propósitos deste capítulo: 1.1 - Relembrando conceitos 1.2 - Arquitetura de computadores

Leia mais

Índice. Modelos e Procedimentos

Índice. Modelos e Procedimentos Sumário Introdução ao projecto de lógica sequencial. Índice Modelos e Procedimentos Abstracção de elementos com estado Formas de lógica sequencial Representação de Máquinas de Estados Finitas Parte da

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan LABORG Parte 5 Projeto de um circuito digital de média complexidade Parte 2 Fernando Gehm Moraes Matheus Trevisan 0/maio/2015 Relógio de Xadrez 1. Em campeonatos, o xadrez é jogado usando um relógio. A

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 3ª Prática: Rotação de uma palavra nos Displays de 7 segmentos Data: 10/04/2014 Nome: Adrián

Leia mais

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS CAPÍTULO 5 CIRCUITOS SEQUENCIAIS Circuitos com memória Latches NAND e NOR e exemplos de utilização Estado do Flip-flop ao ligar o circuito Pulsos digitais Sinais de clock e flip-flops com clock circuitos

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

SISTEMAS DIGITAIS CIRCUITOS SEQUENCIAIS BÁSICOS

SISTEMAS DIGITAIS CIRCUITOS SEQUENCIAIS BÁSICOS CICUITO EUENCIAI BÁICO CICUITO EUENCIAI BÁICO - 2 UMÁIO: ELEMENTO BÁICO DE MEMÓIA LATCHE LATCH LATCH INCONIZADO LATCH D FLIP-FLOP FLIP-FLOP MATE-LAVE FLIP-FLOP JK FLIP-FLOP EDGE-TIGGEED IMBOLOGIA CAACTEIZAÇÃO

Leia mais

Profa. Luiza Maria Romeiro Codá 2

Profa. Luiza Maria Romeiro Codá 2 Profa. Luiza Maria Romeiro Codá 2 Descrição por Fluxo de Dados (Data Data-Flow low): Descreve o que o sistema deve fazer utilizando expressões lógicas e comandos concorrentes. Descrição Estrutural: Descreve

Leia mais

Marcos da Arquitetura de Computadores (1)

Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (2) Gerações de computadores Geração Zero Computadores Mecânicos (1642 1945) Primeira Geração Válvulas (1945 1955) Segunda

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2012 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

Sistemas Digitais I LESI :: 2º ano. Questões Práticas de Sistemas Sequenciais

Sistemas Digitais I LESI :: 2º ano. Questões Práticas de Sistemas Sequenciais Sistemas Digitais I LESI :: 2º ano Questões Práticas de Sistemas Sequenciais António Joaquim Esteves João Miguel Fernandes www.di.uminho.pt/~aje Bibliografia: secções 8.3.1, 8.4 (parte), 8.5 (parte), DDPP,

Leia mais

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS 1 PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS INTRODUÇÃO O processamento interno do CLP é digital e pode-se, assim, aplicar os conceitos de lógica digital para compreen8 der as técnicas e as linguagens

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 7ª Experiência Síntese de Circuitos Sequenciais Síncronos 1. Objetivos

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

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 Universidade Federal de Santa atarina entro Tecnológico epartamento de Informática e Estatística urso de Graduação em iências da omputação Lógica Programável INE 5348 Aula 4 Revisão de latches, flip-flops

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Capítulo VIII Registradores de Deslocamento e Contadores

Capítulo VIII Registradores de Deslocamento e Contadores Capítulo VIII Registradores de Deslocamento e Contadores 1 Introdução Vimos no capítulo anterior que flip-flops são dispositivos capazes de memorizar o seu estado (SET ou RESET). Neste capítulo estudaremos

Leia mais

ESTRUTURA CONDICIONAL

ESTRUTURA CONDICIONAL AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

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

Leia mais

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 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

Leia mais

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO Agosto/2004 V2 INTRODUÇÃO Este guia foi preparado para auxilio às aulas de laboratório para o curso de Engenharia

Leia mais

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

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

Leia mais

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS 92 CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS Sumário 6.. Introdução... 94 6... Máquina de Estados de Moore... 94 6..2. Máquina de Estados de Mealy... 95 6.2. Projeto de Redes Sequenciais...

Leia mais

PDA de Sistemas Digitais em Circuitos Programáveis

PDA de Sistemas Digitais em Circuitos Programáveis 56 PDA de Sistemas Digitais em Circuitos Programáveis Codificador FF LUTs 4 LUTs 3 CLBs If-Then-Else 0 3 0 2 With -Select 0 3 0 2 Case 0 3 0 2 Porta Lógica 0 3 0 2 Tabela 3.9 Recursos utilizados do FPGAs

Leia mais

MINICURSO: TÓPICOS EM VHDL. Prof. Leonardo Augusto Casillo

MINICURSO: TÓPICOS EM VHDL. Prof. Leonardo Augusto Casillo MINICURSO: TÓPICOS EM VHDL Prof. Leonardo Augusto Casillo O que significa VHDL? Very High Speed Integrated Circuit Hardware Description Language Linguagem de Descrição de Hardware com ênfase em Circuitos

Leia mais

Projeto de Máquinas de Estado

Projeto de Máquinas de Estado Projeto de Máquinas de Estado Organizado por Rodrigo Hausen. Original de Thomas L. Floyd. Versão 0: 15 de março de 2013 http://compscinet.org/circuitos Resumo Grande parte deste texto, exemplos e estrutura

Leia mais

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Contadores Contadores (cont.) Os contadores podem ser classificados por: Tipo de controle - Assíncrono - Síncrono Tipo de contagem

Leia mais

Projeto Dirigido: Genius

Projeto Dirigido: Genius Projeto Dirigido: Genius Genius era um brinquedo muito popular na década de 80 e que buscava estimular a memorização de cores e sons. Com um formato semelhante a um objeto voador não identificado, possuía

Leia mais

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 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 3-P Descrição de somadores em VHDL, síntese com o Quartus

Leia mais

Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET

Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET 1 Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET Técnicas Digitais A Laboratório nº 3: Somadores. Data do laboratório:

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Lógica Reconfigurável

Lógica Reconfigurável UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA MESTRADO EM SISTEMAS DE ENERGIA Lógica Reconfigurável - amauriassef@utfpr.edu.br

Leia mais

Portas lógicas e circuitos digitais. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Portas lógicas e circuitos digitais. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Portas lógicas e circuitos digitais Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Tópicos Portas Circuito somador Circuito subtrator flip-flops (registradores)

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER. Disciplina: Arquitetura de Computadores Turma: 3CC Data: 18/12/12 Nota: Professor: Renato E. N. de Moraes Semestre: 2012-2 Valor: 2,0 pt Aluno: Trabalho 01 - Projeto Neander O computador NEANDER foi criado

Leia mais

Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.

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

Leia mais

CIRCUITOS SEQUENCIAIS parte 1

CIRCUITOS SEQUENCIAIS parte 1 Fundamentos de Sistemas Digitais 21/outubro/2018 CIRCUITOS SEQUENCIAIS parte 1 profs. Alexandre M. Amory e Fernando G. Moraes 1 Referências Sugiro estudarem nesta ordem de preferência: Floyd, Cap 7 até

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Lógica Reconfigurável

Lógica Reconfigurável UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA MESTRADO EM SISTEMAS DE ENERGIA Lógica Reconfigurável - amauriassef@utfpr.edu.br

Leia mais

Lógica Reconfigurável

Lógica Reconfigurável UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA MESTRADO EM SISTEMAS DE ENERGIA Lógica Reconfigurável - amauriassef@utfpr.edu.br

Leia mais