chisel第一個實驗

根據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

說明成功了。

相關文章
相關標籤/搜索