묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
37장 Data bit width 질문
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요 37강 9:20 부분을 보면 Zybo board의 스펙은 1066MHz 이고 이를 표로 확인했을 때 최고 전송 속도가 8533Mb/s로 나와있습니다. 질문 18533Mb/s 라는게 메가비트 / s를 의미하는 건가요?정보를 찾아보니까 8633MB/s 로 메가 바이트 단위라고 나와있었습니다.질문 1.1 만약 메가 비트 단위가 맞다면말씀해주신것 거처럼 바이트 단위로 바꾸어 1066MBps 가 나오고 이는 Ideal BW와 비교했을 때 한 사이클 당 한 바이트씩 가져올 수 있는 정도로 비교가 된다고 생각하면 될까요? 질문 2 - 만약 메가 바이트 단위가 맞다면?이거를 바이트로 환산하면 대략 1066.625MB/s 라고 설명해주시고 있고 한 사이클 당 한 바이트씩 가저올 수 가 있구나라고 예상 된다고 설명해주셨습니다.이 뜻은 데이터가 총 8바이트 기준일 때 8533 이기 때문에 8로 나누어서 1바이트 당 약 1066MB/s가 되고 이는 약 1GB/s 가 된다는 뜻일까요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
I2C SLAVE
안녕하세요 삼코치님! I2C SLAVE 코드에서 질문이 있습니다.1. 데이터를 송수신 하는 아래 코드에는 시스템 클럭에 동기화된 SCL와 SDA를 사용했는데, Start와 Stop 조건 감지에는 SDA와 SCL 신호를 그대로 사용한 이유를 모르겠습니다. 또한 동기화하는 이유에 대해서도 명확히 모르겠습니다.2.데이터를 송수신하는 코드에서는 I2C 수신하는 부분은 Posedge를 사용하고, 마스터로 송신하는 부분은 Negedge를 사용했는데, 따로 이유가 있는지 궁금합니다.3.always 블럭 내부에서 blocking assignment를 사용했는데, 시스템 클럭과 동기화된 SCL을 클럭으로 사용한다면 Non-blocking으로 사용해야 하는 것 아닌가요?한 번에 많이 여쭤봐서 죄송합니다. 강의 잘 듣고 있습니다. 감사합니다!--------------------코드------------------------module I2C_SLAVE(CLCK, SCL, SDA);//I2Cinput CLCK;input SCL;inout SDA; //bidirectional portparameter slaveaddress = 7'b1110010;//Sample registers to send to requesting devicereg[2:0] valuecnt = 3'b011; //Count of bytes to be sent, send read value twice//Synch SCL edge to the CPLD clockreg [2:0] SCLSynch = 3'b000;always @(posedge CLCK)SCLSynch <= {SCLSynch[1:0], SCL}; wire SCL_posedge = (SCLSynch[2:1] == 2'b01);wire SCL_negedge = (SCLSynch[2:1] == 2'b10);//Synch SDA to the CPLD clockreg [2:0] SDASynch = 3'b000;always @(posedge CLCK)SDASynch <= {SDASynch[1:0], SDA}; wire SDA_synched = SDASynch[0] & SDASynch[1] & SDASynch[2];//Detect start and stopreg start = 1'b0;always @(negedge SDA)start = SCL; //reg stop = 1'b0;always @(posedge SDA)stop = SCL; ////Set cycle statereg incycle = 1'b0;always @(posedge start or posedge stop)if (start)beginif (incycle == 1'b0)incycle = 1'b1;endelse if (stop)beginif (incycle == 1'b1)incycle = 1'b0;end //Address and incomming data handlingreg[7:0] bitcount = 0;reg[6:0] address = 7'b0000000;reg[7:0] datain = 8'b00000000;reg rw = 1'b0;reg addressmatch = 1'b0;always @(posedge SCL_posedge or negedge incycle)if (~incycle)begin//Reset the bit counter at the end of a sequencebitcount = 0;endelsebegin //bitcount = bitcount + 1; //Get the addressif (bitcount < 8)address[7 - bitcount] = SDA_synched; if (bitcount == 8)beginrw = SDA_synched;addressmatch = (slaveaddress == address) ? 1'b1 : 1'b0;end if ((bitcount > 9) & (~rw))datain[17 - bitcount] = SDA_synched;end //ACK's and out going datareg sdadata = 1'bz;reg [2:0] currvalue = 0;always @(posedge SCL_negedge)//ACK'sif (((bitcount == 8) | ((bitcount == 17) & ~rw)) & (addressmatch))beginsdadata = 1'b0;currvalue = 0;end//Dataelse if ((bitcount >= 9) & (rw) & (addressmatch) & (currvalue < valuecnt))begin//Send Dataif (((bitcount - 9) - (currvalue * 9)) == 8)begin//Release SDA so master can ACK/NAKsdadata = 1'bz;currvalue = currvalue + 1;endelse sdadata = datain[7 - ((bitcount - 9) - (currvalue * 9))]; //Modify this to send actual data, currently echoing incomming data valuecnt timesend//Nothing (cause nothing tastes like fresca)else sdadata = 1'bz; assign SDA = sdadata;endmodule
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
st-link
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 디버깅 모드에서 계속해서 에러가 뜨는데 왜 그럴까요? Error in final launch sequence: Failed to execute MI command:target remote localhost:61234 Error message from debugger back end:localhost:61234: Connection timed out.Failed to execute MI command:target remote localhost:61234 Error message from debugger back end:localhost:61234: Connection timed out.localhost:61234: Connection timed out.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
7세그먼트
안녕하세요. 실습 따라하다가 동영상이랑 받은 자료랑 내용이 다른거 같아서 문의남깁니다.동영상에선 FND Module 회로도 보면FB15를 SCLK, PB13을 RCLK, PB14를 DIO에 꽂는데, 받은 자료의 회로도를 보면PB15를 DIO, PB13을 SCLK, PB14를 RCLK에 꽂는거로 그려있길래 혹시 연결을 잘못해서 불이 안들어오는걸까요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
과제3 시뮬레이션 관련 질문
안녕하세요 삼코치님!과제 3 하다가 계속 시뮬레이션 부분에서 tpsram 과 dpsram의 read data부분에서 오류가 생겨서 질문 드립니다. 두 소자 모두 Netlist viewer는 정상적으로 나오는 것을 확인하였고, 삼코치님이 올려주신 tb_tpsram.sv 파일을 이용하여 시뮬레이션을 진행하였는데 계속 문제가 생겨서 어디서 잘못된건지 감이 잡히지 않아 질문드립니다! module tpsram #( parameter DEPTH= 8, parameter WIDTH =32, parameter DEPTH_LOG = $clog2(DEPTH) ) ( input clk, input [WIDTH-1:0] wd, input [DEPTH_LOG -1:0] ra, input [DEPTH_LOG -1:0] wa, input we, input re, output reg [WIDTH-1:0] rd ); reg [WIDTH-1:0] mem[DEPTH-1:0]; initial begin for (int i=0;i<DEPTH;i++) mem[i] = 0; end always @(posedge clk) if (we) mem[wa] <= wd; always @(posedge clk) if (re) rd <= mem[ra]; endmodule module dpsram #( parameter DEPTH = 8, parameter WIDTH = 32, parameter DEPTH_LOG =$clog2(DEPTH) )( input clk, input we_a, input we_b, input [WIDTH-1:0] wd_a, input [WIDTH-1:0] wd_b, input cs_a, input cs_b, input [DEPTH_LOG-1:0] ad_a, input [DEPTH_LOG-1:0] ad_b, output reg [WIDTH-1:0] rd_a, output reg [WIDTH-1:0] rd_b ); reg [WIDTH-1:0] mem[DEPTH-1:0]; initial begin for (int i=0; i<DEPTH; i++) mem[i] =0; end always @(posedge clk) if(cs_a & we_a) mem[ad_a] <= wd_a; else if (cs_a) rd_a <= mem[ad_a]; always @(posedge clk) if(cs_b & we_b) mem[ad_b] <= wd_b; else if (cs_b) rd_b <= mem[ad_b]; endmodule 혹시 어디서 제가 실수를 한 걸 까요??
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
FPGA 4강 Hello Matbiworld
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)안녕하세요 맛비님. fpga 4강의 Hello matbiworld를 띄우려고 강의를 따라하다가 질문 드립니다.현재 보드는 KRIA KV260 보드를 사용중입니다.영상을 따라하며 결과까지 도달 했는데, 결과 출력이 되지 않았습니다.보드가 달라 몇가지 다르게 한 부분이 있습니다.첫번째는 Block design 부분인데, IP에서는 zynq ultra scale+ mpsoc를 사용했고, 질문 게시판을 참고 하여 UART1을 따로 PIN 36,37로 설정해주었고 안쓰는 핀들은 제거해주었는데 영상처럼 DDR이나 FIXED IO PIN은 나오지 않아서 질문 드립니다. 이게 없어도 결과에는 영향을 미치지 않는건가요? KV260은 Block design에서 DDR이나 fixed io pin은 원래 표기가 되지 않는건가요..? 첫번째 사진이 block automation 하고 나서고, 두번째 사진은 안쓰는 핀들을 체크 해제 후의 모습입니다.. DDR은 체크까지 해놨는데 왜 안뜨는지 모르겠습니다ㅜ 두번째는 vitis 2024.2 버전의 serial terminal이 열리지 않아 질문 게시판 참고 후에 putty를 통해 모든 과정 진행 후 "10"을 typing했는데 결과가 나오질 않았습니다. putty로 해도 상관 없는건가요..?나머지 과정은 모두 동일하게 진행 했는데 왜 Hello world결과가 나오지 않는지 매우 답답합니다.. ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Mul core 모듈대신 CRC Encoding
안녕하세요 맛비님! AXI4-lite 를 사용해서 Zynq 의 cpu로 BRAM 에 data를 write 하고 해당 data를 crc encoding 하여 다른 BRAM으로 결과를 저장하는 실습을 진행하려고 합니다. 해당 강의 내용을 활용해서 진행할 생각인데, Mul_Core 부분을 CRC_encoding 내용으로 바꿔서 진행하면 문제없이 목표 달성 가능할지 궁금해서 질문드립니다 ㅎ
-
미해결FreeRTOS 프로그래밍
10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?
선점형 커널 그림 설명 중 Task A와 Task B의 우선순위가 반대인 경우 (Task A Priority > Task B Priority)라면 어떻게 되나요?1. 예상1) Task A 동작 중 ISR Handler에 의해 Task A의 동작이 멈춘다2) ISR Handler에 의해 Task B의 동작이 수행된다.3) Task B의 동작이 완료된 후 다시 Task A가 동작된다. 2. 예상1) Task A 동작 중 ISR Handler에 의해 Task A의 동작이 멈춘다2) ISR Handler에 의해 Task B의 동작이 되어야 하지만 우선순위에서 밀려 Task A가 동작된다.3) Task A의 동작이 완료된 후 Task B의 동작이 시작된다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
과제 기본 코드 위치 질문입니다
[과제3]을 진행하려 하는데 기본으로 주어진다는 기본 코드를 어디서 받을 수 있는지 모르겠습니다.교안, 네이버 카페, 카카오톡 오픈채팅방, 인프런 강의 내를 찾아봤는데 찾질 못해 질문 남깁니다. 답변 기다리겠습니다!
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HLS를 통한 BRAM 코드 자동 생성
안녕하세요, 맛비님!현재 BRAM을 직접 생성하고, 데이터를 쓰고 읽은 뒤, 일치 여부를 확인하는 실습을 진행 중입니다.맛비님께서는 HLS를 통해 BRAM을 자동 생성하셨다고 하셨는데요, HLS 사용법을 아직 잘 모르는 상태에서는 Verilog로 직접 코딩해서 모듈을 설계하는 것이 일반적인 접근일까요?아니면 HLS를 빠르게 익혀서 활용하는 것이 더 효율적일지 조언 부탁드립니다! ++ AI 인턴이 알려준https://inf.run/wERhr해당 질문 통해서 도움 받았습니다! ㅎ
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
ds18b20 Address 값 오류
안녕하세요 강사님, 항상 열정적으로 강의해주셔서 감사합니다. 다름이 아니라, 온도센서 구현 중에 발견한 문제점으로 질문을 남기게 되었습니다.Ds18b20_Init(); 함수를 호출하기 전과 후를 비교해서 강의에서 보는 바와 같이 Address[0] ~ [7] 까지의 값이 실시간으로 0에서 다른 값으로 바뀌어야 되는데, Live expressions로 본 결과 바뀌지 않고 있습니다.사실, 온도 센서를 모듈과 결합할 때 피복을 벗겨낼 필요 없이 핀으로 되어있었다는 것을 뒤늦게 알아서 Vcc, GND, DAT 선 모두 구리선 몇 가닥으로 연결된 상태입니다. ㅠㅠ코드는 강의 그대로 따라서 오류 없이 작성한 상태인데, HW 모듈 자체 문제인지, 모듈과 온도 센서와의 접합 부분의 문제인 것인지, 소스코드 문제인지, 정확한 디버깅이 어려운 상태입니다.참고로, PA3은 DAT 핀, Vcc는 3.3V, GND는 GND 핀에 연결해둔 상태입니다. ioc 클락 설정은 (8-1), 0xFFFF이며, PLL을 사용하지 않고 HSI 그대로 받아서 사용 중입니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
AI HW 11장 관련 질문드립니다.
안녕하세요 실전 AI HW 강의 11 장 보고 있는데 해당 장 강의에서 의문이 드는 점이 있어 질문드립니다. 6분 25초쯤에 Depthwise Separable Convolution은 Feature Map의 크기와는 상관없다. 그래서 Input과 Output Feature Map Size는 적지 않았다고 말씀하셨습니다. Input과 Ouput Feature Map의 크기는 동일하다는 '가정'이기 때문에 이와 같은 말씀을 하신건가요? 만약 동일하다면 Depthwise Convolution에 의해 Output Feature Map은 감소해야할 것 같은데 왜 동일해야하는지 의문이 들어 질문드립니다.감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 안에서 코드 변경 후 파형 확인
안녕하세요 🙂강의 잘 수강하고 있습니다.강의영상과는 다른 simulation관련 질문드리려고 합니다. vivado 프로그램안에서 코드를 바꾸고 파형을 확인하는 방법은 없을까요?코드를 바꿀 때마다 나갔다가 코드 바꾸고 다시 build 실행시키고...번거로운 것 같아서요 가능하다면 testbench와 module 2개 다 수정할 수 있는 방법이 있으면 알려주시면 감사드리겠습니다!!!건강하세요!
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
퀴즈 4 cnt f/f 변수 출력값 관련 질문
안녕하세요 🙂[1. 질문 챕터] : fpga 외전 1 시계만들기 Chapter 1 2분 9초 퀴즈 4번 부분[2. 질문 내용]cnt flipflop의 변수 출력값이 1억 - 1이라고 하셨는데, 1억이 아닌지 여쭤보고 싶습니다. 보여주신 코드 상에서는 cnt f/f 변수의 출력값이 1억 -1임을 시뮬레이션에서 어떻게 확인하는 것인지 잘 모르겠어서, 아래와 이 d_flipflop 모듈을 추가한 회로도를 사용하여 시뮬레이션을 돌려보았습니다. 그 결과 flip flop의 output 값이 1억이 나타났는데 확인해주시면 정말 감사하겠습니다 [3. 시도했던 내용, 그렇게 생각하는 이유]처음 enable이 켜졌을 때 combinational logic에 의해 d_flipflop의 input 값이 1이 되고, rising edge일 때 해당 값이 저장되므로 첫번째 사이클부터 cnt f/f 변수의 출력값이 1로 나타난다고 생각했습니다. 따라서 1초가 지난 이후에도 출력값이 1억이 될 것이라고 생각했습니다. 해당 회로도를 기반으로 시뮬레이션을 돌려본 결과 입니다. (편의상 100사이클만 수행하였습니다.) 100 사이클 이후 d_flipflop의 outpu이 100으로 나타나므로 퀴즈 4번의 결과 또한 1억이 나올 것 같은데, 1억 -1이 나타나는 이유가 무엇인지 궁금합니다. +) posedge에 enable이 켜지는 상황에서는 posedge 시간에 f/f에 stable한 값이 전달되지 않으므로 첫 사이클에서의 output value가 0임을 확인했습니다. 최종적으로 cnt f/f의 출력값은 99였습니다. 그러나 이때에는 최종적인 cnt 변수 값 또한 99로 나타나므로 만약 퀴즈 4의 가정 상황이 posedge에서 enable이 켜지는 상황이라면 Q3과 Q4의 답 모두 1억 -1이 되어야 할 것 같습니다. 아래는 사용한 코드입니다. 혹시라도 시뮬레이션에서 잘못된 부분이 있다면 알려주시면 감사하겠습니다. // tb_quiz.v `timescale 1ns/1ps module tb_quiz(); reg clk; reg reset_n; reg enable; wire [31:0] cnt; initial begin clk <= 0; reset_n <= 1; enable <= 0; #50 reset_n <= 0; #10 reset_n <= 1; #50 enable <= 1; #1000 $finish; end always #5 clk = ~clk; quiz DUT ( .clk (clk), .reset_n (reset_n), .enable (enable), .o_cnt (cnt) ); endmodule // quiz.v `timescale 1ns/1ps module quiz(input clk, input reset_n, input enable, output [31:0] o_cnt); wire [31:0] current_cnt; reg [31:0] next_cnt; always @(*) begin if (enable) begin next_cnt <= current_cnt + 1; end else begin next_cnt <= current_cnt; end end assign o_cnt = current_cnt; d_flipflop u_d_flipflop( .clk (clk), .reset_n (reset_n), .i_value (next_cnt), .o_value (current_cnt) ); endmodule `timescale 1ns/1ps module d_flipflop (input clk, input reset_n, input [31:0] i_value, output [31:0] o_value); reg [31:0] r_value; assign o_value = r_value; always @(posedge clk or negedge reset_n) begin if (!reset_n) begin r_value <= 0; end else begin r_value <= i_value; end end endmodule
-
해결됨설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
SPI, I2C, UART, Ethernet 인터페이스 사용법
안녕하세요 맛비님! 통신 모뎀 회사에 재직중입니다. 블록 디자인 작업(이건 노력, 시간 투자로 실력이 늘거라고 생각하는 중입니다..), AXI 버스, SPI, I2C, Ethernet, UART 를 사용해야 하는 상황이어서 verilog 시즌1, FPGA 시즌1 에 이어서 verilog 시즌2를 듣고 있습니다! 해당 강의 이후에는 fpga 강의에서 추천해주신 워크숍 내용을 공부할 예정입니다. 맛비님 강의에서는 AXI 버스를 사용하는 방법을 배우고 있고 추가로 SPI, I2C, UART, Ethernet 을 사용할 줄 아는 능력을 갖추기 위해서 Xilinx 사 워크숍 내용으로 커버가 될지 궁금합니다! 추가로 추천하시는 공부방법이 있는지 알려주시면 감사하겠습니다 ㅎ
-
미해결자동차 SW - UDS 진단통신 정복하기
FTB(Fault type Btye) 관련 질문!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. DTC코드에서 충분히 Middle과 High 로 충분히 고장내용을 설명합니다.2바이트로 P0138로 정의합니다.P 파워트레인에서0 표준에서정의한138 산소센서 high voltage그런데 Low byte에서 Fault type Btye가 존재하는데, 위 middle high쪽의 데이터와 내용이 어떻게 다른건지 궁금합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
코드 질문 드립니다! (matbi_gradation.v)
안녕하세요 맛비님! 해당 강의의 코드를 보면 [0:0] 이렇게 표현되어 있는 부분들이 있는데 찾아본 결과로는 AXI 규격에서 vector 형식을 사용해야 하기 때문에 벡터임을 표현하기 위해서라고 나옵니다.AXI4 stream 규격에 맞추기 위해 1bit임에도 [0:0] 을 붙여서 벡터로 선언되고 있다고 이해하면 될까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
RDMA 코드에서 불필요한 시그널에 대한 질문
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================[1. 질문 챕터] : 38장-2부 RDMA 코드리뷰[2. 질문 내용] : 맛비님의 강의와 코드를 토대로 제 스타일의 DMA 코드를 구성해보고 있습니다. 그러던 중, RDMA.v의 코드 중 불필요한 시그널이라고 생각되는 부분이 생겼는데요. 제 지식이 부족한 탓에 필요한 시그널들을 맘대로 없애는 것 아닐까 두려워 질문드립니다. 강의 때 설명해주신 부분인데 제가 듣지 못했던 거라면 정말 죄송합니다...1) ARLEN_R 해당 시그널은 AR 채널의 FIFO에서 R 채널로 출력되는, R 채널에 버스트 길이를 알려주는 시그널인데요. 버스트의 마지막을 체크하는 로직이 RLAST && r_hs 로 이루어지므로 이 시그널은 코드 내에서 전혀 사용되고 있지 않습니다. 그러므로 AR 채널에서 R 채널에 버스트 길이를 알려주는 행위 자체가 의미가 있는지 의문을 갖게 되었습니다. 어떠한 데이터든 FIFO에 넣어줌으로서 empty_n 시그널만 활성화 시켜줘도 전체 transaction이 끝나지 않았음을 R 채널에 알려줄 수 있지 않을까요?2) r_burst_cnt_ralways @(posedge ap_clk) begin if(ap_rst) begin r_burst_cnt_r <= 'b0; end else if (w_s_idle_r | is_burst_done_r) begin r_burst_cnt_r <= 'b0; end else if (r_hs) begin r_burst_cnt_r <= r_burst_cnt_r + 1'b1; end end 위와 같은 맥락으로 현재 transaction의 현재 버스트 횟수를 알려주는 해당 시그널도 특별히 사용되는 부분이 없습니다. 디버깅을 위한 코드일까요...?3) r_hs_data_cntalways @(posedge ap_clk) begin if(ap_rst) begin r_hs_data_cnt <= 'b0; end else if (w_s_idle) begin r_hs_data_cnt <= 'b0; end else if (ar_hs) begin r_hs_data_cnt <= r_hs_data_cnt + burst_len_ar; end endalways @(posedge ap_clk) begin if(ap_rst) begin r_ar_hs_cnt <= 'b0; end else if (w_s_idle) begin r_ar_hs_cnt <= 'b0; end else if (ar_hs) begin r_ar_hs_cnt <= r_ar_hs_cnt + burst_len_ar; end end 해당 시그널은 위 코드에서 보시다시피 r_ar_hs_cnt와 정확히 같은 메커니즘으로 동작합니다. 그러므로 둘 중 한 시그널로 대체가 가능하다고 생각됩니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Vivado config 파일 수정 관련 질문드립니다.
안녕하세요 맛비님, 베릴로그1부터 하드웨어 가속기 설계까지 강의 모두 잘 듣었고 다시 복습하며 공부에 큰 도움이 되고 있습니다. 제가 새로운 노트북을 셋업하는 과정에서 비바도를 잘 설치 완료하였고, 17:58부분도 동일하게 zybo 제외 부분은 0으로 off하였는데, 이번에 zybo가 아닌 다른 보드를 사용하려고 보니 vivado board 리스트에 안뜨는 현상이 발생하더라고요. 혹시 비바도 설치를 완료하고 이 config파일을 수정할 수 있는 방법이 있나요?? 알려주시면 감사하겠습니다!github에서 보드 master 폴더 다운 받은 후 board/하단에 board_files를 생성해주고 master/new/보드 관련 파일들 모두 복사 붙여넣기했습니다. explorer.exe로 열어서 paste하니 권한이 필요하다고 떠서 sudo로 복사해주었습니다. 새로 켰다가 다시 실행해도 보드가 안뜨네요,,https://inf.run/7CWXm 이전에 다른 분이 질문하신 거에 대한 답변으로 path 설정해주면 된다고 답변해주셨는데 안되어서 혹시 제가 잘못 진행한 부분이 있는지 알려주시면 도움이 될 것 같습니다.참고로, 완전 처음 보드를 검색했을 때 뜨다가 갑자기 1초만에 새로고침되면서 사라지고 이후에 아예 안뜨고 있습니다. task-vivado store에는 보드 이름이 있길래 install 해둔 상태입니다. 안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결FreeRTOS 프로그래밍
디버거모드에 진입이 안됩니다.
안녕하세요 영상 2:22를 따라하는데 디버거모드에 진입이 되지 않습니다.