Tutorial ModelSim no Terminal Linux

ModelSim no terminal Linux

Introdução

Neste tutorial vamos aprender a trabalhar com o ModelSim no terminal Linux. Usar os comandos que esta ferramenta disponibiliza para compilar e criar bibliotecas de trabalho para projetos de circuitos digitais, da descrição RTL ao test bench.

Como todo projeto, projetos de hardware requer um grande esforço de depuração, isto é, o projeto é modificado várias vezes até atender as especificações desejadas. Dessa forma, é sempre bem vindo um ambiente de desenvolvimento “limpo” e rápido para se trabalhar. Pensando nisso, o ModelSim, via terminal Linux, juntamente com um bom editor de texto, satisfazem essa demanda.

Instalação do ModelSim no Terminal Linux

Você pode adquirir as versões gratuitas (Students) do ModelSim pelo site do fabricante Mentor Graphics a partir deste link, ou pelo site da Altera (requer criação de conta) neste link. Neste tutorial foi usada a versão disponibilizada pela Altera. É importante lembrar de escolher a opção para plataforma Linux.

Após o download, podemos prosseguir para sua instalação. Para distribuições Linux 64 bits é necessário instalar 3 bibliotecas que dão suporte para aplicações 32 bits, são estas: libc6:i386, libncurses5:i386 e libstdc++6:i386. Além disso, deve-se adicionar a arquitetura i386. Para executar essas ações basta abrir um terminal e executar os passos abaixo. Se você está usando alguma distribuição 32 bits, ignore esta etapa.

O próximo passo é executar o instalador do ModelSim em modo superusuário (root), dando acesso ao software para todos os usuários do sistema (opcional, mas recomendado). No terminal navegue até o arquivo baixado e execute:

Caso o ModelSim não esteja como executável, faça-o:

Isso fará com que a interface de instalação seja aberta, então basta seguir os passos ilustrados nas figuras seguintes, configurando e clicando em Next.

ModelSim no terminal Linux: Interface de instalação
Figura 1: Interface de instalação
ModelSim no terminal Linux: Interface de instalação, tela 2
Figura 2: Interface de instalação
ModelSim no terminal Linux: Interface de instalação tela 3
Figura 3: Interface de instalação

Na próxima tela (figura 4), o diretório /opt/altera/15.1 foi escolhido. Este diretório geralmente é usado para instalar programas de terceiros (programas que não estão disponíveis nos repositórios oficiais da distribuição). Essa escolha é opcional, mas recomendo para que suas atividades fiquem compatíveis com a do tutorial.

ModelSim no terminal Linux: Interface de instalação, tela 4
Figura 4: Interface de instalação

Nas próximas telas basta continuar escolhendo Next e aguardar o fim da instalação.

Configuração

Para que os comandos do ModelSim sejam encontrados pelo sistema é necessário alterar a variável de ambiente PATH. De forma simples e objetiva, a variável PATH define os caminhos onde o interpretador vai buscar os comandos demandados. Para isso, execute os seguintes passos:

Na última linha do arquivo bash.bashrc você acrescentará mais um caminho para a variável PATH. Caso você tenha escolhido o mesmo caminho que o tutorial, basta copiar e colar a seguinte linha abaixo, se não coloque o diretório equivalente que você escolheu.

Reinicie o terminal para aplicas as alterações.

Laboratório

Neste tópico vamos fazer um Hands-On demonstrando como gerar um ambiente de desenvolvimento que nos possibilitará compilar e simular circuitos digitais, usando a ferramenta instalada. Nosso alvo será desenvolver o circuito Meio Somador em VHDL. As etapas serão comentadas e dessa forma teremos uma metodologia do uso da ferramenta, dando base de conhecimento para quaisquer aplicações futuras.

1. Abra o terminal, escolha um diretório de trabalho, por exemplo /home/user (ou simplesmente ~) e crie os seguintes diretórios para o projeto.

Um caminho alternativo é criar um arquivo de texto, colocar os comandos para a criação destes diretórios, gerar um executável deste arquivo e executar.

Após esta ação você terá criado 5 pastas:

  • /vhd: Conterá os circuitos desenvolvidos em vhd;
  • /bench: Conterá os arquivos de test bench;
  • /libs: Conterá as bibliotecas de trabalho;
  • /config: Conterá Script que configurará variáveis de ambiente;
  • /doc: Sugestão para colocar arquivos como Datasheet, Manuais, etc.

2. Com os diretórios criados, vamos ao próximo passo que é a criação de um Script para “setar” variáveis de ambiente que nos auxiliarão. No diretório HALF_ADD/config crie o arquivo config_RTL, isto é:

Copie, cole e salve o seguinte Script:

Este Script define a variável PATH_WORK para indicar o caminho base do diretório de trabalho, e a variável MODELSIM define onde será criado o arquivo modelsim.ini, sendo que podemos modificá-lo para ajustar o ModelSim para o projeto corrente. Execute-o fazendo:

3. Desenvolvimento do Projeto

Na diretório /vhd vamos desenvolver os circuitos do projeto: PORTA_AND.vhd, PORTA_XOR.vhd e HALF_ADD.vhd. Como sugestão de editor, eu recomendo o emacs.

