묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
build 파일을 이용하지 않고 Simulation을 하려면
FPGA에 집중 하고 싶어서WSL 환경은 제껴두고 윈도우 환경을 위주로 학습중입니다. build 파일을 사용하지 않고 vivado에 새로운 프로젝트를 만들어서lab5_matbi.v, counter_toggle_out.v, tb_lab5_matbi.v소스 파일을 그대로 인용해서 Simulation을 시도해봤습니다. 강의에서 언급을 하신대로 `ifdef XSIM_MATBI의 기능은 build 파일에 적용이 되는 것 같아일단 아래 수치는 비활성화 했습니다 ,,위와 같이 Simulation시 아래 웨이브폼이 출력됩니다.1000ns가 끝입니다. 강의에서 보여주신 시뮬레이션은 4000ns까지 보여주더라구요.그래서 테스트벤치 모듈을 확인했습니다. 정황상 for문이 시뮬레이션의 총 시간을 결정하는 문단인 것 같지만, 왜 제 환경에서는 1000ns까지 밖에 출력이 되지 않는지 도저히 영문을 모르겠습니다..알려주시면 감사드리겠습니다 ,, ㅠㅠ
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
정말 친절한 소스분석 강의 중 Expressions 기능 문의
Expression 기능 사용 중 문의드립니다.위와같이 같은 FLASH라고 작성을 했을때 저는 Type Value가 인식이 되질 않습니다. 이와 관련하여 해결방법 문의드립니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
(영상 7:55) HAL_GPIO_ctrl shift 눌러도 단축키가 안나옵니다.
(영상 7:55) HAL_GPIO_ctrl shift 눌러도 단축키가 안나오는데... 우선 저는 아직 보드를 주문해놓고 아직 오진 않았습니다. 보드와 연결이 안되어 있어서 해당 단축키가 안먹는건지... 어떤 이유로 단축키가 먹지 않는건지 문의드립니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
섹션 4 환경 구축하기 강의자료 문의
섹션 4 Hello GPIO!! 환경 구축하기 듣고있는데 QR코드로 자료를 올려주셨다고 강의에서 QR코드랑 자료를 올려주셨다고 하는데 찾을수가 없어서요. 혹시 강의자료 어디서 받을 수 있는건가요?스마트스토어 들어가서 QR코드는 찾았는데 파일 압축해제 시 비밀번호가 필요하네요. 답변 부탁드립니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
ST-LINK는 패키지에 포함되어있지 않던데 따로 구매해야하나요.
색션 4에 "프로젝트 생성해보기!"를 진행해보다가 디버그를 위한 ST-LINK가 없는것을 알았습니다. 따로 구매해야하나요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab10 usleep 관련하여 질문있습니다.
안녕하세요 맛비님!lab10 main.c 부분 코드를 작성하면서printf("Output took %llu clock cycles.\n", 2*(tEnd - tStart)); printf("Output took %.2f us.\n", 1.0 * (tEnd - tStart) / (COUNTS_PER_SECOND/1000000));이 두 부분에서 궁금한 점이 생겼는데 관련하여 이미 질문하신 분이 계신가 찾아봤는데 없는 것 같아 질문을 드립니다.강의에서 uSleep함수가 uSleep(1)이라고 하면 1us를 쉬는 함수라고 하셨는데, 100,000,000/100을 인자로 입력했을 때, 333000133이 tEnd-tStart로 나오는걸 보니tEnd-tStart에 전달되는 값은 "1s를 'PS의 CPU(667MHz)'가 세기 위해 필요한 clock count수의 절반" 이라고 해석할 수 있을 것 같은데,tEnd, tStart는 그럼 정확히 시각이라기 보다는 PS의 CPU로 count한 Clock수의 절반 이라고 해석하는게 맞을까요?또, 왜 절반으로 정의되는지 이유가 궁금합니다.2와 관련해서 header 파일들을 열어보니, xparameters.h 파일에#define COUNTS_PER_SECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ /2) 라고 정의되어 있는데, 이것 때문에 그런 것인가요? 어떤 이유 때문에 이렇게 /2를 하여 정의를 하는 것인지 궁금합니다... 그냥 100Mhz로 1s를 세려면 COUNTS_PER_SECOND 을 100M번으로 정의하면 되는것 아닌가요..?또, SW sleep뿐 아니라 HW sleep 부분에서도 위와 같은 코드로 시간측정을 하는데, 결국 PL영역에서 동작한 내용을(HW Sleep/clock count) PS에서 읽어와서 해석했기 때문에 그런 것이고, 100Mhz가 기준이 아니라 667Mhz가 기준인 것도(uSleep(100,000,000/100)일 때 tEnd-tStart=333000133) PS에서 PL에 입력되는 Clock freq이 100MHz이지, PS내에서의 Clock freq은 667Mhz이기 때문이라고 생각을 했는데, 맞게 생각한게 맞을까요?? 사소한 질문인 것 같은데, 오랫동안 생각해봐도 확실하게 답이 나오지 않아서 질문 드립니다... 항상 강의 잘 듣고 있습니다 :) 감사합니다 맛비님!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
LAB9 Arty보드 사용 관련해서 문의드립니다.
안녕하세요. Arty-z7-10보드를 사용하여 강의를 수강중입니다. 다름이 아니라 9장 실습을 따라하면서 맛비님께서 미리 만들어 놓으신 IP를 vivado에 올리게 되면 Arty-z7-10의 경우 스위치가 2개이기 때문에 bitstream을 생성하는 과정에서 에러가 발생하게 됩니다,, 이 부분은 어떻게 해결하면 되는지 궁금합니다. =================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
PS,PL 통신관련 질문있습니다.
안녕하세요 맛비님!강의 듣던중 궁금한점이 있어서 질문 드립니다.지금 강의 내용에서는 axi4-lite interface를 이용하여 pc에서 fpga로 데이터를 write하고 fpga에 write한 데이터를 다시 pc로 read하는 flow로 동작하는 내용인데, 데이터를 pc에서 fpga로 write하지 않고 fpga 로직 상에서 출력되는 데이터 (예를 들면, 카운터 값)을 axi4-lite interface를 이용하여 pc로 read 해올 수 있는 방법도 있는지 궁금합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab9 LED 점등 시간 제어 실습 관련하여 질문 있습니다.
안녕하세요 맛비님!lab9 실습에서 FPGA에 bitstream을 올리고 나서 register에 값을 쓰고/읽고 하며 LED 점등시간을 제어하는 과정을 따라해 보았는데, 처음에는 제가 작성한 code로 해보았습니다.그런데, write, read는 문제없이 동작을 하는 것을 확인을 하였는데, 아무 값도 write하지 않고 가만히 있었을 때 약 35~45초 간격으로 LED가 저절로 켜지고/꺼지고를 반복하는 문제를 발견했습니다. Read를 통해 register에 쓰인 data값을 읽어보면 모두 0으로 나옵니다..그래서 맛비님께서 제공해주신 코드로 다시 ip생성~ bitstream upload까지 전 과정을 다시 해보았는데도 같은 문제가 발생합니다.혹시 어떤 이유 때문에 이런 문제가 발생 하는 건지 궁금합니다.또, data를 0~3까지의 4개의 register에 쓰는데 0~3이외의 다른 주소에도 써보면 어떨까 궁금해서 5, 10등 다른 주소에도 값을 써보았는데, 5번지에 값을 썼을 때는 2번 register에 Write가 되고, 10번지에 값을 썼을 때는 3번 register에 write 되는 식으로 동작하던데, 0x4C00 0000부터 64k의 memory를 할당했기 때문에 4byte*4의 메모리를 제외하고 나머지는 이 4byte*4의 주소가 계속 반복되는 식으로 할당된 것이라 이런 것인지 궁금합니다.lab 9의 counter_toggle_out module에서 always문의 sensitivity list에 posedge clk만 들어가 있는데, lab 5에는 negedge reset_n도 들어 있었는데, 어떤 이유에서 이런 변화가 있는건지 궁금합니다.module counter_toggle_out ( ~ ); always @(posedge clk) begin if(!reset_n) begin // (lab9) used sync reset_n ~ end endmodule또 이와 관련해서 reset_n 이 이번 lab에서 구현한 system에서는 언제 어떻게 인가가 되는지 궁금합니다..(아무것도 찾아보지 않고 질문 드리는 것은 아니고, Behavioral simulation을 해봐도 전부 Z값으로 나오고, PS Reset이라는 module이 어떻게 동작하는지를 어디서 어떻게 보는지 잘 모르겠네요 ㅜㅜ) 긴 글 읽어주셔서 감사합니다. 좋은 저녁 되세요 :)
-
해결됨자동차 SW - UDS 진단통신 정복하기
메세지 바이트가 8 바이트 초과시 전송 방법 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.서비스 ReadDTCInformation : DTC 기록 읽기 - SnapShot Data 수업 듣다가 데이터 크기가 8바이트 넘으면 CAN 또는 LIN은 전송을 어떻게 하는지 의문이 들어서 문의 드립니다.강의 내용 중 예를 들어Snapshot Record Num 이 많으면 뒤에 붙는다고 하셨는데 그럼 데이터 바이트 크기가 8 바이트 넘어 어떻게 전송이 되는걸까요?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
파이프라인 동작 관련 질문 드립니다.
강사님. 안녕하세요. 강의 잘 보고 있습니다.파이프라인에 대해 갑자기 궁금증이 생겼는데요.1. thumb/thumb2와 관계없이 프로그램 카운터의 위치는 항상 PC = 현재 명령어 위치 + 4라 설명하신 것 같은데요. thumb의 경우 2바이트 명령어니 이해가 갑니다만 thumb2는 4바이트라 PC = 현재 명령어 위치 + 8이 되는게 아닌가요? 왜 항상 PC = 현재 명령어 위치 + 4 인지 궁금합니다.명령어를 페치하는 기본 단위는 32비트라 되어있습니다.2. 명령어 페치시 만약 thumb 코드라면 2개의 명령어를 페치한다는 것 같은데, 만약 A 명령어와 B 명령어(둘 다 thumb)를 페치한다면 이 두 명령어의 파이프라인 동작이 어떻게 되나요?A 명령어 먼저 F-D-E되고 그 후에 B 명령어가 F-D-E가 파이프라인으로 동작하게 되는건가요?3. 그렇다면 만약 thumb명령어와 thumb2명령어가 페치될 경우에 어떻게되나요?A 명령어(thumb라 가정), B 명령어(thumb2라 가정)일 때, 32비트 페치시 A 명령어와 B1(B 명령어의 2바이트)가 페치될 것으로 예상이 됩니다만, 그 후의 동작이 이해가 되지 않습니다. 항상 질문에 친절하게 답변해주셔서 감사합니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
실행결과와 표 차이
강의 잘 보고 있습니다.앞서 강의의 표에선 Cortex-M3/M4의 경우 DMIPS/MHz 값이 1.25로 나옵니다.그렇지만 실험을 통해 DMIPS를 측정했을 때 72DMIPS(180MHz 기준)으로 나오는데 이럴 경우 앞의 표에서 본 값이랑 너무 차이가 큽니다.문제가 있어보이는데 제가 무엇을 놓치고 있는건가요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
HW와 SW의 속도 차이?
안녕하세요! 강의 잘 보고 있습니다.13장을 수강 중에 질문이 있습니다.C코드는 어셈블러로 바꾸면 같은 기능이 여러줄이 되는 걸로 알고 있습니다. 예를 들어 밑에 코드에 있는 Xil_Out32함수를 수행하려면 여러번의 Clock이 걸릴 것이고/ HW는 데이터를 옮길 때는 1 Cycle이 걸릴테니 데이터 이동 시에 문제가 없는 것 같습니다.그런데, 만약 HW가 write동작을 수행하는데 10cycle이 걸리고/ Xil_Out32함수가 register에 쓰는 데 5Cycle이 걸린다면HW가 데이터를 BRAM에 다 쓰지 못한 상태에서 Xil_Out32함수 register의 값을 덮어쓰니 문제가 발생할 거 같습니다. 이를 해결하려면 어떻게 해야 하나요? 아래 코드에서 write_buf[i]가 하는 역할이 궁금합니다. 추가적으로... 리눅스에서 tb를 돌리면 어떻게 windows의 vivado창이 뜨는 건가요? (리눅스만 있었다면 안되지만, 윈도우 환경에 리눅스를 깔아서 가능한건가요?)감사합니당for(i=0; i< MEM_DEPTH ; i++){ write_buf[i] = rand(); Xil_Out32((XPAR_LAB13_MATBI_0_BASEADDR) + (MEM0_DATA_REG*AXI_DATA_BYTE), write_buf[i]); }
-
해결됨자동차 SW - UDS 진단통신 정복하기
UDS 진단 시 CAN ID는 양방향 모두 같은 ID를 사용하나요?
진단기에서 제어기로 보낼 때 CAN ID가 존재한다고 봤는데제어기에서 응답할 때에 동일한 CAN ID로 응답하는지 궁금합니다. 그리고 자동차에 여러 ECU가 존재하는 것으로 아는데 BMS도 진단기로 진단 가능한 ECU 중 하나 일까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
.config에서 편집하기
강사님께서 답변 도와주신 덕분에 반복하다보니 다시 이 과정까지 올 수 있었습니다!! 제가 어제 설치를 진행할 때 이 부분에서 강의 내용을 보면 저 /tools를 지우고 새로운 주소를 입력하시는데, 저 /tools가 안 지워져서 재설치를 진행했었습니다. 혹시 저 /tools를 지우는 방법을 알려주실 수 있나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
ubuntu 완전 삭제 후 재설치
우분투 설치 진행을 하다가 거의 다 완료한 상태에서 갑자기 오류가 발생해 삭제 후 재설치를 했는데 이 오류에서 벗어나질 못합니다...ㅠㅠ다른 분의 질문에서 남겨주셨던 WSL 제거 링크도 해보았지만 소용이 없었습니다..한 6시간정도 머리 싸매고 모든 방법을 시도해보다가 안 돼서 혹시나 예전에 방법을 찾으셨나 싶어서 지푸라기라도 붙잡는 심정으로 글 써봅니다..
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HDL 14장 실습관련 질문 있습니다.
안녕하세요 맛비님 14장 8승기 설계 후 Simulation 과정에서 의문점이 들어 질문 드리게 되었습니다.1) 우선 simulation결과는 위와 같은데, r_valid, o_valid가 0으로 초기화(@100ns)는 되었는데 그 다음 rising edge부터 Z로 나오네요. 제 코드가 문제가 있어서 이렇게 나오나 싶어서 맛비님의 코드로 다시 돌려봐도 이렇게 나옵니다. 혹시 다른 질문 내용 중 문제점을 찾을 수 있나 확인해봤는데, high impedence Z는 signal이 연결되지 않은 거라고 답변해 주셨는데, 올려주신 코드대로 simulation을 돌렸는데 왜 이렇게 되는 건지 이유가 궁금합니다.2) Testbench의 Initial Block에서0부터 99까지의 수의 8승을 test하기 위하여 위 코드를 사용하셨는데,@(posedge clk);부분이 있는 이유가 뭔지 궁금합니다. Clock의 positive edge에서 반응하긴 하지만, 그 다음에 뭔가를 하지 않고 바로 다음 loop를 돌거나, for문을 탈출하는데, 결국 이 부분이 하는 역할이 뭔지 궁금합니다. @(posedge clk); 이후에 지시하는 바가 없기 때문에 결국 sensitivity list를 통해서 들어왔다 해도 없는거랑 똑 같은 것 아닌가요? 아니면 다음 negedge가 오기 전에 posedge까지 해당 loop를 유지하기 위해 있는 건가 싶기도 했는데 그런 의미인가요? 어떤 의미가 있는 부분인지 여쭤보고 싶습니다! 3) 강의 듣다가 문득 생각이 난 것인데, 왜 Linux(WSL)환경에서 설계를 하는게 중요한가요?결국 synthesis까지 가면 Linux기반의 EDA tool을 쓸 수밖에 없어서 그런건가요? script기반의 자동화에 용이해서 그런가요? 어떤 점에서 rtl 엔지니어들이 대부분 현업에서 Linux기반으로 작업을 하시는데 큰 이유가 되는 것인지 궁금합니다. 중요하다고 말씀은 하셨는데, 아직 체감이 되는 단계는 아니어서요.. 긴 글 읽어주셔서 감사합니다. 강의 항상 잘 듣고 있습니다 :)
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
exit 해서 root 빠져 나오기
exit 써서 root 나오시라 했는데 아무리 해도 ,, root인데 어떡하죠?...ㅜㅜ
-
미해결FreeRTOS 프로그래밍
포팅시 자료 그대로 다운
강사님 f767zi로 포팅할때 강의 따라서 안하고 올려주신 파일 그대로 다운 받아서 해도 되나여?
-
미해결FreeRTOS 프로그래밍
TASKMAN 카피해서 컴파일시에 오류가 발생합니다.
- 사용하신 첨부파일의 버젼: 첨부파일 아직 사용안했습니다.- 사용하시는 ST 보드명: NUCLEO_F767ZI- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.12.0- 증상: 컴파일시 에러가 발생합니다.. 포팅하는 강의 따라하던중 freertos_portF767zi 복사에서 붙혀넣기하고 01_TASKMAN으로 할려고 했는데 전에 다운받아놨던게 있어서 01_TASKMAN(f767zi)로 생성했습니다. 이후에 런치파일 삭제하고 맵파일은 첨부터 없어서 삭제 안하고 컴파일 했더니 에러가 3개 발생했습니다.