Added discrete implementation of a single cell in "Conways Game f Life".

This commit is contained in:
hneemann 2016-11-16 19:32:41 +01:00
parent 9f7fe517cd
commit c9ebbc52c4

View File

@ -0,0 +1,455 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes>
<entry>
<string>Description</string>
<string>Implementaion of a single cell of &quot;Conways game of
life&quot;. This circuit is analyzed to create the truth table
with 11 inputs and one output. Then the truth table
is exported to a hex file, and this hex file is imported
into a LUT to speedup the cellular automaton.</string>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>BitCount</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>8</int>
</entry>
</elementAttributes>
<pos x="320" y="300"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>1*8</string>
</entry>
</elementAttributes>
<pos x="260" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>neighbour</string>
</entry>
<entry>
<string>Label</string>
<string>n1</string>
</entry>
</elementAttributes>
<pos x="160" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n2</string>
</entry>
</elementAttributes>
<pos x="240" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n3</string>
</entry>
</elementAttributes>
<pos x="160" y="340"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n4</string>
</entry>
</elementAttributes>
<pos x="240" y="360"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n5</string>
</entry>
</elementAttributes>
<pos x="160" y="380"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n6</string>
</entry>
</elementAttributes>
<pos x="240" y="400"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n7</string>
</entry>
</elementAttributes>
<pos x="160" y="420"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>n8</string>
</entry>
</elementAttributes>
<pos x="240" y="440"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>state of the cell, alive (HIGH) or dead (LOW)</string>
</entry>
<entry>
<string>Label</string>
<string>now</string>
</entry>
</elementAttributes>
<pos x="160" y="200"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="640" y="200"/>
</visualElement>
<visualElement>
<elementName>Comparator</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="460" y="280"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes>
<entry>
<string>Value</string>
<int>3</int>
</entry>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="440" y="280"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="700" y="200"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>State of cell in the next generation.</string>
</entry>
<entry>
<string>Label</string>
<string>next</string>
</entry>
</elementAttributes>
<pos x="980" y="300"/>
</visualElement>
<visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>birth</string>
</entry>
</elementAttributes>
<pos x="700" y="160"/>
</visualElement>
<visualElement>
<elementName>Comparator</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="460" y="400"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes>
<entry>
<string>Value</string>
<int>2</int>
</entry>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="440" y="400"/>
</visualElement>
<visualElement>
<elementName>Or</elementName>
<elementAttributes/>
<pos x="580" y="340"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="700" y="320"/>
</visualElement>
<visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>survive</string>
</entry>
</elementAttributes>
<pos x="680" y="280"/>
</visualElement>
<visualElement>
<elementName>Or</elementName>
<elementAttributes/>
<pos x="800" y="260"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes/>
<pos x="900" y="280"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>If high, the value given in input init is used as the
next state. Is used to initialize the cell.</string>
</entry>
<entry>
<string>Label</string>
<string>sel</string>
</entry>
</elementAttributes>
<pos x="860" y="440"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>The initial value of the cell. Is used if sel is high.</string>
</entry>
<entry>
<string>Label</string>
<string>init</string>
</entry>
</elementAttributes>
<pos x="860" y="380"/>
</visualElement>
<visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>neighbours</string>
</entry>
</elementAttributes>
<pos x="120" y="480"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="240" y="320"/>
<p2 x="260" y="320"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="700" y="320"/>
</wire>
<wire>
<p1 x="880" y="320"/>
<p2 x="900" y="320"/>
</wire>
<wire>
<p1 x="780" y="260"/>
<p2 x="800" y="260"/>
</wire>
<wire>
<p1 x="160" y="420"/>
<p2 x="260" y="420"/>
</wire>
<wire>
<p1 x="420" y="420"/>
<p2 x="460" y="420"/>
</wire>
<wire>
<p1 x="520" y="420"/>
<p2 x="560" y="420"/>
</wire>
<wire>
<p1 x="240" y="360"/>
<p2 x="260" y="360"/>
</wire>
<wire>
<p1 x="640" y="360"/>
<p2 x="700" y="360"/>
</wire>
<wire>
<p1 x="160" y="200"/>
<p2 x="620" y="200"/>
</wire>
<wire>
<p1 x="680" y="200"/>
<p2 x="700" y="200"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="640" y="200"/>
</wire>
<wire>
<p1 x="280" y="300"/>
<p2 x="320" y="300"/>
</wire>
<wire>
<p1 x="160" y="300"/>
<p2 x="260" y="300"/>
</wire>
<wire>
<p1 x="380" y="300"/>
<p2 x="420" y="300"/>
</wire>
<wire>
<p1 x="520" y="300"/>
<p2 x="560" y="300"/>
</wire>
<wire>
<p1 x="780" y="300"/>
<p2 x="800" y="300"/>
</wire>
<wire>
<p1 x="940" y="300"/>
<p2 x="980" y="300"/>
</wire>
<wire>
<p1 x="420" y="300"/>
<p2 x="460" y="300"/>
</wire>
<wire>
<p1 x="440" y="400"/>
<p2 x="460" y="400"/>
</wire>
<wire>
<p1 x="240" y="400"/>
<p2 x="260" y="400"/>
</wire>
<wire>
<p1 x="560" y="240"/>
<p2 x="700" y="240"/>
</wire>
<wire>
<p1 x="160" y="340"/>
<p2 x="260" y="340"/>
</wire>
<wire>
<p1 x="560" y="340"/>
<p2 x="580" y="340"/>
</wire>
<wire>
<p1 x="760" y="340"/>
<p2 x="780" y="340"/>
</wire>
<wire>
<p1 x="240" y="440"/>
<p2 x="260" y="440"/>
</wire>
<wire>
<p1 x="860" y="440"/>
<p2 x="920" y="440"/>
</wire>
<wire>
<p1 x="440" y="280"/>
<p2 x="460" y="280"/>
</wire>
<wire>
<p1 x="860" y="280"/>
<p2 x="900" y="280"/>
</wire>
<wire>
<p1 x="760" y="220"/>
<p2 x="780" y="220"/>
</wire>
<wire>
<p1 x="560" y="380"/>
<p2 x="580" y="380"/>
</wire>
<wire>
<p1 x="160" y="380"/>
<p2 x="260" y="380"/>
</wire>
<wire>
<p1 x="860" y="380"/>
<p2 x="880" y="380"/>
</wire>
<wire>
<p1 x="560" y="240"/>
<p2 x="560" y="300"/>
</wire>
<wire>
<p1 x="560" y="380"/>
<p2 x="560" y="420"/>
</wire>
<wire>
<p1 x="560" y="300"/>
<p2 x="560" y="340"/>
</wire>
<wire>
<p1 x="880" y="320"/>
<p2 x="880" y="380"/>
</wire>
<wire>
<p1 x="420" y="300"/>
<p2 x="420" y="420"/>
</wire>
<wire>
<p1 x="920" y="320"/>
<p2 x="920" y="440"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="620" y="320"/>
</wire>
<wire>
<p1 x="780" y="300"/>
<p2 x="780" y="340"/>
</wire>
<wire>
<p1 x="780" y="220"/>
<p2 x="780" y="260"/>
</wire>
</wires>
</circuit>