chisel入門踩坑

2021-08-01 16:57:40 字數 1588 閱讀 4771

為什麼最近會開始搞chisel,原因見前一篇blog。chisel是berkeley出品的一款嵌入在scala中用來描述硬體的語言,現在已經出到第三版——chisel3了。據我所知,在2023年csdn上面就有人分享自己進行chisel實驗的過程。

說實話看berkeley原版資料雖然準確但實在讓人頭大,尤其是當文件龐雜而散亂的時候更是這樣。發現前面提到的那個05年chisel的時候很開心,按照他寫的步驟一點點來。結果各種報錯——chisel每代更新的函式還有用法都挺多的(說明這個語言正在蓬勃發展,是好事o(∩_∩)o哈哈~)

發現偷懶的路子走不通之後只能耐著性子慢慢磨。仔細一找,發現在berkeley給出的文件中居然有「short guide to chisel in chinese」。感謝sand river的翻譯!!!

// see license.txt for license details.

package solutions

import chisel3._

// problem:

//// implement a test for this module. please edit:

// .../chisel_tutorial/src/test/scala/problems/max2.scala

//class

max2

extends

module )

io.out := mux(io.in0 > io.in1, io.in0, io.in1)

}

已經描述出了電路的結構,這裡我們把入口函式補上就可以了。

object max2 

}

至於這個入口函式怎麼來的呢?除了前兩行和第四行固定格式之外,關鍵是第三行這個driver(() => new max2())(c => new max2tests(c))先new出來max2類的物件,再用它呼叫定義在max2test.scala檔案中的max2tests類中new出來了乙個方法(說起來有點繞)。總之就是new出來了乙個max2類的物件來呼叫了max2tests方法。

另外還需要乙個import包。最終程式也貼一下吧:

package solutions

import chisel3._

import chisel3.iotesters.

// problem:

//// implement a test for this module. please edit:

// .../chisel_tutorial/src/test/scala/problems/max2.scala

//class

max2

extends

module )

io.out := mux(io.in0 > io.in1, io.in0, io.in1)

}// if (!driver(() => new max2())(c => new max2tests(c)))

// system.exit(1)

//}object

max2

}

mpvue入門踩坑

安裝vue環境變數,npm install global vue cli 需要手動新增vue環境變數 使用vs開發即可,有很多外掛程式可用,主要是好用免費 在初始化的時候新增到vue.prototype中,名稱自己命名 在其它地方就能直接呼叫this.globaldata拿到自定義js中的資料了 全...

cesium入門踩坑

cesium版本問題,學習網上資料注意cesium的版本,盡量使用較新的版本,很多不相容。老版本的學習資料可以當做參考。cesiumlab2的也有很多老版本的資料,老版本現在不可以使用,新版本布局改動較大,可以 qq群諮詢,軟體使用問題的回答率還可以。執行cesium官網demo或者第三方的demo...

freeline入門防踩坑

1.在工程層級的build.gradle中加入freeline gradle的依賴buildscript dependencies allprojects 注意 注意是在project 的build.gradle裡面新增依賴classpath com.antfortune.freeline grad...