Mon, 05 Apr 2010 21:00:31 +0100
reduce size of caches to fit in DE1 FPGA
The default cache size makes the Icache and Dcache "just a bit" too big to
fit in the EP2C20 FPGA on the DE1 board. This commit reduces the Icache and
Dcache sizes to the defaults shown in the LatticeMico32 Processor Reference
Manual (pages 36 and 37).
1 // =============================================================================
2 // COPYRIGHT NOTICE
3 // Copyright 2006 (c) Lattice Semiconductor Corporation
4 // ALL RIGHTS RESERVED
5 // This confidential and proprietary software may be used only as authorised by
6 // a licensing agreement from Lattice Semiconductor Corporation.
7 // The entire notice above must be reproduced on all authorized copies and
8 // copies may only be made to the extent permitted by a licensing agreement from
9 // Lattice Semiconductor Corporation.
10 //
11 // Lattice Semiconductor Corporation TEL : 1-800-Lattice (USA and Canada)
12 // 5555 NE Moore Court 408-826-6000 (other locations)
13 // Hillsboro, OR 97124 web : http://www.latticesemi.com/
14 // U.S.A email: techsupport@latticesemi.com
15 // =============================================================================/
16 // FILE DETAILS
17 // Project : LatticeMico32
18 // File : lm32_addsub.v
19 // Title : PMI adder/subtractor.
20 // Version : 6.1.17
21 // : Initial Release
22 // Version : 7.0SP2, 3.0
23 // : No Change
24 // Version : 3.1
25 // : No Change
26 // =============================================================================
28 `include "lm32_include.v"
30 /////////////////////////////////////////////////////
31 // Module interface
32 /////////////////////////////////////////////////////
34 module lm32_addsub (
35 // ----- Inputs -------
36 DataA,
37 DataB,
38 Cin,
39 Add_Sub,
40 // ----- Outputs -------
41 Result,
42 Cout
43 );
45 /////////////////////////////////////////////////////
46 // Inputs
47 /////////////////////////////////////////////////////
49 input [31:0] DataA;
50 input [31:0] DataB;
51 input Cin;
52 input Add_Sub;
54 /////////////////////////////////////////////////////
55 // Outputs
56 /////////////////////////////////////////////////////
58 output [31:0] Result;
59 wire [31:0] Result;
60 output Cout;
61 wire Cout;
63 /////////////////////////////////////////////////////
64 // Instantiations
65 /////////////////////////////////////////////////////
67 // Only use Lattice specific constructs when compiling with ispLEVER
68 `ifdef PLATFORM_LATTICE
69 generate
70 if (`LATTICE_FAMILY == "SC" || `LATTICE_FAMILY == "SCM") begin
71 `endif
72 wire [32:0] tmp_addResult = DataA + DataB + Cin;
73 wire [32:0] tmp_subResult = DataA - DataB - !Cin;
75 assign Result = (Add_Sub == 1) ? tmp_addResult[31:0] : tmp_subResult[31:0];
76 assign Cout = (Add_Sub == 1) ? tmp_addResult[32] : !tmp_subResult[32];
77 `ifdef PLATFORM_LATTICE
78 end else begin
79 pmi_addsub #(// ----- Parameters -------
80 .pmi_data_width (32),
81 .pmi_result_width (32),
82 .pmi_sign ("off"),
83 .pmi_family (`LATTICE_FAMILY),
84 .module_type ("pmi_addsub"))
85 addsub (// ----- Inputs -------
86 .DataA (DataA),
87 .DataB (DataB),
88 .Cin (Cin),
89 .Add_Sub (Add_Sub),
90 // ----- Outputs -------
91 .Result (Result),
92 .Cout (Cout),
93 .Overflow ());
94 end
95 endgenerate
96 `endif
98 endmodule