From f7e82f8ee8844c395172fe4e40f92d6321fcfb46 Mon Sep 17 00:00:00 2001 From: peteraa Date: Fri, 26 Apr 2019 17:50:22 +0200 Subject: [PATCH] Semi finishing touch --- TODOs.org | 4 +- oppgavetekst.org | 7 +- src/test/scala/MatMulTips.org | 11 +- tdt4255figs/pngs/vector.png | Bin 17022 -> 0 bytes tdt4255figs/pngs/vectorBB.png | Bin 11450 -> 0 bytes tdt4255figs/vector.svg | 1410 --------------------------------- tdt4255figs/vectorBB.svg | 379 --------- 7 files changed, 17 insertions(+), 1794 deletions(-) delete mode 100644 tdt4255figs/pngs/vector.png delete mode 100644 tdt4255figs/pngs/vectorBB.png delete mode 100644 tdt4255figs/vector.svg delete mode 100644 tdt4255figs/vectorBB.svg diff --git a/TODOs.org b/TODOs.org index 979caf9..0e07525 100644 --- a/TODOs.org +++ b/TODOs.org @@ -1,6 +1,8 @@ * Points -** + Test strategy + + Fuck å gjøre det ordentlig, det blir bare kaos * Tutorials https://github.com/ucb-bar/generator-bootcamp diff --git a/oppgavetekst.org b/oppgavetekst.org index 973c951..04568fe 100644 --- a/oppgavetekst.org +++ b/oppgavetekst.org @@ -743,12 +743,17 @@ Now all we need to do is calculate the dot products for the final matrix: #+begin_src - A*B = C then + if A*B = C then | A[0] × BT[0], A[0] × BT[1], A[0] × BT[2] | C = | A[1] × BT[0], ... , ... | | ... , ... , A[2] × BT[2] | + where + A[0] × BT[0] is the dot product of [2, 5] and [1, 0] + and + A[0] × BT[1] is the dot product of [2, 5] and [1, 4] + and so forth.. #+end_src Because of this, the input for matrix B will be supplied transposed, thus you do not diff --git a/src/test/scala/MatMulTips.org b/src/test/scala/MatMulTips.org index b1aeba9..c224fd7 100644 --- a/src/test/scala/MatMulTips.org +++ b/src/test/scala/MatMulTips.org @@ -17,10 +17,13 @@ This is a fairly typical task, so chisel.util has you covered with the Counter c https://chisel.eecs.berkeley.edu/api/3.0.1/chisel3/util/Counter.html https://chisel.eecs.berkeley.edu/api/3.0.1/chisel3/util/Counter$.html -(The second link links to the Counter object rather than the class. Typically we put -constructors and static methods in the companion object of a class) +The second link links to the Counter object rather than the class. Typically we put +constructors and static methods in the companion object of a class. +Object methods named apply can be called directly from the object, which means +~MyObject.apply(123)~ is the same as ~MyObject(123)~ +Very convenient once you're used to it, but a little odd first time you see it. -In the Counter object there is a method called apply: +In the Counter object there is an apply method: #+begin_src scala def apply(cond: Bool, n: Int): (UInt, Bool) #+end_src @@ -51,3 +54,5 @@ To test them, write your own test for MatMul that simply runs your MatMul unit a timestep until you're confident that they're correct. As described in the debugging section, you should make a separate debug IO port with debug signals enabling you to read out these values. Attempting to read them directly will throw an error. + +The best tip of course is to actually show up during lab hours. diff --git a/tdt4255figs/pngs/vector.png b/tdt4255figs/pngs/vector.png deleted file mode 100644 index 489a5e4cfdd626764a108fef26bc64343ec5290e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 - - diff --git a/tdt4255figs/vectorBB.svg b/tdt4255figs/vectorBB.svg deleted file mode 100644 index 65ca546..0000000 --- a/tdt4255figs/vectorBB.svg +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - data in - write enable - data out - 1 - 1 - 0 - Cycle 3 - - - - - - data in - write enable - data out - 0 - 0 - 1 - Cycle 7 - - - - - data in - write enable - data out - - 0 - 1 - Cycle 11 - 1 - -