Prof. Luiz Marcelo Chiesse da Silva VHDL. 1.Histórico

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

Download "Prof. Luiz Marcelo Chiesse da Silva VHDL. 1.Histórico"

Transcrição

1 VHDL 1.Histórico A linguagem VHDL deve o seu desenvolvimento à necessidade de uma ferramenta de projeto e documentação padrão para o projeto VHSIC - Very High Speed Integrated Circuit, do Departamento de Defesa dos Estados Unidos da América (DARPA). No ano de 1981, esse departamento patrocinou um encontro de especialistas para discutir os métodos para a descrição de circuitos. Em 1983, este departamento definiu os requisitos de uma linguagem de descrição de circuitos-padrão. Ainda nesse mesmo ano, foi concedido à "IBM", "Texas" e "Intermetrics", um contrato para o desenvolvimento da linguagem e respectivas ferramentas. A padronização da linguagem pelo IEEE teve como base a versão 7.2. O processo foi auxiliado pela empresa "CLSI", contratada por um laboratório da Força Aérea dos Estados Unidos, em No ano de 1987, após revisões propostas por acadêmicos e representantes de indústrias e do governo dos Estados Unidos, surgiu o padrão IEEE Em 1993, uma nova versão da linguagem, denominada IEEE , foi aprovada pelo IEEE. As alterações introduzidas nessa nova versão não acrescentam características significativas para a síntese de circuitos, sendo as principais diferenças entre as versões relacionadas com o tratamento de arquivos. Convém observar nas ferramentas de EDA qual a versão para a qual uma descrição pode ser compilada. Para adicionar facilidades à linguagem, foram propostos dois padrões, o IEEE 1164 e IEEE O primeiro define o pacote "StdJogic_1164", e o segundo os pacotes Numeric_std e Numeric_bit. Um pacote em VHDL, ou "package", fornece um meio para definição de recursos de uso comum, como tipos de dados, funções,... O pacote padrão da linguagem define vários tipos de dados, baseados no tipo "bit", que possui correlação mais direta com um dado a ser manipulado por um circuito digital. Vetores, ou arrays, contendo elementos do tipo "bit", são também definidos. Como o tipo "bit" pode assumir apenas os valores "0" ou 1, limitando, em muitos casos, o modelamento, foi criado o padrão 1164, que cobre esta limitação definindo novos tipos de dados que permitem modelar condições de alta impedância, e casos em que mais de uma porta aciona um mesmo nó. Os novos tipos de dados definidos modelam também situações normalmente encontradas na simulação de um circuito digital, como, por exemplo, um nó não inicializado. O padrão visa auxiliar a síntese de circuitos, propondo novos tipos de dados e funções. Operações aritméticas, como soma e multiplicação, somente são definidas em tipos de dados inteiros ou reais. No padrão são definidas funções que realizam essas operações em tipos de dados no formato de vetores, oferecendo mais opções para o projetista, tendo em vista que qualquer tipo de dado é convertido para um conjunto de bits no circuito implementado 1.2 ASPECTOS GERAIS DA LINGUAGEM Como a linguagem VHDL suporta projetos com múltiplos níveis de hierarquia, a descrição pode consistir na interligação de outras descrições menores, a um código que representa o comportamento esperado do circuito. Esses estilos são denominados estrutural e comportamental, e podem ser mesclados em uma mesma descrição. A estrutura hierárquica e a opção de combinar diversos estilos de descrição facilitam a condução de projetos complexos que partem de um nível mais elevado para um nível mais baixo de especificação, conhecidos como top-down design. As ferramentas de síntese suportam descrições de diferentes estilos, desde que o nível de abstração seja moderado. Para a inferência correta das estruturas, as construções empregadas devem seguir modos preferenciais indicados pelos fabricantes das ferramentas. UTFPR Cornélio Procópio 1

