OpenCores
URL https://opencores.org/ocsvn/funbase_ip_library/funbase_ip_library/trunk

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [Altera/] [ip.hwp.storage/] [up_avalon_sram/] [Altera_UP_Avalon_SRAM_hw.tcl] - Blame information for rev 187

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 187 lanttu
# +----------------------------------------------------------------------------+
2
# | License Agreement                                                          |
3
# |                                                                            |
4
# | Copyright (c) 1991-2009 Altera Corporation, San Jose, California, USA.     |
5
# | All rights reserved.                                                       |
6
# |                                                                            |
7
# | Any megafunction design, and related net list (encrypted or decrypted),    |
8
# |  support information, device programming or simulation file, and any other |
9
# |  associated documentation or information provided by Altera or a partner   |
10
# |  under Altera's Megafunction Partnership Program may be used only to       |
11
# |  program PLD devices (but not masked PLD devices) from Altera.  Any other  |
12
# |  use of such megafunction design, net list, support information, device    |
13
# |  programming or simulation file, or any other related documentation or     |
14
# |  information is prohibited for any other purpose, including, but not       |
15
# |  limited to modification, reverse engineering, de-compiling, or use with   |
16
# |  any other silicon devices, unless such use is explicitly licensed under   |
17
# |  a separate agreement with Altera or a megafunction partner.  Title to     |
18
# |  the intellectual property, including patents, copyrights, trademarks,     |
19
# |  trade secrets, or maskworks, embodied in any such megafunction design,    |
20
# |  net list, support information, device programming or simulation file, or  |
21
# |  any other related documentation or information provided by Altera or a    |
22
# |  megafunction partner, remains with Altera, the megafunction partner, or   |
23
# |  their respective licensors.  No other licenses, including any licenses    |
24
# |  needed under any third party's intellectual property, are provided herein.|
25
# |  Copying or modifying any file, or portion thereof, to which this notice   |
26
# |  is attached violates this copyright.                                      |
27
# |                                                                            |
28
# | THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR    |
29
# | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   |
30
# | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    |
31
# | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
32
# | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    |
33
# | FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS  |
34
# | IN THIS FILE.                                                              |
35
# |                                                                            |
36
# | This agreement shall be governed in all respects by the laws of the State  |
37
# |  of California and by the laws of the United States of America.            |
38
# |                                                                            |
39
# +----------------------------------------------------------------------------+
40
 
41
# TCL File Generated by Altera University Program
42
# DO NOT MODIFY
43
 
44
# +-----------------------------------
45
# | module altera_up_avalon_sram
46
# | 
47
set_module_property DESCRIPTION "SRAM/SSRAM Controller for DE Boards"
48
set_module_property NAME altera_up_avalon_sram
49
set_module_property VERSION 9.0
50
set_module_property GROUP "University Program/Memory"
51
set_module_property AUTHOR "Altera University Program"
52
set_module_property DISPLAY_NAME "SRAM/SSRAM Controller"
53
set_module_property DATASHEET_URL "ftp.altera.com/up/archive/QII_9.0/Altera_Material/University_Program_IP/Memory/SRAM_Controller.pdf"
54
#set_module_property TOP_LEVEL_HDL_FILE Altera_UP_Avalon_SRAM.v
55
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
56
set_module_property EDITABLE false
57
set_module_property SIMULATION_MODEL_IN_VERILOG false
58
set_module_property SIMULATION_MODEL_IN_VHDL false
59
set_module_property SIMULATION_MODEL_HAS_TULIPS false
60
set_module_property SIMULATION_MODEL_IS_OBFUSCATED false
61
set_module_property ELABORATION_CALLBACK elaborate
62
set_module_property GENERATION_CALLBACK generate
63
# | 
64
# +-----------------------------------
65
 
66
# +-----------------------------------
67
# | files
68
# | 
69
#add_file Altera_UP_Avalon_SRAM.v {SYNTHESIS SIMULATION}
70
# | 
71
# +-----------------------------------
72
 
73
# +-----------------------------------
74
# | parameters
75
# | 
76
add_parameter board string DE2
77
set_parameter_property board DISPLAY_NAME "DE Board"
78
set_parameter_property board GROUP "Configurations"
79
set_parameter_property board UNITS None
80
set_parameter_property board AFFECTS_PORT_WIDTHS true
81
set_parameter_property board ALLOWED_RANGES {DE1 DE2 "DE2-70"}
82
set_parameter_property board VISIBLE true
83
set_parameter_property board ENABLED true
84
 
85
add_parameter pixel_buffer boolean false
86
set_parameter_property pixel_buffer DISPLAY_NAME "Use as a pixel buffer for video out"
87
set_parameter_property pixel_buffer GROUP "Configurations"
88
set_parameter_property pixel_buffer UNITS None
89
set_parameter_property pixel_buffer AFFECTS_PORT_WIDTHS true
90
set_parameter_property pixel_buffer VISIBLE true
91
set_parameter_property pixel_buffer ENABLED true
92
# | 
93
# +-----------------------------------
94
 
