분류 전체보기
-
Logic Circuit의 Timing Violation 정리전공/VLSI 설계 2021. 3. 31. 16:46
[해당 내용은 저서 "CMOS VLSI Design: A Circuits and Systems Perspective" 에 기반하여 작성되었습니다.] ASIC Design시 고려해야 할 Timing violation은 2가지로 분류된다. 1. Setup time Violation : Clock이 들어오기 전에 내가 원하는 Data가 안정적으로 유지되어야 하는 시간 2. Hold time Violation : Clock이 들어온 후에 내가 원하는 Data가 안정적으로 유지되어야 하는 시간 먼저, 위의 Setup time을 위반하는 경우(Setup time violation)는 어떤 경우일까? $T_{c}$ : Clock Period $t_{pcq}$ : 입력 clock과 출력 q 사이의 시간차 중 가장 느린..
-
Clock 명령어 및 예제 정리(.sdc)전공/Design Compiler 2021. 3. 31. 14:54
1. create_clock : Clock을 생성해주는 명령어이다. 명령어 옵션 -name clock_name -add -period period_value -waveform edge_list source_objects 명령어 예제 (1) 실제 존재하는 포트 A에 주기 10ns, 상승하는 시간 5.0ns, 하강하는 시간 9.5ns인 Clock을 생성하고 싶을 때 create_clock -period 10 -waveform {5.0 9.5} "A" -> 옵션은 먼저 나와도 되고, 뒤에 나와도 된다. (2) 실제 존재하는 포트 A를 clk으로 이름 짓고, 주기 10ns, Duty cycle이 50%인 Clcok을 생성하고 싶을 때 create_clock -period 10 -name "clk" "A" -> ..
-
Clock Skew와 Clock Latency의 차이점전공/VLSI 설계 2021. 3. 31. 14:27
공부하다가 헷갈리는 개념이 있어서 따로 찾아보았다. Skew와 Latency 둘 다 Clock과 Clock의 상승 Edge의 시간차를 보는 것인데, 왜 하나는 Skew라고 말하고 다른 하나는 Latency라고 말할까? 이유는 아래 사진에 나와있다. 간단히 설명을 덧붙이자면, Skew : Flipflop끼리의 Clock 위상차 Latency : Clock Source에서부터 Flipflop까지의 Clock 위상차 라고 할 수 있겠다. (굳이 따지자면 Latency는 또 source와 network로 분류된다. 궁금하다면 여기에서 3번째 명령어 설명을 보면 된다.)
-
Synopsis Design Constraints 파일(.sdc)의 의미전공/Design Compiler 2021. 3. 30. 23:18
[일단 이 글을 읽기 전에, 사전 지식이 부족한 사람이라면 여기에서 세번째 단계를 읽어보도록 하자.] 우리가 RTL code를 Gate-level-netlist로 Synthesis 해주기 위해서는 그 역할을 담당하는 Tool을 사용해야 한다. 대표적으로 Synopsis 사의 Design Compiler가 있으며, 이번 게시글에서 소개하는 .sdc 파일도 이 tool의 사용에 필요한 파일이다. 일단 간단히 Design Compiler에 들어가야 하는 입력 파일들을 열거하면, 1. 합성하고자 하는 Module의 RTL Code(.v) 2. Wire Load Model(.sdf) 3. Synopsis Design Constaints(.sdc) 4. Technology library(.db 혹은 .lib) 등으..
-
Netlist and System Partitioning : FM 알고리즘전공/VLSI 설계 2021. 3. 27. 19:29
앞서 우리는 큰 회로를 부분적으로 나누는 알고리즘인 KL 알고리즘에 대해서 알아 보았다. 위의 알고리즘은 큰 회로를 부분적으로 나누면서, 하위 회로간의 연결이 최소가 되도록 하는게 목표였다. 하지만 실제 회로에 적용하기에는 부족한 부분이 많았는데, 더 고려해야 할 사항은 무엇일까? 일단 첫번째로, Cell과 하위 회로의 크기에 있다. 앞서 말한 KL 알고리즘은 모든 Cell의 크기를 같다고 두고 있다. 하지만 분명히 AND게이트, XOR게이트, Adder 등의 Standard/Macro cell은 서로 크기가 다르므로, 서로 크기를 같다고 하는 것은 현실 세계에 맞지 않는다. 또한 큰 회로를 하위 회로로 나누는데, 이 하위 회로끼리의 크기는 서로 비슷해야 시간 복잡도 측면에서 유리하다. (합병/퀵 정렬 ..
-
Netlist and System Partitioning : KL 알고리즘전공/VLSI 설계 2021. 3. 25. 23:15
VLSI의 디자인이 복잡해짐에 따라, 설계에 있어 자동설계는 필수적인 기술이 되었다. 하지만 게이트의 수가 많아지고, 이들을 물리적으로 연결하는 Physical design 단계에서 복잡도가 크기에 비해 지수적으로 증가하자, 공학자들은 분할정복(Divide and Conquer) 방식을 이용하여 이를 해결하려 하였다. 이 방법은 말그래도 Gate-level-netlist를 서로 독립적인 여러 하위 회로로 분할하여, 따로 Place & Route를 진행하고, 이후 이를 다시 통합하여, Local Optimiztion을 만족시키는 것이다. 길게 설명을 했지만 한 줄로 요약하면, "회로를 쪼개서 각자 해결하고 합친다." 라고 생각하면 되겠다. 자 그러면 말그대로 그냥 막 자르면 되지 않나? 싶다면 아래 그림을..
-
기본적인 ASIC 설계의 흐름전공/VLSI 설계 2021. 3. 23. 00:16
시스템 반도체는 크게 두 가지로 구분된다. 1. FPGA : 프로그램 가능 2. ASIC : 프로그램 불가능 FPGA 같은 경우에는 LUT(Look Up Table)을 사용하여 내가 HDL 언어를 기술하는대로 동작이 바뀌는 반면, ASIC은 한번 설계되어 제품이 나오기 시작하면 그 기능을 바꿀 수 없다. 하지만 ASIC은 동일 면적 대비 훨씬 더 좋은 성능을 자랑할 수 있으며, 대량 생산 시 가격이 매우 저렴해 현 시대에 자주 이용된다. (FPGA는 대개 개발용으로 많이 사용되어 하드웨어 가속기라던가, 코인 채굴용(?) 등으로 많이 사용되기도 한다.) 이런 ASIC이나 FPGA의 설계 과정은 대략적으로 어떻게 될까? 아래 그림을 참고해보자. 첫번째로, 칩의 설계 규격을 정한다. Clock, Power, ..
-
Ender-3 pro-k 메인보드 교체DIY 2021. 1. 28. 00:04
3D 프린터를 구입하고 1년 이상 사용하니 여러 문제가 발생하기 시작했다. 노즐 막힘, 축 탈조, 출력물 벌어짐, 메인보드 고장 등등.. 아마 3D프린터 사용자라면 모두 한번씩은 겪어봤을 문제들이다. 이번 게시글에서는 최근에 나를 가장 괴롭혔던 메인보드 고장에 대해서 다루어 보려고 한다. 결함 증상 : Extruder 모터가 동작하지 않음. (2020년 12월) 확인 사항 모터 자체의 문제인가? -> X축 모터와 케이블을 바꿔본 결과 Extruder 모터 정상 동작 모터 케이블이 문제인가? -> 멀티미터로 케이블의 양 끝을 단락검사 해본 결과 이상 없음 결함 이유 : 메인보드의 Extruder 모터 드라이버가 과열로 인해 고장 결함 원인 ABS 출력 시, 메인보드는 굉장히 고온에 노출되며 챔버를 사용하여..