2 Com exceção de regiões específicas no código, todos os comandos são executados concorrentemente. Isto significa que a ordem na apresentação dos comandos é irrelevante para o comportamento da descrição. A ocorrência de um evento em um sinal leva à execução de todos os comandos sensíveis àquele sinal, da mesma forma que, em um circuito, a mudança de um valor em um determinado nó afeta todas as entradas ligadas a esse ponto do circuito. A mudança de valor em "b" na Figura 1.2.1, por exemplo, leva à execução conjunta dos comandos contidos nas linhas 8 e 9. A ordem da avaliação dos comandos executada pelo simulador é irrelevante, e o resultado será sempre o mesmo. As operações internas executadas pela ferramenta de simulação, contudo, são efetuadas sequencialmente. Assim, o simulador necessita de um mecanismo interno para armazenar o resultado de cada comando, até que a avaliação de todos os comandos envolvidos tenha sido realizada. Além dos tipos estabelecidos no pacote padrão, é possível definir novos tipos. Conforme visto, o padrão 1164 contém tipos que modelam condições não encontradas nos tipos do pacote padrão, como de alta impedância e não inicializado. A definição de novos tipos pode ser empregada, por exemplo, na representação dos estados de uma máquina. Neste caso, pode ser criada uma correspondência mais natural entre o estado da máquina e a maneira como ele é representado no código. Naturalmente, no processo de síntese é atribuída uma codificação binária para cada estado. O procedimento de teste de uma descrição pode ser comandado por outro código VHDL. Estímulos de teste podem ser definidos para comparar a correspondência entre o circuito descrito e a especificação do projeto. Uma vez disponível a estimativa de temporização do circuito sintetizado, o código de teste pode verificar se restrições como hold time e set-up time foram satisfeitas. Operações com arquivos são possíveis, mas demasiadamente abstratas para serem empregadas na síntese, sendo empregadas em códigos que objetivam o teste de outras descrições. Na linguagem VHDL não é feita nenhuma distinção entre comandos empregando caracteres maiúsculos ou minúsculos, como ocorre, por exemplo, na linguagem C. Os comentários se iniciam após dois hifens seguidos, "-", e terminam no final da linha. Devido a sua potencialidade, a linguagem VHDL é complexa, e muitas vezes de difícil entendimento, dadas as inúmeras opções para modelar o comportamento de um mesmo circuito. Entretanto, o entendimento de um pequeno número de comandos, suficiente para o modelamento de estruturas medianamente complexas, pode ser rapidamente atingido. A necessidade de projetos mais complexos encaminha à procura por novos comandos levando à uma maior compreensão das opções da linguagem. 1.3 SÍNTESE DE CIRCUITOS A linguagem VHDL não foi originalmente concebida para a síntese de circuitos digitais; assim, nem todas as construções definidas são suportadas pelas ferramentas de síntese. As limitações devem-se à falta de correspondência da construção com um circuito digital, à impossibilidade da síntese com precisão, ou à falta de detalhamento para uma síntese direta. Essas limitações não devem ser consideradas como um problema da ferramenta de síntese ou da linguagem, mas sim uma falha na própria descrição que está por demais afastada de um circuito real. Um projetista pode propor na descrição, por exemplo, um elemento de memória sensível junto à borda de descida como à borda de subida de um sinal de relógio. Do ponto de vista de um simulador VHDL, a descrição pode ser simulada com sucesso; entretanto, a ferramenta de síntese poderá não sintetizar a descrição por falta de um elemento desse tipo no mundo físico. Uma multiplicação de dois valores reais é permitida pela linguagem; na prática, seria necessária uma UTFPR Cornélio Procópio 2

3 unidade de multiplicação de ponto flutuante, que é, certamente, muito complexa. Outro exemplo é a inclusão de uma cláusula de atraso em um sinal. Esse recurso é útil para o modelamento de um circuito real; contudo, se o funcionamento do circuito depende de um valor específico de tempo, a descrição não é sintetizada corretamente. A impossibilidade de gerar atrasos em um circuito digital sem o auxílio de uma base de tempo leva as ferramentas de síntese a ignorar esses comandos. Os três passos em um projeto empregando uma linguagem de descrição de circuitos são apresentados na figura A partir da especificação de um projeto, é gerada uma descrição VHDL, que é submetida a um simulador para a verificação da correspondência entre a especificação e o código. A mesma descrição é interpretada por uma ferramenta de síntese que infere as estruturas necessárias para um circuito que corresponda à descrição. O resultado desta etapa é um arquivo contendo uma rede de ligações de elementos básicos disponíveis na tecnologia do dispositivo empregado. Este arquivo contendo a rede de ligações é a base de dados para a ferramenta que realiza o posicionamento e a interligação dos componentes, place and route. A saída da ferramenta de posicionamento e interligação é um arquivo que contém os dados necessários para a confecção do dispositivo. A etapa de elaboração da descrição é ilustrada na Figura Como a linguagem VHDL permite descrever um mesmo circuito com diversos graus de abstração, o código gerado inicialmente pode conter estruturas por demais abstratas que não permitem a síntese direta. Um processo iterativo de simulações e detalhamento dos elementos da estrutura é executado até ser atingida uma descrição que permita a síntese, e até que as simulações assegurem a equivalência entre a especificação do projeto e a descrição proposta. Uma vez completa a descrição, dá-se início ao processo de síntese (ver Figura 1.3.3). A ferramenta de síntese, após a verificação de erros de sintaxe, executa o processo de inferência e interligação das estruturas necessárias para o circuito a ser gerado a partir da descrição. Nesta etapa, é gerado um circuito no nível RTL Register Transfer Level, empregando primitivas disponíveis na ferramenta, como comparadores, somadores, registradores e portas lógicas. O circuito gerado nesta etapa não está associado a nenhuma tecnologia de fabricação em particular, e não está, necessariamente, otimizado. A próxima etapa do processo de síntese é a geração de um novo circuito a partir da estrutura no nível RTL. A diferença entre os dois circuitos consiste nos elementos utilizados, enquanto no nível RTL são empregadas primitivas genéricas da ferramenta; nesta etapa, o circuito contém unicamente elementos disponíveis na tecnologia empregada para a fabricação. Assim, é necessário especificar o dispositivo empregado para a realização desta etapa. Muitas vezes a ferramenta pode lançar mão de informações adicionais, fornecidas pelo fabricante do dispositivo, que levam a síntese mais eficiente de módulos específicos para realizar operações aritméticas, contadores,.... Uma minimização é considerada nesta etapa e considera dois parâmetros geralmente conflitantes: otimização de custo e otimização para velocidade. 2.Compilação e síntese de circuitos em VHDL no ISE Xilinx: Criar um novo projeto no ISE: UTFPR Cornélio Procópio 3

4 Definir o nome, local e diretório de trabalho do projeto, definindo o seu tipo de código fonte como HDL: Definir o tipo de dispositivo de lógica reconfigurável e a linguagem preferencial como VHDL: UTFPR Cornélio Procópio 4

5 Finalizar o projeto: Criar um novo arquivo do tipo texto: UTFPR Cornélio Procópio 5

6 Salvar o arquivo como o tipo VHDL: UTFPR Cornélio Procópio 6

7 UTFPR Cornélio Procópio 7

8 Adicionar o arquivo criado ao projeto: UTFPR Cornélio Procópio 8

