14984169f0b9faa08f646c76367667c14c77a074
[sbp.git] / tests / library.xml
1 <?xml version='1.0' encoding='utf-8'?>
2
3 <!--  Component library -->
4
5 <!DOCTYPE component_list SYSTEM "ComponentList.dtd">
6
7 <component_list>
8
9 <!--
10 THE FOLLOWING GROUP OF COMPONENTS IS USED FOR BUILDING SWITCH FABRICS.
11 -->
12
13 <component>
14 <type>SourceFunnel</type>
15 <class> com.sunlabs.archsim.fleet.HornAndFunnel.SourceFunnel </class>
16 <info>
17         <tag value="FABRIC"/>
18         <!--
19         Inputs: In0, In1, ..., InK
20                         SrcIn0, SrcIn1, ..., SrcInK     
21         -->
22         <output name="Out" />
23         <parameter name= "depth" type="int"/>
24         <global name="mergeArbiterDelay" type="int" />
25         <global name="mergePassDelay" type="int" />
26         <global name="mergeAckDelay" type="int" />
27 </info>
28 <!--
29 Behavior: 
30         Takes Payload (instruction) inputs on InX, and Data inputs on
31         SrcInX. When both inputs are received, the data is inserted
32         into the payload and funneled to Out.
33 Global parameters: 
34         mergeArbiterDelay
35         mergePassDelay
36         mergeAckDelay
37 Individual parameter: 
38         depth = Depth of the tree. The number of input pairs is 2 ^ (depth).
39 -->
40 </component>
41
42 <component>
43 <type>InstructionHorn</type>
44 <class> com.sunlabs.archsim.fleet.HornAndFunnel.InstructionHorn </class>
45 <info>
46         <tag value="FABRIC"/>
47         <input name="In" />
48         <!--
49         Outputs: Out0, Out1, ... , OutK
50         -->
51         <parameter name= "depth" type="int"/>
52 </info>
53 <!--
54 Behavior: 
55         Instruction horn - takes Payloads (Instructions) on In, 
56         steers them to the output determined by the source
57         attribute from Payload.
58 Global parameters:
59 Individual parameters: 
60         depth = depth of the tree. The number of outputs is 2 ^ (depth).
61 -->
62 </component>
63
64 <component>
65 <type>DestinationHorn</type>
66 <class> com.sunlabs.archsim.fleet.HornAndFunnel.DestinationHorn </class>
67 <info>
68         <tag value="FABRIC"/>
69         <input name="In" />
70         <!--
71         Outputs: Out0, Out1, ... , OutK
72         -->
73         <parameter name= "depth" type="int"/>
74 </info>
75 <!--
76 Behavior:
77         Horn, - takes Payloads (Instructions) on In, 
78         steers them to the output determined by the destination
79         attribute from Payload.
80 Individual parameter: 
81         depth = d of the tree. The number of outputs is 2 ^ (depth).
82 -->
83 </component>
84
85 <component>
86 <type>DataMaskBranch</type>
87 <class> com.sunlabs.archsim.fleet.components.switchFabric.DataMaskBranch </class>
88 <info>
89         <tag value="FABRIC"/>
90         <input name="In" />
91         <output name="Out0" />
92         <output name="Out1" />
93         <parameter name="branchMask" type="int" />
94         <parameter name= "branchMaskBit" type="int" />
95 </info>
96 <!--
97 Behavior: 
98         Input received on In is steered either to Out0 or Out1, depending on the
99         specified bit in Integer data carried by Payload.
100 Individual parameters: 
101         branchMask (default = 1)
102         branchMaskBit (default = 0)
103 -->
104 </component>
105
106 <component>
107 <type>DestinationMaskBranch</type>
108 <class> com.sunlabs.archsim.fleet.components.switchFabric.DestinationMaskBranch </class>
109 <info>
110         <tag value="FABRIC"/>
111         <input name="In" />
112         <output name="Out0" />
113         <output name="Out1" />
114         <parameter name="branchMask" type="int" />
115         <parameter name= "branchMaskBit" type="int" />
116 </info>
117 <!--
118 Behavior: 
119         Input received on In is steered either to Out0 or Out1, depending on the
120         specified bit in the Payload's destination
121 Individual parameters: 
122         branchMask (default = 1)
123         branchMaskBit (default = 0)
124 -->
125 </component>
126
127 <component>
128 <type>SourceMaskBranch</type>
129 <class> com.sunlabs.archsim.fleet.components.switchFabric.SourceMaskBranch </class>
130 <info>
131         <tag value="FABRIC"/>
132         <input name="In" />
133         <output name="Out0" />
134         <output name="Out1" />
135         <parameter name="branchMask" type="int"/>
136         <parameter name= "branchMaskBit" type="int"/>
137 </info>
138 <!--
139 Behavior: 
140         Input received on In is steered either to Out0 or Out1, depending on the
141         specified bit in the Payload's source
142 Individual parameters: 
143         branchMask (default = 1)
144         branchMaskBit (default = 0)
145 -->
146 </component>
147
148 <component>
149 <type>ToggleBranch</type>
150 <class> com.sunlabs.archsim.fleet.components.switchFabric.ToggleBranch </class>
151 <info>
152         <tag value="FABRIC"/>
153         <input name="In" />
154         <output name="Out0" />
155         <output name="Out1" />
156         <parameter name="branchFanout" type="int"/>
157 </info>
158 <!--
159 Inputs:         In
160 Outputs:        Out0, Out1, ... , OutK
161 Behavior: 
162         Input received on In is steered to Out0, Out1, ... , OutK 
163         in a round robin fashion
164 Individual parameters: 
165         branchFanout (default = 2)
166 -->
167 </component>
168
169 <component>
170 <type>Merge</type>
171 <class> com.sunlabs.archsim.fleet.components.switchFabric.Merge </class>
172 <info>
173         <tag value="FABRIC"/>
174         <input name="In0" />
175         <input name="In1" />
176         <output name="Out" />
177         <parameter name="mergeFanIn" type="int"/>
178         <parameter name= "mergeArbiterDelay" type="int"/>
179         <parameter name= "mergePassDelay" type="int"/>
180         <parameter name= "mergeAckDelay" type="int"/>
181         <parameter name= "mergeArbiterActionPassDelay" type="int"/>
182         <parameter name= "mergeIntouActionPassDelay" type="int"/>
183         <parameter name= "mergeInpuAckDelay" type="int"/>
184         <parameter name= "mergeOutputAckDelay" type="int"/>
185         <global name="mergeArbiterDelay" type="int" />
186         <global name="mergePassDelay" type="int" />
187         <global name="mergeAckDelay" type="int" />
188         <global name="mergeArbiterActionPassDelay" type="int" />
189         <global name="mergeIntouActionPassDelay" type="int" />
190         <global name="mergeInpuAckDelay" type="int" />
191         <global name="mergeOutputAckDelay" type="int" />
192 </info>
193 <!--
194 Inputs:         In0, in2, ..., InK
195 Outputs:        Out 
196 Behavior: Demand merge - all inputs are steered to one output
197 -->
198 </component>
199
200 <component>
201 <type>DataPayloadMerge</type>
202 <class> com.sunlabs.archsim.fleet.HornAndFunnel.SourceSync </class>
203 <info>
204         <tag value="FABRIC"/>
205         <input name="In" />
206         <input name="SrcIn" />
207         <output name="Out" />
208 </info>
209 <!--
210 Behavior: 
211         Inserts Data arrraiving at SrcIn into Payload arriving at In. After both
212         inputs had arrived, it produces a Payload with inserted Data on Out.
213 -->
214 </component>
215
216
217 <component>
218 <type>Trunk</type>
219 <class> com.sunlabs.archsim.fleet.components.trunk.Trunk </class>
220 <info>
221         <tag value="FABRIC"/>
222
223         <input name="FabricIn" />
224         <input name="BypassIn" />
225
226         <output name="Out" />
227
228         <parameter name="trunkArbiterDelay" type="int"/>
229         <parameter name="trunkCopyDelay" type="int"/>
230         <parameter name="trunkAckDelay" type="int"/>
231
232         <global name="trunkArbiterDelay" type="int" />
233         <global name="trunkCopyDelay" type="int" />
234         <global name="trunkAckDelay" type="int" />
235 </info>
236 <!--
237 Behavior: 
238         Essentially a demand merge - merges inputs on BypassIn (literals) and on
239         FabricIn ("regular" instructions) in one output Out. The two sources of inputs are
240         arbitrated.
241 -->
242 </component>
243
244 <component>
245 <type>FifoElement</type>
246 <class> com.sunlabs.archsim.fleet.ships.fifo.FifoElement </class>
247 <info>
248         <tag value="FABRIC"/>
249         <input name="In" />
250         <output name="Out" />
251         <parameter name="forwardDelay" type="int"/>
252         <parameter name="backwardDelay" type="int"/>
253         <global name="fifoForwardDelay" type="int" />
254         <global name="fifoBackwardDelay" type="int" />
255 </info>
256 <!--
257 Inputs: In
258 Outputs: Out
259 Behavior: 
260         A fifo element. Elements strung together form a Fifo
261         Can only be used in a switch fabric not as a ship.
262 -->
263 </component>
264
265
266 <component>
267 <type>Fifo</type>
268 <class> com.sunlabs.archsim.fleet.ships.fifo.Fifo </class>
269 <info>
270         <tag value="FABRIC"/>
271         <input name="In" />
272         <output name="Out" />
273         <parameter name="fifoCapacity" type="int"/>
274         <parameter name="forwardDelay" type="int"/>
275         <parameter name="backwardDelay" type="int"/>
276         <global name="fifoForwardDelay" type="int" /> <!-- applies to one element -->
277         <global name="fifoBackwardDelay" type="int" /> <!-- applies to one element -->
278 </info>
279 <!--
280 Behavior: 
281         A fifo.
282         Can only be used in a switch fabric not as a ship.
283 -->
284 </component>
285
286 <!--
287
288 THE FOLLOWING IS IS A LIST OF SHIPS.
289
290 -->
291
292 <component>
293 <type>FetchAndIssue</type>
294 <class> com.sunlabs.archsim.fleet.ships.fetchAndIssue.FetchAndIssue </class>
295 <info>
296         <tag value="SHIP"/>     <input name="In" />
297         <output name="InstructionOut" />
298         <output name="LiteralOut" />
299         <global name="instructionIssueDelay" type="int" /> 
300         <global name="literalIssueDelay" type="int" /> 
301         <global name="fetchDelay" type="int" /> 
302 </info>
303 <!--
304 Behavior: 
305         Takes a ship name in, fetches the code, issues literals and instructions
306         on corresponding output.                                   
307 -->
308 </component>
309
310 <component>
311 <type>Accumulator</type>
312 <class> com.sunlabs.archsim.fleet.ships.accumulator.Accumulator </class>
313 <info>
314         <tag value="SHIP"/>
315         <input name="In" />
316         <output name="Out" />
317         <global name="accumulatorOutDelay" type="int" /> 
318         <global name="accumulatorAckDelay" type="int" /> 
319 </info>
320 <!--
321 Behavior: 
322         Take numbers on In, accumulate values. 
323         When OOB data is received, the sum is produced on Out,
324         and the accumulator is reset.
325 -->
326 </component>
327
328 <component>
329 <type>TokenAccumulator</type>
330 <class> com.sunlabs.archsim.fleet.ships.tokenaccumulator.TokenAccumulator </class>
331 <info>
332         <tag value="SHIP"/>
333         <input name="DataIn" />
334         <input name="TokenOut" />
335         <output name="DataOut" />
336         <output name="TokenIn" />
337 </info>
338 <!--
339 Behavior: 
340         Take numbers on In, accumulate values. 
341         When OOB data is received, the sum is produced on Out,
342         and the accumulator is reset.
343         TokenIn (output) and DataIn (input) form a request acknowledge
344         interface for receiving data.
345         Token Out (input)and DataOut (output) form a request-acknowledge
346         interface for the sum.
347 -->
348 </component>
349
350 <component>
351 <type>Adder</type>
352 <class> com.sunlabs.archsim.fleet.ships.adder.Adder </class>
353 <info>
354         <tag value="SHIP"/>
355         <input name="In1" />
356         <input name="In2" />
357         <output name="Out" />
358         <global name="adderDelay" type="int" />
359         <global name="adderAckDelay" type="int" />
360 </info>
361 <!--
362 Behavior: 
363         Receive two numbers on In1 and In2, then produce the sum on Out.
364 -->
365 </component>
366
367 <component>
368 <type>TokenAdder</type>
369 <class> com.sunlabs.archsim.fleet.ships.tokenadder.TokenAdder </class>
370 <info>
371         <tag value="SHIP"/>
372         <input name="In1" />
373         <input name="In2" />
374         <input name="TokenOut"/>
375         <output name="Out" />
376         <output name="TokenIn1" />
377         <output name="TokenIn1" />
378         <global name="tokenAdderDelay" type="int" />
379         <global name="tokenAdderAckDelay" type="int" />
380 </info>
381 <!--
382 Behavior: 
383         Receive two numbers on In1 and In2, then produce the sum on Out.
384         Request-acknowledge pairs forming the token interface
385         are: < In1, TokenIn1 >, < In2, TokenIn2 >, < TokenOut, Out >
386 -->
387 </component>
388
389 <component>
390 <type>AdderOOB</type>
391 <class> com.sunlabs.archsim.fleet.ships.adder_oob.Adder_oob </class>
392 <info>
393         <tag value="SHIP"/>
394         <input name="In1" />
395         <input name="In2" />
396         <output name="Out" />
397         <global name="adderOOBDelay" type="int" />
398         <global name="adderOOBAckDelay" type="int" />
399 </info>
400 <!--
401 Behavior:
402         Receive two numbers on In1 and In2, then produce the sum on Out.
403         The difference between Adder and Adder_oob is that when A
404         dder_oob receives a OOB data on both inputs, it will produce 
405         an null Data, which will be propagated to other ships on the 
406         computation path and disassemble any standing MOVEs on it's 
407         way. This is used in the Fibonacci Fleet for terminating the 
408         computation.
409 -->
410 </component>
411
412 <component>
413 <type>BitBucket</type>
414 <class> com.sunlabs.archsim.fleet.ships.bitbucket.BitBucket </class>
415 <info>
416         <tag value="SHIP"/>
417         <input name="In" />
418         <parameter name="bitBucketdelay" type="int" />
419         <parameter name="bitBucketKeepData" type="int" />
420         <global name="bitBucketdelay" type="int" />
421         <global name="bitBucketKeepData" type="int" />
422 </info>
423 <!--
424 Behavior: 
425         Takes any input and "throws it away".
426         Will keep all data if asked to - useful for testing.    
427 -->
428 </component>
429
430 <component>
431 <type>Constant</type>
432 <class> com.sunlabs.archsim.fleet.ships.constant.Constant </class>
433 <info>
434         <tag value="SHIP"/>
435         <output name="Out" />
436         <parameter name="constantValue" type="any" />
437         <parameter name="constantDelay" type="int" />
438         <global name="constantValue" type="any" />
439         <global name="constantDelay" type="int" />
440 </info>
441 <!--
442 Behavior: 
443         Always produces the same constrant (integer, boolean, or string)
444 -->
445 </component>
446
447 <component>
448 <type>Duplicator</type>
449 <class> com.sunlabs.archsim.fleet.ships.duplicator.Duplicator </class>
450 <info>
451         <tag value="SHIP"/>
452         <input name="In" />
453         <output name="Out1" />
454         <output name="Out2" />
455         <global name="duplicatorDelay" type="int" />
456         <global name="duplicatorAckDelay" type="int" />
457 </info>
458 <!--
459 Behavior: 
460         Duplicates data. For each input it receives, 
461         it produces a copy of it on both outputs.         
462 -->
463 </component>
464
465
466 <component>
467 <type>FifoShipElement</type>
468 <class> com.sunlabs.archsim.fleet.ships.fifo.FifoShipElement </class>
469 <info>
470         <tag value="SHIP"/>
471         <input name="In" />
472         <output name="Out" />
473         <parameter name="forwardDelay" type="int" />
474         <parameter name="fifoBackwardDelay" type="int" />
475         <global name="fifoShipForwardDelay" type="int" />
476         <global name="fifoShipBackwardDelay" type="int" />
477 </info>
478 <!--
479 Behavior: 
480         A fifo element. Elements strung together form a Fifo
481         Can only be used as a ship, or a part of a ship, 
482         not as a fifo in a switch fabric.
483 -->
484 </component>
485
486
487 <component>
488 <type>FifoShip</type>
489 <class> com.sunlabs.archsim.fleet.ships.fifo.FifoShip </class>
490 <info>
491         <tag value="SHIP"/>
492         <input name="In" />
493         <output name="Out" />
494         <parameter name="fifoCapacity" type="int" />
495         <parameter name="forwardDelay" type="int" /> <!-- applies to one element -->
496         <parameter name="fifoBackwardDelay" type="int" /> <!-- applies to one element -->
497         <global name="fifoShipForwardDelay" type="int" />
498         <global name="fifoShipBackwardDelay" type="int" />
499 </info>
500 <!--
501 Behavior: 
502         A fifo. Can only be used as a ship, not as a fifo in a switch fabric.
503 -->
504 </component>
505
506 <component>
507 <type>TokenFifoShipElement</type>
508 <class> com.sunlabs.archsim.fleet.ships.tokenFifo.TokenFifoShipElement </class>
509 <info>
510         <tag value="SHIP"/>
511         <input name="In" />
512         <input name="TokenIn" />
513         <output name="Out" />
514         <output name="TokenOut" />
515         <parameter name="forwardDelay" type="int" /> 
516         <parameter name="backwardDelay" type="int" /> 
517         <parameter name="tokenDelay" type="int" /> 
518         <parameter name="ackTokenDelay" type="int" /> 
519         <global name="fifoShipForwardDelay" type="int" />
520         <global name="fifoShipBackwardDelay" type="int" />
521 </info>
522 <!--
523 Behavior: 
524         A token fifo ship element. Elements strung together form a TokenFifo
525         Can only be used as a ship, not as a fifo in a switch fabric.
526         <In, TokenOut>, <TokenIn, Out>
527 -->
528 </component>
529
530 <component>
531 <type>TokenFifoShip</type>
532 <class> com.sunlabs.archsim.fleet.ships.tokenFifo.TokenFifoShip </class>
533 <info>
534         <tag value="SHIP"/>
535         <input name="In" />
536         <input name="TokenIn" />
537         <output name="Out" />
538         <output name="TokenOut" />
539         <parameter name="fifoCapacity" type="int" /> 
540         <parameter name="forwardDelay" type="int" /> 
541         <parameter name="backwardDelay" type="int" /> 
542         <parameter name="tokenDelay" type="int" /> 
543         <parameter name="ackTokenDelay" type="int" /> 
544         <global name="fifoShipForwardDelay" type="int" />
545         <global name="fifoShipBackwardDelay" type="int" />
546 </info>
547 <!--
548 Behavior:
549         FifoShip with token interface.
550         Request acknowledge pairs are: <In, TokenOut>, <TokenIn, Out>
551 -->
552 </component>
553
554 <component>
555 <type>SimpleMemory</type>
556 <class> com.sunlabs.archsim.fleet.ships.memory.SimpleMemory </class>
557 <info>
558         <tag value="SHIP"/>
559         <input name="ReadAddress" />
560         <input name="WriteAddress" />
561         <input name="WriteData" />
562         <output name="ReadData" />
563         <output name="WriteNext" />
564         <parameter name="readDelay" type="int" /> 
565         <parameter name="writeDelay" type="int" /> 
566         <parameter name="ackDelay" type="int" /> 
567         <parameter name="ackReadDelay" type="int" /> 
568         <parameter name="ackWriteDelay" type="int" /> 
569         <global name="simpleMemoryReadDelay" type="int" />
570         <global name="simpleMemoryWriteDelay" type="int" />
571         <global name="simpleMemoryAckDelay" type="int" />
572 </info>
573 <!--
574 Behavior: 
575         Memory. Read and write interface operat concurrently.
576         No pipelining - one piece of data is operated on at a time (on
577         each read and write side).
578 -->
579 </component>
580
581 <component>
582 <type>Selector</type>
583 <class> com.sunlabs.archsim.fleet.ships.selector.Selector </class>
584 <info>
585         <tag value="SHIP"/>
586         <input name="In1" />
587         <input name="In2" />
588         <input name="InSelect" />
589         <output name="Out" />
590         <global name="selectorDelay" type="int" />
591         <global name="selectorAckDelay" type="int" />
592 </info>
593 <!--
594 Behavior: 
595         Selector selects between data on In1 and In2, depending on
596         the value it receives on InSelect: 1 selects In1, 2 selects In2.
597         The selcted value is produced on Out.
598         Upon receiving a LAST on its Select input, it will wait for 
599         a LAST to arrive on In1 and In2, consuming and ignoring all 
600         non LAST data.
601 -->
602 </component>
603
604 <component>
605 <type>Stride</type>
606 <class> com.sunlabs.archsim.fleet.ships.stride.Stride </class>
607 <info>
608         <tag value="SHIP"/>
609         <input name="StartValue" />
610         <input name="Step" />
611         <input name="StepCount" />
612         <input name="Next" />
613         <output name="Counter" />
614         <output name="Done" />
615         <parameter name="ackDelay" type="int" />
616         <parameter name="counterDelay" type="int" />
617         <global name="strideCounterDelay" type="int" />
618         <global name="strideAckDelay" type="int" />
619 </info>
620 <!--
621 Behavior: 
622         This is a counter. Setup by providing start value, step size,
623         and step count. Ask for the next value by providing an
624         input on Next. The response is a value on Counter.
625         When the counting is complete, an otput is produced on
626         Done - this is a token that indicates that the stride
627         is ready for the next setup.
628 -->     
629 </component>
630
631 <!--
632
633 THESE ARE THE COMPONENTS MADE FOR SPECIALLY FOR COURSE ASSIGNMENTS.
634 WHICH SHOULD MAKE IT INTO OUR GENERAL REPERTOAIRE?
635
636 -->
637
638 <component>
639 <type>TwoMerge</type>
640 <class> com.sunlabs.archsim.assignJan25.TwoMerge </class>
641 </component>
642
643 <component>
644 <type>Toggle</type>
645 <class> com.sunlabs.archsim.assignJan25.Toggle </class>
646 </component>
647
648 <component>
649 <type>RandomBranch</type>
650 <class> com.sunlabs.archsim.assignJan25.RandomBranch </class>
651 </component>
652
653 <component>
654 <type>MaskBranch</type>
655 <class> com.sunlabs.archsim.assignJan25.MaskBranch </class>
656 </component>
657
658 <component>
659 <type>PayloadSource</type>
660 <class> com.sunlabs.archsim.assignJan18.Source </class>
661 </component>
662
663 <component>
664 <type>PayloadSink</type>
665 <class> com.sunlabs.archsim.assignJan18.Sink </class>
666 </component>
667
668 <!--
669
670 THESE COMPONENTS ARE INTENDED FOR USE IN AUTOMATED TESTING.
671 THEY HAVE ADDITIONAL APIs THAT ACCOMODATE TEST REQUIREMENTS.
672 THEY MAY OR MAY NOT CONFORM TO THE CONVENTION THAT A SHIP
673 PRODUCES A Data OBJECT AND RECEIVES A Payload OBJECT, 
674 WHILE SWITCH FABRIC COMPONENTS RECEIVE AND PRODUCE
675 Payload OBJECTS.
676
677 -->
678
679
680 <component>
681 <type>TestDataSink</type>
682 <class> com.sunlabs.archsim.fleet.ships.testing.DataSink </class>
683 <!--
684 Used in automated testing. See code.
685 -->
686 </component>
687
688 <component>
689 <type>TestDataSource</type>
690 <class> com.sunlabs.archsim.fleet.ships.testing.DataSource </class>
691 <!--
692 Used in automated testing. See code.
693 -->
694 </component>
695
696 <component>
697 <type>TestIntegerSequenceSource</type>
698 <class> com.sunlabs.archsim.fleet.ships.testing.IntegerSequenceSource </class>
699 <!--
700 Used in automated testing. See code.
701 -->
702 </component>
703
704 <component>
705 <type>TestPayloadSink</type>
706 <class> com.sunlabs.archsim.fleet.ships.testing.PayloadSink </class>
707 <!--
708 Used in automated testing. See code.
709 -->
710 </component>
711
712 <component>
713 <type>TestPayloadSource</type>
714 <class> com.sunlabs.archsim.fleet.ships.testing.PayloadSource </class>
715 <!--
716 Used in automated testing. See code.
717 -->
718 </component>
719
720 <component>
721 <type>TestTokenSource</type>
722 <class> com.sunlabs.archsim.fleet.ships.testing.TokenSource </class>
723 <!--
724 Used in automated testing. See code.
725 -->
726 </component>
727
728 <component>
729 <type>InstructionHorn4</type>
730 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.InstructionHorn4 </class>
731 <!--
732 Used in automated testing. See code.
733 -->
734 </component>
735
736 <!--
737
738 THESE COMPONENTS MAY DISAPPEAR OR MAY NEED FIXING. 
739 THEY WERE USED IN VERY EARLY TESTS.
740 WE LIST THEM HERE FOR OLD TESTS TO STILL RUN.
741
742 -->
743
744 <component>
745 <type>InstructionHorn8</type>
746 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.InstructionHorn8 </class>
747 </component>
748
749 <component>
750 <type>InstructionHorn16</type>
751 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.InstructionHorn16 </class>
752 </component>
753
754 <component>
755 <type>SourceFunnel4</type>
756 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.SourceFunnel4 </class>
757 </component>
758
759 <component>
760 <type>SourceFunnel8</type>
761 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.SourceFunnel8 </class>
762 </component>
763
764 <component>
765 <type>SourceFunnel16</type>
766 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.SourceFunnel16 </class>
767 </component>
768
769 <component>
770 <type>DestinationHorn4</type>
771 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.DestinationHorn4 </class>
772 </component>
773
774 <component>
775 <type>DestinationHorn8</type>
776 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.DestinationHorn8 </class>
777 </component>
778
779 <component>
780 <type>DestinationHorn16</type>
781 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.DestinationHorn16 </class>
782 </component>
783
784 <component>
785 <type>InstructionGenerator</type>
786 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.TestInstrGen </class>
787 </component>
788
789 <component>
790 <type>InstrGen4</type>
791 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.TestInstrGen4 </class>
792 </component>
793
794 <component>
795 <type>TestShip</type>
796 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.TestShip </class>
797 </component>
798
799 <component>
800 <type>TestShipRnd</type>
801 <class> com.sunlabs.archsim.fleet.components.hornAndFunnelFabric.TestShipRnd </class>
802 </component>
803
804 </component_list>