오늘은 맑음

NPU 환경 구축기(1) SRAM Read 테스트 본문

NPU

NPU 환경 구축기(1) SRAM Read 테스트

자전거 타는 구구 2020. 7. 21. 11:45
반응형

NPU라고 하면 Neural Processing Unit이라고 합니다.

실제로 NPU 내부 코어의 연산 동작은 단순합니다.

곱셈기와 덧셈기가 들어있고 DNN 연산에 따른 곱의 합 연산을 계속 반복합니다.

오늘은 이 NPU에서 연산할 데이터를 담을 SRAM을 만들고 테스트를 해보겠습니다.

 

저는 xilinx환경에서 테스트를 하는 중이므로 ipcore를 이용해서 block memory를 사용하셔도 되지만 저는 SRAM을 만들어 사용하겠습니다.

오늘 사용한 SRAM의 소스는 https://sourceforge.net/projects/test-drive/에서 참조했습니다.

 

SRAM 구조

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를 저장했습니다.

 

Simulation result

시뮬레이션 결과는 위와 같습니다.

nCE가 active low로 동작하므로 nCE가 low가 되고 CLK이 postive edge일 때 마다 ADDR에 해당하는 데이터가 출력으로 나옵니다.

반응형
Comments