일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 코딩테스트
- 가속컴퓨팅
- HW
- 비트마스크
- verilog HDL
- verilogHDL
- 백준
- 15683
- 최적화
- Module
- boj
- verilog
- Rtl
- DFS
- 가속기시스템
- 비트마스킹
- HDL
- 감시
- 스타트와링크
- RTLEngineer
- 알고리즘
- 비트마스크알고리즘
- testbench
- 14889
- 모델링
- HWEngineer
- 모듈
- dfs연습문제
- Today
- Total
목록verilog (5)
oohyoo 님의 블로그

안녕하세요.하드웨어 모듈/반도체 IP 개발자를 희망하시는 분들을 위한 좋은 verilog 연습 웹페이지가 있어 공유해드리고자 합니다. SoC, CPU, GPU, NPU등 하드웨어를 설계할 때 verilog HDL 언어가 가장 보편적으로 쓰입니다.이 verilog HDL에 대해 이론적 학습을 마치셨다면 바로 프로젝트를 진행하셔도 좋지만, 아무래도 C언어나 Python과는 다르게 연속 동작/병렬시행 매커니즘이 익숙하지 않아서 기본적인 실수를 하기 쉽습니다. 실제로 저도 정석적인 verilog 코딩을 익히지 않고 이론만으로 곧바로 프로젝트부터 시작했다가 미숙한 코드를 많이 작성하고 지적받았던 경험이 있어서, 초심으로 돌아가서 'verilog HDL 코딩의 정석'을 배워보고 싶었습니다. https://hdlbi..

verilog HDL을 이용하여 설계한 이후, 코드에 오류가 없는지를 점검하기 위해 디버깅하는 과정이 필요할 것이다. HDL 모듈을 오류가 없는지 시뮬레이션하기 위해 설계된 모듈이 바로 테스트벤치 모듈이다. DUT(Design Under Test)는 시뮬레이션 대상이 되는 모듈을 인스턴스로 불러와 시뮬레이션을 진행한다. 테스트벤치 모듈의 핵심 부분이라고 할 수 있다. 또한 테스트벤치 모듈에는 DUT에 입력되는 입력(stimulus)을 생성하는 구문, 시뮬레이션 입력에 대한 DUT로부터 반응(response)를 관찰하는 구문이 포함되어 있다. 테스트벤치 모듈을 이용한 시뮬레이션의 예시들을 살펴보겠다.module test_fix (); reg A, B, C; circuit cl(A, B,..

지난 포스팅에서는 Verilog HDL을 이용하여 회로를 설계하는 과정에 대해 개략적으로 살펴보았다.하드웨어 사양이 주어지면 이를 파악하여 HDL 코딩으로 회로를 작성하는 것이 첫번째 단계였다. 그렇다면 HDL 코딩은 어떤 구조로 이루어져 있을까? HDL(Hardware Description Language)은 하드웨어의 동작을 기술하는 언어로, C언어나 Java 같은 소프트웨어 개발 언어와는 다르게 하드웨어 설계에 특화되어 있다. 하드웨어 구성 요소 간의 상호 연결과 병렬성을 중점으로 작성하기 위해, 기본 설계 단위로 "module"을 이용한다. Verilog HDL에서 모듈(Module)이란, 기본 설계 단위를 의미한다. C언어를 알고 있는 사람이라면 모듈을 하나의 함수라고 생각해도 좋다. 그러나 ..

HDL(Hardware Description Language)는, 단순 논리 게이트나 FF(Flip-Flop)과 같은 기본적인 소자에서부터 제어회로, 통신용 모뎀, 마이크로 프로세서 등에 이르기까지 디지털 시스템의 설계 및 검증에 사용되도록 개발된 하드웨어 기술 언어이다. HDL은 일반적인 컴퓨터 언어(C언어, JAVA)보다는 좀 더 낮은 수준의 언어로, 소프트웨어 프로그래밍 언어와 다르게 하드웨어 설계에 적합한 언어 요소들을 가지며, 디지털 하드웨어를 여러 계층 레벨에서 표현하고 검증할 수 있다. 참고로 VHDL과 Verilog HDL은 다른 언어이므로 유의하도록 한다. Verilog HDL의 가장 큰 장점은 복잡한 회로도를 코드를 이용하여 기능, 동작, 구조를 직관적으로 표현할 수 있다는 것이다...
픽셀 단위의 이미지를 대량으로 처리하기 위해서 만들어진 GPU는 인공지능 분야에서 필수가 되었다. 인공지능의 기본인 '학습'을 위해서는 CNN(convolution neural network)를 주로 이용한다. CNN은 각각의 데이터에 가중치를 정하고, 이 가중치를 이용하여 데이터간의 연관성을 계산하는 방식이다. 데이터들은 2D 지도처럼 펼쳐져 있으며 이 값들에 가중치를 연산하여 결과 값을 도출하게 된다. "기계학습을 위한 기초적인 CNN은 어떤 방식으로 이루어지는가?"에 대한 내용은 나중에 포스팅으로 자세히 정리하도록 하겠다. 다량의 데이터를 갖고 반복연산하는 작업이기 때문에 컴퓨터 CPU의 병렬연산이 필요해지게 되었으며, 따라서 컴퓨터 학습에는 CPU가 아닌 GPU가 이용되기 시작했다. GPU는 병렬..