mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Allow structs within structs.
This commit is contained in:
		
							parent
							
								
									f482c9c016
								
							
						
					
					
						commit
						17f050d3c6
					
				
					 3 changed files with 38 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -15,6 +15,13 @@ module top;
 | 
			
		|||
		bit [7:0] d;
 | 
			
		||||
	} pack1;
 | 
			
		||||
 | 
			
		||||
	struct packed {
 | 
			
		||||
		byte a;
 | 
			
		||||
		struct packed {
 | 
			
		||||
			byte x, y;
 | 
			
		||||
		} b;
 | 
			
		||||
	} s2;
 | 
			
		||||
 | 
			
		||||
	assign s.a = '1;
 | 
			
		||||
	assign s.b = '1;
 | 
			
		||||
	assign s.c = 8'hAA;
 | 
			
		||||
| 
						 | 
				
			
			@ -25,6 +32,7 @@ module top;
 | 
			
		|||
	assign pack1.b = 16'hAAAA;
 | 
			
		||||
	assign pack1.c = '1;
 | 
			
		||||
	assign pack1.d = 8'h55;
 | 
			
		||||
	assign s2.b.x = 'h42;
 | 
			
		||||
 | 
			
		||||
	always_comb assert(s.a == 1'b1);
 | 
			
		||||
	always_comb assert(s.c == 8'hAA);
 | 
			
		||||
| 
						 | 
				
			
			@ -35,5 +43,6 @@ module top;
 | 
			
		|||
	always_comb assert(pack1.c == 8'hFF);
 | 
			
		||||
	always_comb assert(pack1[15:8] == 8'hFF);
 | 
			
		||||
	always_comb assert(pack1.d == 8'h55);
 | 
			
		||||
	always_comb assert(s2.b.x == 'h42);
 | 
			
		||||
 | 
			
		||||
endmodule
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,4 +58,15 @@ module top;
 | 
			
		|||
		assert(ir1.u.imm == 'hAA01);
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	union packed {
 | 
			
		||||
		int word;
 | 
			
		||||
		struct packed {
 | 
			
		||||
			byte a, b, c, d;
 | 
			
		||||
		} byte4;
 | 
			
		||||
	} u;
 | 
			
		||||
	assign u.word = 'h42;
 | 
			
		||||
	always_comb begin
 | 
			
		||||
		assert(u.byte4.d == 'h42);
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
endmodule
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue