以下為在 **WSL(Windows Subsystem for Linux)** 環境下使用 VS Code + Scala Metals 搭配 Chisel 開發的詳細步驟及注意事項: --- ## 🚩 前置條件:安裝並啟用 WSL 確定已啟用 **WSL**,並安裝 **Ubuntu** 或其他 Linux 發行版。 若尚未安裝: - 在 Windows 搜尋輸入 `powershell`,以管理員模式啟動 PowerShell,然後執行: ```powershell wsl --install ``` - 安裝完成後重啟電腦,並設定使用者名稱和密碼。 --- ## 🛠️ 步驟一:於 WSL 中安裝必要工具 開啟 WSL 終端機(例如 Ubuntu 終端)後執行以下指令: ### ① 更新套件庫 ```bash sudo apt update && sudo apt upgrade -y ``` ### ② 安裝 JDK (OpenJDK 11+) ```bash sudo apt install openjdk-11-jdk -y ``` 確認 Java 安裝: ```bash java -version ``` ### ③ 安裝 SBT (Scala Build Tool) 根據官方指引快速安裝: ```bash echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x99e82a75642ac823" | sudo gpg --dearmor -o /usr/share/keyrings/sbt-archive-keyring.gpg sudo apt update sudo apt install sbt -y ``` 確認 SBT 安裝: ```bash sbt --version ``` 你遇到的問題是因為 GPG 金鑰尚未正確安裝,導致系統無法驗證 Scala SBT repository 的簽名。 以下為正確解決步驟: --- ## 🚩 **解決方法:重新加入正確的GPG金鑰** 請依序執行以下步驟: ### **① 移除舊的 GPG 金鑰和 repository 資訊:** ```bash sudo rm /usr/share/keyrings/sbt-archive-keyring.gpg sudo rm /etc/apt/sources.list.d/sbt.list ``` --- ### **② 重新加入正確的 repository 與對應的金鑰:** 執行以下完整指令(可直接複製貼上一次執行): ```bash echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list curl -fsSL https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x99e82a75642ac823 | \ sudo gpg --dearmor -o /usr/share/keyrings/sbt-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/sbt-archive-keyring.gpg] https://repo.scala-sbt.org/scalasbt/debian all main" | \ sudo tee /etc/apt/sources.list.d/sbt.list ``` --- ### **③ 更新套件庫並安裝 sbt:** ```bash sudo apt update sudo apt install sbt -y ``` --- ### **④ 確認安裝是否成功:** 執行: ```bash sbt --version ``` 此時若安裝成功,應該能夠正常顯示出類似的版本資訊: ``` sbt version in this project: 1.9.9 sbt script version: 1.9.9 ``` --- ### ✅ **檢查完成後,即可繼續 Chisel 開發。** 如仍有任何錯誤,請再將錯誤訊息提供給我,協助你進一步排除問題。 ### ④ 安裝 Git (選擇性,但建議安裝) ```bash sudo apt install git -y ``` --- ## 🛠️ 步驟二:於 Windows 安裝 VS Code 並設定 WSL 擴充套件 1. 在 Windows 下安裝 [VS Code](https://code.visualstudio.com/)。 2. 開啟 VS Code,點擊左側 Extensions 圖示搜尋並安裝以下插件: - **WSL**(Microsoft 官方) - **Scala (Metals)**(Scala 語言支援) - **Chisel Language Support**(專門支援 Chisel 語法高亮與提示) - **Scala Syntax (official)**(可選) 安裝完後重新啟動 VS Code。 --- ## 🛠️ 步驟三:VS Code 連線至 WSL - 開啟 VS Code,按下快捷鍵 `Ctrl + Shift + P`,輸入: ``` WSL: Connect to WSL ``` - 連線成功後,VS Code 左下角會顯示: ``` WSL: Ubuntu ``` 此時 VS Code 終端即為 WSL 終端環境。 --- ## 🛠️ 步驟四:在 WSL 建立 Chisel 專案 於 VS Code 內的 WSL 終端機執行: ```bash git clone https://github.com/chipsalliance/chisel-template.git MyFirstChisel cd MyFirstChisel rm -rf .git code . ``` --- ## 🛠️ 步驟五:設定 Scala Metals (於 WSL 內) 首次開啟專案時,Metals 會自動提示 **「Import build」**: - 點選提示的 **「Import build」**。 - Metals 將自動下載相依套件,等待數分鐘即可完成。 若無自動提示,可手動開啟: - 按 `Ctrl+Shift+P`,輸入: ``` Metals: Import Build ``` --- ## 🛠️ 步驟六:確認語法高亮及提示 建立或打開 Chisel 檔案(例如:`MyAdder.scala`): ```scala import chisel3._ class MyAdder extends Module { val io = IO(new Bundle { val in1 = Input(UInt(8.W)) val in2 = Input(UInt(8.W)) val out = Output(UInt(8.W)) }) io.out := io.in1 + io.in2 } ``` 若設定成功,即可見語法高亮、提示和 Hover 提示。 --- ## 🛠️ 步驟七:編譯並產生 Verilog (於 VS Code WSL終端內) 1. 新增驅動程式 (`MyAdderDriver.scala`): ```scala import chisel3._ object MyAdderDriver extends App { emitVerilog(new MyAdder(), Array("--target-dir", "generated")) } ``` 2. 在 VS Code 終端機中執行: ```bash sbt "runMain MyAdderDriver" ``` 產生的 Verilog 檔案將位於專案目錄下的 `generated/MyAdder.v`。 --- ## 🛠️ 步驟八:撰寫並執行測試程式(選擇性) 新增測試檔案 `MyAdderTest.scala`: ```scala import chisel3._ import chiseltest._ import org.scalatest.flatspec.AnyFlatSpec class MyAdderTest extends AnyFlatSpec with ChiselScalatestTester { "MyAdder" should "perform addition correctly" in { test(new MyAdder()) { dut => dut.io.in1.poke(2.U) dut.io.in2.poke(3.U) dut.io.out.expect(5.U) } } } ``` 執行測試: ```bash sbt test ``` Metals 將自動顯示測試結果。 --- ## 🚩 常見問題及注意事項 - **WSL 與 Windows 資料夾存取:** 建議所有 Chisel 專案直接建置於 WSL (`~/`) 資料夾內,而非 Windows 資料夾,避免效能及相容性問題。 - **防火牆或 VPN 問題:** 若 VS Code 連線至 WSL 時遇到困難,確認是否受防火牆或 VPN 限制。 - **檢查 VS Code 是否在 WSL 環境:** VS Code 左下角顯示 **WSL: Ubuntu** 即表示在 WSL 中正確啟動。 --- ## 🚀 後續建議 - 定期更新 Scala 和 Chisel: ```bash sbt update ``` - 使用 Git 管理你的專案: ```bash git init git add . git commit -m "initial commit" ``` --- 以上步驟將可完整地使用 **WSL + VS Code + Scala Metals** 開發並管理你的 Chisel 專案! 若有任何問題或進一步需求,歡迎隨時詢問!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up