mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into eddie/xilinx_srl
This commit is contained in:
		
						commit
						78b7d8f531
					
				
					 9 changed files with 43 additions and 20 deletions
				
			
		
							
								
								
									
										1
									
								
								Brewfile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Brewfile
									
										
									
									
									
								
							|  | @ -6,3 +6,4 @@ brew "git" | ||||||
| brew "graphviz" | brew "graphviz" | ||||||
| brew "pkg-config" | brew "pkg-config" | ||||||
| brew "python3" | brew "python3" | ||||||
|  | brew "tcl-tk" | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -91,8 +91,10 @@ PLUGIN_LDFLAGS += -undefined dynamic_lookup | ||||||
| ifneq ($(shell which brew),) | ifneq ($(shell which brew),) | ||||||
| BREW_PREFIX := $(shell brew --prefix)/opt | BREW_PREFIX := $(shell brew --prefix)/opt | ||||||
| $(info $$BREW_PREFIX is [${BREW_PREFIX}]) | $(info $$BREW_PREFIX is [${BREW_PREFIX}]) | ||||||
|  | ifeq ($(ENABLE_PYOSYS),1) | ||||||
| CXXFLAGS += -I$(BREW_PREFIX)/boost/include/boost | CXXFLAGS += -I$(BREW_PREFIX)/boost/include/boost | ||||||
| LDFLAGS += -L$(BREW_PREFIX)/boost/lib | LDFLAGS += -L$(BREW_PREFIX)/boost/lib | ||||||
|  | endif | ||||||
| CXXFLAGS += -I$(BREW_PREFIX)/readline/include | CXXFLAGS += -I$(BREW_PREFIX)/readline/include | ||||||
| LDFLAGS += -L$(BREW_PREFIX)/readline/lib | LDFLAGS += -L$(BREW_PREFIX)/readline/lib | ||||||
| PKG_CONFIG_PATH := $(BREW_PREFIX)/libffi/lib/pkgconfig:$(PKG_CONFIG_PATH) | PKG_CONFIG_PATH := $(BREW_PREFIX)/libffi/lib/pkgconfig:$(PKG_CONFIG_PATH) | ||||||
|  |  | ||||||
|  | @ -69,11 +69,14 @@ prerequisites for building yosys: | ||||||
| 		graphviz xdot pkg-config python3 libboost-system-dev \ | 		graphviz xdot pkg-config python3 libboost-system-dev \ | ||||||
| 		libboost-python-dev libboost-filesystem-dev zlib1g-dev | 		libboost-python-dev libboost-filesystem-dev zlib1g-dev | ||||||
| 
 | 
 | ||||||
| Similarily, on Mac OS X MacPorts or Homebrew can be used to install dependencies: | Similarily, on Mac OS X Homebrew can be used to install dependencies: | ||||||
| 
 | 
 | ||||||
| 	$ brew tap Homebrew/bundle && brew bundle | 	$ brew tap Homebrew/bundle && brew bundle | ||||||
|  | 
 | ||||||
|  | or MacPorts: | ||||||
|  | 
 | ||||||
| 	$ sudo port install bison flex readline gawk libffi \ | 	$ sudo port install bison flex readline gawk libffi \ | ||||||
| 		git graphviz pkgconfig python36 boost zlib | 		git graphviz pkgconfig python36 boost zlib tcl | ||||||
| 
 | 
 | ||||||