9 2. Estrutura geral de um código em linguagem de descrição de hardware VHDL: -- Uma linha de comentário é iniciada com dois traços A entidade de projeto representa em VHDL a descrição do circuito digital a ser desenvolvido, -- sendo composta pela declaração da entidade e arquitetura da entidade -- A declaração de entidade é a parte inicial da descrição do circuito, definindo as entradas e saídas do circuito digital e -- os dados a serem utilizados internamente no circuito, como constantes e variáveis entity entidade is generic (n : integer :=5); port ( a,b : in bit; UTFPR Cornélio Procópio 9

10 end entidade; c,d : in boolean; e,f : in integer; g,h : in natural; I,j : in positive; k,l : in real; m,n : in character; o,p : in time; q,r : in bit_vector (3 downto 0); s,t : in bit_vector(3 to 0); e,f : buffer tipo_3; g,h : inout tipo_4); -- A arquitetura de uma entidade define o circuito de processamento dos dados definidos anteriormente na declaração da -- entidade architecture arquitetura of entidade is -- Declaração dos objetos de dados, suas classes e seus tipos constant constante_1 : bit; constant constante_2 : integer :=2; variable variavel_1 : boolean; variable variavel_2 : natural :=10; signal sinal_1 : integer; signal sinal_2 : integer :=3; -- Início da descrição do circuito de processamento begin end arquitetura; A estrutura geral de uma descrição de circuito digital em linguagem VHDL é dada pela declaração da entidade (entity) e pela arquitetura (architecture) desta entidade, que descreve o circuito propriamente dito. A cláusula generic na declaração da entidade descreve informações estáticas para a entidade, e a cláusula ports define as entradas e saídas do circuito definido pela entidade. Há quatro modos possíveis para uma porta: - in; - out; - buffer; - inout; Os modos in define uma entrada do circuito, out determina uma saída do circuito, o buffer define uma saída que funciona como uma variável do circuito, i.e., cujo valor pode ser modificado pelo processamento interno do circuito, e o modo inout define um mesmo port que pode funcionar como entrada e saída (bidirecional). Cada port criado possui um tipo específico para sua dimensão (número de bits utilizado), pois é tratado como um objeto na descrição do circuito. Os tipos possíveis para os ports são bit, boolean, integer, vector_bit 1. Cláusulas de declaração da entidade: 1.1. Generic Valores de constantes utilizadas no circuito. UTFPR Cornélio Procópio 10

11 Exemplo: Entity generico is generic (a : constant:=2; b : integer); port (c : in integer; saida : out bit); end generico; Architecture funcionamento of generico is saida <= (c + a - b); End funcionamento; 1.2. Port Tipos de Ports: - IN Define os Ports de entrada, sendo equivalentes às interfaces de entrada da entidade, como os pinos de entrada de um circuito digital. Entity portas is port (e0, e1, e2, e3 : in bit; saida : out bit); end portas; Architecture funcionamento of portas is saida <= (e0 and e1 and not e2) or (e1 and not e2 and e3); End funcionamento; - OUT Define o Port como uma saída, como a interface de saída com outras entidades, equivalente aos pinos de saída do circuito digital. Entity portas is port (e0, e1 : in bit; s0, s1 : in bit; saida1, saida2 : out bit); end portas; Architecture funcionamento of portas is saida1 <= (e0 and not s0); saida2 <= (e1 or s1); End funcionamento; - BUFFER Tipo de port de saída cujo valor possui armazenamento dentro da arquitetura da entidade. Equivalente a uma variável de saída cujo valor pode ser modificado diretamente pela arquitetura da entidade. Entity portas is port (e0, e1 : in bit; s0, s1 : in bit; UTFPR Cornélio Procópio 11

12 end portas; saida1, saida2 : buffer bit); Architecture funcionamento of portas is saida1 <= (e0 and not s0); saida2 <= (e1 or s1); End funcionamento; - INOUT Port de saída da entidade equivalente a pinos de comunicação bidirecional de um circuito digital. Os circuitos no qual a entidade será conectada devem possuir um pino bidirecional a ser conectado ao pino definido por este tipo de port. Entity portas is port (e0, e1 : in bit; s0, s1 : in bit; e_s1, e_s2 : inout bit); end portas; 2. Classe de Objetos: - Constant - Variable - Signal - File Architecture funcionamento of portas is saida1 <= (e0 and not s0); saida2 <= (e1 or s1); End funcionamento; 3. Tipos de Dados: 3.1. Tipos escalares Tipo Valores possíveis Exemplos Bit 1,0 (1 bit) Boolean true, false (1 bit) Character caracteres da tabela ASCII (16 bits) Integer x = x (64 bits) 123, 8#173#, 16#7B#, 2#11_11_011# Natural 0 x = 0 x (32 bits) 123, 8#173#, 16#7B#, Positive 1 x = 1 x (32 bits) 2#11_11_011# Real -3,65x10 47 x 3,65x10 47 = x 1.23, 1.23E+2, #7.BE+1 Time fs, ps, ns, us, ms, sec, min, hr 1 us, 3 ps, 100 fs 3.2. Tipos Compostos Tipo Valores possíveis Exemplos Bit_Vector 1, , B 10_10, O 12, X A String caracter text, aspas duplas 3.3. Definição de novos tipos - Utiliza a definição TYPE 4. Operadores UTFPR Cornélio Procópio 12

