1.1 diff -r 252df75c8f67 -r c336e674a37e lm32_addsub.v 1.2 --- a/lm32_addsub.v Sun Mar 06 21:17:31 2011 +0000 1.3 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.4 @@ -1,98 +0,0 @@ 1.5 -// ============================================================================= 1.6 -// COPYRIGHT NOTICE 1.7 -// Copyright 2006 (c) Lattice Semiconductor Corporation 1.8 -// ALL RIGHTS RESERVED 1.9 -// This confidential and proprietary software may be used only as authorised by 1.10 -// a licensing agreement from Lattice Semiconductor Corporation. 1.11 -// The entire notice above must be reproduced on all authorized copies and 1.12 -// copies may only be made to the extent permitted by a licensing agreement from 1.13 -// Lattice Semiconductor Corporation. 1.14 -// 1.15 -// Lattice Semiconductor Corporation TEL : 1-800-Lattice (USA and Canada) 1.16 -// 5555 NE Moore Court 408-826-6000 (other locations) 1.17 -// Hillsboro, OR 97124 web : http://www.latticesemi.com/ 1.18 -// U.S.A email: techsupport@latticesemi.com 1.19 -// =============================================================================/ 1.20 -// FILE DETAILS 1.21 -// Project : LatticeMico32 1.22 -// File : lm32_addsub.v 1.23 -// Title : PMI adder/subtractor. 1.24 -// Version : 6.1.17 1.25 -// : Initial Release 1.26 -// Version : 7.0SP2, 3.0 1.27 -// : No Change 1.28 -// Version : 3.1 1.29 -// : No Change 1.30 -// ============================================================================= 1.31 - 1.32 -`include "lm32_include.v" 1.33 - 1.34 -///////////////////////////////////////////////////// 1.35 -// Module interface 1.36 -///////////////////////////////////////////////////// 1.37 - 1.38 -module lm32_addsub ( 1.39 - // ----- Inputs ------- 1.40 - DataA, 1.41 - DataB, 1.42 - Cin, 1.43 - Add_Sub, 1.44 - // ----- Outputs ------- 1.45 - Result, 1.46 - Cout 1.47 - ); 1.48 - 1.49 -///////////////////////////////////////////////////// 1.50 -// Inputs 1.51 -///////////////////////////////////////////////////// 1.52 - 1.53 -input [31:0] DataA; 1.54 -input [31:0] DataB; 1.55 -input Cin; 1.56 -input Add_Sub; 1.57 - 1.58 -///////////////////////////////////////////////////// 1.59 -// Outputs 1.60 -///////////////////////////////////////////////////// 1.61 - 1.62 -output [31:0] Result; 1.63 -wire [31:0] Result; 1.64 -output Cout; 1.65 -wire Cout; 1.66 - 1.67 -///////////////////////////////////////////////////// 1.68 -// Instantiations 1.69 -///////////////////////////////////////////////////// 1.70 - 1.71 -// Only use Lattice specific constructs when compiling with ispLEVER 1.72 -`ifdef PLATFORM_LATTICE 1.73 - generate 1.74 - if (`LATTICE_FAMILY == "SC" || `LATTICE_FAMILY == "SCM") begin 1.75 -`endif 1.76 - wire [32:0] tmp_addResult = DataA + DataB + Cin; 1.77 - wire [32:0] tmp_subResult = DataA - DataB - !Cin; 1.78 - 1.79 - assign Result = (Add_Sub == 1) ? tmp_addResult[31:0] : tmp_subResult[31:0]; 1.80 - assign Cout = (Add_Sub == 1) ? tmp_addResult[32] : !tmp_subResult[32]; 1.81 -`ifdef PLATFORM_LATTICE 1.82 - end else begin 1.83 - pmi_addsub #(// ----- Parameters ------- 1.84 - .pmi_data_width (32), 1.85 - .pmi_result_width (32), 1.86 - .pmi_sign ("off"), 1.87 - .pmi_family (`LATTICE_FAMILY), 1.88 - .module_type ("pmi_addsub")) 1.89 - addsub (// ----- Inputs ------- 1.90 - .DataA (DataA), 1.91 - .DataB (DataB), 1.92 - .Cin (Cin), 1.93 - .Add_Sub (Add_Sub), 1.94 - // ----- Outputs ------- 1.95 - .Result (Result), 1.96 - .Cout (Cout), 1.97 - .Overflow ()); 1.98 - end 1.99 - endgenerate 1.100 -`endif 1.101 - 1.102 -endmodule