Olá,
estou tentando utilizar constantes no Pitanga, mas estou tendo problemas. Abaixo, segue o erro que recebo:
$ python pitanga.py -v portaAnd.v -p portaAnd.pinout
================================================================================
Pitanga Community Edition
Version 22.05 (Guararapes)
Copyright (c) 2021-2022 inPlace Design Automation
All rights reserved
================================================================================
Error: extraneous input '1' expecting Simple_identifier in line 6:12 on file: portaAnd.v
Exiting...
Não estou entendo porque recebo erro. Abaixo, segue o meu código Verilog
$ cat portaAnd.v
module portaAnd(
input a,
input b,
output s);
and(s, a, 1'b0);
endmodule
e meu arquivo de pinout.
$ cat portaAnd.pinout
a = sw0;
b = sw1;
s = led0;
O que está de errado no meu código?
Davi
Olá, Davi!
A versão CE 22.05 (Guararapes) ainda não suporta constantes em Verilog. Mas isso não quer dizer que você não pode usar constantes!
Para usarmos constantes na versão Guararapes, você deve conectar o pino da porta and ao Vcc da placa virtual. Isso pode ser realizado em duas etapas, conforme indicado abaixo:
1. adicionando a porta VCC ao arquivo de pinagem (.pinout);
2. alterando o arquivo verilog portaAnd.v
Como eu adiciono o pino de VCC ao arquivo de pinagem?
Basta alterar o arquivo portaAnd.pinout, adicionando a seguinte linha ao final do arquivo:
# PORTA VERILOG # PINO DA PLACA a = sw0; b = sw1; s = led0; HIGH = VCC;
Dessa forma, você consegue utilizar um sinal constante em seu código Verilog (VCC = 1'b0).
Que alterações devem ser realizadas ao arquivo Verliog?
Primeiramente, você precisa adicionar o recém criado pino HIGH a lista de entradas no arquivo Verilog:
module portaAnd( input a, input b, input HIGH, output s);
Feito isso, corrija a sua lógica, trocando 1'b0 por HIGH.
and(s, a, b, HIGH);
Neste exemplo, eu adicionei uma porta AND de 3 entradas. O arquivo verilog completo alterado segue abaixo (alterações em negrito):
module portaAnd( input a, input b, input HIGH, output s); and(s, a, b, HIGH); endmodule
Feito isso, execute novamente o emulador Pitanga e verifique as alterações, pressionando as chaves sw0 e sw1. O relatório também irá mostrar que uma porta AND3 foi utilizada em seu projeto ao invés de uma porta AND2.
Era isso 😉
Obrigado,
Time Pitanga.