95
# +-----------------------------------
96
# | connection point clock_reset
97
# | 
98
add_interface clock_reset clock end
99
set_interface_property clock_reset ptfSchematicName ""
100
 
101
add_interface_port clock_reset clk clk Input 1
102
add_interface_port clock_reset reset reset Input 1
103
# | 
104
# +-----------------------------------
105
 
106
# +-----------------------------------
107
# | connection point external_interface
108
# | 
109
add_interface external_interface conduit end
110
 
111
set_interface_property external_interface ASSOCIATED_CLOCK clock_reset
112
# | 
113
# +-----------------------------------
114
 
115
# +-----------------------------------
116
# | Elaboration function
117
# | 
118
proc elaborate {} {
119
        set board [ get_parameter_value "board" ]
120
        set pixel_buffer [ get_parameter_value "pixel_buffer" ]
121
 
122
        if { $board == "DE2-70" } {
123
                # +-----------------------------------
124
                # | connection point avalon_ssram_slave
125
                # | 
126
                add_interface avalon_ssram_slave avalon end
127
                set_interface_property avalon_ssram_slave holdTime 0
128
                set_interface_property avalon_ssram_slave linewrapBursts false
129
                set_interface_property avalon_ssram_slave minimumUninterruptedRunLength 1
130
                set_interface_property avalon_ssram_slave bridgesToMaster ""
131
                if { $pixel_buffer } {
132
                        set_interface_property avalon_ssram_slave isMemoryDevice false
133
                } else {
134
                        set_interface_property avalon_ssram_slave isMemoryDevice true
135
                }
136
                set_interface_property avalon_ssram_slave burstOnBurstBoundariesOnly false
137
                set_interface_property avalon_ssram_slave addressSpan 2097152
138
                set_interface_property avalon_ssram_slave timingUnits Cycles
139
                set_interface_property avalon_ssram_slave setupTime 0
140
                set_interface_property avalon_ssram_slave writeWaitTime 1
141
                set_interface_property avalon_ssram_slave writeWaitStates 1
142
                set_interface_property avalon_ssram_slave isNonVolatileStorage false
143
                set_interface_property avalon_ssram_slave addressAlignment DYNAMIC
144
                set_interface_property avalon_ssram_slave maximumPendingReadTransactions 0
145
                set_interface_property avalon_ssram_slave readWaitTime 2
146
                set_interface_property avalon_ssram_slave readLatency 0
147
                set_interface_property avalon_ssram_slave printableDevice false
148
 
149
                set_interface_property avalon_ssram_slave ASSOCIATED_CLOCK clock_reset
150
 
151
                add_interface_port avalon_ssram_slave address address Input 19
152
                add_interface_port avalon_ssram_slave byteenable byteenable Input 4
153
                add_interface_port avalon_ssram_slave read read Input 1
154
                add_interface_port avalon_ssram_slave write write Input 1
155
                add_interface_port avalon_ssram_slave writedata writedata Input 32
156
                add_interface_port avalon_ssram_slave readdata readdata Output 32
157
                # | 
158
                # +-----------------------------------
159
 
160
                # Add signals to the connection point external_interface
161
                add_interface_port external_interface SRAM_DQ export Bidir 32
162
                add_interface_port external_interface SRAM_DPA export Bidir 4
163
                add_interface_port external_interface SRAM_ADDR export Output 19
164
                add_interface_port external_interface SRAM_ADSC_N export Output 1
165
                add_interface_port external_interface SRAM_ADSP_N export Output 1
166
                add_interface_port external_interface SRAM_ADV_N export Output 1
167
                add_interface_port external_interface SRAM_BE_N export Output 4
168
                add_interface_port external_interface SRAM_CE1_N export Output 1
169
                add_interface_port external_interface SRAM_CE2 export Output 1
170
                add_interface_port external_interface SRAM_CE3_N export Output 1
171
                add_interface_port external_interface SRAM_GW_N export Output 1
172
                add_interface_port external_interface SRAM_OE_N export Output 1
173
                add_interface_port external_interface SRAM_WE_N export Output 1
174
                add_interface_port external_interface SRAM_CLK export Output 1
175
        } else {
176
                # +-----------------------------------
177
                # | connection point avalon_sram_slave
178
                # | 
179
                add_interface avalon_sram_slave avalon end
180
                set_interface_property avalon_sram_slave holdTime 0
181
                set_interface_property avalon_sram_slave linewrapBursts false
182
                set_interface_property avalon_sram_slave minimumUninterruptedRunLength 1
183
                set_interface_property avalon_sram_slave bridgesToMaster ""
184
                if { $pixel_buffer } {
185
                        set_interface_property avalon_sram_slave isMemoryDevice false
186
                } else {
187
                        set_interface_property avalon_sram_slave isMemoryDevice true
188
                }
189
                set_interface_property avalon_sram_slave burstOnBurstBoundariesOnly false
190
                set_interface_property avalon_sram_slave addressSpan 524288
191
                set_interface_property avalon_sram_slave timingUnits Cycles
192
                set_interface_property avalon_sram_slave setupTime 0
193
                set_interface_property avalon_sram_slave writeWaitTime 0
194
                set_interface_property avalon_sram_slave isNonVolatileStorage false
195
                set_interface_property avalon_sram_slave addressAlignment DYNAMIC
196
                set_interface_property avalon_sram_slave readWaitStates 0
197
                set_interface_property avalon_sram_slave maximumPendingReadTransactions 0
198
                set_interface_property avalon_sram_slave readWaitTime 0
199
                set_interface_property avalon_sram_slave readLatency 2
200
                set_interface_property avalon_sram_slave printableDevice false
201
 
202
                set_interface_property avalon_sram_slave ASSOCIATED_CLOCK clock_reset
203
 
204
                add_interface_port avalon_sram_slave address address Input 18
205
                add_interface_port avalon_sram_slave byteenable byteenable Input 2
206
                add_interface_port avalon_sram_slave read read Input 1
207
                add_interface_port avalon_sram_slave write write Input 1
208
                add_interface_port avalon_sram_slave writedata writedata Input 16
209
                add_interface_port avalon_sram_slave readdata readdata Output 16
210
                # | 
211
                # +-----------------------------------
212
 
213
                # Add signals to the connection point external_interface
214
                add_interface_port external_interface SRAM_DQ export Bidir 16
215
                add_interface_port external_interface SRAM_ADDR export Output 18
216
                add_interface_port external_interface SRAM_LB_N export Output 1
217
                add_interface_port external_interface SRAM_UB_N export Output 1
218
                add_interface_port external_interface SRAM_CE_N export Output 1
219
                add_interface_port external_interface SRAM_OE_N export Output 1
220
                add_interface_port external_interface SRAM_WE_N export Output 1
221
        }
222
}
223
# | 
224
# +-----------------------------------
225
 
