mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			621 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			621 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
| package P;
 | |
|     localparam Y = 2;
 | |
|     localparam X = Y + 1;
 | |
|     task t;
 | |
|         output integer x;
 | |
|         x = Y;
 | |
|     endtask
 | |
|     function automatic integer f;
 | |
|         input integer i;
 | |
|         f = i * X;
 | |
|     endfunction
 | |
|     function automatic integer g;
 | |
|         input integer i;
 | |
|         g = i == 0 ? 1 : Y * g(i - 1);
 | |
|     endfunction
 | |
|     localparam Z = g(4);
 | |
| endpackage
 | |
| 
 | |
| module top;
 | |
|     integer a;
 | |
|     initial P::t(a);
 | |
|     integer b = P::f(3);
 | |
|     integer c = P::g(3);
 | |
|     integer d = P::Z;
 | |
| 
 | |
|     assert property (a == 2);
 | |
|     assert property (b == 9);
 | |
|     assert property (c == 8);
 | |
|     assert property (d == 16);
 | |
| endmodule
 |