Vamos aos comandos do ModelSim para compilarmos o circuito e criar a biblioteca de trabalho deste projeto. Primeiro crie o arquivo compil_VHDL:

Adicione a seguinte sequência de comandos nesse arquivo:

Crie um executável e execute-o:

Você terá como saída no terminal:

Figura 5: Saída no terminal
Figura 5: Saída no terminal

Interpretando os comandos:

  • vdel: Remove uma unidade de design ou remove a biblioteca selecionada (por default a biblioteca será a work). No nosso caso ele exclui a biblioteca lib_VHDL, fazemos isso para não sobrescrever a biblioteca atualizando-a sempre que executamos o Script;
  • vlib: Cria uma biblioteca de projeto no diretório especificado. No nosso caso, veja que ele criará a lib_VHDL;
  • vmap: Define um mapeamento entre um nome da biblioteca (lib_VHDL) e um diretório, modificando o arquivo modelsim.ini;
  • vcom: Compila o projeto VHDL especificado. A opção -work especifica que a lib_VHDL será a biblioteca a ser usada.

OBS: Se você estiver trabalhando com Verilog ou SystemVerilog, basta substituir o comando vcom por vlog.

O próximo circuito é PORTA_XOR.vhd:

Para adicionar esse circuito na compilação, basta adicionar vcom indicando as dependências corretas e reexecutar. O Script compil_VHDL ficará da seguinte forma:

Por fim, escrevemos o circuito principal HALF_ADD.vhd que usará os outros circuitos.

Mais uma vez, adicionamos o comando vcom para o HALF_ADD.vhd.

Reexecutamos:

A saída no terminal deverá ser a seguinte:

Figura 6: Saída terminal
Figura 6: Saída terminal

4. Criação de test bench

No diretório /bench abrimos um arquivo TB_HALF_ADD.vhd onde escreveremos o test bench do nosso Meio Somandor (HALF_ADD).

Veja que a dependência (HALF_ADD) é incluída no test bench, fazendo o mapeamento com o circuito que iremos estimular.

Para compilar o test bench, abra um arquivo compil_BENCH e copie o seguinte Script:

Faça-o executável e execute-o:

OBS 1: Note que se você desejar testar somente o circuito PORTA_AND.vhd por exemplo, basta fazer um test bench para esse circuito, mapeá-lo de forma correta e ajustar compil_BENCH.

OBS 2: Se você estiver usando Verilog, o mapeamento é feito com:

5. ModelSim

Chegou a hora de visualizar os resultados. Lance o ModelSim:

Veja as bibliotecas de trabalho criadas:

Figura 7: Bibliotecas de trabalho ModelSim
Figura 7: Bibliotecas de trabalho ModelSim

Dê dois cliques no tb_half_add.vhd (lib_BENCH), na próxima tela “jogue” os sinais para a janela Wave, configure o tempo de simulação (40 ns é suficiente) e execute!

Figura 8: Forma de onda gerada
Figura 8: Forma de onda gerada

Importante: Qualquer alteração nos códigos circuitos e/ou test bench, ao recompilar tudo no terminal não precisamos relançar o ModelSim, basta apertar o botão Restart (à esquerda da caixa de tempo) e tudo será atualizado.

Conclusão

Para projetos complexos que contêm uma grande quantidade de circuitos a serem implementados, essa prática organiza e facilita bastante o desenvolvimento do projeto. Para mais informações sobre os comandos disponibilizados pelo ModelSim, você pode fazer o download dos manuais nos seguintes links:

http://www.microsemi.com/document-portal/doc_view/131619-modelsim-user
http://www.microsemi.com/document-portal/doc_view/134097-modelsim-command-reference-manual-v10-3a

Espero que tenham gostado do artigo, fiquem à vontade para dar sugestões. Abraço a todos e muita paz!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Sistemas Digitais » Tutorial ModelSim no Terminal Linux
Comentários:
Notificações
Notificar
guest
4 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Ana M
Ana M
04/10/2017 21:37

olá fui compilar o programa no terminal e deu erro de segmentação, joguei um comando na pasta linuxaloen e parece q ta puxando as lib erradas: alguma ideia de como arrumar? https://uploads.disquscdn.com/images/62396b4d8ffacbbb222bcf21a9bc076145936c0b7400be1f400144785a56cbfd.png

Ana M
Ana M
04/10/2017 21:36

olá, qnd eu rodo o modelSim da erro de segmentação no terminal, alguma ideia de como corrigir? Parece q ta puxando as lib erradas p compilar o programa

Bruno W. S. Arruda
Bruno W. S. Arruda
04/05/2016 21:08

Esse erro acontece quando vou compilar. Alguma ideia do que seja?

Gabriel Villanova Novaes Magalhães
Gabriel Villanova
Reply to  Bruno W. S. Arruda
05/05/2016 14:18

Bruno,

Você configurou a variável PATH?

Você pode me mostrar o diretório que você instalou o modelsim?

Att,
Gabriel Villanova

Talvez você goste:

Séries

Menu