묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
FSM 관련 질문
맛비님 안녕하세요! FSM에 대해서 질문이 있습니다. 강의에서는 3개의 state를 가진 core를 control하는 FSM을 예시로 설명해주셨는데, 여기서 말하는 core가 뭔지 궁금합니다. 또한 기능에 따라서 state가 여러개로 늘어날 수 있나요?! 몇 개까지 가능한가요?!NPU의 control unit에 들어가는 FSM은 보통 내부에서 몇번의 연산이 수행되는지 궁금합니다! 답변 주시면 정말 감사하겠습니다! 늘 좋은 강의 감사합니다!
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
HAL드라이브 없이 GPIO제어 하기 관련 누락된 부분이 있는것 같습니다.
<HAL드라이브 없이 GPIO제어 하기 1>내용에서 강의 내용 부분에서 __HAL_RCC_GPIOC_CLK_ENABLE()관련 코드를 분석 해주시고 강의가 끝났습니다.<HAL드라이브 없이 GPIO제어 하기 2>두번째 강의에서 HAL_GPIO_WritePin() 관련 코드 분석에 대한 설명이 없는데 강의 내용에서 코드 분석이 된 것 처럼 강의가 나오고 있습니다.편집상의 오류 아닌가 확인 되는데,,, 확인 부탁드리겠습니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
[링크 문의]Verilog HDL 문법 재밌게 공부할 수 있는 사이트 공유합니다!!
공지사항에 'Verilog HDL 문법 재밌게 공부할 수 있는 사이트 공유합니다!!' 제목으로 올려주신 글에서 해당 링크가 열리지 않는데 링크를 다시한번 공유해주실 수 있을까요? 감사합니다.
-
미해결FreeRTOS 프로그래밍
우선순위역전 상황 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님,세마포어 먼저 TAKE한 태스크가 실행된다고 배웠는데요TASK3이 실행하고 있으니 이것을 GIVE하기 전에는 TASK1이 블락되는것은 이해했습니다.그런데 TASK2는 왜 갑자기 실행되는 거죠.? TASK3이 GIVE했다면 우선순위가 높은 TASK1이 실행되어야 하고TASK3이 GIVE하지도 않았는데 TASK2가 실행된 경우는 무슨경우나요.. TASK2는 세마포어와 관련없는 특정 동작이라 선점한 걸로 보면 될까요..? 상황 설명이 부족해서 헷갈립니다.. 저는 오로지 이 강의로만 공부하고 있기 때문에경험이 많으신 강사님의 설명이 이해가 잘 안되네요답변 미리 감사합니다.
-
미해결FreeRTOS 프로그래밍
세마포어삭제 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 안녕하세요,vSemaphoreDelete강의에서 (0:29) 세마포어가 삭제되었기때문에 에러메세지가 발생하였다고 하셨는데xSemaphoreGive error(0) found 세마포어 삭제하지 않아도xSemaphoreGive error(0) found출력이 똑같습니다. 잘못 설명하신것 같은데.. 다른 뜻으로 말씀하셨는지요;;? 설명 부탁드립니다.^^
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
컴퓨터 사양에 따른 Vivado 설치 제한 질문
안녕하세요 강사님!지금 제가 사용하고 있는 Desktop 사양이고 강사님과 다른 프로세서를 사용해서 그런가 winsows 기능 켜기/끄기 부분에 Hyper-V가 없어서요.설치에 제한사항이 없는걸로 알고 있는데.. 진행을 하다보면 99%에서 갑자기 튕기는 현상이 발생하는것 같아서요단순 프로세서 문제인지 궁금해서 질문 남깁니다.=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HW 가속기 설계 강의를 위한 FPGA 보드 사용
안녕하세요!완강 후 다음 강의인 FPGA 들을려고 합니다제가 FPGA Cora Z7를 가지고 있는데 이 보드로 HW 가속기 설계 강의 들을 수 있을까요??https://digilent.com/reference/programmable-logic/cora-z7/start
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치시 root 계정이 아닌 상태에서 설치함
안녕하세요!설치하는 과정에서 root 계정이 아닌 사용자 계정 상태에서 설치를 계속 해왔었는데 상관없을까요??만약 문제가 있으면 다시 root 계정으로 처음부터 설치 해야할까요??
-
해결됨FreeRTOS 프로그래밍
세마포어,뮤텍스 초기값 질문
안녕하세요 강의 수강 후 혼자 복습하는 중인데 세마포어 초기값 관련 이해가 가지 않는 부분이 있어 질문 드립니다. 1번 질문.05_SEM 실습예제에서sem_id = xSemaphoreCreateBinary(); -> 초기값 0?--- loops = 10; for(;;) { // 세마포어 대기 if (xSemaphoreTake(sem_id, portMAX_DELAY) == pdTRUE) { printf("."); fflush(stdout); } sem_val=uxSemaphoreGetCount(sem_id); //printf("sem_val is %d\n", (int)sem_val); if(loops == 0) break; // exit loops--; } 위의 경우 printf 출력되지 않고 세마포어에 의해 바로 태스크가 블럭상태에 빠집니다.따라서 초기값은 0으로 예상됩니다. 07_MUTEX 실습예제에서mutex_id = xSemaphoreCreateMutex(); -> 초기값 1?---int buyTicket(void){ /* TODO #2: MUTEX 을 이용하여 공유변수(tickets)를 보호한다 */#if 1 // CRITICAL SECTION(ENTER) xSemaphoreTake(mutex_id, portMAX_DELAY);#endif // TODO #2 tickets --; // ticket count#if 1 // CRITICAL SECTION(EXIT) xSemaphoreGive(mutex_id);#endif // TODO #2 return(tickets);} 위의 경우 초기값이 1이어야 해당 함수가 바로 블럭에 빠지지 않고 수행되므로 1로 예상됩니다.영상에서는 초기값이 1로 수행된다고 이해했는데, 그렇다면 세마포어 예제에서 printf함수가 수행이 되는게 맞는데 되지 않습니다. 초기값이 서로 다르게 입력되는 것인지 궁금합니다. 2번 질문.05_SEM 실습예제에서 카운트값을 디버깅하고 싶어서 보다가#if 1 sem_id = xSemaphoreCreateBinary(); if (sem_id == NULL) printf("xSemaphoreCreateBinary error found\n"); sem_val = uxSemaphoreGetCount(sem_id); --- loops = 10; for(;;) { // 세마포어 대기 if (xSemaphoreTake(sem_id, portMAX_DELAY) == pdTRUE) { printf("."); fflush(stdout); } sem_val=uxSemaphoreGetCount(sem_id); //printf("sem_val is %d\n", (int)sem_val); if(loops == 0) break; // exit loops--; } 세마포어 생성 후 uxSemaphoreGetCount 함수를 호출하면 세마포어가 블럭상태에 빠지지 않고 printf함수가 출력이 됩니다. (실제 디버깅 해보면 sem_val 변수값은 0으로 찍힙니다)위 함수에서 V연산을 하는 행위가 있는 것인가요? 3번 질문.xSemaphoreCreateBinary()와 vSemaphoreCreateBinary()의 차이점이 무엇인지 궁금합니다.
-
미해결FreeRTOS 프로그래밍
fflush질문
강사님 안녕하세요틱 인터럽트 기준 1ms동안 버퍼에 문자1000개가 들어가는 속도라 하고 버퍼는 100개까지 채울수 있다는 가정시fflush함수가 없을 때는a 100개가 1*10번 / b 100개가 1*10번 번갈아 출력되는거죠? 그런데, fflush함수가 있으면a 1개가 100*10번나오지 못하다 끝나고b 1개가 100*10번나오지 못하다 끝나야 하는데말씀하신 uart로직이 결부되었으나aaaaaabaaaaaabaaaaaab 이런 패턴은 b 태스크에만 영향을 받는것 처럼 보이는데제가 질문한 예시로 답변 가능할까요??..
-
미해결FreeRTOS 프로그래밍
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY / configLIBRARY_LOWEST_INTERRUPT_PRIORITY 문의
다음 4가지 우선순위 설정에 관해서 기존 시스템에 freertos 포팅시 기존시스템의 인터럽트와 충돌하지 않기 위해 설정하는거 같아 보입니다. 기존 시스템 configPRIO_BITS = 5 인 상태이며사용하던 uart interrupt priority 1인 상태에서 freertos 를 포팅하고싶은데다음에 값들이 어떤 관계가 있는지 모르겠습니다. configLIBRARY_LOWEST_INTERRUPT_PRIORITYconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITYconfigKERNEL_INTERRUPT_PRIORITYconfigMAX_SYSCALL_INTERRUPT_PRIORITY
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
FPGA 보드 관련문의
AI CNN 하드웨어 가속기 FPGA 관련 문의드립니다.강의에서 사용하는 보드 말고, ZedBoard를 사용하여 실습하고 있습니다.ZedBoard는 JTAG 핀 꼽는 곳이 따로 있는데 JTAG USB Blaster 구매하여 usb로 연결해주어야 할까요?micro usb 사용하면 장치 인식을 못하고, 아래와 같은 메세지가 뜹니다.이렇게 JTAG 핀을 꼽는 부분이 따로 있습니다.위와 같이 JTAG에 핀 연결해서 구성해야할까요?레퍼런스 찾아보아도 간략하게만 설명되어 있어서, 문의드립니다. 답변 부탁드립니다. 감사합니다.
-
미해결FreeRTOS 프로그래밍
섹션 5 <커널소스분석-태스크 스택메모리> 질문 드립니다!
안녕하세요 강사님 :) 1:12 부근에서 "ARM은 메모리를 높은 주소부터 낮은 방향으로 쓴다" 고 말씀하셨는데, 이것은 리틀 엔디안 방식을 이용한다는 것을 의미하는 것일까요??그리고 맞다면 인터넷에 검색해보니 ARM은 리틀 엔디안 or 빅 엔디안 중 선택해서 사용한다고 나와 있는 것을 봤는데 모든 ARM processor가 리틀 엔디안을 쓰는 것이 맞을까요..??
-
미해결FreeRTOS 프로그래밍
섹션 4 <소스코드 분석 - printf, fflush>1:52 부근에서 질문드릴 것이 있습니다!
안녕하세요 강사님! 섹션 4 <소스코드 분석 - printf, fflush>1:52 부근에서 질문드릴 것이 있습니다! 강의에서 설명해주신 것을 저는 fflush() 를 주석하면 각 Task에서 UART 통신을 통해 전송한 문자들이 바로 flush되지 않고 버퍼에 쌓이다가 buffer 한계량을 초과할 때마다 출력이 되므로 우리가 생각했던대로인 'a'가 연속적으로 절반 출력되고, 'b'가 연속적으로 절반 출력되는 것이 반복되는 결과가 발생한다고 말씀하신 것으로 이해했습니다.그러나 제가 이해가 안되는 것이 Task1, 2는 우선순위가 같고, 따라서 Task1 한 번 실행('a' 출력) -> Task2 한 번 실행('b' 출력) -> Task1 한 번 실행('a' 출력) ... 이 과정이 반복되어서 ababababababab가 출력되어야 하는 것이 아닌가요..??
-
해결됨FreeRTOS 프로그래밍
NUCLEO-L152RE 포팅문의
안녕하세요.회사에서 가지고 있는 보드가, NUCLEO-L152RE Board 모델 포팅 가능 한지 문의 드립니다. 감사합니다.
-
미해결FreeRTOS 프로그래밍
강의 "소스코드 분석-vTaskSuspend" 관련 질문 드립니다!
안녕하세요 강사님 :) 스케줄링 관련 질문이 있어 글을 남깁니다.Task2보다 우선 순위가 높은 Task1 이 vTaskDelay(1000)로 1초 동안 blocked 상태였다가 다시 ready상태로 돌아왔을 때, 혹은 vTaskSuspend() 함수로 인해 blocked상태였다가 vTaskResume() 을 통해 다시 ready상태가 됐을 때 만약 자신보다 우선순위가 낮은 Task2가 running 상태라면 우선순위가 더 높은 Task1이 ready상태이니 Task2는 running 상태에서 쫒겨나고, Task1이 running 상태가 되는 것이 맞습니까?그리고 이 때 Task2는 어떤 작업에 의해 어떤 상태가 되는지(blocked? ready?)도 궁금합니다!!
-
미해결FreeRTOS 프로그래밍
강의 "수업실습예제의 구성" 2:22부근 질문드립니다!!
안녕하세요 강사님!! C언어 함수 관련 질문 드릴 것이 있어 질문글을 작성하게 되었습니다.강의 2:22부근에 나오는 USER_THREADS() 함수는 task.c에 정의되어 있고 그 함수를 다른 .c 파일인 main.c에서 호출하고 있습니다. 보통 함수의 정의를 task.h 등의 헤더파일에 작성하고, 이후 main.c에서 #include "task.h"를 한 후 다른 .c파일의 함수를 사용할 수 있는 것 아닌가요?? 어떠한 헤더파일의 인클루드도 없이 바로 main.c에서 다른 .c파일인 task.c 파일 속 함수를 사용할 때 왜 오류가 발생하지 않는 것인가요..??
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
clock 설정
안녕하세요. 항상 수업 잘 듣고 있습니다.5장에서 나온 클럭을 zynq processing system을 통해 설정한 뒤 vitis에서 FPGA를 프로그래밍 하는 과정은 이해했습니다.그런데 vitis를 사용하지 않고 vivado에서 hardware manager를 통해 프로그래밍을 해보려고 schematic 탭에서 I/O 포트들을 연결 하여 constraints 파일을 만들어 보았습니다. 이 과정에서 클럭을 핀 넘버에 연결은 시켰는데 여기서 클럭의 속도를 어떻게 설정하는지 모르겠습니다... vitis를 사용하지 않고 이런 방식으로 하면 클럭의 속도를 임의로 설정할 수 없는 것인지 궁금합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
VHDL 과 Verilog-HDL
VHDL 과 Verilog-HDL에 대해서 개인적으로 궁금해서 글을 남깁니다! HDL 이라는 Hardware Description Language 라는 것은 동일한데 VHDL에서 C언어 문법과 유사하게 개발된 것이 Verilog-HDL이라고 알고 있습니다.그리고 추세 또한 Verilog-HDL을 공부하는 것이 좋다고 말씀하십니다.이외에도 Verilog-HDL 을 쓰는 중요한 이유가 있는지에 대해서 궁금합니다. 또한 제가 학교에서 CMOD S7 보드를 활용해 FPGA기반의 프로젝트를 진행한 경험이 있습니다. 이때 윈도우에서 Xilinx Vivado 툴을 이용했는데 교수님께서 Verilog-HDL이라는 말은 들어본적이 없고 VHDL을 가르쳐주시고 이를 활용했습니다. (코드는 밑에 문장과 같습니다. 혹시나 VHDL이 아닐 수도 있기에 적겠습니다.) 또한, 기업에서 활용툴이라는 것을 보게되었는데 VHDL 이라고만 적혀있었습니다. 두서 없이 작성해서 죄송합니다. 궁금한 것들을 요약하자면Verilog-HDL 을 사용해야만, 공부해야만 하는 장점이 무엇인가요?기업에서 요구한 VHDL이 Verilog-HDL이랑 같다고 생각해도 되는가요? 이제 FPGA 시즌1 들으려고 하는데 강의 잘 듣고 있고 항상 감사드립니다! Verilog-HDL 인지 VHDL 인지 모르겠으나 제가 학교에서 VHDL이라고 배우고 사용했던 코드 일부 중 하나 보여드리겠습니다. D 플립플롭 코드 인 것 같습니다. VHDL이 맞는지 궁금하네용ㅎㅎㅎ library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity TEST10_D_FLIP_FLOP is port(CLOCK : in std_logic; DATA_INPUT : in std_logic; DATA_OUTPUT : out std_logic; NOT_DATA_OUTPUT : out std_logic); end TEST10_D_FLIP_FLOP; architecture Behavioral of TEST10_D_FLIP_FLOP is begin process(CLOCK) begin if rising_edge(CLOCK) then DATA_OUTPUT <= DATA_INPUT; NOT_DATA_OUTPUT <= not DATA_INPUT; end if; end process; end Behavioral; ------------------------------------------------------------------------------------------------------------------ LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY TB_TEST10_D_FLIP_FLOP IS END TB_TEST10_D_FLIP_FLOP; ARCHITECTURE behavior OF TB_TEST10_D_FLIP_FLOP IS COMPONENT TEST10_D_FLIP_FLOP PORT( CLOCK : IN std_logic; DATA_INPUT : IN std_logic; DATA_OUTPUT : OUT std_logic; NOT_DATA_OUTPUT : OUT std_logic ); END COMPONENT; signal CLOCK : std_logic := '0'; signal DATA_INPUT : std_logic := '0'; signal DATA_OUTPUT : std_logic; signal NOT_DATA_OUTPUT : std_logic; BEGIN uut: TEST10_D_FLIP_FLOP PORT MAP ( CLOCK => CLOCK, DATA_INPUT => DATA_INPUT, DATA_OUTPUT => DATA_OUTPUT, NOT_DATA_OUTPUT => NOT_DATA_OUTPUT ); CLOCK0: process begin CLOCK <= '0'; wait for 10 ns; CLOCK <= '1'; wait for 10 ns; end process; DATA_INPUT0: process begin DATA_INPUT <= '0'; wait for 20 ns; DATA_INPUT <= '1'; wait for 20 ns; end process; END;
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
노베이스 수강자 질문드립니다.
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요HW는 아예 모르고 FPGA 가속기 설계를 좀 배워보려고 하는 SW 대학원생입니다.강의를 처음부터 듣고있는데 회로설계에 대한 배경지식이 없어서 그런지 5장의 reset 부분과 always posedge~ 부분의 코드가 이해가 잘 안가네요혹시 미리 선행되어야 할 과목이나 강의가 있을까요?1'b0같은 기존의 C에서랑 다른 문법적인 부분에서 혼동이 많이 오는데 베릴로그 관련 교재같은 것도 추천해주실 수 있을까요?