
██████╗ ██╗██████╗ ███████╗██╗ ██╗███╗ ██╗███████╗ ██████╗
██╔══██╗██║██╔══██╗██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝
██████╔╝██║██████╔╝█████╗ ██║ ██║██╔██╗ ██║█████╗ ██║
██╔═══╝ ██║██╔═══╝ ██╔══╝ ██║ ██║██║╚██╗██║██╔══╝ ██║
██║ ██║██║ ███████╗███████╗██║██║ ╚████║███████╗╚██████╗
╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═════╝
자유롭게 메시지를 보내 주시기 바랍니다 - Pipelinec이 당신을 위해 일하게되어 매우 기쁩니다! 항상 도움을 찾고 있습니다. -줄리안
시작하기
위키를 읽어 시작하십시오.
pipelinec 란 무엇입니까?
C-like (1) 하드웨어 설명 언어 (HDL) (2) 언어 구성/컴파일러 기능으로 높은 레벨 합성 (HLS)과 같은 자동 파이프 라인 (3) 추가.
- 실제로 일반 C는 아니지만 기본 기능 검증/'시뮬레이션'을 수행하기 위해 GCC/LLVM에 의해 부분적으로 컴파일 될 수 있습니다. 더 복잡한 언어 구문 개발에 관심이 있으시면 연락하십시오!
- Verilog/VHDL을 합리적으로 교체 할 수 있습니다. 컴파일러는 합성 가능하고 인간 읽기 쉬운+디버그 가능한 VHDL을 생성합니다. RAW VHDL / 기존 IP / 블랙 박스를 삽입하기위한 후크가 있습니다.
- 계산이 부작용이없는 순수한 함수 (예 : 글로벌/정적 변수가 없음)로 작성 될 수 있다면 자동 지대가 형성됩니다. 인텔의 가변 대기 시간 하이퍼 피펠링 및 Xilinx의 Retiming 옵션과 같은 기술과 개념적으로 유사합니다. Google의 XLS 프로젝트, DFINTHDL 언어 및 특정 회로 방언의 일부 컴파일러 구동 파이프 설계 목표를 공유합니다.
Pipelinec은 무엇입니까?
- 글로벌 메모리 모델 / 스레드 등의 임의의 C 코드의 높은 수준 합성 :
- '메모리 아키텍처에 중첩 된 루프'를 수행 할 수 없습니다.
- 컴파일 된 C 기반 하드웨어 시뮬레이터 :
- C 컴파일러에서 PipelInec 코드의 일부만 컴파일 할 수 있으며 실행됩니다 (권장).
- 그러나 전체 멀티 모듈, 멀티 클록 도메인 등 전체 디자인은 단순히 일반적인 C 프로그램처럼 컴파일 및 실행할 수 없습니다.
- 메타 프로그래밍 하드웨어 생성기 (예 : C 유형 시스템 및 전 처리기를 사용).
- 스티칭 도구 코드/모듈에서 비트 스트림까지 빌드 흐름을 자동화합니다.
- 도구는 합성 실행을 부분적으로 자동화하지만 최종 비트 스트림으로의 자동화는 사용자에게 맡겨집니다.
핵심 기능/혜택
강력한 자동지기 컴파일러와 실생활 하드웨어 디자인 세트를 갖춘 이해하기 쉬운 하드웨어 설명 언어.
- 초보자 (및 전문가)가 (예 : 조합 논리의 순차적 순서에 대한 추론)로 희생 될 수있는 많은 HDL Quirks를 제거하는 친숙한 C 구문.
- 모든 HDL 시뮬레이터와 호환됩니다. 전. ModelIM을 몇 초 만에 시작하고 인간 읽기 가능한+디버그 가능한 VHDL을 사용하는 인쇄물을 가져올 수 있습니다. 또한 사용자 정의 초고속 컴파일 C 기반 '시뮬레이션'을 제작할 수 있습니다. Verilog 로의 전환은 필요에 따라, 즉 Verilator의 경우 포함됩니다.
- 합성 도구 보고서에서 파생 된 유용한 타이밍 피드백을 통해 자동 파이프 라인 할 수없는 중요한 경로 논리를 식별하는 데 도움이됩니다. 특히 디지털 로직 설계에 새로운 사람들에게 도움이됩니다.
- 소프트웨어 측 C와 쉽게 통합합니다. 유용한 내장 코드 생성. (호스트 <-> FPGA에서 데이터를 이동할 때 DE/SERIALIZED BYTE ARRAY의 UN/포장 스트러크의 경우).
- 전체 하드웨어 설명 언어 교체. 기존 VHDL/Verilog 디자인을 복제하거나 RAW VHDL을 포함하여 시작하여 항상 전체 언어를 사용하지 않아야합니다.
- 전 세계적으로 보이는 지점 간과선, 다중 속도/너비 시계 도메인 교차 및 복잡한 파생 된 FSM은 실제 하드웨어 설계 요구 사항/작업에서 영감을 얻은 장애물 기능 목록 중 일부일뿐입니다.
- 컴파일러의 기능으로 자동 파이프 라인. 이 도구를 기본적으로 사용하는 것은 기존 디자인에 다른 곳에서 떨어 뜨리기 위해 단일 파이프 라인을 생성하는 것입니다. 손으로 파이프 라인 논리 실습을 제거 = 휴대용이 없음 (작동 주파수 및 부품에 의존).
기본 설계 요소는 상태 기계/상태 가득한 요소 (레지스터, RAM 등), 자동 전파 된 상태의 순수 함수 및 상호 연결 (WIRE, CDC, ASYNC FIFOS 등)입니다. 설계는 필요에 따라 '순차적 프로세스/스레드를 전달하는'것처럼 보이도록 구성 될 수 있습니다.
복잡한 논리를 자동 지류 기능으로 분리하고 클록 하드웨어에 의해 문자 시계 만 작성하여 절대적으로 필요할 때만 PipelInec 설계는 각각의 새로운 대상 장치 / 작동 주파수에 대해 다시 작성할 필요가 없습니다. 희망은 친숙하고 강력하게 합리적 인 C 언어 모양으로 설명 된 공유, 고성능, 장치의 비수성, 하드웨어 설계를 구축하는 것입니다.
Pipelinec을 작성하는 소프트웨어 사람들의 경우 C에서는 프로그래밍 퍼즐을 풀고있는 느낌이 들며 퍼즐의 규칙은 숨기기/임시 하드웨어 개념을 의미합니다. 하드웨어 사람들의 경우 PipelInec은 더 나은 하드웨어 설명 언어입니다. 기존 RTL과 HLS 사이의 중간지면을 찾으려고 노력합니다. FPGA 엔지니어로서 선택한 언어입니다 :).