根據https://blog.csdn.net/leishangwen/article/details/46225587 中所說,作第一個實驗步驟以下: 1:下載sbt-1.1.4.tgz解壓到/media/sdb4/download/scala/sbt目錄,只有三個子目錄bin,conf,libjava
2:在~/.bashrc文件中的最後增長 exportPATH=/home/riscv/riscv/sbt/bin/:$PATHgit
3:創建chisel工程github
新建一個文件夾chisel_max,在其中新建文件max2.scala、build.sbt,其中build.sbt的內容以下(注意兩行之間空一行,我實現時沒有空一行,結果執行sbt命令時出現下面的提示中沒有出現compiling 1 scala source .......等信息提示):web
resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo" ) libraryDependencies += "edu.berkeley.cs" %% "chisel" % "latest.release"
max2.scala的內容以下,這是一個比較器,從兩個8位的輸入中,選擇一個較大的數,做爲輸出,內容以下:shell
import Chisel._ class Max2 extends Module { val io = new Bundle { val in0 = UInt(INPUT, 8) val in1 = UInt(INPUT, 8) val out = UInt(OUTPUT, 8) } io.out := Mux(io.in0 > io.in1, io.in0, io.in1) } object Hellp { def main(args: Array[String]) : Unit={ val margs=Array("--backend","v","--compile") chiselMain(margs, () => Module(new Max2())) } }
4:編譯bootstrap
joe@joe-Aspire-Z3730:/media/sdb4/download/scala/chiseltest/chisel_max$ sbt Getting org.scala-sbt sbt 1.1.4 (this may take some time)... downloading file:////home/joe/.sbt/preloaded/org.scala-sbt/sbt/1.1.4/jars/sbt.jar ... [SUCCESSFUL ] org.scala-sbt#sbt;1.1.4!sbt.jar (3ms) downloading file:////home/joe/.sbt/preloaded/org.scala-lang/scala-library/2.12.4/jars/scala-library.jar ... [SUCCESSFUL ] org.scala-lang#scala-library;2.12.4!scala-library.jar (41ms) downloading file:////home/joe/.sbt/preloaded/org.scala-sbt/main_2.12/1.1.4/jars/main_2.12.jar ... 。。。。。。 Getting Scala 2.12.4 (for sbt)... downloading file:////home/joe/.sbt/preloaded/jline/jline/2.14.5/jars/jline.jar ... [SUCCESSFUL ] jline#jline;2.14.5!jline.jar (4ms) :: retrieving :: org.scala-sbt#boot-scala confs: [default] 5 artifacts copied, 0 already retrieved (18986kB/29ms) [info] Updated file /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project/build.properties: set sbt.version to 1.1.4 [info] Loading project definition from /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project [info] Updating ProjectRef(uri("file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project/"), "chisel_max-build")... [info] Done updating. [info] Loading settings from build.sbt ... [info] Set current project to chisel_max (in build file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/) [info] sbt server started at local:///home/joe/.sbt/1.0/server/6955b5c3b666021056e1/sock sbt:chisel_max>
上面最後一行是命令提示,輸入exit以後退出sbt,而後將build.sbt中空一行出來,再編譯並執行run命令:ubuntu
joe@joe-Aspire-Z3730:/media/sdb4/download/scala/chiseltest/chisel_max$ sbt [info] Loading project definition from /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project [info] Loading settings from build.sbt ... [info] Set current project to chisel_max (in build file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/) [info] sbt server started at local:///home/joe/.sbt/1.0/server/6955b5c3b666021056e1/sock sbt:chisel_max> run [info] Updating ... [warn] module not found: edu.berkeley.cs#chisel_2.12;latest.release [warn] ==== local: tried [warn] /home/joe/.ivy2/local/edu.berkeley.cs/chisel_2.12/[revision]/ivys/ivy.xml [warn] ==== public: tried [warn] https://repo1.maven.org/maven2/edu/berkeley/cs/chisel_2.12/[revision]/chisel_2.12-[revision].pom [warn] ==== local-preloaded-ivy: tried [warn] /home/joe/.sbt/preloaded/edu.berkeley.cs/chisel_2.12/[revision]/ivys/ivy.xml [warn] ==== local-preloaded: tried [warn] file:////home/joe/.sbt/preloaded/edu/berkeley/cs/chisel_2.12/[revision]/chisel_2.12-[revision].pom [warn] ==== scct-github-repository: tried [warn] http://mtkopone.github.com/scct/maven-repo/edu/berkeley/cs/chisel_2.12/[revision]/chisel_2.12-[revision].pom [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: edu.berkeley.cs#chisel_2.12;latest.release: not found [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] [warn] Note: Unresolved dependencies path: [warn] edu.berkeley.cs:chisel_2.12:latest.release (/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/build.sbt#L3-4) [warn] +- default:chisel_max_2.12:0.1.0-SNAPSHOT [error] sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;latest.release: not found [error] at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:334) [error] at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:208) [error] at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:243) [error] at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204) [error] at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70) [error] at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77) [error] at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95) [error] at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80) [error] at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99) [error] at xsbt.boot.Using$.withResource(Using.scala:10) [error] at xsbt.boot.Using$.apply(Using.scala:9) [error] at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60) [error] at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50) [error] at xsbt.boot.Locks$.apply0(Locks.scala:31) [error] at xsbt.boot.Locks$.apply(Locks.scala:28) [error] at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:199) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:196) [error] at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:242) [error] at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:193) [error] at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20) [error] at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56) [error] at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:46) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:99) [error] at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:68) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:112) [error] at scala.util.control.Exception$Catch.apply(Exception.scala:224) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:112) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:95) [error] at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:149) [error] at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:126) [error] at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2385) [error] at scala.Function1.$anonfun$compose$1(Function1.scala:44) [error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:39) [error] at sbt.std.Transform$$anon$4.work(System.scala:66) [error] at sbt.Execute.$anonfun$submit$2(Execute.scala:262) [error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16) [error] at sbt.Execute.work(Execute.scala:271) [error] at sbt.Execute.$anonfun$submit$1(Execute.scala:262) [error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:174) [error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:36) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] at java.lang.Thread.run(Thread.java:748) [error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;latest.release: not found [error] Total time: 7 s, completed Apr 27, 2018 12:22:03 PM sbt:chisel_max>
根據上面的錯誤提示,估計是我尚未安裝chiselbash
5:安裝chisel3 其實在https://github.com/freechipsproject/chisel3 網址上對如何安裝chisel3有說明,我是由於安裝到第5步(此步時)才發現這個安裝說明的,只是我前面已經安裝了sbt,因此網址中說的先要安裝sbt我先不用安裝它。app
joe@joe-Aspire-Z3730:/media/sdb4/download$ mkdir Verilator joe@joe-Aspire-Z3730:/media/sdb4/download$ cd Verilator joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator$ git clone http://git.veripool.org/git/verilator Cloning into 'verilator'... joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator$ ls -a . .. verilator joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator$ cd verilator/ joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ ls Artistic COPYING.LESSER install-sh nodist verilator.pc.in bin doxygen.config internals.pod README.pod Changes doxygen-mainpage Makefile.in src configure.ac examples MANIFEST.SKIP test_regress COPYING include mkinstalldirs TODO joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ git pull Already up-to-date. joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ git checkout verilator_3_904 Note: checking out 'verilator_3_904'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 0253017... Version bump joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ unset VERILATOR_ROOT joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ autoconf The program 'autoconf' can be found in the following packages: * autoconf * autoconf2.13 Try: sudo apt-get install <selected package> joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ sudo apt-get install autoconf 我查了其它須要的依賴包flex,bison,g++等,都有安裝,因此不須要安裝其它包。 joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ ls Artistic COPYING.LESSER internals.pod README.pod test_v bin doxygen.config Makefile.in src test_verilated Changes doxygen-mainpage MANIFEST.SKIP test_c TODO configure.ac include mkinstalldirs test_regress verilator.pc.in COPYING install-sh nodist test_sc joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ autoconf joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$ ls Artistic COPYING.LESSER MANIFEST.SKIP test_sc autom4te.cache doxygen.config mkinstalldirs test_v bin doxygen-mainpage nodist test_verilated Changes include README.pod TODO configure install-sh src verilator.pc.in configure.ac internals.pod test_c COPYING Makefile.in test_regress joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$./configure joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$make joe@joe-Aspire-Z3730:/media/sdb4/download/Verilator/verilator$sudo make install
6:再次執行sbt和run命令,依然仍是有錯誤,猜測是由於我單獨安裝的sbt,而不是按照官網中說的經過apt-get安裝sbt。我先將~/.bashrc中的PATH環境變量中的sbt部分刪除,再重啓命令終端。maven
7:apt-get 安裝sbt
joe@joe-Aspire-Z3730:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823 joe@joe-Aspire-Z3730:~$sudo apt-get update joe@joe-Aspire-Z3730:~$sudo apt-get install sbt
8:從新進入工程目錄,執行sbt和run命令,發現仍是一樣的錯誤問題
。。。 [error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;latest.release: not found 。。。 我打開build.sbt文件,看到其中有 resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo") libraryDependencies += "edu.berkeley.cs" %% "chisel" % "latest.release" 這樣一句,說明錯誤就出在這一句上,但我以爲我下載的chisel是版本3,不會是chisel_2.12呀, 總以爲是否是這兒有點問題或者說是否是由於build.sbt中第一句設置的倉庫不正確的緣由呢?
9:從新安裝、測試firrtl
joe@joe-Aspire-Z3730:/media/sdb4/download/firrtl$ git clone https://github.com/ucb-bar/firrtl.git && cd firrtl joe@joe-Aspire-Z3730:/media/sdb4/download/firrtl/firrtl$ sbt compile Getting org.scala-sbt sbt 1.1.1 (this may take some time)... downloading https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.1/sbt-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#sbt;1.1.1!sbt.jar (1276ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/main_2.12/1.1.1/main_2.12-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#main_2.12;1.1.1!main_2.12.jar (6286ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/logic_2.12/1.1.1/logic_2.12-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#logic_2.12;1.1.1!logic_2.12.jar (1002ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/actions_2.12/1.1.1/actions_2.12-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#actions_2.12;1.1.1!actions_2.12.jar (1615ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/main-settings_2.12/1.1.1/main-settings_2.12-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#main-settings_2.12;1.1.1!main-settings_2.12.jar (2663ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/run_2.12/1.1.1/run_2.12-1.1.1.jar ... [SUCCESSFUL ] org.scala-sbt#run_2.12;1.1.1!run_2.12.jar (985ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/command_2.12/1.1.1/command_2.12-1.1.1.jar ... 。。。。。。 [info] downloading https://repo1.maven.org/maven2/com/beust/jcommander/1.35/jcommander-1.35.jar ... [info] [SUCCESSFUL ] com.beust#jcommander;1.35!jcommander.jar (899ms) [info] downloading https://repo1.maven.org/maven2/com/lightbend/paradox/paradox_2.12/0.3.0/paradox_2.12-0.3.0.jar ... [info] [SUCCESSFUL ] com.lightbend.paradox#paradox_2.12;0.3.0!paradox_2.12.jar (1360ms) [info] downloading https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.12/sbt_1.0/1.4.2/jars/sbt-web.jar ... [info] [SUCCESSFUL ] com.typesafe.sbt#sbt-web;1.4.2!sbt-web.jar (3340ms) [info] downloading https://repo1.maven.org/maven2/org/pegdown/pegdown/1.6.0/pegdown-1.6.0.jar ... [info] [SUCCESSFUL ] org.pegdown#pegdown;1.6.0!pegdown.jar (952ms) [info] downloading https://repo1.maven.org/maven2/org/antlr/ST4/4.0.8/ST4-4.0.8.jar ... [info] [SUCCESSFUL ] org.antlr#ST4;4.0.8!ST4.jar (1080ms) [info] Done updating. [warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible: [warn] * org.ow2.asm:asm-tree:6.0 is selected over 5.0.3 [warn] +- org.ow2.asm:asm-commons:6.0 (depends on 6.0) [warn] +- org.parboiled:parboiled-java:1.1.7 (depends on 5.0.3) [warn] +- org.ow2.asm:asm-util:5.0.3 (depends on 5.0.3) [warn] +- org.ow2.asm:asm-analysis:5.0.3 (depends on 5.0.3) [warn] * org.ow2.asm:asm:6.0 is selected over 5.0.3 [warn] +- org.pantsbuild:jarjar:1.6.5 (depends on 6.0) [warn] +- org.ow2.asm:asm-tree:6.0 (depends on 6.0) [warn] +- org.parboiled:parboiled-java:1.1.7 (depends on 5.0.3) [warn] +- org.ow2.asm:asm-tree:5.0.3 (depends on 5.0.3) [warn] Run 'evicted' to see detailed eviction warnings [info] Loading settings from build.sbt ... [info] Set current project to firrtl (in build file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/firrtl/firrtl/) [info] Executing in batch mode. For better performance use sbt's shell [info] Updating ... 。。。。。。。 [warn] bootstrap class path not set in conjunction with -source 1.7 [info] Done compiling. [success] Total time: 224 s, completed Apr 27, 2018 5:15:27 PM joe@joe-Aspire-Z3730:/media/sdb4/download/firrtl/firrtl$ sbt test 。。。。。。 [info] Run completed in 45 seconds, 211 milliseconds. [info] Total number of tests run: 685 [info] Suites: completed 85, aborted 0 [info] Tests: succeeded 685, failed 0, canceled 0, ignored 6, pending 0 [info] All tests passed. [info] Passed: Total 685, Failed 0, Errors 0, Passed 685, Ignored 6 [success] Total time: 80 s, completed Apr 28, 2018 8:53:24 AM
可是我從新執行sbt和run命令,仍然出現:
[warn] Note: Unresolved dependencies path: [warn] edu.berkeley.cs:chisel_2.12:latest.release (/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/build.sbt#L3-4) [warn] +- default:chisel_max_2.12:0.1.0-SNAPSHOT [error] sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;latest.release: not found [error] at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:334) [error] at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:208) [error] at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:243) [error] at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204) [error] at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70) [error] at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77) [error] at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95) [error] at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80) [error] at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99) [error] at xsbt.boot.Using$.withResource(Using.scala:10) [error] at xsbt.boot.Using$.apply(Using.scala:9) [error] at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60) [error] at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50) [error] at xsbt.boot.Locks$.apply0(Locks.scala:31) [error] at xsbt.boot.Locks$.apply(Locks.scala:28) [error] at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:199) [error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:196) [error] at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:242) [error] at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:193) [error] at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20) [error] at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56) [error] at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:46) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:99) [error] at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:68) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:112) [error] at scala.util.control.Exception$Catch.apply(Exception.scala:224) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:112) [error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:95) [error] at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:149) [error] at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:126) [error] at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2385) [error] at scala.Function1.$anonfun$compose$1(Function1.scala:44) [error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:39) [error] at sbt.std.Transform$$anon$4.work(System.scala:66) [error] at sbt.Execute.$anonfun$submit$2(Execute.scala:262) [error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16) [error] at sbt.Execute.work(Execute.scala:271) [error] at sbt.Execute.$anonfun$submit$1(Execute.scala:262) [error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:174) [error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:36) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] at java.lang.Thread.run(Thread.java:748) [error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;latest.release: not found [error] Total time: 7 s, completed Apr 28, 2018 8:57:14 AM
10:根據 https://github.com/freechipsproject/chisel3 從新修改build.sbt內容以下,
resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo") libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.1-SNAPSHOT"
11:再執行sbt和run命令
[warn] Note: Unresolved dependencies path: [warn] edu.berkeley.cs:chisel3_2.12:3.1-SNAPSHOT (/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/build.sbt#L3-4) [warn] +- default:chisel_max_2.12:0.1.0-SNAPSHOT [error] sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel3_2.12;3.1-SNAPSHOT: not found [error] at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:334)
12:再修改build.sbt,而後執行sbt 和run命令仍是錯誤
resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo") libraryDependencies += "edu.berkeley.cs" %% "chisel_max" % "0.1.0-SNAPSHOT"
13:去掉build.sbt的libraryDependencies這一行,再執行sbt和run命令
joe@joe-Aspire-Z3730:/media/sdb4/download/scala/chiseltest/chisel_max$ sbt[info] Loading project definition from /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project [info] Loading settings from build.sbt ... [info] Set current project to chisel_max (in build file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/) [info] sbt server started at local:///home/joe/.sbt/1.0/server/6955b5c3b666021056e1/sock sbt:chisel_max> run [info] Updating ... [info] Done updating. [info] Compiling 1 Scala source to /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/target/scala-2.12/classes ... [info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.4. Compiling... [info] Compilation completed in 10.054s. [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:1:8: not found: object Chisel [error] import Chisel._ [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:2:20: not found: type Module [error] class Max2 extends Module { [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:3:20: not found: type Bundle [error] val io = new Bundle { [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:4:19: not found: value UInt [error] val in0 = UInt(INPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:4:24: not found: value INPUT [error] val in0 = UInt(INPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:5:19: not found: value UInt [error] val in1 = UInt(INPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:5:24: not found: value INPUT [error] val in1 = UInt(INPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:6:19: not found: value UInt [error] val out = UInt(OUTPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:6:24: not found: value OUTPUT [error] val out = UInt(OUTPUT, 8) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:13:11: not found: value chiselMain [error] chiselMain(margs, () => Module(new Max2())) [error] ^ [error] /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/max2.scala:13:35: not found: value Module [error] chiselMain(margs, () => Module(new Max2())) [error] ^ [error] 11 errors found [error] (Compile / compileIncremental) Compilation failed [error] Total time: 16 s, completed Apr 28, 2018 10:42:24 AM
14:apt-get remove sbt以後,再將我最開始下載的sbt1.1.4經過~/.bashrc中的最後一行中對PATH的設置打開
export PATH=/media/sdb4/download/scala/sbt/bin/:$PATH
而後再從新啓動一個命令終端,再執行sbt和run命令,無論build.sbt中是以下內容:
resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo") libraryDependencies += "edu.berkeley.cs" %% "chisel" % "3.1-SNAPSHOT"
仍是以下內容
resolvers ++= Seq("scct-github-repository" at "http://mtkopone.github.com/scct/maven-repo") libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.1-SNAPSHOT"
始終都是出現差很少的錯誤。如:
[error] (update) sbt.librarymanagement.ResolveException: unresolved dependency: edu.berkeley.cs#chisel_2.12;3.1-SNAPSHOT: not found
15:根據https://github.com/ucb-bar/chisel-tutorial 下載chisel-tutorial,執行sbt run命令則能成功,而後我將其目錄下的build.sbt複製到個人實驗目錄下,再執行sbt run命令,出現的錯誤與原來作實驗時不同了,錯誤提示在max2.scala中的main函數中,我再根據https://github.com/freechipsproject/chisel3/wiki/Chisel3-vs-Chisel2 中的說明,將main中代碼修改成:
def main(args: Array[String]) : Unit={ val margs=Array("--backend","v","--compile") chisel3.Driver.execute(margs, () => Module(new Max2())) }
從新sbt run
joe@joe-Aspire-Z3730:/media/sdb4/download/scala/chiseltest/chisel_max$ sbt run [info] Loading project definition from /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/project [info] Loading settings from build.sbt ... [info] Set current project to chisel-tutorial (in build file:/media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/) [info] Compiling 1 Scala source to /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/target/scala-2.11/classes ... [info] Done compiling. [info] Packaging /media/46bb100d-2505-4025-8425-34ecf3129209/download/scala/chiseltest/chisel_max/target/scala-2.11/chisel-tutorial_2.11-3.1.0.jar ... [info] Done packaging. [info] Running Hellp Error: Unknown option --backend Error: Unknown option --compile Try --help for more information. [success] Total time: 6 s, completed Apr 28, 2018 11:44:16 AM
說明成功了。