Chisel은 어떤 사람인데, 왜 RISC-V에 쓰일까요?

8707 단어 HDLRISC-VChisel

Chisel


제목과 같이 RISC-V에 사용되는 HDL(?)치셀에게 관심이 생겨서 조사해봤는데 이 치셀은 전혀 정체를 파악할 수 없었다.
일본어든 영어든 해설 기사가 너무 적다.
말하자면 어느 수준의 하드웨어 기술을 대상으로 언어의 목적이 무엇인지 모르겠다.
RISC-V와 같은'보급하고 싶다'는 CPU의 기술 언어를 선택했기 때문에 뭔가 떳떳하지 못한 이유가 있을 것이다.
가까스로 조사해서 총결산하다.

Chisel의 특징


여기서 읽기공식의 조목별 열거DAC 2012 논문가 지름길이다.
  • 하드웨어 구조(connstruction) 언어(고위 합성 언어 아님)
  • Scara의 프로세싱 시스템을 기반으로 확장된 언어
  • 대수의 구축과 배선
  • Scala는 algebraic라는 개념의 데이터 유형(sum type)이 있어 사용할 수 있다는 뜻으로 여겨진다
  • 벌크 연결
  • SystemVerilog의interface, 그러나 더욱 스마트하고 안전함
  • 계층 + 객체 중심 + 기능 구조
  • 원 편정을 이용하여 고도 매개 변수화
  • 특정 언어에 대한 계층화 지원
  • 부동점이 함유된 대량 라이브러리
  • 여기서 말한 라이브러리는 Scara의 라이브러리로 HW의 합성용 라이브러리가 아니라고 여겨진다
  • 다중 시계역
  • EDA 도구용 Verilog
  • 생성 가능
    논문
  • 순환 정밀도 C++ 시뮬레이터
  • 출력 가능
    있다
    귀에 거슬리는 말이 몇 개 있다.대수적 구축(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:
  • A sum type consisting of various subtypes of other sum and product types.
  • The ability to analyze the values of the algebraic data with pattern matching.
  • 그렇습니다.
    시스템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인지 명확하게 설명하지 못했다.
    논문에 쓴 동기라면
  • VHDL/Verilog 등은 원래 묘사와 시뮬레이션에 사용되는 언어
  • 하드웨어 제작의 관점에서 볼 때 억지로 집행하는 부분이 크다(추론에 의존하고 쓸데없는 묘사도 많다)
  • 최근에 복잡하고 대규모의 하드웨어를 묘사하려면 언어로서 빈약하다
  • 치셀
  • 은'제작'하드웨어를 위주로 하는 현대 언어로 설계되었다
    이러한 프로세스는 아마도 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을 스마트하게 만들고 싶다'는 욕구에 부응하기 위해 사용하는 언어다.
    나에게 있어서 좋은 점과 나쁜 점을 총결해 보다
  • 이점
  • 회로 구조를 간단하고 유연하게 설명할 수 있음
  • 검증 작업 시 유효 라이브러리의 충실성
  • Scara용 IDE 사용 가능
  • 무료
  • 비동기식 설계 지원
  • 단점
  • 지원되지 않음(문제가 있더라도 스스로 책임져야 함)
  • 이 결점은.. 일을 하는 데 주저하게 만든다.
    소프트웨어와 달리 LSI 1 실수는 억 단위의 손실을 초래하기 때문에 지원하지 않으면 무섭다.
    제대로 검증을 하겠다는 말씀이십니까?
    전체적으로 여분이 많지 않은데 기술량을 줄이기 위해 컨베이어 벨트를 관철하는 자세가 호감을 준다.

    RISC-V의 및 Chisel


    RISC-V는 글자폭, 주소 찾기 모드, 명령 집합, 심지어 사용자 확장 명령 집합을 포함하여 상당히 유연한 구조 파라미터를 가지고 있다.나는 Verilog로 이것을 설계하고 싶지 않다.
    물론 생성기를 만들어야 하지만, 치셀의 특징을 조사해 볼수록 사용하고 싶어진다.1부터 생성기를 만드는 것보다 훨씬 멀다.
    RISC-V뿐만 아니라 IP 설계자들에게도 치셀은 탐나는 언어다.
    그렇긴 하지만 RTL 이하의 추상도이기 때문에 고도의 IP(비디오 디코더 IP) 등의 결과는 힘들 것이다.
    한번 써보세요.

    좋은 웹페이지 즐겨찾기