mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
read_verilog << EOT
 | 
						|
module top(input a, b, output o);
 | 
						|
    wire c, d, e;
 | 
						|
    bb bb1 (.a (a), .b (b), .o (c));
 | 
						|
    sub_mod sub_inst (.a (a), .b (b), .o (e));
 | 
						|
    some_mod some_inst (.a (c), .b (d), .c (e), .o (o));
 | 
						|
endmodule
 | 
						|
 | 
						|
(* blackbox *)
 | 
						|
module bb #( parameter SOME_PARAM=0 ) (input a, b, output o);
 | 
						|
endmodule
 | 
						|
 | 
						|
module sub_mod(input a, b, output o);
 | 
						|
    bb bb2 (.a (a), .b (b), .o (o));
 | 
						|
endmodule
 | 
						|
 | 
						|
module some_mod(input a, b, c, output o);
 | 
						|
assign o = a & (b | c);
 | 
						|
endmodule
 | 
						|
EOT
 | 
						|
 | 
						|
hierarchy -top top
 | 
						|
design -stash hier
 | 
						|
 | 
						|
# removing cell
 | 
						|
design -load hier
 | 
						|
logger -expect log "Removing cell .*, making all cell outputs cutpoints" 1
 | 
						|
cutpoint sub_mod/bb2
 | 
						|
logger -check-expected
 | 
						|
logger -werror "Removing cell .*, making all cell outputs cutpoints"
 | 
						|
 | 
						|
# removing wires
 | 
						|
design -load hier
 | 
						|
logger -expect log "Making wire .* a cutpoint" 1
 | 
						|
cutpoint top/c
 | 
						|
logger -check-expected
 | 
						|
logger -werror "Making wire .* a cutpoint"
 | 
						|
 | 
						|
# removing output wires
 | 
						|
design -load hier
 | 
						|
logger -expect log "Making output wire .* a cutpoint" 1
 | 
						|
cutpoint sub_mod/o
 | 
						|
logger -check-expected
 | 
						|
logger -werror "Making output wire .* a cutpoint"
 | 
						|
 | 
						|
# whole module optimization, doesn't do any of the previous
 | 
						|
design -load hier
 | 
						|
logger -expect log "Making all outputs of module .* cut points, removing module contents" 1
 | 
						|
cutpoint sub_mod
 | 
						|
logger -check-expected
 |