181 lines
11 KiB
XML
181 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="1800" height="940" viewBox="0 0 1800 940">
|
||
<defs>
|
||
<style>
|
||
text { font-family: "Noto Sans CJK SC", "Source Han Sans SC", sans-serif; fill: #17202a; letter-spacing: 0; }
|
||
.title { font-size: 31px; font-weight: 700; }
|
||
.subtitle { font-size: 18px; fill: #52606d; }
|
||
.lane { font-size: 20px; font-weight: 600; }
|
||
.tick { font-size: 16px; fill: #52606d; }
|
||
.bartext { font-size: 17px; font-weight: 600; }
|
||
.small { font-size: 15px; }
|
||
.grid { stroke: #d8dee4; stroke-width: 1; }
|
||
.axis { stroke: #657786; stroke-width: 2; }
|
||
.load { fill: #d7e9ff; stroke: #2674c9; stroke-width: 2; }
|
||
.compute { fill: #d8f3dc; stroke: #27864b; stroke-width: 2; }
|
||
.result { fill: #e8e0fa; stroke: #7254b3; stroke-width: 2; }
|
||
.crc { fill: #ffe8bd; stroke: #c77900; stroke-width: 2; }
|
||
.control { fill: #e8edf2; stroke: #62717f; stroke-width: 2; }
|
||
.done { fill: #d9f3ef; stroke: #168477; stroke-width: 2; }
|
||
.disabled { fill: #f4f5f6; stroke: #8a949e; stroke-width: 2; stroke-dasharray: 9 7; }
|
||
.prefetch { fill: none; stroke: #2674c9; stroke-width: 2; stroke-dasharray: 7 5; }
|
||
.arrow { stroke: #657786; stroke-width: 2; fill: none; marker-end: url(#arrowhead); }
|
||
</style>
|
||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||
<polygon points="0 0, 10 3.5, 0 7" fill="#657786"/>
|
||
</marker>
|
||
</defs>
|
||
|
||
<rect width="1800" height="940" fill="#ffffff"/>
|
||
<text x="42" y="48" class="title">Matmul 快速通道数据流甘特图</text>
|
||
<text x="42" y="78" class="subtitle">展示前四组进入稳态及最后收尾过程;阶段宽度用于表达依赖和重叠关系,不按周期严格缩放</text>
|
||
|
||
<!-- Time axis and grid -->
|
||
<line x1="350" y1="118" x2="1740" y2="118" class="axis"/>
|
||
<g>
|
||
<line x1="350" y1="118" x2="350" y2="846" class="grid"/>
|
||
<line x1="470" y1="118" x2="470" y2="846" class="grid"/>
|
||
<line x1="650" y1="118" x2="650" y2="846" class="grid"/>
|
||
<line x1="830" y1="118" x2="830" y2="846" class="grid"/>
|
||
<line x1="1010" y1="118" x2="1010" y2="846" class="grid"/>
|
||
<line x1="1190" y1="118" x2="1190" y2="846" class="grid"/>
|
||
<line x1="1370" y1="118" x2="1370" y2="846" class="grid"/>
|
||
<line x1="1510" y1="118" x2="1510" y2="846" class="grid"/>
|
||
<line x1="1640" y1="118" x2="1640" y2="846" class="grid"/>
|
||
<line x1="1740" y1="118" x2="1740" y2="846" class="grid"/>
|
||
</g>
|
||
<g text-anchor="middle">
|
||
<text x="410" y="108" class="tick">启动</text>
|
||
<text x="560" y="108" class="tick">组0装载</text>
|
||
<text x="740" y="108" class="tick">组1装载</text>
|
||
<text x="920" y="108" class="tick">组2装载</text>
|
||
<text x="1100" y="108" class="tick">组3装载</text>
|
||
<text x="1280" y="108" class="tick">稳态流水</text>
|
||
<text x="1440" y="108" class="tick">末组计算</text>
|
||
<text x="1575" y="108" class="tick">CRC排空</text>
|
||
<text x="1690" y="108" class="tick">完成</text>
|
||
</g>
|
||
|
||
<!-- Lane separators and labels -->
|
||
<g>
|
||
<line x1="34" y1="200" x2="1740" y2="200" class="grid"/>
|
||
<line x1="34" y1="280" x2="1740" y2="280" class="grid"/>
|
||
<line x1="34" y1="360" x2="1740" y2="360" class="grid"/>
|
||
<line x1="34" y1="440" x2="1740" y2="440" class="grid"/>
|
||
<line x1="34" y1="520" x2="1740" y2="520" class="grid"/>
|
||
<line x1="34" y1="600" x2="1740" y2="600" class="grid"/>
|
||
<line x1="34" y1="680" x2="1740" y2="680" class="grid"/>
|
||
<line x1="34" y1="760" x2="1740" y2="760" class="grid"/>
|
||
<line x1="34" y1="840" x2="1740" y2="840" class="grid"/>
|
||
</g>
|
||
<g>
|
||
<text x="44" y="170" class="lane">批量序列器</text>
|
||
<text x="44" y="250" class="lane">CDMA / AXI读</text>
|
||
<text x="44" y="330" class="lane">Bank 0 A/B</text>
|
||
<text x="44" y="410" class="lane">Bank 1 A/B</text>
|
||
<text x="44" y="490" class="lane">单一乘加流水线</text>
|
||
<text x="44" y="570" class="lane">C结果与退休</text>
|
||
<text x="44" y="650" class="lane">CRC结果FIFO</text>
|
||
<text x="44" y="730" class="lane">递归CRC32</text>
|
||
<text x="44" y="810" class="lane">ExtRAM结果写回</text>
|
||
</g>
|
||
|
||
<!-- Sequencer -->
|
||
<rect x="360" y="142" width="105" height="42" rx="4" class="control"/>
|
||
<text x="412" y="169" text-anchor="middle" class="bartext">清状态/CRC</text>
|
||
<rect x="470" y="142" width="1035" height="42" rx="4" class="control"/>
|
||
<text x="987" y="169" text-anchor="middle" class="bartext">提交读请求、维护双Bank有效位与计算队列</text>
|
||
<rect x="1510" y="142" width="125" height="42" rx="4" class="crc"/>
|
||
<text x="1572" y="169" text-anchor="middle" class="bartext">等待CRC空闲</text>
|
||
<rect x="1640" y="142" width="95" height="42" rx="4" class="done"/>
|
||
<text x="1687" y="169" text-anchor="middle" class="bartext">DONE</text>
|
||
|
||
<!-- CDMA shared read channel -->
|
||
<rect x="470" y="222" width="175" height="42" rx="4" class="load"/>
|
||
<text x="557" y="249" text-anchor="middle" class="bartext">G0: 128 B -> B0</text>
|
||
<rect x="650" y="222" width="175" height="42" rx="4" class="load"/>
|
||
<text x="737" y="249" text-anchor="middle" class="bartext">G1: 128 B -> B1</text>
|
||
<rect x="830" y="222" width="175" height="42" rx="4" class="load"/>
|
||
<text x="917" y="249" text-anchor="middle" class="bartext">G2: 128 B -> B0</text>
|
||
<rect x="1010" y="222" width="175" height="42" rx="4" class="load"/>
|
||
<text x="1097" y="249" text-anchor="middle" class="bartext">G3: 128 B -> B1</text>
|
||
<rect x="1190" y="222" width="315" height="42" rx="4" class="load"/>
|
||
<text x="1347" y="249" text-anchor="middle" class="bartext">G4 ... G4999 顺序返回</text>
|
||
<path d="M 585 216 L 735 216 M 765 216 L 915 216 M 945 216 L 1095 216" class="prefetch"/>
|
||
<text x="1310" y="216" text-anchor="middle" class="small" fill="#2674c9">共享R通道:1个活动突发 + 1个预取请求</text>
|
||
|
||
<!-- Bank buffers -->
|
||
<rect x="470" y="302" width="175" height="42" rx="4" class="load"/>
|
||
<text x="557" y="329" text-anchor="middle" class="bartext">装载 G0</text>
|
||
<rect x="650" y="302" width="175" height="42" rx="4" class="compute"/>
|
||
<text x="737" y="329" text-anchor="middle" class="bartext">供计算 G0</text>
|
||
<rect x="830" y="302" width="175" height="42" rx="4" class="load"/>
|
||
<text x="917" y="329" text-anchor="middle" class="bartext">装载 G2</text>
|
||
<rect x="1010" y="302" width="175" height="42" rx="4" class="compute"/>
|
||
<text x="1097" y="329" text-anchor="middle" class="bartext">供计算 G2</text>
|
||
<rect x="1190" y="302" width="315" height="42" rx="4" class="control"/>
|
||
<text x="1347" y="329" text-anchor="middle" class="bartext">偶数组循环复用</text>
|
||
|
||
<rect x="470" y="382" width="175" height="42" rx="4" class="control"/>
|
||
<text x="557" y="409" text-anchor="middle" class="bartext">空闲</text>
|
||
<rect x="650" y="382" width="175" height="42" rx="4" class="load"/>
|
||
<text x="737" y="409" text-anchor="middle" class="bartext">装载 G1</text>
|
||
<rect x="830" y="382" width="175" height="42" rx="4" class="compute"/>
|
||
<text x="917" y="409" text-anchor="middle" class="bartext">供计算 G1</text>
|
||
<rect x="1010" y="382" width="175" height="42" rx="4" class="load"/>
|
||
<text x="1097" y="409" text-anchor="middle" class="bartext">装载 G3</text>
|
||
<rect x="1190" y="382" width="315" height="42" rx="4" class="control"/>
|
||
<text x="1347" y="409" text-anchor="middle" class="bartext">奇数组循环复用</text>
|
||
|
||
<!-- Shared compute pipeline -->
|
||
<rect x="650" y="462" width="165" height="42" rx="4" class="compute"/>
|
||
<text x="732" y="489" text-anchor="middle" class="bartext">G0 发射16项</text>
|
||
<rect x="815" y="462" width="165" height="42" rx="4" class="compute"/>
|
||
<text x="897" y="489" text-anchor="middle" class="bartext">G1 发射16项</text>
|
||
<rect x="980" y="462" width="165" height="42" rx="4" class="compute"/>
|
||
<text x="1062" y="489" text-anchor="middle" class="bartext">G2 发射16项</text>
|
||
<rect x="1145" y="462" width="165" height="42" rx="4" class="compute"/>
|
||
<text x="1227" y="489" text-anchor="middle" class="bartext">G3 发射16项</text>
|
||
<rect x="1310" y="462" width="195" height="42" rx="4" class="compute"/>
|
||
<text x="1407" y="489" text-anchor="middle" class="bartext">... 末组</text>
|
||
|
||
<!-- Results and retirement -->
|
||
<rect x="690" y="542" width="165" height="42" rx="4" class="result"/>
|
||
<text x="772" y="569" text-anchor="middle" class="bartext">G0 C[0..15]</text>
|
||
<rect x="855" y="542" width="165" height="42" rx="4" class="result"/>
|
||
<text x="937" y="569" text-anchor="middle" class="bartext">G1 C[0..15]</text>
|
||
<rect x="1020" y="542" width="165" height="42" rx="4" class="result"/>
|
||
<text x="1102" y="569" text-anchor="middle" class="bartext">G2 C[0..15]</text>
|
||
<rect x="1185" y="542" width="320" height="42" rx="4" class="result"/>
|
||
<text x="1345" y="569" text-anchor="middle" class="bartext">G3 ... G4999;完成即退休</text>
|
||
|
||
<!-- CRC decoupling -->
|
||
<rect x="690" y="622" width="815" height="42" rx="4" class="crc"/>
|
||
<text x="1097" y="649" text-anchor="middle" class="bartext">每个66位C元素入FIFO;队列接近阈值时反压乘加发射</text>
|
||
<rect x="710" y="702" width="925" height="42" rx="4" class="crc"/>
|
||
<text x="1172" y="729" text-anchor="middle" class="bartext">递归CRC32:每个元素分两步处理,共12字节;末组之后继续排空</text>
|
||
|
||
<!-- Disabled writeback -->
|
||
<rect x="470" y="782" width="1165" height="42" rx="4" class="disabled"/>
|
||
<line x1="485" y1="815" x2="1620" y2="791" stroke="#8a949e" stroke-width="2"/>
|
||
<text x="1052" y="809" text-anchor="middle" class="bartext" fill="#68737d">快速通道:跳过192 B/组的C结果写回(标准模式才启用)</text>
|
||
|
||
<!-- Dependency arrows -->
|
||
<path d="M 645 264 L 670 302" class="arrow"/>
|
||
<path d="M 825 264 L 850 382" class="arrow"/>
|
||
<path d="M 815 504 L 835 542" class="arrow"/>
|
||
<path d="M 855 584 L 875 622" class="arrow"/>
|
||
<path d="M 1505 584 L 1550 702" class="arrow"/>
|
||
<path d="M 1635 723 L 1660 184" class="arrow"/>
|
||
|
||
<!-- Legend -->
|
||
<g transform="translate(42 884)">
|
||
<rect x="0" y="-17" width="28" height="20" class="load"/><text x="38" y="0" class="small">ExtRAM到Bank装载</text>
|
||
<rect x="220" y="-17" width="28" height="20" class="compute"/><text x="258" y="0" class="small">乘加计算</text>
|
||
<rect x="410" y="-17" width="28" height="20" class="result"/><text x="448" y="0" class="small">C结果/退休</text>
|
||
<rect x="600" y="-17" width="28" height="20" class="crc"/><text x="638" y="0" class="small">CRC缓冲与更新</text>
|
||
<rect x="835" y="-17" width="28" height="20" class="disabled"/><text x="873" y="0" class="small">快速模式禁用路径</text>
|
||
<text x="1160" y="0" class="small" fill="#52606d">系统时钟:50 MHz</text>
|
||
</g>
|
||
</svg>
|