VLSI CAD: Logic to Layout Lecture 001 Welcome and Introduction

안녕하세요, 저는 Rob Rutenbar입니다 저는 전공의 교수입니다

University of Illinois에서 UrbanaChampaign의 컴퓨터 과학과 행복 내 수업, VLSI CAD, Logic to Layout에 오신 것을 환영합니다 그래서,이 강의의 첫 강의입니다 그리고 이것은 기본적으로 소개와 큰 그림 강의입니다 우리 뭐하니? 코스 물류는 어떻게 생겼습니까? 높은 수준의 코스 조직은 무엇입니까? 코스의 그레이딩은 어떻게 생겼습니까? 그리고 나서, VLSI에서 흥미로운 점이 있습니다 CAD 비즈니스, 어떤 종류의 것들에 집중할 것입니까? 우리는 도구, 소프트웨어, 알고리즘, 데이터의 디자인에 초점을 맞출 것입니다

구조에서, 정말 크고 재미있는 칩을 컴퓨터 과학의 관점 그래서 그것에 대해 이야기 해 봅시다 강의 1에 오신 것을 환영합니다 우리의 새로운 클래스, VLSI CAD, Logic to Layout 자, 우리가 배운 것을 이야기 해 봅시다

이 수업에서 우리는 무엇을하고 있습니까? 기본 아이디어는 우리가하려고하는 것입니다 복잡하고 큰 집적 회로에 대한 아이디어를 얻는 방법 알아보기 실제로 그것들을 매우 대규모의 집적 회로로 바꾸어 놓는다 그래서 우리는 CAD 도구를 연구 할 것입니다 그리고 특히, 우리가 갈 일은 이 클래스에서 살펴 보는 것은 실제로 우리가이 도구들을 스스로 설계하는 방법입니다 따라서 우리는 기존 상용 도구를 실행하는 데 그다지 관심이 없습니다

우리가 실제로 사용할 수있는 오픈 소스 도구가 실제로 있지만 커 세라 (Coursera) 생태계에서 돌아 다니고 있지만, 우리는 컴퓨터를 더보고 있습니다 여기 과학적 관점, 알고리즘 및 데이터 구조 및 방법에 대한 아이디어 우리는 실제로 이러한 흥미로운 객체를 디자인 할 수 있습니다 클래스 물류가 있습니다 10 주 정도 8 주간의 강의가 있습니다

그런 다음 자유로운 주간에 너는 숙제 등을한다 그리고 나서 1 주일 동안 최종 시험 매주 짧은 동영상이 있습니다 세그먼트 대략 2 ~ 3 시간 정도 코스의 수업 내용

문제가 8 가지가 될 것입니다 그래서, 이것들은 기본적으로 숙제입니다 과제 8 주간의 비디오가 있기 때문에 물질, 8 가지 과제가있을거야 그리고 우리는 9 단을 당신을 위해 열어두고, 당신이이 물건을 끝내도록 할 것입니다

또한 네 가지 프로그래밍 할당이 있습니다 평범한 것, 당신도 알다시피, 어떤 언어로도 편안하게 with,, C, C ++, Java, Python, 당신이 좋아하는 것 그러나 일부 스크립트는 우리가 실행하는 일부 CAD 도구를 통해 실행할 것입니다 실제로 서버에서 실행되기 때문에 그들이하는 일을 볼 수 있으며 숙제 중 일부에있는 것들 그래서 수업에서 채점하는 것에 대해 잠깐 이야기하겠습니다

특히 성취에 대한 성명서를받는 방법에 대해 알고 있습니다 인증서 및 2 가지 배지 옵션이 있습니다 기본적으로 두 경로가 있습니다 수업 그래서 저는 왼쪽의 한 가지 길을 보여주었습니다

경로를 통해 성취도 배지뿐만 아니라 성명서도 받게됩니다 증명서 그래서, 8 가지 문제가 있습니다 그리고 그 사람들은 75 %의 가치가있는 사람들이 될 것입니다 제출

