디지털 디자인은 소프트웨어 개발과 공통점이 많지 않습니다 (Verilog 구문이 C 언어와 약간 비슷하지만 모양 만 있다는 점을 제외하고). 따라서 이러한 유형의 질문에 적절하게 대답하기는 매우 어렵습니다. 그러나 소프트웨어 개발에서 하드웨어 디자인에 이르는 길을 걷는 사람으로서 나는 그것을 보여줄 것입니다. 나 자신을 되돌아 보면, 내가 지금 알고있는 것을 알고 있다면 다음에 나 자신에게 조언했을 것이다.
처음부터 시작
소프트웨어 개발에 관한 모든 것을 잊어 버리십시오. 특히 프로그래밍 언어. 이러한 원칙은 디지털 디자인에는 적용되지 않습니다. CPU를 설계 한 사람은 어셈블러 나 C로 프로그래밍하기가 쉽지만 어셈블러 프로그래머는 CPU를 설계 할 수 없습니다.
학습 과정에서 소프트웨어의 기존 지식에 쉬운 문제로 보이는 것을 해결하지 마십시오. 고전적인 예 중 하나는 "for loop"입니다. 예를 들어, verilog에 for 루프를 작성할 수 있지만 다른 목적으로 사용됩니다. 주로 코드 생성에 사용됩니다. 소프트웨어 개발자가 보는 것처럼 for 루프 일 수도 있지만 시뮬레이션 이외의 것은 좋지 않습니다 (즉, FPGA를 프로그래밍 할 수는 없습니다).
따라서 과제를 해결하려는 모든 작업에 대해 어떻게해야하는지 생각하지 말고 대신 연구를 수행하십시오. 책, 예제를 확인하고보다 숙련 된 사람들에게 문의하십시오.
하드웨어 및 HDL 언어 배우기
가장 널리 사용되는 HDL 언어는 Verilog 및 VHDL입니다. AHDL (Altera HDL)과 같은 공급 업체별 항목도 있습니다. 이러한 언어는 하드웨어 구성 요소를 설명하는 데 사용되므로, 비슷한 방식으로 다른 구문으로 같은 것을 표현하는 데 거의 모두 사용됩니다.
어떤 사람들은 C처럼 보이기 때문에 Verilog를 배우는 것이 좋습니다. 예, 문법은 C와 Ada의 혼합이지만 소프트웨어 개발자가 쉽게 기댈 수는 없습니다. 사실, 나는 Verilog에 C를 쓰려는 유혹이 있기 때문에 더 나빠질 수도 있다고 생각합니다. 그것은 매우 나쁜 시간을 보내는 좋은 요리법입니다.
이를 염두에두고 VHDL을 응시하는 것이 좋습니다. 위의 내용을 고려하면 Verilog도 괜찮습니다.
명심해야 할 중요한 사항은 해당 언어로 표현하는 내용을 이해해야한다는 것입니다. 어떤 종류의 하드웨어가 "설명"되고 어떻게 작동하는지.
따라서 전자 제품에 관한 책과 HDL 칩 디자인 (블루 북이라고도 함)과 같은 좋은 책을 직접 읽어 보는 것이 좋습니다 .
시뮬레이터 받기
하드웨어에서 작업을 시작하고 공급 업체별 기능 등을 사용하기 전에 시뮬레이터를 구입하십시오. Verilog로 시작해서 GTK Wave와 함께 Icarus Verilog를 사용했습니다. 그것들은 무료 오픈 소스 프로젝트입니다. 책에서 볼 수있는 예제를 실행하고 회로를 맛 보도록 설계하여 연습하십시오.
개발 보드 받기
앞으로 나아갈 때 개발 보드를 얻으십시오. 고용주가 격자와 함께 가고 싶다는 것을 알고 있다면 격자 보드를 얻으십시오.
프로그래밍 방법은 매우 비슷하지만 세부 사항이 다릅니다. 예를 들어, 도구, 옵션, 인터페이스가 다릅니다. 일반적으로 한 공급 업체에 대한 경험이 있으면 전환하기가 어렵지 않습니다. 그러나이 추가 학습 곡선을 피하고 싶을 것입니다.
또한 보드에 사용할 계획이거나 확장 가능한 구성 요소가 포함되어 있는지 확인합니다. 예를 들어, 라우터와 같은 네트워크 장치를 설계하려면 보드에 Ethernet PHY가 있거나 HSMC 커넥터 등을 통해 보드를 확장 할 수 있는지 확인하십시오.
보드는 일반적으로 좋은 참조, 사용자 안내서 및 디자인 예제와 함께 제공됩니다. 그들을 연구하십시오.
책 읽기
책을 읽어야합니다. 제 경우에는 디지털 디자인을 아는 친구가 없었고이 사이트는 한 가지 간단한 점 때문에 그다지 도움이되지 않았습니다. 내 질문을 표현하는 방법조차 몰랐습니다. 내가 생각해 낼 수있는 것은 "음, 얘들 아, dcfifo가 있는데 클럭 도메인 교차 문제, 그게 무엇이고 왜 내 디자인이 작동하지 않는가?"
나는 개인적으로 다음과 같이 시작했다.
FPGA 공급 업체에는 모범 사례가 포함 된 많은 요리 책이 있습니다. 참조 디자인과 함께 연구하십시오. 여기서 예를 들면, 알테라이다.
더 구체적인 질문으로 돌아와
책을 살펴보고 디자인을 시뮬레이션하고 개발 보드에서 일부 LED를 깜박이면 많은 질문이있을 것입니다. 여기에서 질문하기 전에이 책의 다음 페이지 나 온라인 (예 : 격자 관련 포럼)에 답변이 없는지 확인하십시오.