Você está na página 1de 3

Estudo dirigido - AULA 10

1. O que é uma simulação funcional? 5. Como inserir estímulos mediante o uso de


Simulações funcionais são aquelas em que arquivos externos na simulação
todas as portas lógicas do sistema são tratadas funcional?
Pelo ModelSim, é necessário clicar em
como ideais, ou seja, possuem um funcionamento
simulação e depois clicar em Start simulation
instantâneo, sem considerar os atrasos. É uma
para inserir o arquivo desejado. No entanto, ao
estratégia para gerar os dados necessários para
desenvolver a descrição, é possível fazer a
testar o projeto, é baseada no uso de testbenches.
importação de um arquivo que contenha os
O uso de software de simulação para prever o
estímulos. O uso dos pacotes
comportamento de circuitos digitais e linguagens
ieee.std_logic_textio.all e std.textio.all, possibilita
de descrição de hardware. A simulação pode ser
em VHDL fazer a declaração de um arquivo para
realizada em vários graus de abstração física,
leitura, estabelecer um processo onde ocorrerá a
como no nível do transistor, nível de porta, nível de
leitura das linhas e atribuição das mesmas a
transferência de registro (RTL), nível de sistema
valores que serão passados a variáveis e sinais
eletrônico (ESL) ou nível comportamental.
que comporá o estímulo.

2. O que é um testbench e para que serve?


Testbench é um modelo em HDL que gera 6. Como realizar uma verificação funcional
da unidade em teste (UUT - Unit Under
estímulos (formas de onda) para avaliar o circuito
Test ou DUT - Design Under Test ) dentro
digital descrito em HDL. Ele é usado para verificar do testbench?
o correto funcionamento do projeto de hardware. UUT - Unit Under Test ou DUT - Design

São utilizados para simulação, sendo capazes de Under Test são muito necessários na simulação do

preparar os valores de entrada e verificar os sinais projeto. Uma forma de realizar uma verificação

de saída. funcional da UTT dentro do testbench é fazer com


que ele retorne ondas as variáveis da unidade que
3. Qual linguagem é utilizada para a está sendo testada.
descrição do testbech?
A linguagem utilizada para a descrição do
7. O que é TCL e quais são seus comandos?
testbench é VHDL que é uma linguagem de Tool Command Language - TLC
descrição de hardware. (Linguagem de Comandos de Ferramentas), é
uma linguagem de programação para scripts
4. Quais são as partes que conformam o dinâmica, ou seja, o código fonte que você escreve
testbench?
e não é compilado em um arquivo binário que
O testbench é composto por duas partes, a
possa ser executado por conta própria, mas é
entidade e a arquitetura, onde ocorrem as
armazenado como um conjunto de instruções
declarações e instância dos componentes junto
(comandos) escrito em um ou mais arquivos de
com a verificação dos valores esperados.
texto simples, os quais são interpretados no
momento da execução pelo interpretador TCL.​
Bastante utilizada para a escrita de programas
com interface gráfica (GUI).
COMANDOS: Ativa o suporte para VHDL
● vsim: inicia o simulador VSIM 1076-1993.
○ vsim - do tb_script.do: instrui o vsim ○ vcom -explicit -93 "FFD.vhd" e
a usar os comandos especificados vcom -explicit -93 "tb_FFD.vhd":
no arquivo “tb_script.do”. Compila os arquivos FFD e td_FFD,
○ vsim -t 1ns: Especifica a resolução direcionando o compilador a
de tempo do simulador, nesse caso favorecer funções explícitas e
1ns. especifica o compilador VHDL
○ vsim -lib work tb_FFD: Específica a 1076-1993.
biblioteca de trabalho padrão onde ● add wave: Adiciona os objetos Sinais e
vsim procurará as unidades de variáveis VHDL, Redes e registros Verilog,
design, o padrão é o work, como Objetos de classe SystemVerilog e Divisores
usado no exemplo. e barramentos definidos pelo usuário à
● puts: Utilizado para visualizar o conteúdo janela do Wave no ModelSim.
da variável ● #do: Executa os comandos contidos em
● vdel: exclui uma unidade de design de uma um arquivo DO.
biblioteca especificada. ○ #do {wave.do}: Esquecifica que o
○ vdel -lib work -all: Especifica a arquivo a ser executado é o wave.do.
localização da biblioteca que ● view: abre a janela especificada do
contém a unidade de design a ser simulador ModelSim.
excluída que, por padrão, a unidade ○ view wave, view structure, view
de design excluída é a biblioteca de signals: abre, respectivamente, as
trabalho. Nesse caso exclui toda a janelas wave, structure e signals.
biblioteca work. ● run: Avança a simulação pelo número
● vlib: cria uma biblioteca de design especificado de passos de tempo.
○ vlib work: Especifica o nome do ○ run 200ns: Especifica o número de
caminho da biblioteca a ser criada, passos de tempo total para a
nesse caso, a biblioteca trabalho. simulação ser executada, nesse
● vcom: compila unidades de design VHDL. caso, 200ns.
○ vcom -explicit: Direciona o ● quit: Sai do simulador, parando a
compilador para resolver a simulação.
sobrecarga de função ambígua, ○ #quit -force: Sai sem pedir
favorecendo a definição de função confirmação.
explícita sobre a definição de
função implícita.
○ vcom -93: Especifica qual
compilador específico de LRM usar.
8. Como usar um script em TCL no ModelSim
para executar uma simulação funcional
da unidade em teste?
Os scripts em TCL podem ser executados
no Modelsim. Para isso é necessário criar um script
na unidade teste, que irá testar os valores dos
sinais. Pode-se usar o comando add_wave_zoom,
que possui dois argumentos, stime e num.
Também são criados marcadores com uma faixa
de zoom que permite salvar um período de zoom
específico.
Criar um arquivo .TCL no editor de texto
que compila os arquivos de declaração da
entidade e o arquivo de testbench. Invocar o
simulador e adicionar os argumentos que desejam
ser visualizados. Como a forma de onda, structures
e sinais.

9. Como gerar arquivos de saída externos


Como o VHDL não permite que os dados
dos arquivos sejam carregados diretamente no
ambiente de síntese, os principais procedimentos
VHDL usando o pacote “textio” para gravar dados
em arquivos são:
● Tipo de linha - Access string;
● Tipo de texto - File of string;
● Tipo de lado (esquerda, direita);
● A largura do subtipo é natural.
Com os pacotes pode-se fazer a
declaração de um arquivo para escrita,
estabelecer um processo onde ocorrerá a
declaração das linhas e valores que serão escritos
nas mesmas através das entradas estabelecidas
e, logo após, a escrita da linha no arquivo de
destino.

Você também pode gostar