Overview
μ΅κ·Ό Softcore λν₯μμ μ£Όλͺ©λ°λ Chisel μ μκ°ν©λλ€.
Constructing Hardware in a Scala Embedded Language (Chisel)
Chisel μ νΉμ±μ μ΄ν΄λ³΄λ©΄
RTL generator λ€μ Chisel λ‘ λ§λ€μ΄μ§λλ€.
- scala λ₯Ό κΈ°λ°μΌλ‘ μ¬μ©νλ HDL
Scala μΈμ΄μ μ’μ νΉμ±μ λ§μ΄ μΈ μ μμ΅λλ€.
- object-oriented programming
- functional programming
λ ν₯λ―Έλ‘μ΄ νλ‘μ νΈλ€μ΄ λ§μ΄ μλλ°, νλλ₯Ό μλ‘ λ€λ©΄
RISC-V “Rocket Chip” SoC Generator1
νΉν Rocket Chip2 μ κΈ°λ°μΌλ‘ FPGA 보λμ μ¬λ €μ λ§λ
lowrisc λ°λͺ¨μμμ λ³΄κ³ κ°λμ λ°μμ΅λλ€.
lowrisc demo
κ·Έ κ°λμ μμΈμ,
κΈ°μ‘΄ FPGA & Arm (κΈ°ν λ±λ±..) core κ° SoC μ λ€μ΄μμ΄ λ¦¬λ μ€ λΆν κ°λ₯ν 보λκ° μλλΌ
FPGA μμ ν©μ±ν΄μ CPU, FPU, λ©λͺ¨λ¦¬ 컨νΈλ‘€λ¬, λ²μ€κΉμ§ κ°λ°μκ° λλ±!
κ·Έκ²λ νμ¨μ΄ μμ€μ΄ μλλΌ, 리λ μ€ λΆν κΉμ§ κ°λ₯ν νλμ¨μ΄ μ€κ³λΌλ μ μ λλ€!
κ΅μ₯ν λ²μ©μ μΌλ‘ νλμ¨μ΄ κ°μνλ₯Ό μ¬μ©ν μ μμκ±°λΌ μκ°μ΄ λλ€μ.
lowrisc getting started 3μ 보면 μμ λ°λͺ¨λ₯Ό μν λ΄μ©μ΄ λμμμ΅λλ€.
Chisel example source code
adder μ½λ μμλ μλμ κ°μ΅λλ€.
example - adder
|
|
μ΅κ·Όμ λμ¨ μΈμ΄λ€μ νΉμ§μ΄κΈ°λ νκ³ ,
Scala λ¬Έλ²μ λ°λΌμ
λͺ¨λλ§λ€ λͺ μν΄μ£Όλ λ³μ μ μΈμ΄ κ°νΈν΄μ‘λ€μ.
example - stack
|
|
νΈμΆν΄μ μ¬μ©νλ κ° λͺ¨λμ΄ μ΄λ€μμΌλ‘ Overload λμ΄ μλμ§ κΆκΈν΄μ§λ μ½λλ€μ.
example - stack unit test
|
|
unit test μ½λλ κ³Όμ° μ΄ μ½λκ° νλμ¨μ΄λ₯Ό ν μ€νΈ νλκ² λ§μκΉ? νλ μκ°μ΄ λλ€μ.
Summary
μ€λλ μννΈμ¨μ΄ κ°λ°μ΄ λΈλλ°μ€λ₯Ό κ°μ§κ³ νΈνκ² λΉμ§λμ€ λ‘μ§μ κ°λ°νλ―μ΄,
νλμ¨μ΄ κ°λ°λ μΌλ§ λ§νΌ νΈνκ³ μμ°μ± μ’κ² κ΅¬νν μ μμμ§ κΈ°λλκ³ κΆκΈνλ€μ.