Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21611 Discussions

Verilog Generate

Altera_Forum
Honored Contributor II
3,970 Views

Hi All, 

 

Does verilog allows to use generate statements inside another generate statement. 

I have a requirement as shon below, 

 

generate if (A >1) // A is a top level generic 

generate for (i=0; i<10; i=i+1)  

begin : START 

logic..... 

end 

endgenerate 

endgenerate 

 

The above gives errors while compiling. Any other option to use generate inside another generate. 

 

regards, 

freak
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
2,360 Views

genvar i; generate if (A >1) begin// A is a top level generic for (i=0; i<10; i=i+1) begin : START logic..... end end endgenerate

0 Kudos
Altera_Forum
Honored Contributor II
2,360 Views

But, we can use for loop only inside a always block. This is a problem.  

Please share your thoughts. 

 

regards, 

freak
0 Kudos
Altera_Forum
Honored Contributor II
2,360 Views

You cannot do a generate inside an always block. You can do an always block inside a generate. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
2,360 Views

You could post the code you're trying to make work. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
2,360 Views

Thanx Jake. This was a very useful tip. 

 

I have one more query. 

Can i have some king of code as shown below. i.e.multiple for loops inside same generate. 

 

Code:  

 

generate if (A >1) 

 

for (i=0; i< 2; i=i+1) 

begin : ZEROTOTWO 

assign c = a & b

end 

 

for (i=2; i< 10; i=i+1) 

begin : twototen 

assign c = a & b

end 

 

endgenerate 

 

Please give your thought. 

 

regards, 

freak
0 Kudos
Reply