Skip to content
Snippets Groups Projects
Commit 97e5d0a6 authored by Boris Stefanovic's avatar Boris Stefanovic
Browse files

ADD: presentation

parent da3cce6f
No related branches found
No related tags found
No related merge requests found
Showing
with 242 additions and 65 deletions
......@@ -73,3 +73,6 @@ meta/report/**/*.dvi
meta/report/xout/
meta/report/*.pdf
!meta/report/template/images/statements/originalstatements.pdf
meta/presentation/*.pdf
meta/diagrams/*.bkp
SRCD := hw/spinal/kyber
REPORT := ISC_EMB_memoire_diplome_Stefanovic_Upegui_2024.pdf
PRESENTATION := ISC_EMB_presentation_diplome_Stefanovic_Upegui_2024.pdf
LATEX_MAIN_NAME := toplevel
LATEX_MAIN_FILE := ${LATEX_MAIN_NAME}.tex
LATEX_MAIN_OUTPUT := ${LATEX_MAIN_NAME}.pdf
LATEX_TMP_DIR := /tmp/latex-$(shell date +%Y%m%d-%H%M%S-%N)
#LATEX_CMD_PDF := pdflatex -interaction=nonstopmode -synctex=1 --output-directory=${LATEX_TMP_DIR} --aux-directory=${LATEX_TMP_DIR} ${LATEX_MAIN_FILE}
LATEX_CMD_PDF := pdflatex -interaction=nonstopmode -synctex=1 --output-directory=${LATEX_TMP_DIR} ${LATEX_MAIN_FILE}
LATEX_CMD_BIB := biber --input-directory ${LATEX_TMP_DIR} --output-directory ${LATEX_TMP_DIR} ${LATEX_MAIN_NAME}
LATEX_SRC := $(shell find meta/report -type f -name '*.tex')
PRES_MAIN_NAME := main
PRES_MAIN_FILE := ${PRES_MAIN_NAME}.tex
PRES_MAIN_OUTPUT := ${PRES_MAIN_NAME}.pdf
PRES_TMP_DIR := /tmp/pres-$(shell date +%Y%m%d-%H%M%S-%N)
#PRES_CMD_PDF := pdflatex -interaction=nonstopmode -synctex=1 --output-directory=${PRES_TMP_DIR} ${PRES_MAIN_FILE}
PRES_CMD_PDF := pdflatex -interaction=nonstopmode -synctex=1 --output-directory=${PRES_TMP_DIR} --shell-escape ${PRES_MAIN_FILE}
PRES_CMD_BIB := biber --input-directory ${PRES_TMP_DIR} --output-directory ${PRES_TMP_DIR} ${PRES_MAIN_NAME}
PRESENTATION_SRC := $(shell find meta/presentation -type f -name '*.tex' -o -name '*.cls')
ntt: clean $(wildcard ${SRCD}/ntt/*)
sbt "runMain kyber.ntt.NttGEN"
......@@ -41,7 +48,6 @@ pdf: ${LATEX_SRC}
view: pdf
#firefox meta/report/${LATEX_MAIN_OUTPUT}
firefox meta/report/${REPORT}
......@@ -51,8 +57,25 @@ repdf: clean pdf
review: clean view
presentation: ${PRESENTATION_SRC}
mkdir -p ${PRES_TMP_DIR}
cd meta/presentation && \
${PRES_CMD_PDF} ; \
${PRES_CMD_PDF} ; \
${PRES_CMD_PDF} ; \
${PRES_CMD_BIB} ; \
${PRES_CMD_PDF} ; \
${PRES_CMD_PDF} ; \
cp ${PRES_TMP_DIR}/${PRES_MAIN_OUTPUT} ${PRESENTATION}
rm -rf ${PRES_TMP_DIR}
presentnow: clean presentation
firefox meta/presentation/${PRESENTATION}
clean:
rm -rf gen out simWorkspace target meta/report/xout meta/report/*.pdf
rm -rf gen out simWorkspace target sw/a.out meta/report/xout meta/report/*.pdf
find meta/report -type f \
\(\
-name '*.aux' -o \
......@@ -71,8 +94,9 @@ clean:
-not -name 'originalstatements.pdf' \
\)\
-print -delete
rm -rf meta/presentation/*.pdf meta/diagrams/.*.bkp
.PHONY: clean ntt pdf repdf review view
.PHONY: clean ntt pdf presentation presentnow repdf review view
.NOTPARALLEL: repdf review
.NOTPARALLEL: presentnow repdf review
......@@ -15,11 +15,10 @@ case class AddressTable(nports: Int = 1) extends Component {
SoftChecks.require_NPORTS(nports)
val io = new Bundle {
val i_iteration = Vec.fill(nports)(in UInt (log2Up(SoftConstants.TABLE_LENGTH) bits)) // 10 bits
val o_j = Vec.fill(nports)(out UInt (log2Up(SoftConstants.WORD_COUNT) bits)) // 8 bits
val o_l = Vec.fill(nports)(out UInt (log2Up(SoftConstants.WORD_COUNT) bits)) // 8 bits
//val o_k = Vec.fill(nports)(out UInt (log2Up(SoftConstants.ZETAS_TABLE_LENGTH) bits)) // 7 bits
val o_zeta = Vec.fill(nports)(out SInt (SoftConstants.WORD_WIDTH bits)) //16 bits
val i_iteration = in(Vec.fill(nports)(UInt(log2Up(SoftConstants.TABLE_LENGTH) bits))) // 10 bits
val o_j = out(Vec.fill(nports)(UInt(log2Up(SoftConstants.WORD_COUNT) bits))) // 8 bits
val o_l = out(Vec.fill(nports)(UInt(log2Up(SoftConstants.WORD_COUNT) bits))) // 8 bits
val o_zeta = out(Vec.fill(nports)(SInt(SoftConstants.WORD_WIDTH bits))) //16 bits
}
val sig_loop_n = Vec.fill(nports)(UInt(log2Up(SoftConstants.TABLE_LENGTH) - 7 bits))
......@@ -48,7 +47,6 @@ case class AddressTable(nports: Int = 1) extends Component {
// outputs
io.o_j(n) <> sig_j(n)
io.o_l(n) <> sig_l(n)
//io.o_k(n) <> sig_k(n)
io.o_zeta(n) <> sig_z(n)
}
}
......@@ -65,7 +63,6 @@ object AddressTableSIM extends App {
for (n <- 0 until dut.nports) {
assert(dut.io.o_j(n).toInt == SoftFunctions.expr_J(i))
assert(dut.io.o_l(n).toInt == SoftFunctions.expr_L(i))
//assert(dut.io.o_k(n).toInt == SoftFunctions.expr_K(i))
assert(dut.io.o_zeta(n).toInt == SoftFunctions.expr_Z(i))
}
}
......
......@@ -21,7 +21,7 @@ case class IndexDispatcher(nports: Int = 1) extends Component {
val io = new Bundle {
val i_step = in UInt (log2Up(SoftConstants.TABLE_LENGTH / nports) bits)
val o_tabidx = Vec.fill(nports)(out UInt (log2Up(SoftConstants.TABLE_LENGTH) bits))
val o_tabidx = out(Vec.fill(nports)(UInt(log2Up(SoftConstants.TABLE_LENGTH) bits)))
}
for (n <- 0 until nports) {
......
......@@ -19,10 +19,10 @@ case class MemoryBuffer(
val i_single_addr = in UInt (log2Up(word_count) bits)
val i_single_load = in Bool()
val o_single_data = out Bits (word_width bits)
val i_parallel_data = Vec.fill(nports)(Vec.fill(2)(in Bits (word_width bits)))
val i_parallel_addr = Vec.fill(nports)(Vec.fill(2)(in UInt (log2Up(word_count) bits)))
val i_parallel_data = in(Vec.fill(nports)(Vec.fill(2)(Bits(word_width bits))))
val i_parallel_addr = in(Vec.fill(nports)(Vec.fill(2)(UInt(log2Up(word_count) bits))))
val i_parallel_update = in Bool()
val o_parallel_data = Vec.fill(nports)(Vec.fill(2)(out Bits (word_width bits)))
val o_parallel_data = out(Vec.fill(nports)(Vec.fill(2)(Bits(word_width bits))))
}
// REGISTERS
......
......@@ -135,6 +135,7 @@ object NttGEN extends App {
object NttSIM extends App {
for (nports <- (0 to 7).map(1 << _)) {
//Config.sim.withVcdWave.compile(Ntt(nports = nports)).doSim { dut =>
Config.sim.compile(Ntt(nports = nports)).doSim { dut =>
val t = Ticker(dut)
dut.io.i_data #= 0
......
......@@ -12,13 +12,13 @@ import spinal.lib.bus.amba4.axi._
*
* @param nports the number of "butterflies" or parallel multiplications
*/
case class NttAxi(nports: Int = 1) extends Component {
case class NttAxi(nports: Int = 1, adrwid: Int = 32, datwid: Int = 32) extends Component {
SoftChecks.require_NPORTS(nports)
val io = new Bundle {
val axi = slave(Axi4(Axi4Config(
addressWidth = 32,
dataWidth = 32,
addressWidth = adrwid,
dataWidth = datwid,
idWidth = 0,
useId = false,
useRegion = false,
......@@ -37,39 +37,56 @@ case class NttAxi(nports: Int = 1) extends Component {
val ntt = Ntt(nports = nports)
// SPEC (AXI4) : on reset, drive VALID to '0'
val reg_rvalid = Reg(Bool()) init false
reg_rvalid := ntt.io.o_valid
val reg_bvalid = Reg(Bool()) init false
reg_bvalid := True
val sig_is_write = Bool() // TODO: define
// NTT INPUTS
ntt.io.i_data := io.axi.w.data(ntt.io.i_data.getBitsWidth - 1 downto 0)
ntt.io.i_addr := sig_is_write.mux(
io.axi.aw.addr.asBits.asUInt(ntt.io.i_addr.getBitsWidth - 1 downto 0),
io.axi.ar.addr.asBits.asUInt(ntt.io.i_addr.getBitsWidth - 1 downto 0),
)
ntt.io.i_load
ntt.io.i_go
ntt.io.i_stop
// CONSUMABLE
io.axi.ar.addr
io.axi.ar.valid
io.axi.r.ready
io.axi.aw.addr
io.axi.aw.valid
io.axi.w.data
io.axi.w.valid
val read = new Area {
val reg_rd_dat = Reg(Bits(datwid bits)) init 0
val reg_rd_valid = Reg(Bool()) init false // requested data is registered and ready for reading
ntt.io.i_addr := io.axi.ar.addr(ntt.io.i_addr.high downto 0) // ignore MSB
io.axi.ar.ready := !reg_rd_valid
io.axi.r.data := reg_rd_dat
io.axi.r.valid := reg_rd_valid
when(io.axi.ar.valid) {
reg_rd_valid := True
when(!io.axi.ar.addr.asBits(ntt.io.i_addr.getWidth)) {
reg_rd_dat := ((ntt.io.o_data.high downto 0) -> ntt.io.o_data, default -> false)
} elsewhen (io.axi.ar.addr(io.axi.ar.addr.high - 1 downto 0) === 0) {
reg_rd_dat := (1 -> ntt.io.o_valid, 0 -> ntt.io.o_ready, default -> false)
} otherwise {
reg_rd_valid := False
}
}
when(io.axi.r.ready && reg_rd_valid) {
reg_rd_valid := False
}
}
// SETTABLE
io.axi.ar.ready := True
io.axi.r.data := ((ntt.io.o_data.getBitsWidth - 1 downto 0) -> ntt.io.o_data, default -> false)
io.axi.r.valid := ntt.io.o_valid
io.axi.aw.ready := True
//TODO: WIP
val writ = new Area {
val reg_ntt_load = Reg(Bool()) init false
reg_ntt_load := False
val reg_ntt_idat = Reg(Bits(ntt.io.i_data.getWidth bits)) init 0
reg_ntt_idat := (default -> false)
val reg_ntt_go = Reg(Bool()) init false
reg_ntt_go := False
val reg_ntt_stop = Reg(Bool()) init false
reg_ntt_stop := False
val reg_aw_ready = Reg(Bool()) init false
reg_aw_ready := True
val reg_aw_adr = Reg(UInt(ntt.io.i_addr.getWidth bits))
ntt.io.i_load := reg_ntt_load
ntt.io.i_data := reg_ntt_idat
ntt.io.i_go := reg_ntt_go
ntt.io.i_stop := reg_ntt_stop
io.axi.aw.ready := reg_aw_ready
io.axi.w.ready := ntt.io.o_ready
when(io.axi.aw.valid) {
when(!io.axi.aw.addr.asBits(ntt.io.i_addr.getWidth)) {
reg_aw_adr := io.axi.aw.addr(ntt.io.i_addr.high downto 0)
reg_aw_ready := False
}
}
io.axi.b.valid := True
//io.axi.b.resp := (default -> false) // valid should be set but this is available only when useResp is set in config
}
}
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="3.8.0" version="1.0">
This file is intended to be loaded by Logisim-evolution v3.8.0(https://github.com/logisim-evolution/).
<project source="3.9.0" version="1.0">
This file is intended to be loaded by Logisim-evolution v3.9.0(https://github.com/logisim-evolution/).
<lib desc="#Wiring" name="0">
<tool name="Pin">
......@@ -554,19 +554,19 @@
</comp>
<comp lib="0" loc="(1510,1590)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="AXIA"/>
<a name="label" val="SADR"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="3"/>
</comp>
<comp lib="0" loc="(1510,3090)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="AXID"/>
<a name="label" val="SDAT"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(1530,3150)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="AXIA"/>
<a name="label" val="SADR"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="3"/>
</comp>
......@@ -961,7 +961,7 @@
</comp>
<comp lib="0" loc="(300,1020)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="I_AXI_LOAD"/>
<a name="label" val="I_SINGLE_LOAD"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
</comp>
<comp lib="0" loc="(300,1180)" name="Pin">
......@@ -995,14 +995,14 @@
</comp>
<comp lib="0" loc="(300,940)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="I_AXI_DATA"/>
<a name="label" val="I_SINGLE_DATA"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="radix" val="16"/>
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(300,980)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="I_AXI_ADDR"/>
<a name="label" val="I_SINGLE_ADDR"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="radix" val="8"/>
<a name="width" val="3"/>
......@@ -1069,12 +1069,12 @@
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
</comp>
<comp lib="0" loc="(320,940)" name="Tunnel">
<a name="label" val="AXID"/>
<a name="label" val="SDAT"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(320,980)" name="Tunnel">
<a name="label" val="AXIA"/>
<a name="label" val="SADR"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="3"/>
</comp>
......@@ -1464,7 +1464,7 @@
</comp>
<comp lib="0" loc="(3650,2570)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="AXIA"/>
<a name="label" val="SADR"/>
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="3"/>
</comp>
......@@ -1884,7 +1884,7 @@
<a name="labelfont" val="DejaVu Sans Mono bold 16"/>
<a name="width" val="4"/>
</comp>
<comp lib="8" loc="(1986,102)" name="Text">
<comp lib="8" loc="(1985,100)" name="Text">
<a name="font" val="DejaVu Sans Mono bold 64"/>
<a name="text" val="MemoryBuffer with parameters : N = 4 , R = 8 , W = 4"/>
</comp>
......
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1488" dy="1046" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="CreHkGv_l4cko5DSV3HE-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-1" target="CreHkGv_l4cko5DSV3HE-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-1" value="Stage Counter" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Courier New;labelBackgroundColor=none;fontSize=36;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="160" y="320" width="320" height="160" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-7" target="CreHkGv_l4cko5DSV3HE-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-7" value="&lt;font style=&quot;font-size: 32px;&quot;&gt;IndexDispatcher&lt;/font&gt;&lt;div style=&quot;font-size: 32px;&quot;&gt;&lt;font style=&quot;font-size: 32px;&quot;&gt;and&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 32px;&quot;&gt;&lt;font style=&quot;font-size: 32px;&quot;&gt;AddressTable&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Courier New;labelBackgroundColor=none;fontSize=20;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="160" y="560" width="320" height="160" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.001;entryY=0.876;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-8" target="CreHkGv_l4cko5DSV3HE-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1000" y="630" as="targetPoint" />
<Array as="points">
<mxPoint x="960" y="620" />
<mxPoint x="1000" y="620" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.132;exitDx=0;exitDy=0;entryX=0;entryY=0.623;entryDx=0;entryDy=0;exitPerimeter=0;entryPerimeter=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-8" target="CreHkGv_l4cko5DSV3HE-11" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1040" y="580" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-8" value="Parallel Access Memory" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Courier New;labelBackgroundColor=none;fontSize=36;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="640" y="560" width="320" height="160" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.375;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-11" target="CreHkGv_l4cko5DSV3HE-8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="620" y="620" as="targetPoint" />
<Array as="points">
<mxPoint x="1440" y="600" />
<mxPoint x="1440" y="400" />
<mxPoint x="560" y="400" />
<mxPoint x="560" y="620" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="580" as="targetPoint" />
<Array as="points">
<mxPoint x="1400" y="560" />
<mxPoint x="1400" y="440" />
<mxPoint x="600" y="440" />
<mxPoint x="600" y="580" />
<mxPoint x="640" y="580" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-11" value="Butterfly&lt;div style=&quot;font-size: 36px;&quot;&gt;array&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Courier New;labelBackgroundColor=none;fontSize=36;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1040" y="480" width="320" height="160" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-18" target="CreHkGv_l4cko5DSV3HE-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-18" target="CreHkGv_l4cko5DSV3HE-22" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-18" value="&lt;font style=&quot;font-size: 36px;&quot;&gt;FSM&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Courier New;labelBackgroundColor=none;fontSize=36;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="640" y="120" width="320" height="160" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeWidth=3;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="CreHkGv_l4cko5DSV3HE-19" target="CreHkGv_l4cko5DSV3HE-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-19" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;CONTROL&lt;/font&gt;&lt;div style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;INPUTS&lt;/font&gt;&lt;/div&gt;" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;fontSize=16;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="80" y="120" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="CreHkGv_l4cko5DSV3HE-22" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;STATUS&lt;/font&gt;&lt;div style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;OUTPUTS&lt;/font&gt;&lt;/div&gt;" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;fontSize=16;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1280" y="120" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="q4HsAQn1FssbSAMFfruA-0" value="" style="rounded=0;whiteSpace=wrap;html=1;opacity=40;strokeWidth=0;fillColor=#FFDD00;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1020" y="460" width="360" height="200" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1459px" height="522px" viewBox="-0.5 -0.5 1459 522" content="&lt;mxfile host=&quot;Electron&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36&quot; version=&quot;24.7.8&quot;&gt;&#10; &lt;diagram name=&quot;Page-1&quot; id=&quot;vTxVs78Xg11w-nj1qb18&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1190&quot; dy=&quot;837&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;1600&quot; pageHeight=&quot;900&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-4&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; source=&quot;VjOqcH7dubU-BIThroVH-1&quot; target=&quot;VjOqcH7dubU-BIThroVH-2&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-1&quot; value=&quot;Identifier les grands&amp;lt;div&amp;gt;composants&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;à implémenter&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;160&quot; y=&quot;360&quot; width=&quot;320&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-5&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; source=&quot;VjOqcH7dubU-BIThroVH-2&quot; target=&quot;VjOqcH7dubU-BIThroVH-3&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-2&quot; value=&quot;Choisir le&amp;lt;div&amp;gt;composant prioritaire&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;640&quot; y=&quot;360&quot; width=&quot;320&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-6&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; source=&quot;VjOqcH7dubU-BIThroVH-3&quot; target=&quot;VjOqcH7dubU-BIThroVH-1&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;1520&quot; y=&quot;440&quot; /&gt;&#10; &lt;mxPoint x=&quot;1520&quot; y=&quot;280&quot; /&gt;&#10; &lt;mxPoint x=&quot;80&quot; y=&quot;280&quot; /&gt;&#10; &lt;mxPoint x=&quot;80&quot; y=&quot;440&quot; /&gt;&#10; &lt;/Array&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-7&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=3;&quot; parent=&quot;1&quot; source=&quot;VjOqcH7dubU-BIThroVH-3&quot; target=&quot;5SgrSzUetFcjJ_riC5Sn-4&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;VjOqcH7dubU-BIThroVH-3&quot; value=&quot;Implémenter et tester&amp;lt;div&amp;gt;le module&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;strokeWidth=4;fontSize=24;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;1120&quot; y=&quot;360&quot; width=&quot;320&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-2&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;&quot; parent=&quot;1&quot; source=&quot;5SgrSzUetFcjJ_riC5Sn-1&quot; target=&quot;VjOqcH7dubU-BIThroVH-1&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-1&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 20px;&amp;quot;&amp;gt;Start&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/font&amp;gt;&quot; style=&quot;triangle;whiteSpace=wrap;html=1;strokeWidth=3;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;80&quot; y=&quot;600&quot; width=&quot;160&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-3&quot; value=&quot;Composants non-implémentés&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;1090&quot; y=&quot;240&quot; width=&quot;320&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-8&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;&quot; parent=&quot;1&quot; source=&quot;5SgrSzUetFcjJ_riC5Sn-4&quot; target=&quot;5SgrSzUetFcjJ_riC5Sn-6&quot; edge=&quot;1&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-4&quot; value=&quot;Optimisation globale&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=24;strokeWidth=3;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;880&quot; y=&quot;640&quot; width=&quot;240&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-6&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 24px;&amp;quot;&amp;gt;ASIC&amp;lt;/font&amp;gt;&quot; style=&quot;shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=3;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;1360&quot; y=&quot;640&quot; width=&quot;160&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;5SgrSzUetFcjJ_riC5Sn-9&quot; value=&quot;Tous composants implémentés&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;970&quot; y=&quot;540&quot; width=&quot;320&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="VjOqcH7dubU-BIThroVH-4"><g><path d="M 409 200 L 557.03 200" fill="none" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 564.53 200 L 554.53 205 L 557.03 200 L 554.53 195 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="VjOqcH7dubU-BIThroVH-1"><g><ellipse cx="249" cy="200" rx="160" ry="80" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="4" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 200px; margin-left: 90px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Identifier les grands<div>composants</div><div>à implémenter</div></div></div></div></foreignObject><text x="249" y="207" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="24px" text-anchor="middle">Identifier les grands...</text></switch></g></g></g><g data-cell-id="VjOqcH7dubU-BIThroVH-5"><g><path d="M 889 200 L 1037.03 200" fill="none" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1044.53 200 L 1034.53 205 L 1037.03 200 L 1034.53 195 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="VjOqcH7dubU-BIThroVH-2"><g><ellipse cx="729" cy="200" rx="160" ry="80" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="4" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 200px; margin-left: 570px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Choisir le<div>composant prioritaire</div></div></div></div></foreignObject><text x="729" y="207" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="24px" text-anchor="middle">Choisir le...</text></switch></g></g></g><g data-cell-id="VjOqcH7dubU-BIThroVH-6"><g><path d="M 1369 200 L 1449 200 L 1449 40 L 9 40 L 9 200 L 77.03 200" fill="none" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 84.53 200 L 74.53 205 L 77.03 200 L 74.53 195 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-7"><g><path d="M 1209 280 L 1209 340 L 929 340 L 929 389.9" fill="none" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 929 396.65 L 924.5 387.65 L 929 389.9 L 933.5 387.65 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="VjOqcH7dubU-BIThroVH-3"><g><ellipse cx="1209" cy="200" rx="160" ry="80" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="4" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 200px; margin-left: 1050px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Implémenter et tester<div>le module</div></div></div></div></foreignObject><text x="1209" y="207" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="24px" text-anchor="middle">Implémenter et tester...</text></switch></g></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-2"><g><path d="M 169 440 L 249 440 L 249 290.1" fill="none" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 249 283.35 L 253.5 292.35 L 249 290.1 L 244.5 292.35 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-1"><g><path d="M 9 360 L 169 440 L 9 520 Z" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 440px; margin-left: 10px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 20px;">Start </font></div></div></div></foreignObject><text x="89" y="444" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Start </text></switch></g></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-3"><g><rect x="1019" y="0" width="320" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 20px; margin-left: 1020px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Composants non-implémentés</div></div></div></foreignObject><text x="1179" y="25" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="18px" text-anchor="middle">Composants non-implémentés</text></switch></g></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-8"><g><path d="M 1049 440 L 1278.9 440" fill="none" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1285.65 440 L 1276.65 444.5 L 1278.9 440 L 1276.65 435.5 Z" fill="rgb(240, 240, 240)" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-4"><g><rect x="809" y="400" width="240" height="80" rx="12" ry="12" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 440px; margin-left: 810px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Optimisation globale</div></div></div></foreignObject><text x="929" y="447" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="24px" text-anchor="middle">Optimisation globale</text></switch></g></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-6"><g><path d="M 1309 400 L 1429 400 L 1449 440 L 1429 480 L 1309 480 L 1289 440 Z" fill="rgb(24, 20, 29)" stroke="rgb(240, 240, 240)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 440px; margin-left: 1290px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 24px;">ASIC</font></div></div></div></foreignObject><text x="1369" y="444" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">ASIC</text></switch></g></g></g><g data-cell-id="5SgrSzUetFcjJ_riC5Sn-9"><g><rect x="899" y="300" width="320" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 320px; margin-left: 900px;"><div data-drawio-colors="color: rgb(240, 240, 240); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tous composants implémentés</div></div></div></foreignObject><text x="1059" y="325" fill="rgb(240, 240, 240)" font-family="&quot;Helvetica&quot;" font-size="18px" text-anchor="middle">Tous composants implémentés</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
This diff is collapsed.
File added
meta/presentation/img/Butterfly.png

24.8 KiB

meta/presentation/img/Butterfly_with_square.png

22.5 KiB

meta/presentation/img/Fqmul.png

38.1 KiB

meta/presentation/img/MemoryBuffer.png

283 KiB

meta/presentation/img/MemoryBuffer_with_frames.png

999 KiB

meta/presentation/img/butterfly_humour.png

135 KiB

meta/presentation/img/cc.png

103 KiB

meta/presentation/img/delay.png

58 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment