본문 바로가기

Semiconductor

(27)
Linux 명령어 명령어 shutdown : 시스템 종료 halt : 시스템 종료 init 0 : 시스템 종료 poweroff : 시스템 종료 reboot : 시스템 재부팅 init 6 : 시스템 재부팅 shutdown -r now : 시스템 재부팅 pwd : 현재 자신이 위치하는 디렉토리 cd : 디렉토리 이동 ls : 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시 mkdir : 디렉토리 생성 ( 폴더 생성 ) == 앞으로 폴더를 디렉토리로 쓰겠습니다. rmdir : 디렉토리 삭제 touch : 파일크기가 0인 파일 생성 ( 잘 쓰진 않지만, 파일 시간 정보를 변경하는 용도로 쓰이거나, 하드디스크의 오류를 판단할 때 쓰입니다) cp : 파일 복사 ( 디렉토리 내부까지 복사하기 위해서는 cp -R 이라는 옵션을 붙..
Delay / Skew / Slack / Slew Delay ASIC 또는 FPGA에서 발생하는 Delay는 흔히 이야기하는 딜레이가 맞습니다. DELAY = CELL_DELAY + NET_DELAY 여기서 CELL은 AND, OR, FlipFlop등의 셀을 의미하며 NET은 이들을 연결하는 WIRE를 의미합니다. CELL_DELAY는 전자의 이동속도 등과 관련이 있으며 CELL_DELAY는 아래 그림과 같이 세수대야 모델로 이해 할 수 있습니다. 세수대야를 CELL로 봅니다. 대야속의 물의 높이 즉 '수위'가 CELL의 값을 나타냅니다. 물이 비어있다고 가정하면 0의 값이며 수도꼭지를 틀어 수위가 1이 될 때 까지의 시간을 RISE_DELAY라고 합니다. 그리고 구멍을 열어 수위가 다시 0이 될 때 까지의 시간을 FALL_DELAY라고 합니다. 물 대..
Keywords & Revisions
ASIC SoC [ Specification] Application이 선정된 후 SoC 개발에 착수하게 되면 Specification을 시작합니다. 스펙을 정하는 설계 단계라고 보면 됩니다. 주로 이 칩이 어떠한 제품에 들어가서 어떠한 역할을 담당하게 되는지 칩 외부에는 어떠한 디바이스들이 연결되는지를 파악합니다. ( 외부와 연결되는 interface 선정) 파악 된 결과를 토대로 요구되는 성능에 맞게 Block diagram을 구상하여 칩의 전체적인 Architecture를 설계합니다. 이 때, IP를 어디서 사와서 intergration 할 지 필요에 따라 Back-End에서는 Floor plan도 함께 진행하게 됩니다. 설계 계획을 예로 들면 △ 회사의 ○○○ nm 공정으로 Fab-in 할 것 - 타깃 ○○○ by ○○○ 사이즈 안에 들어가야 ..
ASIC SoC [ Application] 어떠한 동작을 하는 시스템을 칩에 구현 할 것인지에 대한 용도를 결정해야 합니다. 예를 들어 카메라 모듈 혹은 CCTV에 적용 될 영상처리용 칩 / 블루투스, 와이파이에 적용 될 무선 통신용 칩 / 자율주행이나 전기차를 위한 차량용 칩 / 가상 화폐 채굴용 칩 등등 SoC 칩을 만드는 용도는 다양한 목적을 가지고 있습니다. Application의 선정을 한 후 해당 기능을 하는 알고리즘을 구현해야 합니다. 보통 알고리즘은 High Level Software( C, C++, Java, Python 등)로 구현하여 범용 프로세서로 확인을 합니다. 그 후 알고리즘이 정확히 동작하고 시장성, 사업성이 있다는 확신이 서게되면 SoC 개발에 착수하게 됩니다. 보통 생각하는 알고리즘을 SW로 구현하여 범용 칩에 적용..
ASIC SoC [ Introduction] SoC ( System On Chip) - 하나의 칩안에 시스템이 모두 들어가는 구조의 반도체 Application - 어떠한 기능을 가진 칩을 구현할 것인지 결정 Specification - 구현하고자 하는 칩의 성능을 맞추기 위하여 구성해야 할 것들을 결정 Design - 요구되는 기능들이 동작하도록 RTL로 어떻게 설계할지 구상 Verification - 설계 된 디자인이 의도한데로 동작하는지 검증 Synthesis - 완성 된 프로그래밍 디자인을 실제 Gate-Level로 바꾸는 작업 Back-End - 합성 된 Gate-Level 회로를 실제로 칩에 적용 할 GDS ( Graphics Database System)로 만드는 작업 Test - 실제 구현 된 칩에 문제가 있는지 검증하는 작업
Data Types Verilog에는 'reg'와 'wire' 타입이 존재한다. 하드웨어 검증이 더욱 복잡해지고 많은 것들을 요구함에 따라 효율적인 테스트벤치를 구동하기 위하여 Verilog의 데이터 타입은 충분하지 않게 되었다. 이러한 이유로 SystemVerilog는 C언어와 같은 언어를 참고하여 데이터 타입을 확장시켰다.
SystemVerilog SystemVerilog는 검증에 최적화되어 있는 언어이다. 설계만을 위해서라면 Verilog로 충분하지만 복잡한 로직을 효율적으로 검증하기에는 부족하다. Verilog로 OOP 관점의 TestBench를 설계하기에는 한계가 있으며 이를 위해 개발된 것이 SystemVerilog이다. 앞으로 chipverify에 있는 관련 내용들을 보며 천천히 글을 작성해보고자 한다. 영어가 짧은 관계로 틀릴수도 있지만 앞으로 틀린부분은 수정하며 진행하고자 한다. Component Description Generator DUT를 구동하기 위한 입력 신호 생성 클래스 Interface DUT를 구동하거나 모니터링 할 수 있는 신호를 포함하고 있는 클래스 Driver DUT를 위해 생성된 입력 신호를 구동하는 클래스 Mon..
Decimal to Binary conversion( Decimal point) 십진수의 소수점은 2를 곱하고 그 계산된 수의 정수 부분을 취하면 이진수의 소수점이 됩니다. 0.625 * 2 = 1.25 여기서 정수 부분 1이 이진수의 소수점 첫 째 자리가 됩니다. 그 이후로 1을 버리면 0.25가 되고 다시 2를 곱하고 같은 방식으로 계산을 진행하면 됩니다. 0.25 * 2 = 0.5 정수부분 0이 이진수의 소수점 둘 째 자리 정수부분이 0이므로 그대로 2를 또 곱합니다. 0.5 * 2 = 1.0 정수부분 1이 이진수의 소수점 셋 째 자리가 되고 이제 계산은 마무리 됩니다. 소수부분이 0이므로 2를 곱해도 0이 되며 즉, 2를 계속 곱하면서 1.0이 나오면 계산이 종료됩니다. 따라서 구하려는 답은 0.625( 10) = 0.101 0.05에 2를 곱해봅시다. Carry가 발생하면 ..
Debounce a Switch in a FPGA Fix button glitches on your development board If you are using a development board that has switches, you should be careful. Physical switches such as push buttons and toggle switches are all subject to bouncing. Bouncing occurs when the switch is toggled or flipped. It happens in all switches as a result of the metal contracts coming together and apart quickly before they have time to settle ou..