적극적 생각 507

0724 - 섹션5 - Data Mover by BRAM (2)

tb의 위치에 대한 참고. 2^12 = 4096 4개의 인터페이스 네이밍 addrX_bX 초기화를 시키는 두가지 방법 (단, 이것은 테스트 벤치이기 때문에 dump 시키는거지 RTL에서는 불가) generate 구문에 대한 확인은 필요 첨부한 두 사진은 같은 HW를 만듬. 단 본 구문에서, 첫번째 데이터는 별도처리 앞부분은 타입, 벡터, 뒷부분은 배열 이 빌드 파일을 통해서 터미널에서 빌드하는 방법 3840 까지 값을 넣어둠 이 부분을 주석처리 했을때와 하지 않았을 때를 두가지 모두 시뮬레이션 해보고 비교 이해 두번째 DIRECT ACCESS 켜면, Dump 시킨다.

FPGA BRAM에 데이터 저장 (2) 주소문제 해결하기 (3)

지난 시간까지를 통해 RAM과 관련된 (1)물리적구조 (2)논리적구조에 대해 어느정도 파악을 했다. 이제부터는 다시 원 궤도로 돌아와서 문제를 해결할 시간이다.(파악이 필요한 개념이 너무 많다.) --- 최소 데이터 단위를 첫주소인 BASE_ADDR에 저장하자. 그리고 그때 그 데이터의 값과 주소를 확인할 수 있는 로깅을 하자. 그리고 최소 데이터 한개부터 최대 데이터까지 확장해보자. --- 16개 write Handshake 발생시점 기준으로 주소정보는 다음과 같음. 0c, 10, 0c, 10, 0c, ... 주소를 이렇게 제어하는것은 어디에서 일어나는 동작인가? 0c(16) = 1100(2) = 12(10) 10(16) = 00010000(2) = 16(10) vivado 말고 vitis에서 비교관찰..

FPGA BRAM에 데이터 저장 (2) 주소문제 해결하기 (2)

Schematic을 통해 Register에 대해 관찰하는 작업은 수행했으니 / C 코드 상에서 과거 버전 이슈 해결에 이용했던 CMake 라던가, BASE_ADDR 포인터라던가 이 부분을 조금 더 자세히 파보도록 하자. 내가 지금 궁금한것은 그래서 내가 사용하는 BRAM의 첫번지와 마지막번지가 어딘가? 라는 점은 잊지 말자. (사실 첫번지 = BASE_ADDR 일 것 같고, BASE_ADDR + 36K 처럼 하면 마지막번지일 것 같기는 하다. 다만, 디테일의 영역일듯) ===== 지금 이 코드에서 이 변수가 어디서 온 얘인지를 판다. XPAR_LAB01_0_BASEADDR //////////////////////////////////////////////////////////////////////////..

FPGA BRAM에 데이터 저장 (2) 주소문제 해결하기

자 주소문제를 해결해보도록 하자. 나는 지금 많은 데이터를 저장할 필요가 없다. 딱 4번만 저장하더라도, 그 4번을 어떤 주소에 저장해내는지를 파악해내는가가 관건이다. 그것을 추적할 수 있는 환경을 만든 후 오버플로우를 유도하고 거기서 생기는 문제를 풀어주면 첫 주소와 끝 주소를 확인할 수 있을듯 해 보인다. --- MEM_DEPTH = 4로 조정해서 WRITE를 4번했다. 0,1,2,3을 잘 저장한 것을 볼 수 있다. 그때 우리는 주소를 '10번지'와 '0c번지'에 번갈아 보내주고 있다. 왜 이렇게 하느냐? 하면 BRAM에 보내기 위하여 Data Register를 사용하기 때문이다. RegisterMap을 보자. BASEADDR + 0x08 : Address 초기화 BASEADDR + 0x0c : Da..

시대가 요구하는 큰 문제

4년만에 닥터노아 박근우 대표님을 만나뵈었다. 각자 구호활동가와 일개 학부생에서, 훌륭한 대표님과 우당탕탕 초보 사업가로 변모하였는데, 내가 꼬꼬마라는 상황만 그대로인 듯하다. 대표님께서 하셨던 말씀 중 인상적이었던 부분들은, 1) 시대가 요구하는 큰 문제를 고민하고 푸는 사람이 되었으면 좋겠다. ☞ 시간은 한정되어 있으며, "젊은 시간"은 훨씬 더 값지다. ☞ 그런데 큰 문제를 풀든, 작은 문제를 풀든 둘 다 적지 않은 시간이 소모된다. ☞ 기꺼이 이 값진 시간을 모두 쏟겠다고 결심했다면, 빅 웨이브에 몸을 실어야 더 많은 것들을 바꿀 수 있다. 86~87학번 컴공 출신인 이해진, 김범수, 김택진, 이재웅 대표님처럼. 2) 지배력과 의사결정권은 지분에서 나오는 게 아니라, 사업을 얼마나 잘 수행하는가에..

인풋에서 아웃풋으로

인풋에서 아웃풋으로-- 1. 얼마전 독서를 열심히 하는 분을 만났다. 책도 많이 읽고 독서클럽도 다니고 세미나도 적극 참여하고 여러 뉴스레터도 구독해서 읽고 세바시나 Ted도 열심히 보아 아는것이 많았다. 그런데 그것으로 자신의 콘텐츠를 만들거나 업무력을 향상시키거나 자신의 전문성을 높이거나 별도 수익화하지 못하고 있었다. 그저 끝없이 인풋만 하고 있었다. 2. 물론, 너무 배우지 않는 분들도 많다. 즉, 인풋이 절대적으로 적은 분들이다. 책을 읽지도 온라인이나 오프라인으로 배우지도 않는다. 과거에 배웠던 지식이나 소프트스킬로 곰국 우려먹듯이 일을 하시는 분들도 많다. 3. 반면, 너무 인풋만 하는 분들도 있다. 책도 많이 읽고 유명인들을 따라다니며 강의도 듣고 세미나도 참석한다. 끝없이 배우는데 돈과 ..

FPGA BRAM에 데이터 저장.

자 단순하게 간단한 작업을 해보자. BRAM 하나의 용량만큼 1을 저장해보자. 예를들어 BRAM이 4x4 사이즈라고 치면 [1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1] 으로 저장하는 것이다. 시작해보자. 실습 워크플로우에서 참고할때는 이 글의 lab13을 참고한다. https://learn-future.tistory.com/3515 (중요) 0721 - 섹션4 - AXI4Lite 이용해 BRAM에 RW 이론 BRAM 지금까지는 Register에 --- 코드리뷰 Write Read Addr --- 실습 MYIP를 Replace할건데 코드 수정시에도 VIP 모듈이 연결되어있는 것을 유념 이쪽 파일을 실습 파일로 변경해줄건데 edit i.. aidenkang.me 당연히 다음 workflo..