자체 ARM 기반 프로세서를 어떻게 설계합니까?


37

자체 ARM 기반 CPU를 설계하는 방법에 대한 몇 가지 질문이 있습니까?

  • ARM 라이센스로 시작하여 보드에 납땜 할 준비가 된 패키지가 어떻게 되나요?
  • ARM에서 무엇을 얻을 수 있습니까 (아키텍처 라이센스 (Qualcomm Snapdragon 스타일) 및 코어 라이센스 (TI OMAP 스타일)를 제거 할 수있는 여러 라이센스 옵션이 있습니까?)
  • ARM에서 '뭔가'를 얻은 후에는 어떤 도구를 진행해야합니까?
  • 팹으로 무엇을 보내나요?
  • 나는 실리콘 웨이퍼에 ARM 코어를 에칭 할 수있는 특정 파운드리들만이 라이센스를 받았다고 생각합니다. 내가 맞아?
  • 학생으로서 FPGA에서 이것을 할 여유가 있습니까? 이와 같은 경험을 어떻게 경험할 수 있습니까?

9
분명한 대답은 ARM과 대화하는 것입니다.
Olin Lathrop

3
opencores.com을 살펴보십시오. 다양한 완전성 및 기능 상태에 다양한 프로세서 코어가 많이 있습니다. @OlinLathrop이 말한 것처럼 실제 ARM 코어 소스를 얻는 한 ARM과 대화하십시오.
akohlsmith

6
나는 공감대를 이해하지 못한다. 이것은 순진한 질문 일지 모르지만 분명히 합법적 인 IMO입니다.
Jon L

2
문제는 질문이 따르지 않을 워크 플로와 관련이 있다는 것입니다. FPGA를 대상으로 HDL에서 독창적이거나 자유롭게 사용 가능한 디자인을 사용하여 수행 할 수있는 워크 플로우는 추측과는 다릅니다.
Chris Stratton

2
코어 텍스-M1 코어는 어떤 적절하게 할 수있는 FPGA에서 실행하도록 구성 것으로 보인다. 주요 FPGA 벤더는 IP 라이센스를 가지고 있으며 다른 소프트 코어와 마찬가지로 설계자에게 제공합니다. 나는 무료가 아니라고 생각하지만 학문적 용도로 특별히 사용 가능한 프로그램이 있습니다.
RBerteig

답변:


68

회사가하는 방법은 다음과 같습니다.

  1. 약 천만 달러를 모금하십시오.
  2. 라이센스를 얻기 위해 ARM과 협상하십시오. 아마도 최소 백만 달러가들 것입니다.
  3. ARM에서 디자인 파일을 가져옵니다. VHDL, Verilog 또는 "암호화 된"넷리스트 형식 일 수 있습니다.
  4. 자체 로직 (주변 장치 용)과 ARM이 제공 한 것을 혼합하여 자체 칩을 설계하십시오. 이 단계에는 고가의 CAD 소프트웨어와 소규모 전문가 팀이 필요할 것입니다. 최소 5 백만 달러와 몇 년을 소비 할 것으로 예상됩니다.
  5. 칩 자체를 위해 만들어진 마스크를 가져옵니다. 최신 반도체 공정을 사용한다면 약 백만 달러가 소요될 것입니다.
  6. 칩 자체를 만드십시오. 가격은 다양하지만 5 천만 달러 미만이어야합니다.
  7. 만든 칩을 디버깅하고 버그를 수정 한 다음 팔 수있는 물건이 생길 때까지 5 단계로 돌아갑니다.

여기에 어떻게 당신이 그것을 할 :

  1. 지역 대학에서 대학원 수준의 컴퓨터 아키텍처 과정을 수강하십시오.
  2. 디지털 논리 및 기타 다른 과정을 더 많이 수강하십시오.
  3. VHDL 또는 Verilog에서 처음부터 CPU를 설계하십시오.
  4. 처음부터 다른 CPU를 설계하십시오.
  5. ARM 명령어 세트를보고 호환 가능한 CPU를 설계하십시오.
  6. ARM 호환 CPU가 FPGA에서 작동하도록하십시오.
  7. 고소 당하지 않는 한 VHDL / Verilog 소스 코드를 배포하지 마십시오.
  8. ARM 경험을 사용하여 박사 학위에 대한 좋은 논문을 작성하십시오.
  9. 박사 학위를 이용하여 ARM, TI 또는 누구에게나 취업하십시오. 그런 다음 회사가 수행하는 방식에 대해 이전 7 단계를 사용하여 프로세스를 반복하십시오.

자,이리스트는 뺨에 약간 혀 있지만 기본적으로 맞습니다. 요점은, 돈을 가지고 있지 않을 가능성이 있기 때문에 ARM을 직접 다루지 않아도된다는 것입니다. 그리고 ARM에 의해 소송을 제기 할만한 조치도 취하지 마십시오.


