Chisel은 어떤 사람인데, 왜 RISC-V에 쓰일까요?
Chisel
제목과 같이 RISC-V에 사용되는 HDL(?)치셀에게 관심이 생겨서 조사해봤는데 이 치셀은 전혀 정체를 파악할 수 없었다.
일본어든 영어든 해설 기사가 너무 적다.
말하자면 어느 수준의 하드웨어 기술을 대상으로 언어의 목적이 무엇인지 모르겠다.
RISC-V와 같은'보급하고 싶다'는 CPU의 기술 언어를 선택했기 때문에 뭔가 떳떳하지 못한 이유가 있을 것이다.
가까스로 조사해서 총결산하다.
Chisel의 특징
여기서 읽기공식의 조목별 열거과DAC 2012 논문가 지름길이다.
논문
있다
귀에 거슬리는 말이 몇 개 있다.대수적 구축(Algebraic consutruction), 하드웨어 구축 언어(Hardware Controuction Language)와 특정 영역을 위한 언어의 계층(layering of domain specific languages).
이 근처는 반드시 조사해야 한다.
대수 구조
대수 데이터 형식 그런 개념이 있는 것 같아요.
직접 뉴스도 참고, 직감적으로
이미 알고 있는 수학 대상을 '붙여넣기' 하여 같은 종류의 대상을 만드는 작업의 일종
알기 쉽다.Scara에서는 Sum type이라는 이름이 사용됩니다.
그 밖에
https://medium.com/@shannonbarnes_85491/algebraic-data-types-in-scala-701f3227fe91
Having an algebraic data type in Scala simply means two things are involved:
시스템C라면 C++의 기능은 간단하지만 기존 데이터형에서 새로운 데이터형을 만들어 회로 구조를 기술할 수 있다는 것이다.그런 거지?
논문 중의 복수의 예를 인용하다.
class Complex(val real: Fix, val imag: Fix) extends Bundle {
def +(b: Complex): Complex =
new Complex(real + b.real, imag + b.imag)
...
}
class Example extends Component {
val io = new Bundle {
val a = new Complex(Fix(2, INPUT), Fix(2, INPUT))
val b = new Complex(Fix(2, INPUT), Fix(2, INPUT))
val out = new Complex(Fix(2, OUTPUT), Fix(2, OUTPUT))
}
val c = io.a + io.b
io.out.r := c.r
}
이런 사용 방법은 대수의 구조라고 불린다.VHDL/SystemVerilog는 객체에 대한 일반적인 접근 방식으로는 매우 어렵습니다.
SystemC와 비교해 볼 때, 나는 개인적으로 Chisel이 분명히 더 똑똑하다고 생각한다.
하드웨어 구축 언어
하드웨어를 만드는 언어는 일반적으로 하드웨어 기술 언어(Hardware Description Language)로, 치셀은 하드웨어 구축 언어(Hardware Consutruction Language)를 위주로 한다.뭐가 달라요?
또는 자세히 보면 Chisel(Connstructing Hardware in a Scara Embeded Language)인 것 같습니다.사우나.전체 대문자가 아니어서 눈치채지 못했습니다.
적어도 고위합성을 목표로 하는 언어가 아니기 때문에 비하이비아 수준을 기술하는 언어는 아닌 것 같다.
나는 많은 것을 조사했지만 왜 conception인지 명확하게 설명하지 못했다.
논문에 쓴 동기라면
이러한 프로세스는 아마도 Hardware Contraction Language일 것입니다.
특정 영역 언어의 계층화
특정 영역을 향한 언어의 층(layering of domain specific languages)이라는 단어의 뜻을 알 수 없습니다.이 키워드는 DAC 2012 논문에서도 널리 활용됐다.
특정 영역을 위한 언어란 특정 응용 프로그램을 설계할 때 사용하는 HW의 언어를 가리킨다.
논문에는 DIL 스트리밍 처리, Bluespec 병렬 처리 등이 열거됐다.
이렇게 특정 응용 프로그램 (필드) 을 위한 규격 기술 언어는 나도 다른 기억이 있다.
이런 언어의 문제점으로서 물론 특정 분야의 언어 모델화된 응용 프로그램에 적합하지 않으면 전혀 사용할 수 없다.
조금이라도 예외적인 규격이 있으면 사용할 수 없다.
또 이런 초소형 언어의 학습 비용, 도구 검사에 대한 습관, 게이머가 적어 인한 지원 부족 등도 무시할 수 없다.
이러한 배경에서 치셀은 치셀에서 특정 영역을 향한 언어를 실현할 수 있도록 설계되었다.
그렇긴 한데, 구체적으로 뭘까.
논문에서 예를 들어 switch의 문법을 설명하였다.
뭐랄까, Scara는 switch 문법이 없는 것 같고, Chisel은 이런 제어 문법을 확장한 것 같다.
마찬가지로 새로운 특정 영역을 향한 언어를 디자인할 때 치셀에 새로운 제어문법 등을 추가할 수 있다.찾아보니 글 구조의 확장은 Scara 자체의 특징이다.
치셀의 의도는 치셀이 다른 HW 디자인 언어의 토대가 되도록 설계한 것이다.내 생각엔 그렇겠지.
달리
We are exploring embedding new domain-specic languages in Chisel to provide high-level behavioral synthesis.
듣건대
기대가 크다.
Chisel의 추상적인 수준
특징을 조사해 검체 등을 살펴보면 RTL(Register Transfer Level)에서 아래로의 추상도로 여겨진다.
특히 인터넷 리스트의 연결은 스마트하다.RTL이라도 버일로그 등과 비교해 기술량을 대폭 감축할 수 있어 기대된다.
RTL 이하로 처리할 수 있다면 SystemVerilog 이전의 디자인 언어가 아닙니까?
또 치셀의 확장으로 미래에는 더 높은 수준의 추상도(섞어도 쉬워)를 가져갈 수 있어 흥미롭다고 생각한다.
Chisel의 장점과 단점
대충 조사해봤는데 어쨌든 치셀은'고도의 파라메트릭 RTL을 스마트하게 만들고 싶다'는 욕구에 부응하기 위해 사용하는 언어다.
나에게 있어서 좋은 점과 나쁜 점을 총결해 보다
소프트웨어와 달리 LSI 1 실수는 억 단위의 손실을 초래하기 때문에 지원하지 않으면 무섭다.
제대로 검증을 하겠다는 말씀이십니까?
전체적으로 여분이 많지 않은데 기술량을 줄이기 위해 컨베이어 벨트를 관철하는 자세가 호감을 준다.
RISC-V의 및 Chisel
RISC-V는 글자폭, 주소 찾기 모드, 명령 집합, 심지어 사용자 확장 명령 집합을 포함하여 상당히 유연한 구조 파라미터를 가지고 있다.나는 Verilog로 이것을 설계하고 싶지 않다.
물론 생성기를 만들어야 하지만, 치셀의 특징을 조사해 볼수록 사용하고 싶어진다.1부터 생성기를 만드는 것보다 훨씬 멀다.
RISC-V뿐만 아니라 IP 설계자들에게도 치셀은 탐나는 언어다.
그렇긴 하지만 RTL 이하의 추상도이기 때문에 고도의 IP(비디오 디코더 IP) 등의 결과는 힘들 것이다.
한번 써보세요.
Reference
이 문제에 관하여(Chisel은 어떤 사람인데, 왜 RISC-V에 쓰일까요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Rockdoor/items/c266a50347df82373e7f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Chisel은 어떤 사람인데, 왜 RISC-V에 쓰일까요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Rockdoor/items/c266a50347df82373e7f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)