From 0bff4328da05ccc743d734169d6160fb69a37fdf Mon Sep 17 00:00:00 2001 From: peteraa Date: Mon, 13 Aug 2018 14:14:33 +0200 Subject: [PATCH] huh --- .../oppgavetekst.org => oppgavetekst.org | 5 +- ov0/src/main/scala/daisyMatMul.scala | 1 - tdt4255figs/pngs/vector.png | Bin 0 -> 17022 bytes tdt4255figs/vector.svg | 1410 +++++++++++++++++ 4 files changed, 1414 insertions(+), 2 deletions(-) rename ov0/src/main/scala/oppgavetekst.org => oppgavetekst.org (98%) create mode 100644 tdt4255figs/pngs/vector.png create mode 100644 tdt4255figs/vector.svg diff --git a/ov0/src/main/scala/oppgavetekst.org b/oppgavetekst.org similarity index 98% rename from ov0/src/main/scala/oppgavetekst.org rename to oppgavetekst.org index 9a38af6..b32271f 100644 --- a/ov0/src/main/scala/oppgavetekst.org +++ b/oppgavetekst.org @@ -179,12 +179,15 @@ else dataOut(T - vectorLength) #+end_src - From the figure the principle of operation becomes clearer [inkskape drawing, rm sketch] + From the figure the principle of operation becomes clearer To test your implementation you can run sbt> testOnly Core.daisyVecSpec in your sbt console +#+CAPTION: A vector with 4 registers +[[./tdt4255figs/pngs/vector.png]] + ** Task 2 - Dot Product Your next task is to implement a dot product calculator. daisyDot should calculate the dot product of two vectors, inA and inB. Ensure that validOut diff --git a/ov0/src/main/scala/daisyMatMul.scala b/ov0/src/main/scala/daisyMatMul.scala index 8fd65d7..cfd7fe0 100644 --- a/ov0/src/main/scala/daisyMatMul.scala +++ b/ov0/src/main/scala/daisyMatMul.scala @@ -57,7 +57,6 @@ class daisyMultiplier(dims: Dims, dataWidth: Int) extends Module { matrixB.dataIn := io.dataInB matrixB.writeEnable := io.writeEnableB - //////////////////////////////////////// //////////////////////////////////////// /// Set up counter statemachine diff --git a/tdt4255figs/pngs/vector.png b/tdt4255figs/pngs/vector.png new file mode 100644 index 0000000000000000000000000000000000000000..489a5e4cfdd626764a108fef26bc64343ec5290e GIT binary patch literal 17022 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 + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + 4 + 0 + + + + + + + + + 4 + 0 + 0 + 0 + 3 + 0 + + + + + + + + + 4 + 3 + 8 + 0 + 1 + 0 + + + + + + + + + 4 + 3 + 0 + 0 + 8 + 0 + + + + + + + + + + + 4 + 3 + 8 + 1 + 0 + 4 + + + + + + + + + 0 + 3 + 8 + 1 + 0 + 3 + + + + + + + + + 0 + 0 + 0 + 1 + 0 + 1 + + + + + + + + + 0 + 0 + 8 + 1 + 0 + 8 + + + + + + + + + + + 4 + 3 + 8 + 1 + 0 + 4 + + + + + + + + + 4 + 3 + 8 + 1 + 0 + 3 + + + + + + + + + 4 + 3 + 8 + 1 + 0 + 1 + + + + + + + + + 4 + 3 + 8 + 1 + 0 + 8 + + + Write enabled + Write disabled + Write enabled + +