일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CDC
- 이진수 곱셈 알고리즘
- Makefile compile
- 컨벌루션 연산
- Pyverilog 튜토리얼
- CUDA
- systolic array
- DNN Accelerator
- 딥러닝 가속기
- Pyvrilog tutorial
- AMBA
- Design DNN Accelerator
- Pyverilog 실행
- 대구 반도체 설계기업 특화
- 데이터 해저드
- CLOCK GATING
- Data HAzard
- 남산업힐
- Pyverilog 설치
- linux c++ 컴파일
- linux c 컴파일
- gpgpu-sim
- 클럭 게이팅
- pygraphviz 설치 오류
- makefile
- gcc 컴파일
- pyverilog 설치 오류
- linux makefile 작성
- DNN 가속기
- pytest-pythonpath 설치 오류
- Today
- Total
오늘은 맑음
NPU 환경 구축기(1) SRAM Read 테스트 본문
NPU라고 하면 Neural Processing Unit이라고 합니다.
실제로 NPU 내부 코어의 연산 동작은 단순합니다.
곱셈기와 덧셈기가 들어있고 DNN 연산에 따른 곱의 합 연산을 계속 반복합니다.
오늘은 이 NPU에서 연산할 데이터를 담을 SRAM을 만들고 테스트를 해보겠습니다.
저는 xilinx환경에서 테스트를 하는 중이므로 ipcore를 이용해서 block memory를 사용하셔도 되지만 저는 SRAM을 만들어 사용하겠습니다.
오늘 사용한 SRAM의 소스는 https://sourceforge.net/projects/test-drive/에서 참조했습니다.
SRAM SINGLE의 구조는 위의 그림과 같습니다.
SRAM의 입력으로 SRAM을 동작시킬 CLK, 데이터를 출력시키는 신호인 nCE(negative Chip Enable), SRAM에 데이터를 쓰는 nWE(negative Write Enable), 데이터를 읽거나 쓸때의 주소인 ADDR, SRAM에 Write할 때의 데이터 DIN가 사용됩니다.
출력 데이터로는 DOUT이 사용됩니다.
SRAM의 DATA WIDTH는 16, ADDR WIDTH는 6으로 설정하고 테스트를 진행했습니다.
데이터는 0번지부터 순서대로 dead, beef, 0a0a, 1234, 0000, dead를 저장했습니다.
시뮬레이션 결과는 위와 같습니다.
nCE가 active low로 동작하므로 nCE가 low가 되고 CLK이 postive edge일 때 마다 ADDR에 해당하는 데이터가 출력으로 나옵니다.
'NPU' 카테고리의 다른 글
NPU 환경 구축기(2) SRAM read/write 테스트 (0) | 2020.07.22 |
---|---|
MIT eyeriss tutorial (0) | 2020.07.21 |
NPU, AI Accelerator 관련 논문 정리 (추가논문) (0) | 2020.07.10 |
NPU(Neural Processing Unit), AI Acclerator 관련 논문 정리 [2] architecture (0) | 2020.07.10 |
NPU(Neural Processing Unit), AI Acclerator 관련 논문 정리 [1] algorithm (2) | 2020.07.10 |