more work on uart server now with diagram

This commit is contained in:
Yehowshua Immanuel 2025-04-21 08:58:55 -04:00
parent 842c19d441
commit 1b62021029
2 changed files with 128 additions and 1 deletions

View file

@ -6,8 +6,13 @@ package Uart(
import Serializer
import Deserializer
import BusTypes
import Types
import Util
import FIFO
import FIFOF
import SpecialFIFOs
-- Out is out from the FPGA and In is in to the FPGA
interface (UartPhy :: # -> # -> *) clkFreq baudRate =
bitOut :: Bit 1
@ -18,7 +23,10 @@ mkUartPhy :: (BusTypes.BusServer inFlightTransactions numClients)
mkUartPhy dedicatedServerInterface = do
fileHandle :: Handle <- openFile "mkUartPhy.log" WriteMode
deserializer :: Deserializer clkFreq baudRate <- mkDeserialize fileHandle
serializer :: Serializer clkFreq baudRate <- mkSerialize fileHandle
serializer :: Serializer clkFreq baudRate <- mkSerialize fileHandle
taggedResponseBuffer :: (FIFO (BusTypes.TaggedBusResponse inFlightTransactions)) <- mkFIFO
return |>
interface UartPhy
bitOut = 1

119
diagrams/uart-server.drawio Normal file
View file

@ -0,0 +1,119 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.1.0 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" modified="2025-04-21T12:56:28.570Z" etag="135kqfW6HrLqAYEkHSZ3" version="24.1.0" type="device">
<diagram name="simplified" id="y4uZzcGV7WDpy27g0Dv6">
<mxGraphModel dx="669" dy="748" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="Sv9p3IYeCetwLeYRvYKd-5" value="" style="endArrow=none;dashed=1;html=1;rounded=0;jumpStyle=none;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="560" as="sourcePoint" />
<mxPoint x="560" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-2" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="240" as="sourcePoint" />
<mxPoint x="560" y="240" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="DDLsznhKMAXYVWb-8vYK-289" value="&lt;div style=&quot;font-size: 9px;&quot;&gt;&lt;br style=&quot;font-size: 9px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 9px;&quot;&gt;submit&lt;/div&gt;&lt;div style=&quot;font-size: 9px;&quot;&gt;response&lt;/div&gt;" style="endArrow=classic;html=1;rounded=0;labelBackgroundColor=default;fontSize=9;" parent="1" edge="1">
<mxGeometry x="-0.1667" width="50" height="50" relative="1" as="geometry">
<mxPoint x="479.66" y="280" as="sourcePoint" />
<mxPoint x="480" y="160" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-1" value="Bus" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=default;fontSize=12;" vertex="1" parent="1">
<mxGeometry x="320" y="120" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-3" value="Bus Side" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="560" y="170" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-4" value="Uart Server Side" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="560" y="390" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-6" value="Uart PHY Side" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="560" y="640" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-8" value="rx_bitIn" style="endArrow=classic;html=1;rounded=0;fontSize=10;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="360" y="680" as="sourcePoint" />
<mxPoint x="360" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-9" value="tx_bitOut" style="endArrow=classic;html=1;rounded=0;fontSize=10;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="480" y="520" as="sourcePoint" />
<mxPoint x="480" y="680" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-10" value="tagged response buffer" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="280" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-11" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
<mxGeometry x="320" y="420" width="200" height="20" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-12" value="logic" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="500" width="200" height="20" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-13" value="RBR" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="460" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-14" value="LSR" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="460" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-15" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="479.65999999999997" y="500" as="sourcePoint" />
<mxPoint x="480" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-16" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="359.65999999999997" y="500" as="sourcePoint" />
<mxPoint x="360" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-18" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;serializer&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="436" y="505" width="80" height="10" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-19" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;deserializer&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="325" y="505" width="80" height="10" as="geometry" />
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-20" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="479.80999999999995" y="460" as="sourcePoint" />
<mxPoint x="480.15" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-21" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="359.80999999999995" y="460" as="sourcePoint" />
<mxPoint x="360.15" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-22" value="consume&lt;div&gt;request&lt;/div&gt;" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="360" y="160" as="sourcePoint" />
<mxPoint x="330" y="430" as="targetPoint" />
<Array as="points">
<mxPoint x="360" y="200" />
<mxPoint x="300" y="200" />
<mxPoint x="300" y="430" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Sv9p3IYeCetwLeYRvYKd-23" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="480" y="320" as="targetPoint" />
<Array as="points">
<mxPoint x="420" y="360" />
<mxPoint x="480" y="360" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>