EmbDev.net

Forum: FPGA, VHDL & Verilog Is it illegal to use an (enum) as a function input?


von Kevin S. (kvnsmnsn)


Rate this post
useful
not useful
I'm still very much interested in finding out whether or not it's 
possible for a Verilog function to have a boolean value as input, but 
while I was waiting for input on that I decided to rewrite a version of 
my Verilog code to use an (enum) instead of a (boolean). Much to my 
amazement, it appears that I can't use an (enum) as an input to a 
function either! I wrote the following code:
1
module useBin ();
2
3
typedef enum { ADD, MULTIPLY } binOp;
4
5
function integer execOp;
6
    input integer left;
7
    input integer right;
8
    input   binOp op;
9
  begin
10
    execOp = op == ADD ? left + right : left * right;
11
  end
12
endfunction
13
14
endmodule
When I ran Icarus to simulate it I got:
1
D:\Hf\Verilog\Unpacked\Common>ive useBin
2
\Icarus\bin\iverilog -g2009 -o useBin.out useBin.sv
3
useBin.sv:8: syntax error
4
useBin.sv:5: error: Syntax error defining function.
5
6
D:\Hf\Verilog\Unpacked\Common>
I can kind of understand why a (boolean) might cause a problem when used 
as a function input, but why in the world would it be illegal to use an 
(enum) like my (binOp) as a function input?

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.