HDL에서 CPU의 읽기 및 교육 구현


37

VHDL 또는 Verilog에서 CPU의 읽기 쉽고 교육적인 구현을 권장 할 수 있습니까? 바람직하게는 잘 문서화 된 것.

추신 : 나는 내가 볼 수 있다는 것을 알고 opencores있지만, 사람들이 실제로 보았고 흥미로운 것을 발견 한 것에 관심이 있습니다.

PS2. 짜증나는 태그에 대해 죄송하지만 새로운 사용자는 새로운 태그를 만들 수 없습니다



2
HDL un 불행히도 읽을 수 있습니다.
코너 울프

@Joby Taffey : 링크가 끊어졌습니다. 이것이 당신이 의도 한 것입니까? bigmessowires.com/cpu-in-a-cpld
Brian Carlton

OpenRISC 1000의 Verilog 구현 인 mor1kx 입니다. OpenRISC는 툴체인이 있지만 여전히 비교적 단순하다는 장점이 있습니다.
야누스

답변:



7

취득 책을, 나는 첫 번째 버전을 가지고있다. 몇 년 전 저는 데이터를 입력하고 결과를 표시하기 위해 몇 개의 푸시 버튼과 하나의 7- 세그먼트 디스플레이로 설계된 PCB의 작은 Flex 10K10 FPGA에서 CPU를 구현했습니다.


7

코드를 공부하려는 목적이 무엇입니까? 다시 말해, 흥미로운 것은 당신에게 무엇을 의미합니까?

CPU에 얼마나 많은 복잡성이 들어갈 수 있는지 확인하기 위해 OpenSPARC 아키텍처 의 소스를 연구하는 데 더 관심이있을 수 있습니다 . 다이빙하는 데 시간이 오래 걸리지 만 복잡한 마이크로 프로세서 의 전체적인 큰 그림을 감상 할 수 있습니다.

그런 다음 특정 컴퓨터 마이크로 아키텍처 기능을 연구하려면 작고 빠른 다중 스레드 32 비트 RISC 프로세서 (shameless plug) 인 AEMB 와 같은 간단한 RISC 시스템을 살펴보고 싶을 것 입니다.

그런 다음 원하는 코딩 스타일과 규칙을 배우고 싶은 경우 LEON2 디자인은 VHDL 코딩 스타일을 배우기에 좋은 장소입니다.

그러나 프로세서를 연구하는 목적이 자신을 설계하는 방법을 배우는 것이라면 가장 좋은 방법은 간단한 8 비트 시스템 중 하나에서 시작하는 것입니다 (인터넷에는 많은 AVR, 8051, PIC 예제가 있습니다).


뻔뻔한 플러그 -AEMB- 내 "가장 작은 프로세서"
sybreon

5

일부 Forth CPU 설계를 검토해 볼 수 있습니다. Forth는 스펙과 구현이 두 개의 스택 스택 (하나는 데이터와 하나는 리턴 주소)을 통해 정의되는 간단한 프로그래밍 언어입니다.

여러 소형 VHDL / Verilog 프로세서를 자유롭게 사용할 수 있습니다.

더 많은 링크는 여기에서 찾을 수 있습니다 :

추신. Forth는 상당히 오래되고 모호한 언어 임에도 불구하고 많은 최신 스택 기반 VM (Java, 빠른 JavaScript VM)은 비슷한 저수준 디자인을 갖추고 있으므로 이에 대한 학습이 유익 할 수 있습니다.


2

PicoBlaze는 훌륭하지만 공급 업체 독립적 인 VHDL에서는 사용할 수 없습니다.

다른 선택 사항은 다음과 같습니다.

  • Verilog의 Picoblaze 클론 (이것을 쉽게 찾을 수 있어야합니다). 그것이 유지되는지 확실하지
  • Gumnut은 최근 Ashenden 책에서 지원하는 멋진 작은 코어입니다.
  • Thacker (약 200 줄의 Verilog)의 소형 레지스터 머신 / 컴퓨터
  • 얀 그레이의 XSoC / XR16 (이미 언급)

또한 CPU 용 컴파일러를 찾고 있다면 16 비트 CPU 용 컴파일러를 얻는 것이 가장 좋습니다. C와 같은 언어에서 Picoblaze까지 Poderico의 컴파일러가 있었지만 웹에서 제외되었습니다.


목록 앞에 빈 줄을 포함하면 답변 형식이 훨씬 향상됩니다.
Trygve Laugstøl

1

Xilinx PicoBlaze 프로세서를 살펴볼 수 있습니다 . 최소 8 비트 임베디드 마이크로 컨트롤러이며 소스 코드를 사용할 수 있어야합니다.


1
그것은 모든 구조적 VHDL이지만, 교육 도구로는 그리 훌륭하지 않습니다
Martin Thompson

0

너무 늦었지만 작은 답변을 제공합니다.

예루살렘 대학의 Nand2Tetris 라는 과정이 있습니다.이 과정은 코스 라에도 있습니다. 나는 그 과정에서 만든 컴퓨터를 만들었습니다. 컴퓨터가 가장 자세하게 작동하는 방식을 직접 볼 수 있도록 언어를 체계적으로 구현했습니다. 그리고 나는 그들이 자바로 만든 시뮬레이터가 내가보고 싶은 모든 것을 할 수는 없다는 것을 성공했습니다.

https://github.com/alinsoar/little-computer

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.