Boolean parameter in verilog

Status
Not open for further replies.

rahdirs

Advanced Member level 1
Joined
May 22, 2013
Messages
424
Helped
93
Reputation
192
Reaction score
91
Trophy points
1,308
Location
Mordor
Activity points
4,492
Hi,

I generally work with VHDL,but in my present design i need to instantiate a VHDL module in verilog.
In verilog,i'm at beginner level

So,part of VHDL module goes like this:

Code:
entity adc08d1500 is
generic(
  TIMING_CHECK      : boolean  := false;
    DEBUG             : boolean := true;
 -- and so on

)

In verilog,i see that there is no boolean type, so how can i instantiate this ?
Will something like this work ?

Code:
adc08d1500 #
(.TIMING_CHECK            ("\false"),
  .DEBUG                       ("\true"),
//
) 
u_adc08d1500 (

);
 

You should write a quick testcase...like this:

Code Verilog - [expand]
1
2
3
4
5
6
7
8
9
module tc;
 
  // pass a boolean to VHDL from Verilog
  bool #(
    .BOOL1  (1),
    .BOOL2  (0)
  ) UUT ();
 
endmodule



Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
entity BOOL is
generic (
  BOOL1 : boolean := false;
  BOOL2 : boolean := true
);
end entity;
 
 
architecture behave of BOOL is
begin
  process
  begin
    if (BOOL1 = false) then
      report "BOOL1 is false";
    else
      report "BOOL1 is true";
    end if;
    if (BOOL2 = true) then
      report "BOOL2 is true";
    else
      report "BOOL2 is false";
    end if;
    wait for 100ns;
  end process;
end architecture;



You'll note that you use 1 for true and 0 for false, I believe anything other than 0 (within reason or 32-bits!) will be considered a true in VHDL when passed from Verilog. You could always use a verilog define for the true and false.


Code Verilog - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
// using a define
`define true 1
`define false 0
 
.BOOL1 (`true),
.BOOL2 (`false)
 
// or using a localparam/parameter
localparam true = 1;
localparam false = 0;
 
.BOOL1 (true),
.BOOL2 (false)

 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…