| On FreeBSD use the following command to install all prerequisites: | On FreeBSD use the following command to install all prerequisites: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -151,6 +151,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage, | ||||||
| 					reg->is_reg = true; | 					reg->is_reg = true; | ||||||
| 					reg->is_signed = node->is_signed; | 					reg->is_signed = node->is_signed; | ||||||
| 					for (auto &it : node->attributes) | 					for (auto &it : node->attributes) | ||||||
|  | 						if (it.first != ID(mem2reg)) | ||||||
| 							reg->attributes.emplace(it.first, it.second->clone()); | 							reg->attributes.emplace(it.first, it.second->clone()); | ||||||
| 					reg->filename = node->filename; | 					reg->filename = node->filename; | ||||||
| 					reg->linenum = node->linenum; | 					reg->linenum = node->linenum; | ||||||
|  |  | ||||||
|  | @ -532,10 +532,10 @@ struct EquivMakePass : public Pass { | ||||||
| 			log_cmd_error("Equiv module %s already exists.\n", args[argidx+2].c_str()); | 			log_cmd_error("Equiv module %s already exists.\n", args[argidx+2].c_str()); | ||||||
| 
 | 
 | ||||||
| 		if (worker.gold_mod->has_memories() || worker.gold_mod->has_processes()) | 		if (worker.gold_mod->has_memories() || worker.gold_mod->has_processes()) | ||||||
| 			log_cmd_error("Gold module contains memories or procresses. Run 'memory' or 'proc' respectively.\n"); | 			log_cmd_error("Gold module contains memories or processes. Run 'memory' or 'proc' respectively.\n"); | ||||||
| 
 | 
 | ||||||
| 		if (worker.gate_mod->has_memories() || worker.gate_mod->has_processes()) | 		if (worker.gate_mod->has_memories() || worker.gate_mod->has_processes()) | ||||||
| 			log_cmd_error("Gate module contains memories or procresses. Run 'memory' or 'proc' respectively.\n"); | 			log_cmd_error("Gate module contains memories or processes. Run 'memory' or 'proc' respectively.\n"); | ||||||
| 
 | 
 | ||||||
| 		worker.read_blacklists(); | 		worker.read_blacklists(); | ||||||
| 		worker.read_encfiles(); | 		worker.read_encfiles(); | ||||||
|  |  | ||||||
|  | @ -17,10 +17,12 @@ endmodule | ||||||
| // --------------------------------------- | // --------------------------------------- | ||||||
| (* abc_box_id=1, lib_whitebox *) | (* abc_box_id=1, lib_whitebox *) | ||||||
| module CCU2C( | module CCU2C( | ||||||
| 	(* abc_carry *) input CIN, | 	(* abc_carry *) | ||||||
|  | 	input  CIN, | ||||||
| 	input  A0, B0, C0, D0, A1, B1, C1, D1, | 	input  A0, B0, C0, D0, A1, B1, C1, D1, | ||||||
| 	output S0, S1, | 	output S0, S1, | ||||||
| 	(* abc_carry *) output COUT | 	(* abc_carry *) | ||||||
|  | 	output COUT | ||||||
| ); | ); | ||||||
| 	parameter [15:0] INIT0 = 16'h0000; | 	parameter [15:0] INIT0 = 16'h0000; | ||||||
| 	parameter [15:0] INIT1 = 16'h0000; | 	parameter [15:0] INIT1 = 16'h0000; | ||||||
|  | @ -109,9 +111,12 @@ endmodule | ||||||
| // --------------------------------------- | // --------------------------------------- | ||||||
| //(* abc_box_id=2 *) | //(* abc_box_id=2 *) | ||||||
| module TRELLIS_DPR16X4 ( | module TRELLIS_DPR16X4 ( | ||||||
| 	(* abc_scc_break *) input [3:0] DI, | 	(* abc_scc_break *) | ||||||
| 	(* abc_scc_break *) input [3:0] WAD, | 	input  [3:0] DI, | ||||||
| 	(* abc_scc_break *) input       WRE, | 	(* abc_scc_break *) | ||||||
|  | 	input  [3:0] WAD, | ||||||
|  | 	(* abc_scc_break *) | ||||||
|  | 	input        WRE, | ||||||
| 	input        WCK, | 	input        WCK, | ||||||
| 	input  [3:0] RAD, | 	input  [3:0] RAD, | ||||||
| 	output [3:0] DO | 	output [3:0] DO | ||||||
|  |  | ||||||
|  | @ -143,11 +143,13 @@ endmodule | ||||||
| 
 | 
 | ||||||
| (* abc_box_id = 1, lib_whitebox *) | (* abc_box_id = 1, lib_whitebox *) | ||||||
| module \$__ICE40_FULL_ADDER ( | module \$__ICE40_FULL_ADDER ( | ||||||
| 	(* abc_carry *) output CO, | 	(* abc_carry *) | ||||||
|  | 	output CO, | ||||||
| 	output O, | 	output O, | ||||||
| 	input A, | 	input A, | ||||||
| 	input B, | 	input B, | ||||||
| 	(* abc_carry *) input CI | 	(* abc_carry *) | ||||||
|  | 	input CI | ||||||
| ); | ); | ||||||
| 	SB_CARRY carry ( | 	SB_CARRY carry ( | ||||||
| 		.I0(A), | 		.I0(A), | ||||||
|  |  | ||||||
|  | @ -183,9 +183,11 @@ endmodule | ||||||
| 
 | 
 | ||||||
| (* abc_box_id = 4, lib_whitebox *) | (* abc_box_id = 4, lib_whitebox *) | ||||||
| module CARRY4( | module CARRY4( | ||||||
|   (* abc_carry *) output [3:0] CO, |   (* abc_carry *) | ||||||
|  |   output [3:0] CO, | ||||||
|   output [3:0] O, |   output [3:0] O, | ||||||
|   (* abc_carry *) input CI, |   (* abc_carry *) | ||||||
|  |   input        CI, | ||||||
|   input        CYINIT, |   input        CYINIT, | ||||||
|   input  [3:0] DI, S |   input  [3:0] DI, S | ||||||
| ); | ); | ||||||
|  | @ -298,9 +300,11 @@ endmodule | ||||||
| (* abc_box_id = 5 *) | (* abc_box_id = 5 *) | ||||||
| module RAM32X1D ( | module RAM32X1D ( | ||||||
|   output DPO, SPO, |   output DPO, SPO, | ||||||
|   (* abc_scc_break *) input D, |   (* abc_scc_break *) | ||||||
|  |   input  D, | ||||||
|   input  WCLK, |   input  WCLK, | ||||||
|   (* abc_scc_break *) input WE, |   (* abc_scc_break *) | ||||||
|  |   input  WE, | ||||||
|   input  A0, A1, A2, A3, A4, |   input  A0, A1, A2, A3, A4, | ||||||
|   input  DPRA0, DPRA1, DPRA2, DPRA3, DPRA4 |   input  DPRA0, DPRA1, DPRA2, DPRA3, DPRA4 | ||||||
| ); | ); | ||||||
|  | @ -318,9 +322,11 @@ endmodule | ||||||
| (* abc_box_id = 6 *) | (* abc_box_id = 6 *) | ||||||
| module RAM64X1D ( | module RAM64X1D ( | ||||||
|   output DPO, SPO, |   output DPO, SPO, | ||||||
|   (* abc_scc_break *) input D, |   (* abc_scc_break *) | ||||||
|  |   input  D, | ||||||
|   input  WCLK, |   input  WCLK, | ||||||
|   (* abc_scc_break *) input WE, |   (* abc_scc_break *) | ||||||
|  |   input  WE, | ||||||
|   input  A0, A1, A2, A3, A4, A5, |   input  A0, A1, A2, A3, A4, A5, | ||||||
|   input  DPRA0, DPRA1, DPRA2, DPRA3, DPRA4, DPRA5 |   input  DPRA0, DPRA1, DPRA2, DPRA3, DPRA4, DPRA5 | ||||||
| ); | ); | ||||||
|  | @ -338,9 +344,11 @@ endmodule | ||||||
| (* abc_box_id = 7 *) | (* abc_box_id = 7 *) | ||||||
| module RAM128X1D ( | module RAM128X1D ( | ||||||
|   output       DPO, SPO, |   output       DPO, SPO, | ||||||
|   (* abc_scc_break *) input D, |   (* abc_scc_break *) | ||||||
|  |   input        D, | ||||||
|   input        WCLK, |   input        WCLK, | ||||||
|   (* abc_scc_break *) input WE, |   (* abc_scc_break *) | ||||||
|  |   input        WE, | ||||||
|   input  [6:0] A, DPRA |   input  [6:0] A, DPRA | ||||||
| ); | ); | ||||||
|   parameter INIT = 128'h0; |   parameter INIT = 128'h0; | ||||||
|  |  | ||||||
|  | @ -11,3 +11,4 @@ proc | ||||||
| cd top | cd top | ||||||
| select -assert-count 1 m:data1 a:src=<<EOT:4 %i | select -assert-count 1 m:data1 a:src=<<EOT:4 %i | ||||||
| select -assert-count 2 w:data2[*] a:src=<<EOT:5 %i | select -assert-count 2 w:data2[*] a:src=<<EOT:5 %i | ||||||
|  | select -assert-none a:mem2reg | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue