Devices are printed in a pretty way.
[avr-sim.git] / devices / device.dtd
bloba2b84d6e61af1731dde5c7184bc328bdfeb9a226
1 <!-- DTD for AVR devices -->
3 <!ELEMENT device (memory, ioregisters, interrupts, packages, hardware)>
5 <!ELEMENT memory (flash, iospace, sram, eram?)>
6 <!ELEMENT flash EMPTY>
7 <!ATTLIST flash
8 size CDATA #REQUIRED
9 page CDATA #IMPLIED>
10 <!ELEMENT iospace EMPTY>
11 <!ATTLIST iospace
12 start CDATA #IMPLIED
13 stop CDATA #IMPLIED
14 size CDATA #IMPLIED>
15 <!ELEMENT sram EMPTY>
16 <!ATTLIST sram size CDATA #REQUIRED>
17 <!ELEMENT eram EMPTY>
18 <!ATTLIST eram size CDATA #REQUIRED>
20 <!-- Packages -->
21 <!ELEMENT packages (package+)>
22 <!ELEMENT package (pin+)>
23 <!ATTLIST package
24 name CDATA #REQUIRED
25 pins CDATA #REQUIRED>
26 <!ELEMENT pin (#PCDATA)>
27 <!ATTLIST pin
28 id CDATA #REQUIRED
29 name CDATA #REQUIRED>
30 <!-- name can contain multiple names seperated by : -->
32 <!-- IO registers -->
33 <!ELEMENT ioregisters (ioreg*)>
34 <!ELEMENT ioreg (#PCDATA)>
35 <!ATTLIST ioreg
36 address CDATA #REQUIRED
37 name CDATA #REQUIRED
38 initial CDATA "0x00">
40 <!-- Interrupt vectors -->
41 <!ELEMENT interrupts (interrupt*)>
42 <!ATTLIST interrupts
43 num CDATA #REQUIRED>
44 <!ELEMENT interrupt (#PCDATA)>
45 <!ATTLIST interrupt
46 vector CDATA #REQUIRED
47 address CDATA #REQUIRED
48 name CDATA #REQUIRED>
50 <!-- Hardware -->
51 <!ELEMENT hardware (module*)>
53 <!ELEMENT module (params?, registers?)>
54 <!ATTLIST module
55 class CDATA #REQUIRED>
56 <!ELEMENT params (param+)>
57 <!ELEMENT registers (reg+)>
59 <!ELEMENT param EMPTY>
60 <!ATTLIST param
61 name CDATA #REQUIRED
62 value CDATA #REQUIRED>
64 <!ELEMENT reg EMPTY>
65 <!ATTLIST reg
66 name CDATA #REQUIRED
67 bind CDATA #REQUIRED>