vhdl linguagem de descrição e síntese de circuitos digitais sistemas digitais
TRANSCRIPT
![Page 1: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/1.jpg)
VHDLLinguagem de Descrição e
Síntese de Circuitos Digitais
Sistemas Digitais
![Page 2: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/2.jpg)
O Comando Generic
![Page 3: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/3.jpg)
Vetores Definidos Pelo Usuário Vetores predefinidos são unidimensionais As vezes necessita-se de vetores com dimensões maiores Exemplo: memórias São necessárias duas dimensões para especificar uma memória Número de posições e número de bits Descrição de uma memória de 2kbytes de 8 bits
![Page 4: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/4.jpg)
Vetores Definidos Pelo Usuário Vetores predefinidos são unidimensionais As vezes necessita-se de vetores com dimensões maiores Exemplo: memórias São necessárias duas dimensões para especificar uma memória Número de posições e número de bits Descrição de uma memória de 2kbytes de 8 bits
![Page 5: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/5.jpg)
Operadores de Deslocamento
![Page 6: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/6.jpg)
Operadores de Deslocamento
sll
srl
sla
sra
rll
rrl
Multiplicação por 2
Divisão por 2
![Page 7: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/7.jpg)
Atribuição de Sinais
![Page 8: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/8.jpg)
Atraso InercialTempo mínimo que um pulso deve durar para que seja aceito por um circuito.
![Page 9: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/9.jpg)
Atraso de TransmissãoAtraso no transporte de um sinal. Isto é modelado em VHDL como segue:
![Page 10: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/10.jpg)
Comandos SequenciaisComandos sequenciais ficam contidos em regiões específicas de código como processos ou subprogramas.
Uma vez iniciada a execução de comandos em região de código sequencial, os comandos são avaliados na sequência em que são apresentados no código.
Veremos a aplicação dos comandos sequenciais IF, CASE e WAIT.
Veremos também o modo de operação de um processo e a lista de sensibilidade, além da atribuição de valores a sinais nas regiões de código sequencial.
![Page 11: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/11.jpg)
Comandos SequenciaisLista de Sensibilidade em Processos
Um processo define uma área contendo comandos sequenciais.
A palavra reservada PROCESS identifica o comando.
O processo é um comando concorrente.
Um processo é composto de duas regiões: parte de declaração, e parte de comandos sequenciais.
A primeira região é o local para declaração de tipos e subtipos, constantes, variáveis, entre outros.
A declaração de sinais não é permitida.
A segunda região encontra-se entre as palavras reservadas BEGIN e END.
![Page 12: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/12.jpg)
Comandos SequenciaisLista de Sensibilidade em Processos
Ela contém comandos sequenciais que representam o comportamento de uma parte ou de toda a descrição.
A palavra reservada PROCESS pode ser antecedida de um rótulo qualquer, e ser seguida de uma lista de sensibilidade.
A lista define para quais sinais que o conjunto de comandos contidos no processo sensível.
Isto é, a ocorrência de uma mudança no valor de um dos sinais da lista fará com que o processo seja executado.
![Page 13: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/13.jpg)
Comandos SequenciaisLista de Sensibilidade em Processos
![Page 14: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/14.jpg)
Comandos Sequenciais
Execução Conjunta abc: PROCESSBEGIN comando 1 comando 2 . . . comando nEND PROCESS abc;
. . . comandoabc: PROCESSComandoxyz: PROCESScomando . . .
xyz: PROCESSBEGIN comando 1 comando 2 . . . comando mEND PROCESS xyz;
Execução Sequencial
Execução Sequencial
![Page 15: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/15.jpg)
Comandos SequenciaisExemplo:
1 | ENTITY sens_tes IS2 | PORT( a, b : IN BIT;3 | sa, sb : OUT BIT);4 | END sens_tes;5 |6 | ARCHITECTURE teste OF sens_tes IS7 | BEGIN8| abc: PROCESS (a) -- executado na alteração do valor de “a”9| BEGIN10| sa <= a;11| sb<=b;12| END PROCESS abc;13 | END teste;
A linha 10 descreve uma parte combinacionalA linha 11 descreve um elemento de armazenamento de valor sensível à variação da entrada “a”O circuito é não sintetizável, pois o elemento de memória descrito é ativo tanto na borda de subida quanto de descida de “a”, não havendo uma correspondência com circuitos reais.As ferramentas de síntese não inferem a necessidade de um elemento de memória devido à ausência de um sinal na lista de sensibilidade. Uma mensagem de advertência pode ser gerado.
![Page 16: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/16.jpg)
Comandos Sequenciais
![Page 17: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/17.jpg)
Comandos Sequenciais
![Page 18: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/18.jpg)
Comandos Sequenciais
![Page 19: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/19.jpg)
Comandos Sequenciais
![Page 20: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/20.jpg)
Comandos SequenciaisO Comando WAIT
Suspende a execução de um processo. A suspensão pode ser condicionada a três clausulas, ou a uma combinação delas:
WAIT ON: fornece um mecanismo equivalente à lista de sensibilidade em um processo. Neste caso, após o comando WAIT ON, o processo fica suspenso até a alteração de valor em um dos sinais da lista.
WAIT UNTIL: o processo é suspenso enquanto a expressão booleana contida no comando não for satisfeita
WAIT FOR: o processo é suspenso por um período de tempo, reiniciando no comando seguinte, após o período de tempo definido.
![Page 21: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/21.jpg)
Comandos SequenciaisO Comando WAIT
WAIT ON lista_de_sensibilidade;WAIT UNTIL expressão_booleana;WAIT FOR expressão_de_tempo;WAIT ON lista _de_sensibilidade UNTIL
condição_booleana FOR expressão_de _tempo;
WAIT ON sig_a, sig_b; -- Lista de sensibilidadeWAIT UNTIL sig_c = ‘1’; -- Condição booleanaWAIT FOR 100 ns; -- Expressão de tempoWAIT ON sig_d=‘0’ FOR 50 ns; -- Condição booleana por período de tempo
![Page 22: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/22.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 23: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/23.jpg)
Estratégias de Descrição de Circuitos Síncronos
Registrador Sensível a Nível com Reset e Set Assíncronos
![Page 24: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/24.jpg)
Estratégias de Descrição de Circuitos Síncronos
reset síncronoprocess(clk)begin
if clk’event and clk = ‘1’ thenif rst = ‘1’ then...else...end if;
end if;end process;
reset assíncronoprocess(clk,rst)begin
if rst = ‘1’ then...
elsif clk’event and clk = ‘1’ then...
end if;end process;
![Page 25: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/25.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 26: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/26.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 27: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/27.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 28: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/28.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 29: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/29.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 30: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/30.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 31: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/31.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 32: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/32.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 33: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/33.jpg)
Estratégias de Descrição de Circuitos Síncronos
![Page 34: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/34.jpg)
Arquiteturas Multiprocesso
![Page 35: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/35.jpg)
Arquiteturas Multiprocesso
![Page 36: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/36.jpg)
Arquiteturas MultiprocessoProcesso Simplificado
![Page 37: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/37.jpg)
Drivers e Atribuição de Sinais
![Page 38: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/38.jpg)
Drivers e Atribuição de Sinais
![Page 39: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/39.jpg)
Drivers e Atribuição de Sinais
![Page 40: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/40.jpg)
Drivers e Atribuição de Sinais
![Page 41: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/41.jpg)
Sinais com mais de um Driver
![Page 42: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/42.jpg)
Sinais com mais de um Driver
![Page 43: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/43.jpg)
Sinais com mais de um Driver
![Page 44: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/44.jpg)
Sinais com mais de um DriverResolution Function
Valores esperados, porém não são resolvidos!
![Page 45: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/45.jpg)
Sinais com mais de um DriverResolution Function
![Page 46: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/46.jpg)
Especificação da Estrutura do Sistema
![Page 47: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/47.jpg)
Especificação da Estrutura do Sistema
![Page 48: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/48.jpg)
Especificação da Estrutura do Sistema
![Page 49: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/49.jpg)
Especificação da Estrutura do Sistema
![Page 50: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/50.jpg)
Especificação da Estrutura do Sistema
![Page 51: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/51.jpg)
Especificação da Estrutura do Sistema
![Page 52: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/52.jpg)
Especificação da Estrutura do SistemaInstanciação Direta
![Page 53: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/53.jpg)
Especificação da Estrutura do SistemaInstanciação Direta
![Page 54: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/54.jpg)
Especificação da Estrutura do SistemaInstanciação Direta
![Page 55: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/55.jpg)
Especificação da Estrutura do SistemaComponentes
![Page 56: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/56.jpg)
Especificação da Estrutura do SistemaComponentes
![Page 57: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/57.jpg)
Especificação da Estrutura do SistemaComponentes
![Page 58: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/58.jpg)
Especificação da Estrutura do SistemaComponentes
![Page 59: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/59.jpg)
Algumas Práticas que Devem ser Evitadas
Maus exemplos:process (a,b)begin
if (a = ‘1’) thenq <= b;
end if;end process;
process(c)begin
case c iswhen ‘0’ => q <= ‘1’; z <= ‘0’;when others => q <= ‘0’;
end case;end process;
• Exemplo1 falta else• Exemplo2 falta atribuição de z
quando c é diferente de ‘0’.
• Para evitar:• atribua valores default as saídas• process(inputs,state)• begin
– outpus <= ‘0’;– case (state)– ...– end case;
• end process;
![Page 60: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/60.jpg)
Teste x Verificação• Verificação
– usado para verificar se o projeto está de acordo com o desejado– objetivo é verificar a funcionalidade– a ferramenta mais utilizada é o simulador
• Teste– usado para verificar a fabricação do dispositivo– objetivo não é verificar a funcionalidade– objetivo é exercitar os nós físicos do sistema
• nós devem ir de 0 para 1 ou de 1 para 0– usa padrões específicos para exercitar estes nós
• estes padrões são gerados por ferramenta de ATPG (automatic test pattern generation )
![Page 61: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/61.jpg)
Test Bench
UUT
testbench
geração de estímulos
avaliação de respostas
referencial
![Page 62: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/62.jpg)
Test Bench
![Page 63: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/63.jpg)
Test Bench
![Page 64: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/64.jpg)
Test Bench
![Page 65: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/65.jpg)
Test Bench
![Page 66: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/66.jpg)
Test Bench
![Page 67: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/67.jpg)
Test BenchExemplo:
![Page 68: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/68.jpg)
Geração de estímulos
• Origem dos estímulos:– formas de onda– de arquivos– de tabelas– aleatória– mista
![Page 69: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/69.jpg)
Estímulos Tipo Forma de Ondaprocessbegin
s <= ‘0’ ; wait for 20 ns;s <= ‘1’ ; wait for 10 ns;s <= ‘0’ ; wait for 10 ns;s <= ‘1’ ; wait for 20 ns;s <= ‘0’ ; wait for 50 ns;s <= ‘1’ ; wait for 10 ns;s <= ‘0’ ; wait for 20 ns;s <= ‘1’ ; wait for 10 ns;s <= ‘0’ ; wait for 20 ns;s <= ‘1’ ; wait for 40 ns;s <= ‘0’ ; wait for 20 ns;
end process;
![Page 70: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/70.jpg)
Estímulos de Arquivos procedure ReadFile() is variable lineAux : line;
file PatternFile : TEXT open READ_MODE is “inputPattern.txt";begin
for i in 0 to nPolig-1 loop readline(PatternFile , lineAux); read(lineAux,value);
...end loop;
end procedure;
Vantagem: simples implementação para padrões simples
Desvantagem: •difícil de implementar para padrões complexos•aumenta tempo de simulação devido as chamadas de sistema
![Page 71: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/71.jpg)
Estímulos de Tabelatype vector is record
LD : std_logic;LL : std_logic;RST : std_logic;D : std_logic_vector(7 downto 0);P : std_logic;
end record;type vectorArrayType is array (0 to TABLE_SIZE) of vector;constant vectorTable : vectorArrayType := (-- LD LL RST D P( ‘0’, ‘0’, ‘0’, “xxxxxxxx” ‘0’),( ‘0’, ‘0’, ‘1’, “xxxxxxxx” ‘0’),( ‘0’, ‘0’, ‘1’, “xxxxxxxx” ‘0’),( ‘1’, ‘0’, ‘0’, “00000101” ‘0’),( ‘0’, ‘1’, ‘0’, “11010100” ‘0’),( ‘0’, ‘0’, ‘0’, “xxxxxxxx” ‘1’),( ‘0’, ‘0’, ‘0’, “xxxxxxxx” ‘1’),...);
Vantagem: menor tempo de simulação que estímulo de arquivo
Desvantagem:
•aumenta tempo de compilação
•consome memória para muitos padrões
![Page 72: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/72.jpg)
Test Bench - Verificação
![Page 73: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/73.jpg)
Test Bench - VerificaçãoExemplo:
![Page 74: VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais](https://reader035.vdocuments.net/reader035/viewer/2022081416/552fc102497959413d8be8f0/html5/thumbnails/74.jpg)
Práticas Básicas• Convenções de nomes (sinais, entidades, arquivos, etc)• Incluir headers nos fontes
– descrição (func, autor, versão, etc)– formato e temp. de entrada e saída– histórico
• Comentários (inglês)• Indentação• Instanciação (associação por nomes)• Uma linha por comando/declaração• Usar tipos baseados nos tipos padrões IEEE
– std_logic, std_ulogic• Não usar valores fixos na descrição
– use generic ou constant
DISCIPLINA !!!