1
+1. 훌륭한 답변입니다. 내가 말하려고했던 것이 낫습니다.
Rocketmagnet

1
좋은 과정에는 다른 종류의 CPU의 기본 구조와 모든 CPU 작동 방식이 포함됩니다. 주제는 마이크로 코드, 명령어 디코드, ALU, 메모리 액세스, 캐시, 레지스터, 파이프 라이닝, 데이터

3
ARM의 명령어 세트 자체가 클론이 많은 다른 CPU보다 특허를받을만한 이유가 있습니까? 확실히 특허를받은 일부 아키텍처 기능이있을 수 있지만, 기존 컴파일러에서 작동 할 CPU를 설계하는 것이 명령 세트 자체에 문제가됩니까?
supercat

1
@supercat 일반적으로 명령어 자체는 아키텍처를 통합하지 않는 한 특허 가능성이 낮습니다. MIPS는 CPU로이를 수행하여 워드로 정렬되지 않은 단어를로드 / 저장하는 명령과 빅 엔디안과 리틀 엔디안 사이를 동적으로 전환하는 명령을 특허했습니다. MIPS가 MIPS 클론 메이커를 고소하고 MIPS가 이겼을 때 (2000 년경) 법원에서 이의를 제기했습니다. 그러나 대부분의 특허는 건축 문제에 관한 것입니다. 슬프게도 아키텍처와 명령어 세트를 복사하지 않으면 기존 컴파일러와 호환되는 CPU를 만들 수 없습니다.


32

ARM에는 University DesignStart 프로그램이 있습니다. 학생은 기본 Cortex-M0 자료에만 액세스 할 수 있습니다. 그러나 관심이 있다면 교수진을 참여시켜 훨씬 더 많은 설계 자료 (Verilog FPGA 코드, 평가 IP, 시뮬레이션 등)에 액세스 할 수 있습니다.


4
고마워 :-) 나는 내 고문이 이들 중 일부를 요청하도록 할 것입니다.
주님로.

WFIW 에서이 답변은 구식이며 Cortex-M0 및 Cortex-M3을 모두 사용할 수 있으며 제품의 일부 부분은 비 학생 / 기관에 공개됩니다.
Sean Houlihane


3

ARM Cortex-M1 (아마도 가장 간단한 ARM 프로세서)은 FPGA에서 소프트 프로세서로 구현되도록 특별히 설계된 최초의 ARM 프로세서입니다. 다음과 같은 FPGA 유형에 최적화되어 있습니다 .

Actel (M1 ProASIC3 and M1 Fusion)
Altera (Cyclone-II, Stratix-III)
Xilinx (Spartan-3, Virtex-5)

ARM 자체는 Altera Cyclone III 용 Cortex-M1 개발 키트를 만들고 있지만 DigiKey 에서 625 달러 로 약간 비싸다 . 그래도 ARM Cortex-M1 IP와 개발 라이센스 (생산에 참여하는 사람들을 위해 1000 개의 보드에 대한 무료 로열티 보조금)를 얻을 수 있습니다.

IP 자체를 얻는 옵션이있을 수 있습니다 (아마도 학업 프로그램이 있거나 다른 사람이 대학 프로그램을 언급했지만 M0을위한 것입니다). 그런 다음 개발 보드를 별도로 구입할 수 있습니다.

AlteraARM Cortex-M1에 대한 자세한 내용은 다음과 같습니다 .

다음 은 Actel FPGA에 ARM Cortex-M1을 배치하는 방법 에 대한 정보 입니다.

한편 FPGA의 ARM Cortex의 다른 버전에 관심이 있습니다. 다음은 Xilinx FPGA에서 ARM Cortex-M0을 구현 한 사람 의 논문 입니다.


디자인을 변경하려면 "적절한"32 비트 컴퓨터를 만들어보십시오. 현재 ARM은 32 비트 명령어를 한 번에 8 비트로 읽습니다. 즉, PC는 각 명령어 페치마다 4 씩 증가합니다.
Alan Campbell

1

이제 ARM의 DesignStart 프로그램을 통해 Cortex-M3 프로세서 (및 확장 가능한 AHB / APB 하위 시스템)에 액세스 할 수 있습니다.

Eval 옵션은 FPGA 타겟을 제공합니다 (시뮬레이션은 코어의 난독 화 된 RTL, Verilog의 다른 모든 것을 지원함). 이것은 현재 mbed를 지원하는 ARM MPS2 + FPGA를 대상으로합니다.

Pro 버전 (라이센스에 서명 할 수있는 회사 / 대학에서만 사용 가능)은 제조가 가능하며 Verilog의 프로세서 코어를 포함합니다 (Cortex-M0 및 Cortex-M3 모두 포함).

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