늦게 제출하면 신용의 50 %에 대한 마감 그리고 최종 시험도있을 것입니다 수업 중 포인트의 25 %, 단일, 단일 제출 그리고 아이디어는 당신이 시간이 없다면이 길을 따라 가야한다는 것입니다 모든 코드를 수행하십시오

그리고 우리가 오른쪽에서 볼 때 우리가 볼 수있는 슬라이드는 실제로이 수업을 통해 또 다른 방법으로 또한 성명서를 받으실 수 있지만 숙달 배지 그래서, 당신은 또한 8 가지 문제 세트를합니다 이제 신용의 40 %를 차지할 가치가 있지만 지금은 4 가지 프로그램 과제가 있습니다 또한 40 %의 가치가 있습니다 여러 번 제출하면 좋습니다

늦은 제출은 또한 신용의 50 %를 허용했습니다 기본적으로 격주에 프로그래밍 할당이있어 실제로 코드 나 일부 CAD 스크립트를 작성하여 Coursera Cloud, 우리가 보여주는 이러한 아이디어 중 일부를 탐구하고, 클래스에서 개발 그리고 마지막 시험이 있습니다 20 %의 가치가 있으며 단일 제출도 가능합니다 그리고 여기의 아이디어는 당신이해야한다는 것입니다

당신이 정말로 원하는 것이 코스의 가장 깊은 이해라면이 일을하십시오 이제 다른 중요한 것들은 분명히 명예 코드입니다 잘 됐네요 다른 사람들과 이야기하고 함께 일하는 것이 바람직합니다 클래스

우리는 확실히 그것을 권장합니다 그러나 당신이 제출하는 것은 숙제, 코드, 다른 임무는 그리고 다음 중 하나에 솔루션을 게시하지 마십시오 Coursera 사이트의 과제물을 공유하거나 이러한 솔루션을 대면 공유 할 수 있습니다 전자 메일이나 웹 또는 다른 사람들과 공유 할 수 있습니다

그것은 정말로 그저 코스를 배우는 경험을 망칠뿐입니다 수업 중 다른 모든 사람들을 위해 그러나 Coursera 상호 작용을 사용하십시오 메커니즘을 제공합니다 왜냐하면 Coursera는 여러분이 요청할 수있는 훌륭한 토론 포럼을 지원하기 때문입니다 질문

그리고 우리는 모든 것을 활용할 것입니다 당신이 우리와 연결하고 서로 연결하는 데 도움이되는 것들 이 작업을 수행하기 위해 필요한 배경에 대해 잠깐 이야기 해 봅시다 수업 컴퓨터 과학이 필요해

배경 당신은 프로그램을 작성할 수 있어야합니다 현대적인 언어로 500 라인에서 1,000 라인 정도 그리고 기본적인 데이터 구조를 알아야합니다 그래서, 어떻게 링크 된리스트가 작동하는지, 어떻게 나무가 작동하는지, 재귀가 어떻게 작동하는지 등등 그

컴퓨터 공학 분야에서 하드웨어 기술 당신은 어떻게 기본적인 디지털 디자인을 알아야합니다 작품, 게이트, 플립 플롭, 부울 대수, 논리를 단순화하는 Karnaugh지도 무언가의 구조 그리고 조합에 대해 알아야합니다 순차적 설계, 유한 상태 기계 등이 포함됩니다

수학 측면에서, 당신은 약간의 이산 수학을 알아야합니다 당신은 세트가 무엇인지 알 필요가 있습니다 당신은 기능이 무엇인지 알 필요가 있습니다 주의 깊게 표기법을 써서 수학을 설명 할 때 편안함 작은 그래프 이론은 좋지만 필수는 아닙니다

