mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
read_verilog <<EOT
 | 
						|
module top(input A, B, CI, output O, CO);
 | 
						|
	SB_CARRY carry (
 | 
						|
		.I0(A),
 | 
						|
		.I1(B),
 | 
						|
		.CI(CI),
 | 
						|
		.CO(CO)
 | 
						|
	);
 | 
						|
	SB_LUT4 #(
 | 
						|
		.LUT_INIT(16'b 0110_1001_1001_0110)
 | 
						|
	) adder (
 | 
						|
		.I0(1'b0),
 | 
						|
		.I1(A),
 | 
						|
		.I2(B),
 | 
						|
		.I3(1'b0),
 | 
						|
		.O(O)
 | 
						|
	);
 | 
						|
endmodule
 | 
						|
EOT
 | 
						|
 | 
						|
ice40_wrapcarry
 | 
						|
select -assert-count 1 t:$__ICE40_CARRY_WRAPPER
 | 
						|
 | 
						|
design -reset
 | 
						|
read_verilog <<EOT
 | 
						|
module top(input A, B, CI, output O, CO);
 | 
						|
    (* foo = "bar", answer = 42, keep=0 *)
 | 
						|
	SB_CARRY carry (
 | 
						|
		.I0(A),
 | 
						|
		.I1(B),
 | 
						|
		.CI(CI),
 | 
						|
		.CO(CO)
 | 
						|
	);
 | 
						|
    (* keep, blah="blah", answer = 43 *)
 | 
						|
	SB_LUT4 #(
 | 
						|
		.LUT_INIT(16'b 0110_1001_1001_0110)
 | 
						|
	) adder (
 | 
						|
		.I0(1'b0),
 | 
						|
		.I1(A),
 | 
						|
		.I2(B),
 | 
						|
		.I3(1'b0),
 | 
						|
		.O(O)
 | 
						|
	);
 | 
						|
endmodule
 | 
						|
EOT
 | 
						|
 | 
						|
ice40_wrapcarry
 | 
						|
select -assert-count 1 t:$__ICE40_CARRY_WRAPPER
 | 
						|
select -assert-count 0 t:* t:$__ICE40_CARRY_WRAPPER %d
 | 
						|
select -assert-count 1 a:keep=1 a:SB_CARRY.\foo=bar %i a:SB_CARRY.\answer=42 %i a:SB_LUT4.\blah=blah %i a:SB_LUT4.\answer=43 %i
 | 
						|
 | 
						|
ice40_wrapcarry -unwrap
 | 
						|
select -assert-count 1 c:carry a:src=<<EOT:3 %i a:keep=0 %i a:foo=bar %i a:answer=42 %i
 | 
						|
select -assert-count 1 c:adder a:src=<<EOT:10 %i a:keep=1 %i a:blah=blah %i a:answer=43 %i
 |