mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-17 08:55:05 -04:00
added Warren Toomey's Crazy Small CPU as an example
This commit is contained in:
parent
5ac29aa857
commit
481d1bca86
2884
src/main/dig/74xx/CrazySmallCPU.dig
Normal file
2884
src/main/dig/74xx/CrazySmallCPU.dig
Normal file
File diff suppressed because it is too large
Load Diff
666
src/main/dig/lib/RAMs/A623308A.dig
Normal file
666
src/main/dig/lib/RAMs/A623308A.dig
Normal file
@ -0,0 +1,666 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<attributes>
|
||||
<entry>
|
||||
<string>shapeType</string>
|
||||
<shapeType>DIL</shapeType>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Description</string>
|
||||
<string>8K X 8 BIT CMOS SRAM</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>lockedMode</string>
|
||||
<boolean>true</boolean>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Width</string>
|
||||
<int>11</int>
|
||||
</entry>
|
||||
</attributes>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>RAMSinglePortSel</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>AddrBits</string>
|
||||
<int>13</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>*</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>inverterConfig</string>
|
||||
<inverterConfig>
|
||||
<string>CS</string>
|
||||
<string>OE</string>
|
||||
<string>WE</string>
|
||||
</inverterConfig>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="260"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Splitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>splitterSpreading</string>
|
||||
<int>2</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Input Splitting</string>
|
||||
<string>1*13</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Output Splitting</string>
|
||||
<string>13</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="260"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A0</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>10</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="260"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A1</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>9</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A2</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>8</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A3</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>7</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A4</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>6</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A5</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>5</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="460"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A6</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>4</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="500"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A7</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>3</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="540"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A8</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>25</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="580"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A9</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>24</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="620"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A10</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>21</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="660"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A11</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>23</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="700"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A12</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>2</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="740"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>~CE</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>20</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>InDefault</string>
|
||||
<value v="1" z="false"/>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="800"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>~OE</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>22</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>InDefault</string>
|
||||
<value v="1" z="false"/>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="840"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>~WE</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>27</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>InDefault</string>
|
||||
<value v="1" z="false"/>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="880"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>BusSplitter</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>splitterSpreading</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="600" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D0</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>11</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D1</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>12</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="360"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D2</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>13</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D3</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>15</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="480"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D4</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>16</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="540"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D5</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>17</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="600"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D6</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>18</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="660"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>D7</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>19</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="660" y="720"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>PowerSupply</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="200" y="960"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>VCC</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>28</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>InDefault</string>
|
||||
<value v="1" z="false"/>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="960"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>GND</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<string>14</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="160" y="1000"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>NOr</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>inverterConfig</string>
|
||||
<inverterConfig>
|
||||
<string>In_2</string>
|
||||
</inverterConfig>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Inputs</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="420" y="480"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="540" y="320"/>
|
||||
<p2 x="600" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="380" y="320"/>
|
||||
<p2 x="420" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="960"/>
|
||||
<p2 x="200" y="960"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="220" y="260"/>
|
||||
<p2 x="440" y="260"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="260"/>
|
||||
<p2 x="200" y="260"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="580"/>
|
||||
<p2 x="200" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="840"/>
|
||||
<p2 x="360" y="840"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="520"/>
|
||||
<p2 x="420" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="460"/>
|
||||
<p2 x="200" y="460"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="720"/>
|
||||
<p2 x="660" y="720"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="340"/>
|
||||
<p2 x="200" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="340"/>
|
||||
<p2 x="420" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="660"/>
|
||||
<p2 x="200" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="660"/>
|
||||
<p2 x="660" y="660"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="180" y="980"/>
|
||||
<p2 x="200" y="980"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="280"/>
|
||||
<p2 x="420" y="280"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="600"/>
|
||||
<p2 x="660" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="540"/>
|
||||
<p2 x="200" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="540"/>
|
||||
<p2 x="660" y="540"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="800"/>
|
||||
<p2 x="340" y="800"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="480"/>
|
||||
<p2 x="660" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="480"/>
|
||||
<p2 x="420" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="420"/>
|
||||
<p2 x="200" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="420"/>
|
||||
<p2 x="660" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="740"/>
|
||||
<p2 x="200" y="740"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="360"/>
|
||||
<p2 x="660" y="360"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="1000"/>
|
||||
<p2 x="180" y="1000"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="300"/>
|
||||
<p2 x="200" y="300"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="500" y="300"/>
|
||||
<p2 x="600" y="300"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="620" y="300"/>
|
||||
<p2 x="660" y="300"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="620"/>
|
||||
<p2 x="200" y="620"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="880"/>
|
||||
<p2 x="380" y="880"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="500"/>
|
||||
<p2 x="200" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="500" y="500"/>
|
||||
<p2 x="540" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="380" y="500"/>
|
||||
<p2 x="400" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="380"/>
|
||||
<p2 x="200" y="380"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="160" y="700"/>
|
||||
<p2 x="200" y="700"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="280"/>
|
||||
<p2 x="340" y="480"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="480"/>
|
||||
<p2 x="340" y="800"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="180" y="980"/>
|
||||
<p2 x="180" y="1000"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="340"/>
|
||||
<p2 x="360" y="520"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="520"/>
|
||||
<p2 x="360" y="840"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="380" y="320"/>
|
||||
<p2 x="380" y="500"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="380" y="500"/>
|
||||
<p2 x="380" y="880"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="540" y="320"/>
|
||||
<p2 x="540" y="500"/>
|
||||
</wire>
|
||||
</wires>
|
||||
<measurementOrdering/>
|
||||
</circuit>
|
@ -32,8 +32,8 @@ public class TestExamples extends TestCase {
|
||||
*/
|
||||
public void testDistExamples() throws Exception {
|
||||
File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig");
|
||||
assertEquals(253, new FileScanner(this::check).scan(examples));
|
||||
assertEquals(171, testCasesInFiles);
|
||||
assertEquals(255, new FileScanner(this::check).scan(examples));
|
||||
assertEquals(172, testCasesInFiles);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,7 +29,8 @@ public class TestExamplesLanguage extends TestCase {
|
||||
|
||||
private static void check(File file) throws PinException, NodeException, ElementNotFoundException, IOException {
|
||||
if (file.getPath().contains("74xx")
|
||||
|| file.getPath().contains("EPROMs"))
|
||||
|| file.getPath().contains("EPROMs")
|
||||
|| file.getPath().contains("RAMs"))
|
||||
return;
|
||||
|
||||
Circuit circuit = new ToBreakRunner(file).getCircuit();
|
||||
|
Loading…
x
Reference in New Issue
Block a user