diff --git a/TODO.md b/TODO.md index 30832fc..5e4e473 100644 --- a/TODO.md +++ b/TODO.md @@ -1,37 +1,35 @@ # TODO - - [ ] Get an overview of what is implemented (and add to TODO) - - [ ] Fix cosimulation issues - - [ ] Have leros simulator as submodule - - [ ] Use the simlator in GitHub actions + - [ ] Get an overview of what is implemented (and add missing to TODO) + - [ ] Fix cosimulation issues, Morten does sra and not shr + - [x] Have the Leros simulator as a submodule + - [x] Use the simulator in GitHub actions - [ ] Get GitHub CI green + - [ ] Restructure with one state per instruction type (like in old CA books) - [ ] Decide on where the docu is: * README here * Handbook on Leros * Leros web page - - - [ ] Assemler test for each instruction - - [ ] bbb - * - * Get rid of code duplication in Decode - * Memory: read in first state, write in second. Is this how we want to do it? - * Take a note on: semantic changed to have opd in words, halfword, or bytes, but address in bytes - * Looks like Morten's simulator/compiler sign extends ldindb/h, Check it + - [ ] add + - [ ] Get rid of code duplication in Decode + - [ ] Memory: read in first state, write in second. Is this how we want to do it? + - [ ] Take a note on: semantic changed to have opd in words, halfword, or bytes, but address in bytes + - [ ] Looks like Morten's simulator/compiler sign extends ldindb/h, Check it * and document it - * Explore Tjark's test generation (with cosimulation) - * Use the C compiler - * Run C compiler tests - * Are half word load stores used in the compiler? - * Any instruction not used by theb compiler - * Accu byte enables - * load/store byte indirect - * Does subi sign extend? Do we need a subi? We could use addi with neg. values - * Get a simple sequential version done - * Pipelined version follows - * Run Morten's C test programs - * gcc test suit as in Patmos - * Shouldn't a cross-compiler have a prefix? Such as leros-clang? + - [ ] Explore Tjark's test generation (with cosimulation) + - [ ] Use the C compiler + - [ ] Run C compiler tests + - [ ] Are half word load stores used in the compiler? + - [ ] Any instruction not used by the compiler + - [ ] Accu byte enables + - [ ] load/store byte indirect + - [ ] Does subi sign extend? Do we need a subi? We could use addi with neg. values + - [ ] Get a simple sequential version done + - [ ] Pipelined version follows after sequential + - [ ] Run Morten's C test programs + - [ ] gcc test suit as in Patmos + - [ ] Shouldn't a cross-compiler have a prefix? Such as leros-clang? ## Documentation diff --git a/src/test/scala/leros/CompareTest.scala b/src/test/scala/leros/CompareTest.scala index 7acf37c..6214f7d 100644 --- a/src/test/scala/leros/CompareTest.scala +++ b/src/test/scala/leros/CompareTest.scala @@ -20,8 +20,8 @@ class CompareTest extends AnyFlatSpec with ChiselScalatestTester { val simulator = "leros-sim/build-leros-sim/leros-sim" if ((new java.io.File(simulator)).isFile) { - val progs = leros.shared.Util.getProgs() - // val progs = Seq("asm/test/base") + // val progs = leros.shared.Util.getProgs() + val progs = Seq("asm/test/loadix") progs.foreach(p => { @@ -56,6 +56,8 @@ class CompareTest extends AnyFlatSpec with ChiselScalatestTester { assert(maxCycles > 0, "Running out of cycles") } val hw = removeDuplicates(l.toSeq) + Predef.println(swsim) + Predef.println(hw) assert(swsim.length == hw.length) for (v <- swsim.zip(hw)) { assert(v._1 == v._2)