17 package require -exact qsys 13.0
23 set_module_property DESCRIPTION "gRTOS Qsys Component"
24 set_module_property NAME grtos
25 set_module_property VERSION 1.0
26 set_module_property INTERNAL false
27 set_module_property OPAQUE_ADDRESS_MAP true
28 set_module_property GROUP gRTOS
29 set_module_property AUTHOR "Ricardo Cayssials"
30 set_module_property DISPLAY_NAME gRTOS
31 set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
32 set_module_property EDITABLE true
33 set_module_property ANALYZE_HDL AUTO
34 set_module_property REPORT_TO_TALKBACK false
35 set_module_property ALLOW_GREYBOX_GENERATION false
44 add_fileset quartus_synth QUARTUS_SYNTH "" "Quartus Synthesis"
45 set_fileset_property quartus_synth TOP_LEVEL grtos
46 set_fileset_property quartus_synth ENABLE_RELATIVE_INCLUDE_PATHS false
47 add_fileset_file grtos.qxp QXP PATH grtos.qxp
51 add_fileset sim_verilog SIM_VERILOG "" "Verilog Simulation"
52 set_fileset_property sim_verilog TOP_LEVEL grtos
53 set_fileset_property sim_verilog ENABLE_RELATIVE_INCLUDE_PATHS false
54 add_fileset_file grtos.qxp QXP PATH grtos.qxp
57 add_fileset sim_vhdl SIM_VHDL "" "VHDL Simulation"
58 set_fileset_property sim_vhdl TOP_LEVEL grtos
59 set_fileset_property sim_vhdl ENABLE_RELATIVE_INCLUDE_PATHS false
60 add_fileset_file grtos.qxp QXP PATH grtos.qxp
67 add_parameter NProcessors INTEGER 1 "Number of System Processors"
68 set_parameter_property NProcessors DEFAULT_VALUE 1
69 set_parameter_property NProcessors DISPLAY_NAME "Number of Processors"
70 set_parameter_property NProcessors TYPE INTEGER
71 set_parameter_property NProcessors UNITS None
72 set_parameter_property NProcessors ALLOWED_RANGES {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32}
73 set_parameter_property NProcessors DESCRIPTION "Number of System Processors"
74 set_parameter_property NProcessors HDL_PARAMETER false
77 add_parameter PreScale INTEGER 31 "Time Prescaler"
78 set_parameter_property PreScale DEFAULT_VALUE 31
79 set_parameter_property PreScale DISPLAY_NAME "Time Prescaler"
80 set_parameter_property PreScale TYPE INTEGER
81 set_parameter_property PreScale UNITS None
82 set_parameter_property PreScale ALLOWED_RANGES {1:1073741824}
83 set_parameter_property PreScale DESCRIPTION "Time Scale division"
84 set_parameter_property PreScale HDL_PARAMETER false
86 add_parameter PROCESSOR_TYPE STRING "" "Processor type"
87 set_parameter_property PROCESSOR_TYPE HDL_PARAMETER false
89 add_parameter INSTRUCTION_CACHE_SIZE STRING "None" "Instruction cache size"
90 set_parameter_property INSTRUCTION_CACHE_SIZE HDL_PARAMETER false
92 add_parameter INSTRUCTION_CACHE_BURST STRING "Disable" "Add burstcount signal to instruction_master"
93 set_parameter_property INSTRUCTION_CACHE_BURST HDL_PARAMETER false
95 add_parameter ENABLE_HPS_MAP_ACCESS BOOLEAN false
96 set_parameter_property ENABLE_HPS_MAP_ACCESS HDL_PARAMETER false
98 add_parameter NIOS_CLOCK_FREQUENCY INTEGER
99 set_parameter_property NIOS_CLOCK_FREQUENCY HDL_PARAMETER false
101 add_parameter BUS_CLOCK_FREQUENCY INTEGER
102 set_parameter_property BUS_CLOCK_FREQUENCY HDL_PARAMETER false
104 add_parameter BUS_WIDTH INTEGER
105 set_parameter_property BUS_WIDTH HDL_PARAMETER false
107 add_parameter EXTERNAL_MEMORY_SPAN INTEGER 4
108 set_parameter_property EXTERNAL_MEMORY_SPAN HDL_PARAMETER false
110 add_parameter EXTERNAL_MEMORY_UNIT STRING ""
111 set_parameter_property EXTERNAL_MEMORY_UNIT HDL_PARAMETER false
116 add_display_item "" "System Properties" GROUP ""
117 add_display_item "" Interrupt GROUP ""
122 add_interface clock_reset clock end
123 set_interface_property clock_reset clockRate 0
124 set_interface_property clock_reset ENABLED true
126 add_interface_port clock_reset clk clk Input 1
129 add_parameter GRTOS_CLOCK_FREQUENCY INTEGER
130 set_parameter_property GRTOS_CLOCK_FREQUENCY SYSTEM_INFO {CLOCK_RATE clock_reset}
131 add_display_item "" GRTOS_CLOCK_FREQUENCY PARAMETER
132 set_parameter_property GRTOS_CLOCK_FREQUENCY HDL_PARAMETER false
134 add_parameter GRTOS_CLOCK_RESET_INFO STRING
135 set_parameter_property GRTOS_CLOCK_RESET_INFO SYSTEM_INFO {CLOCK_RESET_INFO clock_reset}
136 add_display_item "" GRTOS_CLOCK_RESET_INFO PARAMETER
137 set_parameter_property GRTOS_CLOCK_RESET_INFO HDL_PARAMETER false
139 add_parameter GRTOS_GENERATION_ID INTEGER
140 set_parameter_property GRTOS_GENERATION_ID SYSTEM_INFO {GENERATION_ID}
141 add_display_item "" GRTOS_GENERATION_ID PARAMETER
142 set_parameter_property GRTOS_GENERATION_ID HDL_PARAMETER false
146 add_interface clock_reset_reset reset end
147 set_interface_property clock_reset_reset associatedClock clock_reset
148 set_interface_property clock_reset_reset synchronousEdges DEASSERT
149 set_interface_property clock_reset_reset ENABLED true
151 add_interface_port clock_reset_reset reset reset Input 1
158 add_interface clk_out clock start
159 set_interface_property clk_out associatedDirectClock ""
160 set_interface_property clk_out clockRate 0
162 set_interface_property clk_out ENABLED true
163 set_interface_property clk_out EXPORT_OF ""
164 set_interface_property clk_out PORT_NAME_MAP ""
165 set_interface_property clk_out SVD_ADDRESS_GROUP ""
167 add_interface_port clk_out clk_out clk Output 1
172 add_interface s_Global avalon end
173 set_interface_property s_Global addressUnits WORDS
174 set_interface_property s_Global associatedClock clock_reset
175 set_interface_property s_Global associatedReset clock_reset_reset
176 set_interface_property s_Global bitsPerSymbol 8
177 set_interface_property s_Global burstOnBurstBoundariesOnly false
178 set_interface_property s_Global burstcountUnits WORDS
179 set_interface_property s_Global explicitAddressSpan 0
180 set_interface_property s_Global holdTime 0
181 set_interface_property s_Global linewrapBursts false
182 set_interface_property s_Global maximumPendingReadTransactions 0
183 set_interface_property s_Global readLatency 0
184 set_interface_property s_Global readWaitStates 0
185 set_interface_property s_Global readWaitTime 0
186 set_interface_property s_Global setupTime 0
187 set_interface_property s_Global timingUnits Cycles
188 set_interface_property s_Global writeWaitTime 0
189 set_interface_property s_Global ENABLED true
191 add_interface_port s_Global slave_gRTOS_address address Input 7
192 add_interface_port s_Global slave_gRTOS_read read Input 1
193 add_interface_port s_Global slave_gRTOS_write write Input 1
194 add_interface_port s_Global slave_gRTOS_readdata readdata Output 32
195 add_interface_port s_Global slave_gRTOS_writedata writedata Input 32
196 add_interface_port s_Global slave_gRTOS_waitrequest waitrequest Output 1
198 set_interface_assignment s_Global embeddedsw.configuration.isFlash 0
199 set_interface_assignment s_Global embeddedsw.configuration.isMemoryDevice 0
200 set_interface_assignment s_Global embeddedsw.configuration.isNonVolatileStorage 0
201 set_interface_assignment s_Global embeddedsw.configuration.isPrintableDevice 0
212 add_interface dummy_master avalon start
213 set_interface_property dummy_master burstOnBurstBoundariesOnly false
214 set_interface_property dummy_master doStreamReads false
215 set_interface_property dummy_master doStreamWrites false
216 set_interface_property dummy_master linewrapBursts false
217 set_interface_property dummy_master ASSOCIATED_CLOCK clock_reset
218 set_interface_property dummy_master ENABLED true
220 add_interface_port dummy_master avm_m1_address address Output 32
221 add_interface_port dummy_master avm_m1_writedata writedata Output 32
222 add_interface_port dummy_master avm_m1_readdata readdata Input 32
224 add_interface_port dummy_master avm_m1_read read Output 1
225 add_interface_port dummy_master avm_m1_write write Output 1
226 add_interface_port dummy_master avm_m1_waitrequest waitrequest Input 1
229 add_interface interrupt_receiver interrupt start
230 set_interface_property interrupt_receiver irqScheme INDIVIDUAL_REQUESTS
231 set_interface_property interrupt_receiver ASSOCIATED_CLOCK clock_reset
232 set_interface_property interrupt_receiver associatedAddressablePoint dummy_master
233 set_interface_property interrupt_receiver ENABLED true
235 add_interface_port interrupt_receiver DIRQI irq Input 32
238 add_parameter GRTOS_INTERRUPTS LONG
239 set_parameter_property GRTOS_INTERRUPTS SYSTEM_INFO {INTERRUPTS_USED interrupt_receiver}
240 add_display_item "" GRTOS_INTERRUPTS PARAMETER
243 set_module_property VALIDATION_CALLBACK validate
244 set_module_property ELABORATION_CALLBACK elaborate
247 set_module_assignment embeddedsw.CMacro.NPROCESSORS [get_parameter_value NProcessors]
248 set_module_assignment embeddedsw.CMacro.PRESCALE [get_parameter_value PreScale]
249 set_module_assignment embeddedsw.CMacro.GRTOSFREQUENCY [get_parameter_value GRTOS_CLOCK_FREQUENCY]
250 set_module_assignment embeddedsw.CMacro.GRTOSINTERRUPTS [get_parameter_value GRTOS_INTERRUPTS]
251 set_module_assignment embeddedsw.CMacro.GRTOSCLOCKRESETINFO [get_parameter_value GRTOS_CLOCK_RESET_INFO]
252 set_module_assignment embeddedsw.CMacro.GRTOSGENERATIONID [get_parameter_value GRTOS_GENERATION_ID]
255 set_module_assignment embeddedsw.CMacro.PROCESSOR_TYPE [get_parameter_value PROCESSOR_TYPE]
256 set_module_assignment embeddedsw.CMacro.INSTRUCTION_CACHE_SIZE [get_parameter_value INSTRUCTION_CACHE_SIZE]
257 set_module_assignment embeddedsw.CMacro.INSTRUCTION_CACHE_BURST [get_parameter_value INSTRUCTION_CACHE_BURST]
258 set_module_assignment embeddedsw.CMacro.ENABLE_HPS_MAP_ACCESS [get_parameter_value ENABLE_HPS_MAP_ACCESS]
259 set_module_assignment embeddedsw.CMacro.NIOS_CLOCK_FREQUENCY [get_parameter_value NIOS_CLOCK_FREQUENCY]
260 set_module_assignment embeddedsw.CMacro.BUS_CLOCK_FREQUENCY [get_parameter_value BUS_CLOCK_FREQUENCY]
261 set_module_assignment embeddedsw.CMacro.BUS_WIDTH [get_parameter_value BUS_WIDTH]
262 set_module_assignment embeddedsw.CMacro.EXTERNAL_MEMORY_SPAN [get_parameter_value EXTERNAL_MEMORY_SPAN]
263 set_module_assignment embeddedsw.CMacro.EXTERNAL_MEMORY_UNIT [get_parameter_value EXTERNAL_MEMORY_UNIT]
273 set_interface_assignment s_Global embeddedsw.configuration.isInterruptControllerReceiver 1
274 set_interface_assignment s_Global embeddedsw.configuration.transportsInterruptsFromReceivers s_Global
282 add_interface bus_internal conduit end
283 set_interface_property bus_internal associatedClock clock_reset
284 set_interface_property bus_internal associatedReset clock_reset_reset
285 set_interface_property bus_internal ENABLED true
286 set_interface_property bus_internal EXPORT_OF ""
287 set_interface_property bus_internal PORT_NAME_MAP ""
288 set_interface_property bus_internal SVD_ADDRESS_GROUP ""
291 add_interface_port bus_internal frozen_avalon_monitor export Input 1
297 add_interface phy conduit end
298 set_interface_property phy associatedClock clock_reset
299 set_interface_property phy associatedReset clock_reset_reset
300 set_interface_property phy ENABLED true
301 set_interface_property phy EXPORT_OF ""
302 set_interface_property phy PORT_NAME_MAP ""
303 set_interface_property phy SVD_ADDRESS_GROUP ""
306 add_interface_port phy F_LED0 export Output 1
307 add_interface_port phy F_LED1 export Output 1
308 add_interface_port phy F_LED2 export Output 1
309 add_interface_port phy F_LED3 export Output 1
310 add_interface_port phy F_LED4 export Output 1
311 add_interface_port phy F_LED5 export Output 1
312 add_interface_port phy F_LED6 export Output 1
313 add_interface_port phy F_LED7 export Output 1
315 set Processors [get_parameter_value NProcessors]
316 for {
set i 1} {$i <= $Processors} {
incr i} {
320 add_interface s_processor$i avalon end
321 set_interface_property s_processor$i addressUnits WORDS
322 set_interface_property s_processor$i associatedClock clock_reset
323 set_interface_property s_processor$i associatedReset clock_reset_reset
324 set_interface_property s_processor$i bitsPerSymbol 8
325 set_interface_property s_processor$i burstOnBurstBoundariesOnly false
326 set_interface_property s_processor$i burstcountUnits WORDS
327 set_interface_property s_processor$i explicitAddressSpan 0
328 set_interface_property s_processor$i holdTime 0
329 set_interface_property s_processor$i linewrapBursts false
330 set_interface_property s_processor$i maximumPendingReadTransactions 0
331 set_interface_property s_processor$i readLatency 0
332 set_interface_property s_processor$i readWaitStates 0
333 set_interface_property s_processor$i readWaitTime 0
334 set_interface_property s_processor$i setupTime 0
335 set_interface_property s_processor$i timingUnits Cycles
336 set_interface_property s_processor$i writeWaitTime 0
337 set_interface_property s_processor$i ENABLED true
339 add_interface_port s_processor$i slave_processor_address$i address Input 1
340 add_interface_port s_processor$i slave_processor_read$i read Input 1
341 add_interface_port s_processor$i slave_processor_write$i write Input 1
342 add_interface_port s_processor$i slave_processor_readdata$i readdata Output 32
343 add_interface_port s_processor$i slave_processor_writedata$i writedata Input 32
345 add_interface_port s_processor$i slave_processor_waitrequest$i waitrequest Output 1
346 set_interface_assignment s_processor$i embeddedsw.configuration.isFlash 0
347 set_interface_assignment s_processor$i embeddedsw.configuration.isMemoryDevice 0
348 set_interface_assignment s_processor$i embeddedsw.configuration.isNonVolatileStorage 0
349 set_interface_assignment s_processor$i embeddedsw.configuration.isPrintableDevice 0
355 add_interface s_processor_monitor$i avalon end
356 set_interface_property s_processor_monitor$i addressUnits WORDS
357 set_interface_property s_processor_monitor$i associatedClock clock_reset
358 set_interface_property s_processor_monitor$i associatedReset clock_reset_reset
359 set_interface_property s_processor_monitor$i bitsPerSymbol 8
360 set_interface_property s_processor_monitor$i burstOnBurstBoundariesOnly false
361 set_interface_property s_processor_monitor$i burstcountUnits WORDS
362 set_interface_property s_processor_monitor$i explicitAddressSpan 0
363 set_interface_property s_processor_monitor$i holdTime 0
364 set_interface_property s_processor_monitor$i linewrapBursts false
365 set_interface_property s_processor_monitor$i maximumPendingReadTransactions 0
366 set_interface_property s_processor_monitor$i readLatency 0
367 set_interface_property s_processor_monitor$i readWaitStates 0
368 set_interface_property s_processor_monitor$i readWaitTime 0
369 set_interface_property s_processor_monitor$i setupTime 0
370 set_interface_property s_processor_monitor$i timingUnits Cycles
371 set_interface_property s_processor_monitor$i writeWaitTime 0
372 set_interface_property s_processor_monitor$i ENABLED true
374 add_interface_port s_processor_monitor$i slave_processor_monitor_address$i address Input 3
375 add_interface_port s_processor_monitor$i slave_processor_monitor_read$i read Input 1
376 add_interface_port s_processor_monitor$i slave_processor_monitor_write$i write Input 1
377 add_interface_port s_processor_monitor$i slave_processor_monitor_readdata$i readdata Output 32
378 add_interface_port s_processor_monitor$i slave_processor_monitor_writedata$i writedata Input 32
380 add_interface_port s_processor_monitor$i slave_processor_monitor_waitrequest$i waitrequest Output 1
381 set_interface_assignment s_processor_monitor$i embeddedsw.configuration.isFlash 0
382 set_interface_assignment s_processor_monitor$i embeddedsw.configuration.isMemoryDevice 0
383 set_interface_assignment s_processor_monitor$i embeddedsw.configuration.isNonVolatileStorage 0
384 set_interface_assignment s_processor_monitor$i embeddedsw.configuration.isPrintableDevice 0
392 add_interface slv_rst$i reset start
393 set_interface_property slv_rst$i associatedClock clock_reset
395 set_interface_property slv_rst$i associatedResetSinks clock_reset_reset
396 set_interface_property slv_rst$i synchronousEdges DEASSERT
399 set_interface_property slv_rst$i ENABLED true
401 add_interface_port slv_rst$i slave_rst$i reset Output 1
406 add_interface slv_irq$i interrupt end
407 set_interface_property slv_irq$i associatedAddressablePoint s_processor$i
408 set_interface_property slv_irq$i associatedClock clock_reset
409 set_interface_property slv_irq$i associatedReset clock_reset_reset
410 set_interface_property slv_irq$i ENABLED true
412 add_interface_port slv_irq$i slave_irq$i irq Output 1
420 add_interface s_processor_monitor avalon end
421 set_interface_property s_processor_monitor addressUnits WORDS
422 set_interface_property s_processor_monitor associatedClock clock_reset
423 set_interface_property s_processor_monitor associatedReset clock_reset_reset
424 set_interface_property s_processor_monitor bitsPerSymbol 8
425 set_interface_property s_processor_monitor burstOnBurstBoundariesOnly false
426 set_interface_property s_processor_monitor burstcountUnits WORDS
427 set_interface_property s_processor_monitor explicitAddressSpan 0
428 set_interface_property s_processor_monitor holdTime 0
429 set_interface_property s_processor_monitor linewrapBursts false
430 set_interface_property s_processor_monitor maximumPendingReadTransactions 0
431 set_interface_property s_processor_monitor readLatency 0
432 set_interface_property s_processor_monitor readWaitStates 0
433 set_interface_property s_processor_monitor readWaitTime 0
434 set_interface_property s_processor_monitor setupTime 0
435 set_interface_property s_processor_monitor timingUnits Cycles
436 set_interface_property s_processor_monitor writeWaitTime 0
437 set_interface_property s_processor_monitor ENABLED true
439 add_interface_port s_processor_monitor slave_processor_address_monitor address Input 8
440 add_interface_port s_processor_monitor slave_processor_read_monitor read Input 1
441 add_interface_port s_processor_monitor slave_processor_write_monitor write Input 1
442 add_interface_port s_processor_monitor slave_processor_readdata_monitor readdata Output 32
443 add_interface_port s_processor_monitor slave_processor_writedata_monitor writedata Input 32
445 add_interface_port s_processor_monitor slave_processor_waitrequest_monitor waitrequest Output 1
446 set_interface_assignment s_processor_monitor embeddedsw.configuration.isFlash 0
447 set_interface_assignment s_processor_monitor embeddedsw.configuration.isMemoryDevice 0
448 set_interface_assignment s_processor_monitor embeddedsw.configuration.isNonVolatileStorage 0
449 set_interface_assignment s_processor_monitor embeddedsw.configuration.isPrintableDevice 0