Sun Nov 6 03:42:35 PM CET 2022
This commit is contained in:
parent
ebb053029d
commit
36e87c9e2d
@ -80,6 +80,11 @@ action: `A += q; [A] = imm32`
|
||||
### ADDI
|
||||
### ADDIC
|
||||
|
||||
### SUB Subtract
|
||||
### SUBC Subtract with carry
|
||||
### SUBI Subtract immediate
|
||||
### SBIC Subtract immediate with carry
|
||||
|
||||
### MLA Multiply and add
|
||||
syntax: `MLA A, Ra, Rb, Rc`
|
||||
action: `A = Rc + (Ra * Rb)`
|
||||
@ -129,11 +134,8 @@ action: `A = F.C + imm + (Ra * Rb)`
|
||||
syntax: `SMLIAC A, Ra, imm, Rc`
|
||||
action: `A = F.C + Rc + (Ra * imm)`
|
||||
|
||||
|
||||
### SUB Subtract
|
||||
### SUBC Subtract with carry
|
||||
### SUBI Subtract immediate
|
||||
### SBIC Subtract immediate with carry
|
||||
### MUL, MULS, IMUL, MULI, etc.
|
||||
can be macro'd with multiply and adds
|
||||
|
||||
### AND
|
||||
### ANDI with immediate
|
||||
@ -177,6 +179,24 @@ syntax: `RJZS imm`
|
||||
# Stack manipulation
|
||||
|
||||
### CALL
|
||||
could be implemented with push/jump
|
||||
### RCALL
|
||||
could be implemented with pop/jump
|
||||
|
||||
### PUSH
|
||||
### POP
|
||||
|
||||
|
||||
# Planned to haves
|
||||
|
||||
- 1-cycle shift and add
|
||||
- 1-cycle intger division
|
||||
- floating point arithmetic
|
||||
- interrupts
|
||||
- atomic compare-and-swap
|
||||
- atomic load-link/store-conditional
|
||||
- memory management
|
||||
- memory-mapped registers
|
||||
- sine and cosine functions, see [cordic][1]
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/CORDIC
|
||||
|
2
MEMORY_MAP.md
Normal file
2
MEMORY_MAP.md
Normal file
@ -0,0 +1,2 @@
|
||||
# Register memory map
|
||||
|
279
decode.dig
Normal file
279
decode.dig
Normal file
@ -0,0 +1,279 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<attributes/>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>I</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>32</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>5,4,4,4,15</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>r0</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>4</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>r1</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>4</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>r2</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>4</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="480"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>ROM</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>AddrBits</string>
|
||||
<int>5</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Data</string>
|
||||
<data>1,2,3</data>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="420" y="320"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Const</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="400" y="360"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>o</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>intFormat</string>
|
||||
<intFormat>bin</intFormat>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>15</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>4</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="460" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>15</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>5</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="460" y="560"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>r4</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>4</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>i5</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>5</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="560"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>i15</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>15</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="600"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="280" y="400"/>
|
||||
<p2 x="520" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="320"/>
|
||||
<p2 x="420" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="480"/>
|
||||
<p2 x="520" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="560"/>
|
||||
<p2 x="460" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="480" y="560"/>
|
||||
<p2 x="520" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="480" y="340"/>
|
||||
<p2 x="520" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="280" y="420"/>
|
||||
<p2 x="360" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="520"/>
|
||||
<p2 x="460" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="480" y="520"/>
|
||||
<p2 x="520" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="600"/>
|
||||
<p2 x="520" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="400" y="360"/>
|
||||
<p2 x="420" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="280" y="440"/>
|
||||
<p2 x="340" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="440"/>
|
||||
<p2 x="520" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="380"/>
|
||||
<p2 x="260" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="280" y="380"/>
|
||||
<p2 x="320" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="280" y="460"/>
|
||||
<p2 x="320" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="460"/>
|
||||
<p2 x="320" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="320"/>
|
||||
<p2 x="320" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="520"/>
|
||||
<p2 x="320" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="560"/>
|
||||
<p2 x="320" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="440"/>
|
||||
<p2 x="340" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="420"/>
|
||||
<p2 x="360" y="440"/>
|
||||
</wire>
|
||||
</wires>
|
||||
<measurementOrdering/>
|
||||
</circuit>
|
146
main.dig
146
main.dig
@ -6,14 +6,154 @@
|
||||
<visualElement>
|
||||
<elementName>registers.dig</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="580" y="360"/>
|
||||
<pos x="600" y="240"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>alu.dig</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="580" y="580"/>
|
||||
<pos x="600" y="640"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>sreg.dig</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="600" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>pc.dig</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>shapeType</string>
|
||||
<shapeType>SIMPLE</shapeType>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="-280" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>decode.dig</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="100" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>RAMSinglePort</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>AddrBits</string>
|
||||
<int>16</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="-60" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>32</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>16,16</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="-160" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Register</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>IR</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="100" y="560"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Not</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="-20" y="660"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires/>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="0" y="560"/>
|
||||
<p2 x="100" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-300" y="580"/>
|
||||
<p2 x="-280" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-100" y="580"/>
|
||||
<p2 x="-60" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="80" y="580"/>
|
||||
<p2 x="100" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="20" y="660"/>
|
||||
<p2 x="40" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-120" y="660"/>
|
||||
<p2 x="-20" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-140" y="520"/>
|
||||
<p2 x="-60" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-220" y="520"/>
|
||||
<p2 x="-160" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-80" y="600"/>
|
||||
<p2 x="-60" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="40" y="600"/>
|
||||
<p2 x="100" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-120" y="540"/>
|
||||
<p2 x="-60" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="80" y="580"/>
|
||||
<p2 x="80" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-100" y="580"/>
|
||||
<p2 x="-100" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-120" y="540"/>
|
||||
<p2 x="-120" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-120" y="660"/>
|
||||
<p2 x="-120" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="40" y="600"/>
|
||||
<p2 x="40" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-300" y="580"/>
|
||||
<p2 x="-300" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="-80" y="600"/>
|
||||
<p2 x="-80" y="700"/>
|
||||
</wire>
|
||||
</wires>
|
||||
<measurementOrdering/>
|
||||
</circuit>
|
282
pc.dig
Normal file
282
pc.dig
Normal file
@ -0,0 +1,282 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<attributes/>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>Add</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="640" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Register</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>PC</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="460" y="320"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Multiplexer</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="480" y="500"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Const</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Value</string>
|
||||
<long>4</long>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="460" y="500"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Const</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Value</string>
|
||||
<long>0</long>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="620" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>PC</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="780" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>O</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="780" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Multiplexer</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>J</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>W</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="460"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Clock</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>CK</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>RA</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="540"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>RJ</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="580"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="380" y="320"/>
|
||||
<p2 x="460" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="260"/>
|
||||
<p2 x="720" y="260"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="420"/>
|
||||
<p2 x="400" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="580"/>
|
||||
<p2 x="500" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="540" y="360"/>
|
||||
<p2 x="640" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="700" y="360"/>
|
||||
<p2 x="720" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="420" y="360"/>
|
||||
<p2 x="460" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="520" y="520"/>
|
||||
<p2 x="540" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="460"/>
|
||||
<p2 x="420" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="300"/>
|
||||
<p2 x="340" y="300"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="400"/>
|
||||
<p2 x="780" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="520" y="340"/>
|
||||
<p2 x="640" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="700" y="340"/>
|
||||
<p2 x="720" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="340"/>
|
||||
<p2 x="340" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="400" y="340"/>
|
||||
<p2 x="460" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="340"/>
|
||||
<p2 x="780" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="460" y="500"/>
|
||||
<p2 x="480" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="540"/>
|
||||
<p2 x="480" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="380"/>
|
||||
<p2 x="360" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="380"/>
|
||||
<p2 x="640" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="260"/>
|
||||
<p2 x="320" y="300"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="260"/>
|
||||
<p2 x="720" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="360"/>
|
||||
<p2 x="720" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="400" y="340"/>
|
||||
<p2 x="400" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="420" y="360"/>
|
||||
<p2 x="420" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="500" y="540"/>
|
||||
<p2 x="500" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="340"/>
|
||||
<p2 x="360" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="540" y="360"/>
|
||||
<p2 x="540" y="520"/>
|
||||
</wire>
|
||||
</wires>
|
||||
<measurementOrdering/>
|
||||
</circuit>
|
1230
shift32.dig
1230
shift32.dig
File diff suppressed because it is too large
Load Diff
498
sreg.dig
Normal file
498
sreg.dig
Normal file
@ -0,0 +1,498 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<attributes/>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>Register</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>sreg</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>32</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="520" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>1*32</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>32</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>Z_i</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>C_i</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>N_i</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>V_i</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="460"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Const</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Value</string>
|
||||
<long>0</long>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="280" y="960"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Clock</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>CK</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>w</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>32</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>1*32</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="700" y="360"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>Z_o</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="840" y="360"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>C_o</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="840" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>N_o</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="840" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>V_o</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="840" y="480"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="280" y="960"/>
|
||||
<p2 x="320" y="960"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="960"/>
|
||||
<p2 x="340" y="960"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="640"/>
|
||||
<p2 x="340" y="640"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="900"/>
|
||||
<p2 x="340" y="900"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="580"/>
|
||||
<p2 x="340" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="840"/>
|
||||
<p2 x="340" y="840"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="520"/>
|
||||
<p2 x="340" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="460"/>
|
||||
<p2 x="260" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="460"/>
|
||||
<p2 x="340" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="780"/>
|
||||
<p2 x="340" y="780"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="400"/>
|
||||
<p2 x="340" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="820" y="400"/>
|
||||
<p2 x="840" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="400"/>
|
||||
<p2 x="800" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="720"/>
|
||||
<p2 x="340" y="720"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="340"/>
|
||||
<p2 x="340" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="340"/>
|
||||
<p2 x="520" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="660"/>
|
||||
<p2 x="340" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="920"/>
|
||||
<p2 x="340" y="920"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="600"/>
|
||||
<p2 x="340" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="860"/>
|
||||
<p2 x="340" y="860"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="540"/>
|
||||
<p2 x="340" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="800"/>
|
||||
<p2 x="340" y="800"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="480"/>
|
||||
<p2 x="340" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="780" y="480"/>
|
||||
<p2 x="840" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="420"/>
|
||||
<p2 x="240" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="420"/>
|
||||
<p2 x="340" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="440" y="420"/>
|
||||
<p2 x="480" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="420"/>
|
||||
<p2 x="780" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="740"/>
|
||||
<p2 x="340" y="740"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="220" y="360"/>
|
||||
<p2 x="340" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="460" y="360"/>
|
||||
<p2 x="520" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="360"/>
|
||||
<p2 x="840" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="580" y="360"/>
|
||||
<p2 x="700" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="680"/>
|
||||
<p2 x="340" y="680"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="940"/>
|
||||
<p2 x="340" y="940"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="620"/>
|
||||
<p2 x="340" y="620"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="880"/>
|
||||
<p2 x="340" y="880"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="560"/>
|
||||
<p2 x="340" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="820"/>
|
||||
<p2 x="340" y="820"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="500"/>
|
||||
<p2 x="340" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="760"/>
|
||||
<p2 x="340" y="760"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="440"/>
|
||||
<p2 x="340" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="800" y="440"/>
|
||||
<p2 x="840" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="380"/>
|
||||
<p2 x="220" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="240" y="380"/>
|
||||
<p2 x="340" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="440" y="380"/>
|
||||
<p2 x="460" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="480" y="380"/>
|
||||
<p2 x="520" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="720" y="380"/>
|
||||
<p2 x="820" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="700"/>
|
||||
<p2 x="340" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="240" y="380"/>
|
||||
<p2 x="240" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="420"/>
|
||||
<p2 x="320" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="580"/>
|
||||
<p2 x="320" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="840"/>
|
||||
<p2 x="320" y="860"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="600"/>
|
||||
<p2 x="320" y="620"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="860"/>
|
||||
<p2 x="320" y="880"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="620"/>
|
||||
<p2 x="320" y="640"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="880"/>
|
||||
<p2 x="320" y="900"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="640"/>
|
||||
<p2 x="320" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="900"/>
|
||||
<p2 x="320" y="920"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="660"/>
|
||||
<p2 x="320" y="680"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="920"/>
|
||||
<p2 x="320" y="940"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="680"/>
|
||||
<p2 x="320" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="940"/>
|
||||
<p2 x="320" y="960"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="440"/>
|
||||
<p2 x="320" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="700"/>
|
||||
<p2 x="320" y="720"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="460"/>
|
||||
<p2 x="320" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="720"/>
|
||||
<p2 x="320" y="740"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="480"/>
|
||||
<p2 x="320" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="740"/>
|
||||
<p2 x="320" y="760"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="500"/>
|
||||
<p2 x="320" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="760"/>
|
||||
<p2 x="320" y="780"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="520"/>
|
||||
<p2 x="320" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="780"/>
|
||||
<p2 x="320" y="800"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="540"/>
|
||||
<p2 x="320" y="560"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="800"/>
|
||||
<p2 x="320" y="820"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="560"/>
|
||||
<p2 x="320" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="320" y="820"/>
|
||||
<p2 x="320" y="840"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="480" y="380"/>
|
||||
<p2 x="480" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="800" y="400"/>
|
||||
<p2 x="800" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="400"/>
|
||||
<p2 x="260" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="820" y="380"/>
|
||||
<p2 x="820" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="220" y="360"/>
|
||||
<p2 x="220" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="460" y="360"/>
|
||||
<p2 x="460" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="780" y="420"/>
|
||||
<p2 x="780" y="480"/>
|
||||
</wire>
|
||||
</wires>
|
||||
<measurementOrdering/>
|
||||
</circuit>
|
Loading…
Reference in New Issue
Block a user