니가 필요한 건 내가 개발할거야 우리는 실제로 몇 군데에 가서 몇 가지 미적분 기술을 사용하십시오 따라서 파생 상품의 작동 방식을 알아야합니다 어쩌면 선형 대수학의 기본 적분, 약간의 기본 적분 일 수도 있습니다 기본적인 학부 과학이나 공학 수학이 그것을 할 것입니다

기본적인 VSLI 지식은 특히 당신이 칩 레이아웃을 조금이라도했다면 좋았습니다 그게 좋은 일이지만, 그게 꼭 필요한 것은 아닙니다 클래스는 실제로 완전히 독립적 인 것으로 구성됩니다 비디오 강연을보고 있다면, 우리는 우리가 VSLI CAD에 대해 배워야합니다 그래서, 여기의 정상에, 당신은 알고있다, what 's 수업은 전부? 그것은 컴퓨터 지원 설계입니다

반 맞춤형 ASIC 따라서 ASIC은 우리에게 중요한 단어입니다 이것은 특정 용도의 집적 회로입니다 그것은 하나의 기능을 수행하도록 설계된 회로입니다 그리고 세미 주문형은 이미 일부를 사용하여 이것을 디자인하려고 시도한다는 것을 의미합니다

설계된 부품 다음 슬라이드에서 이에 대해 이야기하겠습니다 컴퓨터 지원 설계 인 CAD는 일련의 설계를 통한 흐름입니다 단계 및 소프트웨어 도구 그래서 우리의 a, a, 우주는 이 다이어그램에서 설명합니다

그리고 우리는 당신이 일부 디지털 고급 설명과 일부 고급 설명 언어, Verilog 또는 VHDL 일 수 있습니다 그리고 그것은 뭔가로 변할 것입니다 실제로 논리 합성을 통해 구현할 수 있습니다 게이트 및 와이어를 사용하여 실제로 논리적으로 올바른 작업을 수행합니다 수백만 게이트와 수백만 게이트로 변할 것입니다

수백만 와이어 우리는 그것을 적절한 것으로 집어 넣을 것입니다 레이아웃 합성 도구 모음을 만들었습니다 칩의 표면, 전선을 내려 놓고 그들을 연결, 우리가 최적화하는 데 도움이 타이밍 등 그리고 많은 종류의 라이브러리가 있습니다

이 모든 수준에 걸쳐이를 지원하는 것들 우리가 주로이 수업에서 중점을 둡니다 기본적으로 게이트와 전선 그래서, 논리 합성은 일종의 정렬로 시작합니다 부울 설명으로 게이트와 와이어를 제공합니다

레이아웃 합성은 게이트와 와이어를 취하여 적절히 정렬합니다 여기에 몇 가지 유용한 두문자어와 몇 가지 용어가 있습니다 Semi-custom ASIC, 나는 이전 슬라이드에서 이것을 언급했다 애플리케이션 별 집적 회로는 ASIC입니다 즉, 대부분 semi-custom을 사용하여 특정 작업을위한 칩을 설계 할 때입니다

기법 그래서, 만약 당신이 프로세서를 디자인한다면 ASIC이 아니라, 당신이 알고있는 것을 디자인한다면, 비디오 재생 또는 특정 사운드가있는 무언가 또는 무엇인가 알고 있습니다 암호화는 ASIC입니다 당신은 정말로 그 (것)들의 zillions를 만들기 위하여 예기하지 않는다 그래서 당신은 그 (것)들을하는 것을 여유가있을 수 없다 전체 주문형 디자인이라고 불리는 반 맞춤형 디자인의 반대편 그들은 꽤 밀도가 없습니다

그들은 당 많은 트랜지스터를 가지고 있지 않습니다 단위 면적 그것들은 풀 커스텀만큼 빠르지는 않습니다 디자인 차이점을 살펴 보았다면 반 사용자 정의 디자인과 완전한 맞춤 디자인 사이에서, 내가 말하는 것은 반 맞춤형 디자인은 선재 부분에서 대부분 잘 시작됩니다