13 Classe Operadores Lógicos and operação lógica E or operação lógica OU nand operação lógica Não E nor operação lógica Não OU xor operação lógica OU Exclusivo xnor operação lógica Não Ou Exclusivo ( OU Inclusivo) Relacionais = - operador relacional de igualdade /= - operador relacional de desigualdade < - operador relacional menor <= - operador relacional menor ou igual > - operador relacional maior >= - operador relacional maior ou igual Deslocamento sll - operador de deslocamento lógico à esquerda (o último bit é preenchido com zero) srl - operador lógico de deslocamento à direita (o último bit é preenchido com zero) sla - operador aritmético de deslocamento à esquerda (repete o último bit deslocado) sra - operador aritmético de deslocamento à direita (repete o último bit deslocado) rol - operador de rotação à esquerda ror - operador de rotação à direita Adição + - operador matemático de soma - - operador matemático de subtração & - operador de concatenação Sinal Multiplicação * - operador aritmético de multiplicação / - operador aritmético de divisão mod operador aritmético módulo rem resto da operação de divisão Outros ** - operador de exponenciação abs operador de valor absoluto not - 5. Comandos 5.1. Atribuição - <= A atribuição de um valor para um sinal é efetuada pelo delimitador <=. Observa-se que não se trata do operador relacional menor ou igual, mas da simbologia de uma seta apontando para a esquerda, indicando que o valor à esquerda do delimitador será atribuído ao sinal indicado à direita. Entity selecionar is port (e0, e1, e2, e3 : in bit; UTFPR Cornélio Procópio 13

14 end selecionar; s0, s1 : in bit; saida : out bit); Architecture selecionando of selecionar is saida <= (e0 and not s0 and not s1) or (e1 and not s0 and s1) or (e2 and s0 and not s1) or (e3 and s0 and s1); End selecionando; 5.2. When...Else - O valor de uma expressão é atribuído a um sinal de destino de acordo com uma lista de opções, sendo atribuído o valor da primeira opção verdadeira da lista. Entity selecionar is port (e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is saida <= e0 and e1 WHEN expressao=0 ELSE e1 WHEN expressao=1 or expressao=2 ELSE e2 or e0 WHEN expressao=12 ELSE e3; End selecionando; 5.3. With Select - O valor de uma expressão é atribuído a um sinal de destino de acordo com uma lista de opções, todas consideradas pelo comando e mutuamente exclusivas. Entity selecionar is port (e : in integer; e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0, e1 WHEN 1, End selecionando; e2 or e0 WHEN 12, e3 WHEN OTHERS; 5.4. Block - Utilizado para organizar o código em blocos para facilidade de geração do código fonte. Entity selecionar is port (e0, e1, e2, e3 : in bit; UTFPR Cornélio Procópio 14

15 end selecionar; saida : out bit); Architecture selecionando of selecionar is signal global : bit_vector(0 to 1); abc: block end block abc; def: begin ot <= e0 WHEN global = 00 else e1 WHEN global = 01 else e2 WHEN global = 10 else e3; block signal interno_def : bit_vector(0 to 1); with sel select interno_def <= 00 when 0, 01 when 1, 10 when 2, 11 when others; Global <= End block_def; End selecionando; interno_def; 5.5. Process - Define um trecho de código de comandos sequenciais, sendo composto de duas partes: a declaração e os comandos sequenciais. A primeira parte define a declaração de tipos, subtipos, constantes, variáveis,... (sinais não são permitidos), e a segunda define o trecho de comandos sequenciais para uma parte ou para toda a descrição. Um rótulo pode definir um comando PROCESS que pode ser seguido por uma lista de sensibilidade. Esta lista define sinais cuja mudança em seus valores irá executar o processo. Entity selecionar is port (e, e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 e2 or e0 WHEN 12 UTFPR Cornélio Procópio 15

16 End selecionando; e3 WHEN OTHERS; 5.6. Unaffected - Atribui um valor a um sinal, mas não modifica este valor do mesmo. Utilizada em comandos ou expressões em que é necessária uma atribuição de valor. Entity n_afeta is port (sel : bit_vector(1 downto 0); saida0, saida1 : buffer bit); end n_afeta; Architecture funcionamento of n_afeta is WITH e SELECT Saida1 <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 End funcionamento; e2 or e0 WHEN 12 UNAFFECTED WHEN OTHERS; 5.7. If Then Else - The if keyword is a sequential statement used for describing conditional logic, The condition expression of an if statement must be a Boolean logic expression (meaning that it must evaluate to a True or False value). If statements are sequential, and may only be used in processes, procedures or functions. Entity selecionar is port (e, e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 End selecionando; e2 or e0 WHEN 12 e3 WHEN OTHERS; 5.8. Case When - O valor de uma expressão é atribuído a um sinal de destino de acordo com uma lista de opções, todas consideradas pelo comando e mutuamente exclusivas. Case é uma instrução sequencial utilizada dentro de um processo, procedimento ou função que seleciona e executa uma sequência de comandos entre uma lista de alternativas, com base no valor de uma determinada expressão. A expressão deve ser do tipo discreto ou matriz unidimensional. Uma declaração case inclui: (1) a palavra reservada "case", (2) a expressão a ser avaliada, (3) a palavra reservada "is", UTFPR Cornélio Procópio 16

17 (4) a palavra reservada "when", seguida de uma escolha e seqüência de instruções a ser executada se a expressão avaliada foi escolhida, (5) opcionalmente, subsequente when" declarações semelhantes a ( 4 ), (6) opcionalmente, as palavras reservadas "when others", seguido pela seqüência de instruções a serem executadas se a expressão for avaliada com qualquer outro valor que não os especificados nas declarações acima, (7) as palavras reservadas "end case". Como esta instrução escolhe apenas uma alternativa para a execução, todos os valores possíveis para a expressão devem ser cobertos de declarações "when". Uma declaração case se distingue de uma cadeia de declarações if-then-else em que nenhuma prioridade é implícita para as condições especificadas. Entity selecionar is port (e, e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 End selecionando; e2 or e0 WHEN 12 e3 WHEN OTHERS; 5.9. Wait - Utilizado para suspender temporariamente o processo até que: (1) um determinado momento passou ("wait" seguido de uma expressão de tempo); (2) ou uma condição especificada for atendida ("wait until", seguida por uma expressão booleana); (3) ou um evento que afeta um ou mais sinais ("wait" seguido de uma lista de sensibilidade que especifica os sinais em cada um dos quais um evento deve ocorrer antes da transformação continua). Quando uma instrução de espera é utilizada dentro de um processo, o processo não deve incluir uma lista de sensibilidade. Exemplo: Entity selecionar is port (e, e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 End selecionando; e2 or e0 WHEN 12 e3 WHEN OTHERS; UTFPR Cornélio Procópio 17

18 5.10. Null - Nulo é uma afirmação que não executa nenhuma ação. A declaração nulo pode ser usado em situações em que é necessário especificar explicitamente que nenhuma ação é necessária. Por exemplo, uma declaração nulo pode ser útil em um comunicado caso em que todas as alternativas devem ser especificados, mas onde pode ser necessária nenhuma ação para algumas alternativas. Exemplo: D1 <= 0 ; -- Default values... Strobe <= 0 ; Rdy <= 0 ; case current_state is when S0 => D1 <= 1 ; when S1 => Strobe <= 1 ; when S2 => Rdy <= 1 ; when others => null; end case; After - Utilizada em instruções de atribuição de sinal para indicar um valor de atraso antes da atribuição do sinal ocorrer. A instrução de atribuição de sinal que contém esta cláusula inclui, nesta ordem, o nome do objeto de sinal, o símbolo de atribuição de sinal reservado "<=", a palavra-chave "transport" (opcional), uma expressão que especifica o valor a ser atribuído ao sinal, a palavra reservada "after", e o valor do atraso (do tipo "time") após o qual a atribuição de sinal será efetuada. Se a cláusula after não está presente na declaração de atribuição de um sinal, é assumida uma cláusula implícita "after 0 ns". Clk <= not Clk after 50 ns;... Waveform <= transport 1 after 100 ps; Transport - Especificar um atraso não-inercial em uma instrução de atribuição de sinal. Waveform <= transport 1 after 10 ns; Componentes - Definir a interface para uma entidade de nível inferior. O componente pode ser incluído numa declaração de instanciação incluída no corpo de uma arquitetura, permitindo a uma entidade ser usada como parte de outra entidade. A declaração de componente deve ser inserida na seção de declaração da arquitetura, ou em um pacote visível para a arquitetura. Exemplo: component my_adder port(a,b,cin: in std_ulogic; Sum,Cout: out std_ulogic); end component; Generate UTFPR Cornélio Procópio 18

19 Usada para gerar uma das seguintes opções: (1) replicar um conjunto de demonstrações simultâneas (uma para geração); (2) executar seletivamente um conjunto de instruções simultâneas se uma condição especificada é cumprida (if generate). Para replicar um conjunto de instruções simultâneas deve-se seguir esta ordem: (a) um marcador para a geração, seguido pela palavra reservada "for", seguido por uma especificação de parâmetros; (b) a palavra reservada "generate", (c) as declarações simultâneas a serem replicadas; (d) as palavras reservadas "end generate". Para executar seletivamente um conjunto de instruções simultanemente inclui esta ordem: (a) um rótulo para o generate seguido da palavra reservada "if" e sua condição; (b) a palavra reservada "generate"; (c) as declarações simultâneas a serem executadas se a condição apresentada em (a) é verdadeira; (d) as palavras reservadas "end generate". Exemplo: G: for I in 0 to (WIDTH - 2) generate -- This generate statement creates the first -- XOR gate in the series... G0: if I = 0 generate X0: xor2 port map(a => D(0), B => D(1), Y => p(0)); end generate G0; -- This generate statement creates the middle -- XOR gates in the series... G1: if I > 0 and I < (WIDTH - 2) generate X0: xor2 port map(a => p(i-1), B => D(i+1), Y => p(i)); end generate G1; -- This generate statement creates the last -- XOR gate in the series... G2: if I = (WIDTH - 2) generate X0: xor2 port map(a => p(i-1), B => D(i+1), Y => ODD); end generate G2; end generate G; Loop - Executa uma série de instruções seqüenciais várias vezes, e pode incluir uma declaração "while" ou um for. As declarações loop devem incluir, nesta ordem: (a) um rótulo opcional; (b) a palavra reservada "while" seguida da condição de controle de execução da série de declarações seqüenciais dentro do loop, seguido da palavra reservada "loop"; (c) a série de declarações seqüenciais a ser executada se a condição em (b) é verdadeira; (d) as palavras reservadas "end loop" seguida de um rótulo opcional (deve ser o mesmo que o utilizado no item a). Exemplo: while ( I < DBUS'length ) loop... I: I + = 1 ; end loop; UTFPR Cornélio Procópio 19

20 Uma declaração loop utilizando o "for" inclui: (a) um rótulo opcional; (b) a palavra reservada "for", seguida de uma especificação de parâmetro e da palavra "loop"; (c) a série de instruções sequenciais a ser executada para os exemplos definidos na especificação de parâmetros em (b); (d) as palavras reservadas "end loop", seguido do rótulo opcional do item ( a). Exemplo: for I in 0 to DBUS length - 1 loop... end loop; Uma declaração de loop sem esquema de iteração inclui: (a) um rótulo de loop opcional; (b) a palavra reservada "loop"; (c) a série de instruções sequenciais para ser executada; (d) as palavras reservadas "end loop" seguido do rótulo de loop opcional (o mesmo que o rótulo definido no item a). Uma declaração de loop sem esquema de iteração continua sua execução até que alguma ação de parada. Isso pode ser feito usando uma declaração "exit", "next", ou "return" dentro do loop. Exemplo: loop exit when I = DBUS length; I := I + 1; end loop; Next - Declaração permitida dentro de um loop que faz com que a iteração atual seja encerrada e reinicia o loop nos ciclos do início da próxima iteração. A declaração seguinte inclui a palavra reservada "next", um rótulo opcional (que deve ser o mesmo do circuito em que a próxima instrução ocorre) e opcionalmente a palavra reservada "when" seguida por uma condição que, quando verdadeira, faz com que a declaração "next" seja executada. Se o "when" não for incluído, a próxima declaração "next" é executada Exit - Declaração seqüencial usada em um loop encerrando sua execução. Uma instrução exit só pode ser utilizada em um loop e pode incluir uma condição while opcional. Uma instrução exit inclui a palavra reservada "exit", um rótulo opcional identificador do loop (se nenhum identificador é fornecido, a declaração exit é aplicada ao loop em que ocorre) e opcionalmente a palavra reservada "when" seguida da condição a ser executada. Exemplo: for idx in vectors range loop apply_vector(vec(idx)); wait for PERIOD; if done = 1 then exit; end if; end loop; UTFPR Cornélio Procópio 20

21 6. Subprogramas 6.1. Função - A instrução de função define um grupo de instruções seqüenciais que retornam um único valor. A especificação da função inclui a palavra reservada function seguida do nome da função, uma lista de parâmetros (que só pode incluir constantes e objetos de sinal, e todos devem ser do modo in), a palavra reservada "return" e o tipo do valor a ser retornado pela função. Exemplo: function to_unsigned (a: std_ulogic_vector) return integer is alias av : std_ulogic_vector (1 to a'length) is a; variable ret,d : integer; begin d := 1; ret := 0; for i in a'length downto 1 loop if (av(i) = '1') then ret := ret + d; end if; d := d * 2; end loop; return ret; end to_unsigned; 6.2. Procedimento - Um procedimento é um grupo de instruções sequenciais a ser executado quando o procedimento é chamado. Um procedimento não tem um valor de retorno, mas em vez disso pode retornar qualquer número de valores (ou nenhum valor) via lista de parâmetros. Parâmetros de um procedimento possuem um modo ao qual estão associados (por exemplo, in, out, inout). Os valores são retornados usando o modo out ou modo inout. A especificação do procedimento inclui a palavra reservada "procedure", o nome do procedimento, e uma lista de parâmetros do processo (que podem ser constantes, sinais ou variáveis, cada uma com modos que podem ser in, out, ou inout). Exemplo: procedure dff (signal Clk,Rst,D; in std_ulogic; signal Q: out std_ulogic) is begin if Rst <= 1 then Q <= 0 ; elsif rising_edge(clk) then Q <= D; end if; end procedure; 7. Bibliotecas e Pacotes 7.1. Bibliotecas - O valor de uma expressão é atribuído a um sinal de destino de acordo com uma lista de opções, todas consideradas pelo comando e mutuamente exclusivas. UTFPR Cornélio Procópio 21

22 Entity selecionar is port (e, e0, e1, e2, e3 : in bit; saida : out bit); end selecionar; Architecture selecionando of selecionar is WITH e SELECT saida <= e0 and e1 WHEN 0 e1 WHEN 1 or 2 End selecionando; e2 or e0 WHEN 12 e3 WHEN OTHERS; 7.2. Pacotes - The package keyword specifies a set of declarations which can include the following items: aliases, attributes, components, constants, files, functions, types, and subtypes. A package declaration can also include attribute specifications, disconnection specifications, and use clauses. By grouping common declarations in a package declaration, the package declaration can be imported and used in other design units. Example package conversions is function to_unsigned (a: std_ulogic_vector) return integer; function to_vector (size: integer; num: integer) return std_ulogic_vector; end conversions; ABS ACCESS AFTER ALIAS ALL AND ARCHITECTURE ARRAY ASSERT ATTRIBUTE BEGIN BLOCK BODY BUFFER BUS CASE COMPONENT CONFIGURATION CONSTANT DISCONNENT DOWNTO ELSE ELSIF END END BLOCK END CASE END COMPONENT END FOR END GENERATE END IF END LOOP END PROCESS END RECORD END UNITS ENTITY EXIT FILE FOR FUNCTION GENERATE GENERIC GENERIC MAP GROUP GUARDED IF IMPURE IN INERTIAL INOUT IS LABEL LIBRARY LINKAGE LITERAL LOOP MAP MOD NAND NEW NEXT NOR NULL OF ON OPEN OR OTHERS OUT PACKAGE PACKAGE BODY PORT PORT MAP POSTPONED PROCEDURE PROCESS PURE RANGE RECORD REGISTER REJECT REM REPORT RETURN ROL ROR SELECT SEVERITY SIGNAL SLA SLL SRA SRL UTFPR Cornélio Procópio 22

23 SUBTYPE THEN TO TRANSPORT TYPE UNAFFECTED UNITS UNTIL USE VARIABLE WAIT WHEN WHILE WITH XNOR XOR Referências: - D AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2 a ed. LTC, UTFPR Cornélio Procópio 23

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

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

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

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

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Linguagem VHDL Bibliotecas e Tipos de Dados STD STD_LOGIC_1164 Constantes, Variáveis, Sinais, Arrays, Range Expressões (Operadores) Exemplos

Leia mais

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

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

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

Prof. Leonardo Augusto Casillo

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

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

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

Introdução à Linguagem VHDL

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

Leia mais

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE

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

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

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

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

Conteúdo. Estrutura do código VHDL; Objetos; Tipos; Universidade Federal do Ceará Engenharia da Computação 2

Conteúdo. Estrutura do código VHDL; Objetos; Tipos; Universidade Federal do Ceará Engenharia da Computação 2 Conteúdo Estrutura do código VHDL; Objetos; Tipos; Engenharia da Computação 2 Engenharia da Computação 3 Armazenamento de código compilado; As bibliotecas são compostas por pacotes; A declaração de um

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

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

Arquitetura de Computadores

Arquitetura de Computadores VHDL - VHSIC Hardware Description Language Arquitetura de Computadores Leonardo Augusto Casillo Referências bibliográficas PELLERIN, David. TAYLOR, Douglas. VHDL Made Easy. Prentice-Hall PTR. 1997. SKANHILL,

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

Projeto com Linguagens de Descrição de Hardware

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.

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

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

Leia mais

ELETRÔNICA DIGITAL I

ELETRÔNICA DIGITAL I ELETRÔNICA DIGITAL I DE10-LITE Programação Utilizando VHDL Professor Dr. Michael Klug 1 Comparativo Linguagens Linguagem de Programação x HDL Supondo que cada instrução leve 20ns entre 40 e 60ns para conclusã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

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

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

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

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Revisão: Projeto de Processadores em VHDL

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

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

Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições

Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições Prof. Alan Petrônio Pinheiro - 2011 Introdução VHDL é uma linguagem de descrição de hardware Hardware Description

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Linguagem de Descrição de Hardware

Leia mais

FPGA & VHDL. Tutorial

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

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 Lógica Programável INE 5348 Aula 1-P Formas de implementação

Leia mais

Circuitos combinatórios. (Revisão)

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

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

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

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,

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

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

Calculadora Simples em VHDL

Calculadora Simples em VHDL Calculadora Simples em VHDL Versão 2014 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. São apresentados

Leia mais

Exercícios Referentes à Prova P1

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

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

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado

Leia mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program

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

Tipos Primitivos, estruturas de iteração e decisão.

Tipos Primitivos, estruturas de iteração e decisão. Tipos Primitivos, estruturas de iteração e decisão. André Luis Meneses Silva andreluis.ms@gmail.com http://br.geocities.com/programacao2ufs/ Agenda Tipos Primitivos de Dados Variáveis e Constantes es Comandos

Leia mais

Programação Introdução

Programação Introdução PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,

Leia mais

Primeiro Trabalho de Sistemas Digitais

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

Leia mais

DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE DO MINHO

DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE DO MINHO Sistemas Digitais I LESI :: 2º ano VHDL António Joaquim Esteves João Miguel Fernandes www.di.uminho.pt/~aje Bibliografia: secção 4.7, DDPP, Wakerly DEP. DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE

Leia mais

Funções de Lógica Combinacional

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

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

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo

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

Projetos de Sistemas Digitais com VHDL - Parte I

Projetos de Sistemas Digitais com VHDL - Parte I Projetos de Sistemas Digitais com VHDL - Parte I VHDL Modelamento Estrutural Prof. Dr. Leonardo Mesquita Departamento de Engenharia Elétrica DEE/FE-G/UNESP Versão 1.0-2005 Como desenvolver modelos VHDL

Leia mais

FSM em VHDL e Verificação Funcional. CMP de junho de 2006

FSM em VHDL e Verificação Funcional. CMP de junho de 2006 FSM em VHDL e Verificação Funcional CMP 238 20 de junho de 2006 Máquina de Estados: exemplo Reset= S0 S S3 X= S2 Descrição em VHDL library IEEE; use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL;

Leia mais

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc. O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes

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

Capítulo 8. Estruturas de Controle no Nível de Sentença

Capítulo 8. Estruturas de Controle no Nível de Sentença Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

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

FPGA & VHDL. Tutorial Aula 1. Computação Digital

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

Leia mais

Introdução VHDL Parte 4 - Testbench

Introdução VHDL Parte 4 - Testbench Introdução VHDL Parte 4 - Testbench Prof. Mário Luiz Rodrigues mario.luiz@ifmg.edu.br Prof. Otávio Gomes otavio.gomes@ifmg.edu.br 1 library IEEE; use IEEE.std_logic_1164.all; entity portae is port( a:

Leia mais

PRÁTICAS PARA DESENVOLVIMENTO DE PROTÓTIPOS DE CIRCUITOS DIGITAIS COM O KIT EDUCACIONAL DE2

PRÁTICAS PARA DESENVOLVIMENTO DE PROTÓTIPOS DE CIRCUITOS DIGITAIS COM O KIT EDUCACIONAL DE2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO PRÁTICAS PARA DESENVOLVIMENTO DE PROTÓTIPOS DE CIRCUITOS DIGITAIS COM O KIT EDUCACIONAL DE2 P R O F. S Í L V I O F E R N A N D E S CRONOGRAMA DO CURSO ATIVIDADE

Leia mais

UNIVERSIDADE FEDERAL DE ITAJUBÁ. Grupo de Microeletrônica TUTORIAL VHDL

UNIVERSIDADE FEDERAL DE ITAJUBÁ. Grupo de Microeletrônica TUTORIAL VHDL UNIVERSIDADE FEDERAL DE ITAJUBÁ Grupo de Microeletrônica TUTORIAL VHDL TUTORIAL VHDL I INTRODUÇÃO Não é possível projetar sistemas digitais sem entender alguns blocos básicos, tais como portas lógicas

Leia mais

ISE com VHDL estrutural

ISE com VHDL estrutural UFRJ - DEL EEL480-2014 Laboratório - Turmas EL1, EL2 ISE com VHDL estrutural Texto para as aulas de laboratório, a ser complementado pelo Tutorial dos Alunos e manuais da Xilinx UG331, UG334 e UG695. Mário

Leia mais

Projeto de Circuito Combinacional

Projeto de Circuito Combinacional ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA) prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno 2 / 12 ULA Unidade

Leia mais

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL Instituto Federal de Santa Catarina Área de Telecomunicações SST20707 Síntese de Sistemas de Telecomunicações Prof. Roberto de Matos viso de direitos utorais: Transparências baseadas no trabalho do Prof.

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

Linguagem de programação: Pascal

Linguagem de programação: Pascal Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este

Leia mais

Introdução ao Fortran 90. Aula 3

Introdução ao Fortran 90. Aula 3 Introdução ao Fortran 90 Aula 3 Usando vetores e matrizes Definição Uma matriz ou vetor consiste de um conjunto retangular de elementos, todos do mesmo tipo e espécie do tipo. Uma matriz ou vetor é um

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

= = = = = = = = = = = = = = = =

= = = = = = = = = = = = = = = = Página 1 de 7 A Linguagem PASCAL = = = = = = = = = = = = = = = = 1) ALFABETO: são os símbolos (ié, caracteres ) permitidos na linguagem. São as letras (maiúsculas e minúsculas), os algarismos (ou dígitos)

Leia mais

Paradigmas de Linguagem de Programação. Paradigma Imperativo

Paradigmas de Linguagem de Programação. Paradigma Imperativo Paradigmas de Linguagem de Programação Paradigma Imperativo Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; São também chamadas de procedurais;

Leia mais

II Escola Regional de Mato Grosso do Sul - II ERI-MS

II Escola Regional de Mato Grosso do Sul - II ERI-MS II Escola Regional de Mato Grosso do Sul - II ERI-MS Ponta Porã - MS - 24 a 26 de agosto de 2011 Minicurso: Implementação de Circuitos Digitais Utilizando Computação Reconfigurável Ricardo Santos, André

Leia mais

PHP INTRODUÇÃO DELIMITADORES DE CÓDIGO EXTENSÃO DE ARQUIVOS

PHP INTRODUÇÃO DELIMITADORES DE CÓDIGO EXTENSÃO DE ARQUIVOS INTRODUÇÃO PHP Aula 1 Introdução, Saída e Variáveis Leonardo Pereira facebook.com/leongamerti PHP significa PHP: Hypertext Preprocessor. Código PHP é executado no servidor, e o resultado é retornado para

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

Projeto com Dispositivos Programáveis

Projeto com Dispositivos Programáveis Projeto com Dispositivos Programáveis E.T.M./2011 (revisão) RESUMO Nesta experiência será apresentada uma metodologia para projeto de sistemas digitais utilizando FPGAs (dispositivos programáveis) e HDLs

Leia mais

Dispositivos de Lógica Programável

Dispositivos de Lógica Programável Dispositivos de Lógica Programável Evolução Válvula no início de 1940 Transistor em 1947 Não aquece como as válvulas Fisicamente menor 1961 primeiro integrado TTL 74LSXX Década de 1970 surge SPLD Simple

Leia mais

Exercícios Referentes à Prova P1

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

Leia mais

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

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

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

Banco de Dados II. PL/SQL Introdução. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Banco de Dados II. PL/SQL Introdução. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Gerenciamento de Transações:

Leia mais

VERILOG. Alex Vidigal Bastos

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

Leia mais

Suporte de funcionamento e interacção com o teclado

Suporte de funcionamento e interacção com o teclado Suporte de funcionamento e interacção com o teclado Autor: André Amaral Costa (nº 7578) Curso: Universidade de Aveiro Data: 6 de Dezembro de 006 Disciplina: Docente: Valery Sklyarov Introdução Neste trabalho

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

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL Introdução ao VHDL Versão 2016 RESUMO Esta experiência consiste no estudo de descrições VHDL e no projeto e implementação de um circuito digital simples. São apresentados aspectos básicos da linguagem

Leia mais

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo

Leia mais

Diagramas Sintáticos

Diagramas Sintáticos Diagramas Sintáticos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Cada classe X pública é declarada num ficheiro

Leia mais

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos

Leia mais

Introdução ao Fortran 90-1

Introdução ao Fortran 90-1 Introdução ao Fortran 90-1 Departamento de Física UFPel Definição de Programa em Fortran 90 Programa ou Código-fonte Programa ou código-fonte é um conjunto de instruções, também chamadas de comandos, escritas

Leia mais

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis

Leia mais

Linguagem Java - Introdução

Linguagem Java - Introdução Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean

Leia mais

ELT601 Eletrônica Digital II Graduação em Engenharia Eletrônica

ELT601 Eletrônica Digital II Graduação em Engenharia Eletrônica Graduação em Engenharia Eletrônica Universidade Federal de Itajubá IESTI Verilog HDL Descrição algorítmica Prof. Rodrigo de Paula Rodrigues Descrição algorítmica A B RTL E Representação Intermediária Circuito

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

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

Eletrônica Digital para Instrumentação. 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) Parâmetros de circuitos integrados lógicos Dispositivos

Leia mais