Jupyter notebook で QNNのお兄さん、
Rosettaなるものも公開していますね。
メイン部は、こんな感じ
引用 def main(args: Array[String]): Unit = { val outDir = args(0) val drvSrcDir = args(1) // instantiate the wrapper accelerator val myModule = Module(new PYNQWrapper(Settings.myInstFxn)) // generate the register driver myModule.generateRegDriver(outDir) // copy additional driver files fileCopyBulk(drvSrcDir, outDir, myModule.platformDriverFiles) }
PYNQWrapperがアクセラレータのようですね。。。
メイン部は、こんな感じ
引用 package rosetta import Chisel._ import fpgatidbits.PlatformWrapper._ // test for register reads and writes: add two 64-bit values class TestRegOps(p: PlatformWrapperParams) extends GenericAccelerator(p) { val numMemPorts = 0 val io = new GenericAcceleratorIF(numMemPorts, p) { val op = Vec.fill(2) {UInt(INPUT, width = 64)} val sum = UInt(OUTPUT, width = 64) val cc = UInt(OUTPUT, width = 32) } io.signature := makeDefaultSignature() io.sum := io.op(0) + io.op(1) val regCC = Reg(init = UInt(0, 32)) regCC := regCC + UInt(1) io.cc := regCC }
が必要。。。。
ソフトウエアは、SDSoCベースのよう。。。