그래서, 우리는 당신이 아시다시피, 당신이 알고있는 문이 가득한 도서관을 가지고 있다고 가정합니다 도구 우리는 당신이 도서관에 접근 할 수 있다고 가정합니다 메모리, 그래서 당신은 RAM의 큰 블록을 넣을 수 있습니다 그리고 우리는 주로 우리가 그 것들에 합성하고 배열하는 방법에 관심이 있습니다

기하학적으로 그러한 것들을 우리의 디자인으로 만듭니다 전체 맞춤 디자인은 실제로 디자인을 할 때 우리가 말하는 것입니다 개별 트랜지스터 레벨과 솔직히 오늘날 마이크로 프로세서는 정말로, 정말로 완전한 주문형 일뿐입니다 사실, 여러분도 알다시피, 다른 흥미로운 몇 가지 종류의 우리가 할 수있는 것, 우리는 언급 할 수 있습니다 알다시피, 당신이 아는 어떤 것을 위해, 당신이 알고있는 미국 달러로 오늘 ASIC과 같은 것, 우리는 무언가에 대해 이야기하고 있습니다

너도 알다시피, 2 천 5 백만이 그런 걸 할거야, 우리가 아마 25 ~ 50 명이 실제로 그 종류를 디자인하는 것과 같은 것에 대해 이야기하고 있습니다 사물의 하지만 우리가 뭔가 얘기하고 있다면 완전한 주문형 디자인처럼, 어, 우리는 100 수백만 달러라고 생각해 봅시다, 어쩌면, 아마도 100 명 정도되는 사람들이 있습니다 어쩌면 수백명의 사람들이 값 비싼 팀을 복잡하게 만들 것입니다 그런 종류의 디자인을 할 수 있습니다

그리고 심지어 오늘, 완전한 주문형 프로세서 디자인, 그들은 그들에 사용자 정의 부품의 엄청난 금액이 있습니다 따라서이 클래스의 반 맞춤형 ASIC에 중점을 둡니다 더 중요한 약어가 하나 있는데, CAD는 컴퓨터를 통해 도움을 받았습니다 디자인 그리고 우리 모두가 그랬던 것처럼 칩 디자인을위한 도구의 세계

그리고 문제는 많은 우리 친구도 CAD를합니다 그래서 우리의 기계 공학 친구들, 그들은 자동차를 디자인하고 있으며 CAD를 사용합니다 우리의 건축 친구, 누가 디자인인가? 교량은 CAD를 사용합니다 Cad는별로 구체적이지 않습니다 따라서 칩을 실제로 사용하는 사람들은 EDA, 전자 설계 오토메이션

그게 가장 내부자 칩 사람들이 부르는 것입니다 그것 더 정확하고 더 설명적인 이름 문제는 외부의 사람들이 비즈니스가 이것이 무엇을 의미하는지 항상 명확하지는 않습니다 그래서 저는이 VLSI CAD를 쉽게 호출하기를 원했기 때문에 이것을 선택했습니다 이것에 관심이있는 사람들이 이해합니다

하지만 실제로, 솔직히 VLSI EDA입니다 누군가에게 현명하게 말하고 싶다면 칩 디자인을 담당하는 사람은 EDA라고 부릅니다 자, 알 잖아 더 중요한 약어는 칩상의 시스템 인 SOC입니다 칩상의 시스템은 하나의 큰 칩에 많은 기능 블록을 통합하고 가장 일반적으로 우리가하는 일은 블록을 취하고 함수를 구현하는 것입니다

기본적으로 게이트 또는 플립 플롭이라고하는 표준 셀이라고합니다 우리는 이러한 것들을 줄 지어 정렬합니다 우리는 그것들을 많은 층들과 연결합니다 와이어 우리는 이러한 것들을 큰 것으로 산재시킵니다

