mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Merge pull request #2078 from YosysHQ/eddie/xilinx_sim_tidy
xilinx: tidy up cells_sim.v a little
This commit is contained in:
		
						commit
						a7f2ef6d34
					
				
					 3 changed files with 15 additions and 13 deletions
				
			
		|  | @ -3387,10 +3387,10 @@ module DSP48E1 ( | ||||||
|     reg signed [24:0] Dr; |     reg signed [24:0] Dr; | ||||||
|     reg signed [17:0] Br1, Br2; |     reg signed [17:0] Br1, Br2; | ||||||
|     reg signed [47:0] Cr; |     reg signed [47:0] Cr; | ||||||
|     reg        [4:0]  INMODEr = 5'b0; |     reg        [4:0]  INMODEr; | ||||||
|     reg        [6:0]  OPMODEr = 7'b0; |     reg        [6:0]  OPMODEr; | ||||||
|     reg        [3:0]  ALUMODEr = 4'b0; |     reg        [3:0]  ALUMODEr; | ||||||
|     reg        [2:0]  CARRYINSELr = 3'b0; |     reg        [2:0]  CARRYINSELr; | ||||||
| 
 | 
 | ||||||
|     generate |     generate | ||||||
|         // Configurable A register |         // Configurable A register | ||||||
|  | @ -3572,11 +3572,13 @@ module DSP48E1 ( | ||||||
| 
 | 
 | ||||||
|     // Carry in |     // Carry in | ||||||
|     wire A24_xnor_B17d = A_MULT[24] ~^ B_MULT[17]; |     wire A24_xnor_B17d = A_MULT[24] ~^ B_MULT[17]; | ||||||
|     reg CARRYINr = 1'b0, A24_xnor_B17 = 1'b0; |     reg CARRYINr, A24_xnor_B17; | ||||||
|     generate |     generate | ||||||
|  |         if (CARRYINREG == 1) initial CARRYINr = 1'b0; | ||||||
|         if (CARRYINREG == 1) begin always @(posedge CLK) if (RSTALLCARRYIN) CARRYINr <= 1'b0; else if (CECARRYIN) CARRYINr <= CARRYIN; end |         if (CARRYINREG == 1) begin always @(posedge CLK) if (RSTALLCARRYIN) CARRYINr <= 1'b0; else if (CECARRYIN) CARRYINr <= CARRYIN; end | ||||||
|         else                 always @* CARRYINr = CARRYIN; |         else                 always @* CARRYINr = CARRYIN; | ||||||
| 
 | 
 | ||||||
|  |         if (MREG == 1) initial A24_xnor_B17 = 1'b0; | ||||||
|         if (MREG == 1) begin always @(posedge CLK) if (RSTALLCARRYIN) A24_xnor_B17 <= 1'b0; else if (CEM) A24_xnor_B17 <= A24_xnor_B17d; end |         if (MREG == 1) begin always @(posedge CLK) if (RSTALLCARRYIN) A24_xnor_B17 <= 1'b0; else if (CEM) A24_xnor_B17 <= A24_xnor_B17d; end | ||||||
|         else                 always @* A24_xnor_B17 = A24_xnor_B17d; |         else                 always @* A24_xnor_B17 = A24_xnor_B17d; | ||||||
|     endgenerate |     endgenerate | ||||||
|  |  | ||||||
|  | @ -10,10 +10,10 @@ module macc # (parameter SIZEIN = 16, SIZEOUT = 40) ( | ||||||
| 	output signed [SIZEOUT-1:0] accum_out | 	output signed [SIZEOUT-1:0] accum_out | ||||||
| ); | ); | ||||||
| // Declare registers for intermediate values | // Declare registers for intermediate values | ||||||
| reg signed [SIZEIN-1:0] a_reg, b_reg; | reg signed [SIZEIN-1:0] a_reg = 0, b_reg = 0; | ||||||
| reg sload_reg; | reg sload_reg = 0; | ||||||
| reg signed [2*SIZEIN-1:0] mult_reg; | reg signed [2*SIZEIN-1:0] mult_reg = 0; | ||||||
| reg signed [SIZEOUT-1:0] adder_out, old_result; | reg signed [SIZEOUT-1:0] adder_out = 0, old_result; | ||||||
| always @* /*(adder_out or sload_reg)*/ begin // Modification necessary to fix sim/synth mismatch | always @* /*(adder_out or sload_reg)*/ begin // Modification necessary to fix sim/synth mismatch | ||||||
| 	if (sload_reg) | 	if (sload_reg) | ||||||
| 		old_result <= 0; | 		old_result <= 0; | ||||||
|  | @ -50,10 +50,10 @@ module macc2 # (parameter SIZEIN = 16, SIZEOUT = 40) ( | ||||||
| 	output overflow | 	output overflow | ||||||
| ); | ); | ||||||
| // Declare registers for intermediate values | // Declare registers for intermediate values | ||||||
| reg signed [SIZEIN-1:0] a_reg, b_reg, a_reg2, b_reg2; | reg signed [SIZEIN-1:0] a_reg = 0, b_reg = 0, a_reg2 = 0, b_reg2 = 0; | ||||||
| reg signed [2*SIZEIN-1:0] mult_reg = 0; | reg signed [2*SIZEIN-1:0] mult_reg = 0; | ||||||
| reg signed [SIZEOUT:0] adder_out = 0; | reg signed [SIZEOUT:0] adder_out = 0; | ||||||
| reg overflow_reg; | reg overflow_reg = 0; | ||||||
| always @(posedge clk) begin | always @(posedge clk) begin | ||||||
| 	//if (ce) | 	//if (ce) | ||||||
| 	begin | 	begin | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ proc | ||||||
| #equiv_opt -assert -map +/xilinx/cells_sim.v synth_xilinx -noiopad ### TODO | #equiv_opt -assert -map +/xilinx/cells_sim.v synth_xilinx -noiopad ### TODO | ||||||
| equiv_opt -run :prove -map +/xilinx/cells_sim.v synth_xilinx -noiopad | equiv_opt -run :prove -map +/xilinx/cells_sim.v synth_xilinx -noiopad | ||||||
| miter -equiv -flatten -make_assert -make_outputs gold gate miter | miter -equiv -flatten -make_assert -make_outputs gold gate miter | ||||||
| sat -verify -prove-asserts -seq 10 -show-inputs -show-outputs miter | sat -verify -prove-asserts -seq 3 -show-inputs -show-outputs miter | ||||||
| design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | ||||||
| cd macc # Constrain all select calls below inside the top module | cd macc # Constrain all select calls below inside the top module | ||||||
| select -assert-count 1 t:BUFG | select -assert-count 1 t:BUFG | ||||||
|  | @ -20,7 +20,7 @@ proc | ||||||
| #equiv_opt -assert -map +/xilinx/cells_sim.v synth_xilinx -noiopad ### TODO | #equiv_opt -assert -map +/xilinx/cells_sim.v synth_xilinx -noiopad ### TODO | ||||||
| equiv_opt -run :prove -map +/xilinx/cells_sim.v synth_xilinx -noiopad | equiv_opt -run :prove -map +/xilinx/cells_sim.v synth_xilinx -noiopad | ||||||
| miter -equiv -flatten -make_assert -make_outputs gold gate miter | miter -equiv -flatten -make_assert -make_outputs gold gate miter | ||||||
| sat -verify -prove-asserts -seq 10 -show-inputs -show-outputs miter | sat -verify -prove-asserts -seq 4 -show-inputs -show-outputs miter | ||||||
| design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | ||||||
| cd macc2 # Constrain all select calls below inside the top module | cd macc2 # Constrain all select calls below inside the top module | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue