묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Mem I/F에도 bit 제한이 있나요?
안녕하세요 맛비 스승님!훌륭한 강의 너무 감사드립니다! 저는 BRAM의 bit width를 늘려서 사용하고자 하는데요,AXI4 lite가 32bit 버스이다보니 BRAM의 dual port 중 AXI와 연결되는 포트는 32bit 그대로 두고 BRAM의 dual port 중 코어와 연결되는 포트는 32bit 보다 크게 써도 아무런 상관이 없나요? 만약, 제가 정의한 dpbram의 bit width가 64bit라면 BRAM의 코어와 연결되는 포트를 64bit으로 설계해도 문제가 발생하지 않는건지 궁금합니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 오류 sudo apt-get update
sudo apt-get update에서 오류가 납니다! 네트워크 연결 오류같은데... 혹시 해결법을 아시는지요? ㅜㅜ 구글링해서 나오는 방법은 거의 다 시도해봤습니다
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치오류
위 내용을 볼 때 ip 매칭관련 문제 같습니다. 혹시 해결방안 있는 지 여쭤봅니다.
-
미해결자동차 SW - UDS 진단통신 정복하기
ClearDiagnosticInformation 관련하여
UDS 서비스 중에 ClearDiagnosticInformation 강의 부분엥서 질문이 있습니다.DTC 정보는 매우 중요한 정보라서 접근제어? 와 같은 부분이 반드시 필요할것 같은데요. (그냥 아무나 이 서비스날려서 DTC 날려버리면 안될것 같은데요) 본 강의에서는 따로 설명해주시진 않았지만,일반적으로 SecurityAccess 라든지SessionControl 통해서 특정 mode 로 진입을 해야 한다든지이러한 서비스가 선행된 후, ClearDiagnosticInformation 서비스가 동작되어야 하는 것이죠? 질문을 조금 확장해보면,UDS 서비스가 매우 다양한데, 각 서비스에 대해서 사전에 어떤 것이 선행되어야 한다는 것을 표준에서 정의하지는 않고,각 제조사별로 필요하면 SecurityAccess 라든지, Session Control 과 같은 sequence 를 추가하여 설계하는 방식으로 진행된다고 보면 될까요? 감사합니다.
-
미해결자동차 SW - UDS 진단통신 정복하기
Security Level 범위관련
안녕하세요. 진단통신에 대해 빠르게 파악이 필요한 상황인데, 본 강의가 너무 큰 도움이 됩니다. 유익한 강의 감사합니다.강의 듣고 있는데, Security Access 부분에서Security Access Level 이 1~63까지 있다고 설명해주셨는데, 1:43초에 보이는 슬라이드에서는 1~83 이라고 되어 있습니다.1~63이 맞는거죠?
-
미해결FreeRTOS 프로그래밍
포팅 부탁드립니다!
-------------------------------------------------- 사용하고 싶은 ST 보드명: NUCLEO-H7S3L8 (STM32H7S3L8H6)- 사용하시는 컴파일러(stm32cubeide) 버젼: 1.16.0-------------------------------------------------안녕하세요 선생님,강의 수강하면서 포팅도 직접 해볼 예정인데, 선생님께서 포팅해주신 결과물이 있다면 비교하면서 피드백하기가 수월할 듯 하여 요청드립니다.차후에는 CubeIDE 말고 CMake 환경도 직접 구축하여 빌드 및 플래싱해보는 것이 목표입니다.미리 감사의 말씀 먼저 드리겠습니다!
-
해결됨설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
이 강의 수강을 위해 fpga 구입이 필요할까요?
설계독학맛비 지식공유자님, 안녕하세요!인프런 운영팀의 자미라고 합니다.고객센터 통해서, 예비 수강생의 질문이 들어와 제가 대신 여쭤봅니다. 강의 구매 전으로 아래 내용이 필요한 지 여쭤보셨어요.[ 질문 ] hw가속기 강의를 듣기전에 지금 fpga 구입을 해야하는지 궁금하여 문의 드립니다.학교에서 zynq보드랑 fpga보드가 있는데 ps영역도 사용해야하므로, zynq보드를 사용해야할것같은데 저희가 따로 zybo를 구입해야하는지 궁금합니다. 만약 zynq(zedboard)보드로 이용이 가능한지 혹은 외부소자도 따로 구입을 해야하는지 궁금하여 문의글 남깁니다. 감사합니다.+) 세 개 zynq, zybo arty 세 개 중에 추천해주신다면 감사합니다.이라는 내용에 대해 질문해주셔서, 이 부분에 대해 강사님께서 확인 후 답변 남겨주시면 제가 전달해드리도록 하겠습니다.참고로, 저희가 제공하는 [수강 전 문의하기] 라는 기능을 통한다면 수강생이 바로 질문하실 수 있는데요!이 강의는 그 기능을 제공하고 있지 않아 제가 대신 질문을 통해 남기는 점 양해해 주시길 바랍니다. 😃 항상 좋은 지식 나누어 주셔서 감사드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
RDMA 안에 input [31:0] mem; 이 나타내는 값
안녕하세요 🙂 강의 잘 보고 있습니다[1. 질문 챕터] : 38장-2부 6분때[2. 질문 내용] : 표나 이전 강의에서는 input [31:0] mem; 이 최종 주소를 나타낸다고 했는데 강의나 주석에서는 base address를 타나낸다고 하네요. 어느쪽이 맞는 것인가요?🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : 어느쪽이 맞는 것인가요? ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
STOP_WATCH Vitis 에러
안녕하세요 맛비님Season1 프로젝트부분인 STOP_WATCH를 공부하고 있는데 절차대로 모두 하고 vitis에서 build 후 run을 실행하면 다음과 같은 에러가 나오는데 해결을 계속 해보다가 결국 안되서 어떤 부분이 잘못되면 해당 에러가 나올 수 있을지 여쭤봐도 될까요? vivado와 vitis는 2023.2 버전을 사용중이고 해당 보드(Cora-z7)를 다른 사람 컴퓨터로 테스트 해봤을 땐 괜찮았습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
locked access의 잠금 범위
안녕하세요 🙂좋은 강의 감사드립니다[1. 질문 챕터] : 36강 3:33[2. 질문 내용] : locked access 에서 interconnect 전체를 잠그는 것인가요? 아니면 타겟 slave만 잠그는 것인가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : exclusive access는 slave의 특정 region만 잠그는 것으로 명확하게 이해가 되었습니다. 그런데 locked access 부분에서는 둘 중 어떤 것을 의미하는지를 잘 모르겠습니다. ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨FreeRTOS 프로그래밍
펌웨어 설계시 RTOS 적용 여부 질문
안녕하세요몇년전에 회사에서 진행중인 프로젝트에 RTOS를 적용하였다가 퍼포먼스를 만족시키지 못해서펌웨어로 다시 기능 똑같이 만들어서 해보니까 성능을 만족해서펌웨어로 변경해서 작업을 진행한적이 있었는데 메인 기능은 상위제어기로부터 1ms 주기로 패킷을 수신받으면 100us 내로 응답해야하는 조건에 CRC 체크도 해야하는 상황이었고 통신 기능 뿐만아니라 다른 기능에서 사용하고 있는 프리페럴이 많아서 통신 기능외에 주기적으로 us단위의 인터럽트가 많이 발생되는 상황이였구요.RTOS로 만들었던 SW에서는 기본적으로 각각 프리페럴을 담당하는 TASK를 두고 설계를 했었는데RTOS에서는 위에 나왔던 통신주기를 ISR에서 TASK로 이벤트 전달하는과정에서 리얼타임을 만족시킬수 없었습니다.그래서 RTOS를제거하고 그냥 펌웨어로 만들어서 구조는 똑같이하고멀티태스킹을 인터럽트 처리했는데 성능이 만족스럽게 나왔습니다. 제가 생각한 바로는RTOS가 올라간 시스템에서는 기본적으로 스케줄링하는 커널이 들어가서 기본적으로 자원점유도 하고거기에 인터럽트도 관여되면 컨택스트 스위칭이 자주일어나서 오버헤드가 더 심해질수있다.펌웨어는 그냥 풀로 돌면서 인터럽트로 인한 크리티컬 섹션만 신경쓰면 되기에 성능을 만족한게 아닐까 하는 생각이 듭니다.물론 제가 RTOS에 대해 아는게 없어서 SW가 요구사항을 만족시킬수 없었던것일수도 있지만컨택스트 스위칭으로 인한 오버헤드가 리얼타임에 영향을 미치는 가혹한환경이라면 베어메탈 펌웨어를 사용하는게 맞다고 느꼈습니다. 강의에서도 말씀하셨다시피 ISR로도 멀티태스킹이 된다면 RTOS를 적용하지 않아도 된다고 하셨는데SW가 복잡해진다면 FreeRTOS API를 사용할수있으니 유지보수 측면이나 TASK간 동기화에 있어서 편리하다고 생각이 듭니다. 제 질문은펌웨어를 설계할때 RTOS를 적용할지 아니면 베어메탈 펌웨어로 가냐 적용여부를 어떻게 판별해야할까요?일단 저는 인터럽트가 많이 일어나는 시스템에서는 RTOS가 성능에 영향이 있다고 느껴집니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
tick에 관련된 질문입니다.
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================질문 챕터 : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 2. 시,분,초 만들기 - Part2질문 always @(posedge clk) begin if(reset) begin r_cnt_val <= {P_COUNT_BIT{1'b0}}; o_tick_gen <= 1'b0; end else if (i_run_en & i_tick) begin if(r_cnt_val == P_INPUT_CNT -1) begin r_cnt_val <= 0; o_tick_gen <= 1'b1; end else begin r_cnt_val <= r_cnt_val + 1'b1; end end else begin o_tick_gen <= 1'b0; end end위 코드에서 else if (i_run_en & i_tick)이 부분의 경우 아래 그림과 같이 set up Time(두번째 사진 1) 에 의해 59 -> 0에서 tick이 1로 전달되는게 아니라 그 다음 posedge clk (두번째 사진 2) 0 -> 1일 때 tick이 1로 전달되는게 맞나요?질문 드린게 맞다면 그냥 negedge에서 확인하면 되는게 아닌지 궁금하여 질문 드립니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI의 AW 채널 디버깅 질문
안녕하세요 🙂[1. 질문 챕터] : 19장[2. 질문 내용] : 19장의 실습에서 AXI에 ILA를 추가하여 waveform을 다음과 같이 확인하였습니다.위 화면에서 2가지 질문이 있습니다. AWADDR이 write HS 지점에서는 정확하게 0x0c로 되어있습니다. 맛비님의 레지스터맵에 의하면 정확한 동작임을 확인할 수 있습니다. 그러나, HS가 끝난 후에 AWADDR이 0x10이 되는 이유가 궁금합니다!HS 후에, AW_CNT가 1을 나타내는 것이 AWADDR이 0x10이 된 것과 관련이 있는지 궁금합니다!좋은 강의 감사드립니다 !!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
8bit 연산 Tb 시뮬레이션 질문
안녕하세요 🙂[1. 질문 챕터] : FPGA 18장, 곱셈코어 시뮬레이션[2. 질문 내용] : 시뮬레이션을 돌릴때 num_cnt를 4096으로 설정했는데도 불구하고 addr0_b0, addr0_b1의 최고값이 7777인 것으로 확인됩니다. 4096까지 돌아야 된다고 생각하는데 왜 7777에서 시뮬레이션이 마무리 되는 것인지 궁금합니다. 좋은 강의 감사드립니다 ㅎㅎ
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Vitis 2022.1 설치 후 An internal exception has been detected 에러
안녕하세요 🙂Vitis 2022.1을 설치하고 나서 Vivado를 실행하여 보았는데, Open Project를 클릭하여 프로젝트 파일이 있는 폴더로 이동하려고 하면 아래 캡처한 화면과 같이 "An internal exception has been detected. Vivado may be in an unstable state." 에러가 나고 더 이상 진행이 되지 않네요. 혹시 이 오류 해결방법이 있으면 공유 부탁합니다.감사합니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
FND send_port에 대하여..
void send_port(uint8_t X, uint8_t port) { send(X); send(port); HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, LOW); HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, HIGH); }이렇게 코드를 보면 X, port 를 send하고RCK 라이징 엣지를 만들어서 최종적으로 출력 하는구나를 알 수 있는데 만약 이런 코드 없이 데이터시트를 보고 코드를 만든다고 할 때 X와 port를 함께 send하는것,X, port 순으로 send 해야 한다는 것,위치(port)는 0b0001, 0b0010, 0b0100, 0b1000으로 설정한다는 것 들은 어떻게 알 수 있나요?데이터시트를 통해서 이런 정보까지는 얻을 수 없는 것 같아서요..
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
간단한 질문 하나 드립니다. vitis를 시작하면 자꾸 예전 것이 포함됩니다. vitis를 새롭게 시작하고 싶습니다.
다운로드 아되는 문제가 해결이 안되서 삽질하고 있습니다. vitis를 시작하면 자꾸 예전 것이 포함됩니다. vitis를 새롭게 시작하고 싶습니다. 감사합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Hello world 실습을 따라하던 중 Error Launching Program 계속 발생합니다.
안녕하세요. 맛비님 좋은 강의 감사합니다. Vivado 2020.2, Vitis 2020.2 버전입니다. Zybo 20, Zybo 10 모두 테스트 해봤습니다.늘 마지막 단계에서 아래와 같은 에러가 계속 발생합니다. 어떤 것을 살펴봐야 할까요?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
혹시 AI 관련 강의도 Zybo Board가 필요한가요?
혹시 AI 관련 강의도 Zybo Board가 필요한가요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 always 관련해서 질문 있습니다
안녕하세요 맛비님강의 잘 듣고 있는 도중에 always 블럭으로 combination logic을 기술하는 경우 제가 명확하게 알고 있는지 궁금합니다. always로 코드를 작성 할 때, 그 안에 내부 변수는 reg로 사용하고, 이 reg변수는 register,latch(보통의 경우 의도하지 않은), combination logic을 만들 때 사용되는 것으로 알고 있습니다. 저는 always 블럭을 사용할 때, 의도하지 않은 latch가 발생하는 것을 완전히 피하고 싶습니다.그래서 코드 작성 스타일을 이렇게 하면 좋을지 궁금합니다. /*output combination 2*/ reg done; //this is not a register, it is just combination logic circuit reg running; //this is not a register, Do not confuse reg idle; //this is not a register, you must not make latch always@(*)begin done = 0; running = 0; idle = 0; case(c_state) S_IDLE : idle = 1; S_RUN : running = 1; S_DONE : done = 1 default : begin done = 0; running = 0; idle = 0; end endcase end default에 그 외적인 정의되지 않은 동작에 대해 처리하도록 작성하거나case문을 시작하기 전에 각각 초기값을 작성해두면 되는 것으로 알고 있습니다. 하지만 이놈의...chatGPT는 초기값도 작성하고 default문을 둘 다 작성 안하면 latch가 발생할 가능성이 있다고 해서... 이 점이 궁금합니다. 사실 위의 코드처럼 작성하면 정말로 latch가 생길 여지가 없어 보입니다만...아시다시피 번거로움이라는 이슈로... 아 그리고 질문이 하나 더 있습니다.fsm_counter부분에서 state로 동작을 제어한다는 개념을 반복해서 공부하고 있습니다. assign o_done = done; assign o_running = running; assign o_idle = idle; reg [31:0] r_cnt_num; //this is register to capture input value always @(posedge clk or negedge reset_n) begin if(!reset_n)begin r_cnt_num <= 0; end else if(i_run) begin r_cnt_num <= i_cnt_num; end else if(o_running) begin r_cnt_num <= r_cnt_num; end else if(o_done) begin r_cnt_num <= 0; end end reg [31:0] r_cnt_core; assign is_done = o_running&&(r_cnt_core == r_cnt_num -1); /*counter core part*/ always@(posedge clk or negedge reset_n) begin if(!reset_n)begin r_cnt_core <=0; end else if(o_idle)begin r_cnt_core<=0; end else if(o_running)begin r_cnt_core <= r_cnt_core + 1; end else if(is_done)begin r_cnt_core <=0; end end 이 부분은 위에 질문 코드 바로 뒤에 이어지는 코드입니다.바로 위의 블럭에서 첫번째 capture register를 기술하는 부분에서run state일 때도 register가 어떻게 동작해야하는지 꼭 기술해야할까요?이 부분은 맛비님 코드에서 작성되어있지는 않던데, 제가 생각하기에는...run state일 때 register의 동작이 어떻게 될지 예상이 안가서 직접 작성해주는게 좋아보이는데..어떻게 생각하시나요? 두번째 always블럭 또한 같은 맥락으로 idle상태일 때 core 내부에 있는 register의 동작도 기술해주는 것이 필수적일까요? 위의 코드는 수업에 다루신 코드를 제가 schematic을 보고 다시 작성한 코드입니다. 저의 질문은 여기까지입니다. 감사합니다.