정적 RAMS SRAM과 같은 메모리 블럭 그런 다음이 블록 내부에서 우리가 좋아하는 것을 구현하십시오 그래서 우리는 임의의 논리를 구현할 수 있습니다 우리는 어떤 종류의 CPU 코어를 구현할 수 있습니다 함수를 사용하여 원하는 모든 작업을 수행 할 수 있으며 이러한 종류의 블록을 칩에 큰 시스템을 만든다

그들은 정말로, 정말로 그렇게 보입니다 이것은 매우 단순한 것입니다 그리고 방금 블록 몇 개를 가져 왔어 알아 우리가 여기에서 볼 수있는 한 무리가 있습니다

이 칩의 표면에 많은 메모리 블록이 있습니다 실제로 버스와 통화하고있는 임의의 제어 논리가 있습니다 작은 프로세서가 조금 더 있습니다 단지 4 비트 또는 8 비트라고 생각합니다 프로세서, 거기에 게이트의 행을 측면에 구현하고 이것은 재미있는 칩

이것은 컨트롤러 칩입니다 실제로 아날로그 인터페이스가있어 이상한 전압과 산업계에서도 그렇지만 여전히 칩상에 시스템을 갖춘 좋은 예입니다 이 클래스의 또 다른 중요한 용어는 플로우입니다 이런 큰 디자인을 어떻게 공격합니까? 음, 큰 생각은 추출 문제를 더 작은 크기로 나눕니다

단계 및 모든 단계에서 디자인을 조금 더 현실감있게 만듭니다 그래서, 합성 단계는, 지금 그것들이가는 것들입니다 그럼 합성 이죠, 그렇죠? 그것들은 앞으로 나아갈 것들입니다 디자인 그들은 마지막 단계에서 물건을 가져 가고 그들은 그것을 조금 더 현실로 만듭니다

확인 단계는 뒤로 보이는 것들 그것들은보고, 뒤돌아 본다 쪽으로 좋아, 그게 확인 단계 야 그들은 실제로 효과가 있는지 확인했습니다

그리고 완벽한 단계 세트를 a라고합니다 흐름 그리고 흐름에는 수백 단계가있을 수 있습니다 실제 산업 디자인에서 그러나 우리 반에는 정말 단순한 흐름이 있습니다

좋습니다, 그래서 우리는 기본적으로 이러한 것들을 살펴볼 것입니다 지역 우리는 논리 합성을 살펴볼 것입니다 합성 (Synthesic Synthesis)과 부울 논리 (Boolean logic)로 시작하겠습니다 추상 형식의 종류의 설명

그리고 그것은 우리에게 진정한 문을 열어 줄 것입니다 합리적인 방법으로 최적화 된 전선 그리고 우리는 약간의 논리 검증을 살펴볼 것입니다 우리는 주로 당신의 디자인이 어떤 것인지 말하기위한 몇 가지 방법들을 살펴볼 것입니다 부울 도메인, 게이트 및 와이어에서 아주 간단한 방법으로 수정하십시오

우주 그리고 나서, 게이트와 전선이 칩에 실제로 배치 한 종합적인 도구 세트를 배치합니다 칩의 표면은 단지 큰 직사각형이며 xy 좌표는 그 모든 것들 그리고, 그들은 또한 단지 이 우주에서 약간의 타이밍 그래서 우리는 뭔가를 알아 내려고 노력할 수 있습니다

얼마나 오래, 물건들이 실제로 얼마나 오래 걸리는지, 아주 간단한 방법으로 자, 이것은 엄청나게 단순화 된 흐름이라고 말해야합니다 그러나 우리가 사용할 수있는 10 주간의 시간에 우리는 실제로 우리가 할 수 있다고 생각합니다 이것을 덮어 라 그래서,이 수업의 큰 목표는 중요한 알고리즘과 중요한 데이터 구조, 그리고 각각의 큰 단계에서 사용되는 모델링 가정

자, 시작하고 그러한 것들이 무엇인지 살펴 봅시다