226
# +-----------------------------------
227
# | Generation function
228
# | 
229
proc generate {} {
230
        send_message info "Starting Generation of SRAM or SSRAM Controller"
231
 
232
        # get generation settings
233
        set language [ format "lang=%s" [ get_generation_setting HDL_LANGUAGE ] ]
234
        set outdir [ format "dir=%s" [ get_generation_setting OUTPUT_DIRECTORY ] ]
235
        set outname [ format "name=%s" [ get_generation_setting OUTPUT_NAME ] ]
236
 
237
 
238
        # get parameter values
239
        set board [ get_parameter_value "board" ]
240
 
241
        # set section value
242
 
243
        # set top_level_ports and external_port
244
        set top_level_name [ format "top_level_name=%s" [ get_project_property QUARTUS_PROJECT_NAME ] ]
245
        set top_level_ports "top_level_ports="
246
        set module_ports "module_ports="
247
        foreach port [ get_interface_ports external_interface ] {
248
                set direction [ get_port_property $port DIRECTION ]
249
                set width [ get_port_property $port WIDTH ]
250
 
251
                set top_level_ports "$top_level_ports$port:$direction:$width;"
252
                set module_ports  "$module_ports$port:$direction:$width:$port;"
253
        }
254
 
255
        # set arguments
256
        if { $board == "DE2-70" } {
257
                set files "files=Altera_UP_Avalon_SSRAM.v"
258
        } else {
259
                set files "files=Altera_UP_Avalon_SRAM.v"
260
        }
261
        set params ""
262
        set sections ""
263
 
264
        # get generation settings
265
#       set dest_language       [ get_generation_setting HDL_LANGUAGE ]
266
        set dest_dir            [ get_generation_setting OUTPUT_DIRECTORY ]
267
        set dest_name           [ get_generation_setting OUTPUT_NAME ]
268
        add_file "$dest_dir$dest_name.v" {SYNTHESIS SIMULATION}
269
 
270
        # Generate HDL
271
        source "UP_IP_Generator.tcl"
272
        if { $board == "DE2-70" } {
273
                up_generate "$dest_dir$dest_name.v" "hdl/Altera_UP_Avalon_SSRAM.v" $dest_name $params $sections
274
        } else {
275
                up_generate "$dest_dir$dest_name.v" "hdl/Altera_UP_Avalon_SRAM.v" $dest_name $params $sections
276
        }
277
}
278
# | 
279
# +-----------------------------------
280
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.