묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
slave와 master 시뮬레이션
안녕하십니까 삼코치님 AXI프로토콜을 시뮬레이션 하는 과정에서 시뮬레이션할 때 마스터,마스터_tb,슬레이브,슬레이브_tb를 모두 결합시켜셔 시뮬레이션해야하는 건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
register output 질문이유
안녕하세요 chapter 16 보면fsm_test.v 이서 output이 register 로 되어있는데요이 register output을 wire로 assign 해서assign 된 놈을 출력시켜도 되나요???혹은 현업에서는 어떤 방식을 더 많이 사용하나요
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
diagram을 어떻게 그리시나요?
ppt에 있는 block diagram같은 건 그냥 ppt쓰신 것 같네요. 만약 ppt가 아니거나 평소에 쓰시는 툴? 같은 게 있을까요? gpt에 물어봐서 추천해주는 것들은 디지털 로직 설계에 맞는 것들이 없네요.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
FPGA 7장 AXI_LITE I/F질문
안녕하세요 🙂[1. 질문 챕터] : FPGA7장 12분 50초[2. 질문 내용] : Vivado 2020.2 기준으로 AXI4-Lite interface를 생성하면 맛비님이 강의에서 보여준 ip_repo -> lab7_axi4_lite_1.0 -> hdl -> lab7_axi4_lite_v1_0_S00_AXI.v 파일을 열어보면 코드가 약 400줄 내외로 적혀있는것을 확인할 수 있습니다. 저는 지금 2025.1 버전 Vivado를 사용하고 있고, 제가 IP를 생성해서 확인해 봤을땐 AXI4-Lite의 Interface가 약 300줄로 생성이 되고 있습니다. 혹시 비바도 버전이 진화함에 따라 AXI4-Lite 의 코드 줄 수가 간소화 되어 제가 300줄로 뜨는게 잘 맞게 뜨는 것인지, 아니면 잘못 나오고 있는건지 궁금해서 질문 남겼습니다!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
bram mover에서 합성할때
안녕하세요 🙂[1. 질문 챕터] : 22장[2. 질문 내용] : bram mover에서 write는 안쓰고 둘다 read로 쓴다고 하셨는데 그럼 write쪽 부분은 사용이 안되니깐 합성 과정에서 안쓰이는 부분이라 합성이 안되서 리소스를 자동으로 절약하게 되는건가요? 중요한건 아니지만 궁금해서요![3. 시도했던 내용, 그렇게 생각하는 이유] : ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
타이밍 위반 질문
안녕하세요 🙂[1. 질문 챕터] : 섹션3 FPGA 5장[2. 질문 내용] : 타이밍 위반이 왜 일어나는지 모르겠습니다.[3. 시도했던 내용, 그렇게 생각하는 이유] :맛비님 영상에서는 타이밍 위반이 일어나지 않았는데, 저의 경우엔 I/O Delay가 없는 것에 대한 타이밍 위반이 일어납니다. Arty z7-10을 쓰고 있고, xdc 파일에 따로 I/O Delay가 없긴 한데, 그건 ZYBO z7-20 도 마찬가지인걸로 알아서 왜 타이밍 위반이 일어나는지 이해가 안됩니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
안녕하세요 🙂[1. 질문 챕터] : 29:00[2. 질문 내용] : idle 조건이 충족하지 않아서 무한 루프에서 break 되지 않고 있습니다.OS Name : Ubuntu 22.04.2 LTSXilinx version : 2024.02[3. 시도했던 내용, 그렇게 생각하는 이유] : #define XPAR_MATBI_DMA_IP_TOP_0_BASEADDR 0x40000000#define XPAR_MATBI_DMA_IP_TOP_0_HIGHADDR 0x40000fff#define ADDR_AP_CTRL 0x00#define CTRL_DONE_MASK 0x00000002#define CTRL_IDLE_MASK 0x00000004void matbi_hw_memcpy(void* dest, const void* source, size_t num){ while(1) {read_data = Xil_In32((XPAR_MATBI_DMA_IP_TOP_0_BASEADDR) + ADDR_AP_CTRL); if( (read_data & CTRL_IDLE_MASK) == CTRL_IDLE_MASK ) // IDLE break; }}
-
해결됨회로설계 입문자를 위한 디지털, 아날로그 설계와 실무 Project
Slew rate 질문드립니다
안녕하세요 삼코치님.실습과정중 질문이 있습니다!Slew rate를 대략적으로 구하고자, 시뮬레이션 결과에서 평균 slope를 구하니, 1200V/us라는다소 터무니 없는 결과가 나왔습니다.별도로 첨부해주신 자료에는 slew rate가 10V/us가 넘는것을 권장하고있는데, 다소 터무니없는 결과가 나와 어떤부분에서 실수했는지 궁금하여 질문드립니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
[1. 질문 챕터] :29:00 [2. 질문 내용] :질문 : BASE_ADDR의 Addr read exception.OS Name : Ubuntu 22.04.2 LTSXilinx version : 2024.02 [3. 시도했던 내용, 그렇게 생각하는 이유] :전체 코드 :#define AXI_DATA_BYTE 8 // 64 / 8#define BASE_ADDR 0x10000000int main(){init_platform();Xil_DCacheEnable();Xil_ICacheEnable();u32 transfer_cnt;u32 add_val;while (1){printf("======= Verilog Season2 matbi_mem_copy_test ======\n");do{printf("plz input transfer_cnt\n");scanf("%u",&transfer_cnt);}while( !( (0 < transfer_cnt) && (transfer_cnt%AXI_DATA_BYTE == 0) && (transfer_cnt <= 67108864) ) ); // 64 *(2^20) = 64 MBytes // max count 32-6 = 26. 2^26 = 64MBytesdo{printf("plz input add_val (0~255)\n");scanf("%u",&add_val);}while( !( (0 <= add_val) && (add_val<256) ) );u8* rdma_baseaddr = (u8*)BASE_ADDR;volatile u8 data = Xil_In8(rdma_baseaddr); }cleanup_platform();return 0;}오류 발생 :xil_io.h 파일static INLINE u8 Xil_In8(UINTPTR Addr){return (volatile u8 ) Addr;}xil_exception.c 파일static void Xil_DataAbortHandler(void *CallBackRef){xdbg_printf(XDBG_DEBUG_GENERAL, "Address of Instruction causing Data abort %lx\n",DataAbortAddr); // 0x00100588while(1){}} 원인 ? : 여기서 무엇을 진행해야 할까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
rvalid 초기화
안녕하세요 🙂[1. 질문 챕터] : 15장[2. 질문 내용] : always @(posedge clk or negedge reset_n) begin if(!reset_n) begin r_valid <= {DWIDTH{1'b0}}; end else begin r_valid <= o_read; // read data end endbram mover에서 이부분 코드 보고있는데 rvalid는 1비트짜리 레지스터인데 왜 저렇게 리셋때 초기화 되는건지 궁금합니다! 저러면 00000000(datawidth만큼)을 rvalid에다가 넣는거 아닌가 싶어서... 중요한건 아닌거같지만 강의에서도 언급 안하시고 혹시 의도가 있는건가 싶어서 질문드려요![3. 시도했던 내용, 그렇게 생각하는 이유] : ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
테스트 벤치 이슈
안녕하세요 🙂[1. 질문 챕터] : 16장[2. 질문 내용] : 맛비님 제가 버그 픽스했다는 코드랑 원래 코드랑 딜레이쪽에서 어떤 차이가 있는지 확인해보고싶어서 data mover 파일만 16장에서 주신 코드로 바꾸고 15장에서 사용했던 테스트 벤치를 돌려봤는데요 시뮬레이션이 끝나지 않아서 웨이브 폼을 좀 돌려보다가 is_read_done신호랑 is_write_done 신호가 c_state가 RUN일때 X 상태로 변하고 그것때문에 addr cnt가 초기화가 안되는것을 발견했습니다(write read 둘다). 그런데 강의에서 보면 맛비님 컴퓨터에선 테스트벤치가 잘 작동한것처럼 보이고 코드에서 is_read_done이랑 is_write_done 신호를 assign한 부분 체크해보는데 별 문제도 없어보여서 혼란스럽네요 ㅜㅠ 그냥 제 컴퓨터가 이상한 부분일까요? 아니면 예전 파일 테스트벤치용이라 고친 파일에서는 작동을 안하는걸까요? 참고로 코드에는 손대지 않았습니다! [3. 시도했던 내용, 그렇게 생각하는 이유] : ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Vitis 관련
안녕하세요.제가 사용하는 버전이 24.2 버전인데, Vivado는 똑같은데, Vitis가 강의랑 완전 다른거 같습니다.24.2 버전으로는 따라할 수 없나요? Select a directory as workspace도 안보이고, GUI도 완전 달라서 이게 맞나 궁금합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
[HDL 38장: RDMA 코드 실습편] MOR fifo에서 "ARLEN_r" 존재의 이유가 궁금합니다
안녕하세요 맛비님, 항상 좋은 강의 감사드립니다.AXI를 혼자 공부하기 정말 어려웠는데, 강의가 많은 도움이 되고 있어 앞으로도 더 advance 강의가 기다려지네요! [1. 질문 챕터] : HDL 38장-2부 에서 다루는 "matbi_rdma.v" (Line: 417~435)에서도 특히 다음 fifo에 관해서 질문이 있습니다.matbi_sync_fifo # ( .FIFO_IN_REG (0), .FIFO_OUT_REG (0), .FIFO_CMD_LENGTH(NUM_ARLEN_BIT), .FIFO_DEPTH (NUM_AXI_AR_MOR_REQ), .FIFO_LOG2_DEPTH(LOG_NUM_AXI_AR_MOR_REQ) ) u_matbi_sync_fifo ( .clk (ap_clk), .reset (ap_rst), .s_valid (ar_hs), .s_ready (ar_fifo_full_n), .s_data (r_burst_len_ar), .m_valid (ar_fifo_empty_n), .m_ready (fifo_read_r), .m_data (ARLEN_r) );[2. 배경 설명] : 위 fifo는 MOR을 위해 AR channel과 R channel 사이에 둔 sync_fifo로써 transaction된 AR payload마다 fifo에 burst_len을 적어두고, 그 내용을 R 채널에서 RLAST마다 읽어가는 것으로 이해하였습니다.그런데 코드를 자세히 보다 보니 fifo에서 pop해 가는 데이터인 "ARLEN_r" 가 코드 어디에서도 사용되지 않는 것을 확인하였습니다. 따라서 현재 코드 상으로는, ARLEN_r 라는 값이 유의미에게 사용되기 보다는, fifo에 적힌 데이터를 단순히 여러번 읽어서, fifo_empty이 되어 R 채널에게 더이상 issue된 transaction이 없다고 알려주는 꼴인거 같습니다. 또한, 이전 비슷한 질문에 대한 답변을 찾아보니 코드 상 불필요한 로직이 남아있어서 그런거 같다라고 답변해주셨습니다. [3. 질문 내용] :혹시 ARLEN_r 가 따로 코드 내에서 사용되지 않는 이유가 있나요?만약 여러 불필요한 기능을 지우기다 보니, ARLEN_r가 redundant하게 남아있게 된 것이라면 혹시 원래는 ARLEN_r가 어떤 기능을 위해 존재했던 것인지 궁금합니다. 아무래도 강의의 내용이 회차를 거듭할 수록 어려워지다보니, 이러한 점에 대해서도 궁금증이 생기는 것 같습니다.다시 한번 좋은 강의에 감사드리며, 감사의 마음으로 질문 올립니다. 고맙습니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
9강 timing anaylzer 부분에 질문 있습니다.
안녕하세요 삼코치님 9강 timing 분석과 data-path Delay확인하기 강의에서 강의 화면처럼 slack과 delay정보가 나오지 않습니다 사전적으로 강의 그대로 full adder 코드와 simulation 코드 sdc파일을 만들었으며(강의 자료의 코드를 다운로드하였습니다) start버튼도 눌렀습니다. 무엇을 놓쳤는지 잘 모르겠습니다
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
[HDL 35장 AXI-Stream I/F 실습편] sync_fifo 사용 이유
안녕하세요 🙂[HDL 35장 AXI-Stream I/F 실습편] 내용 중 sync_fifo 사용의 이유에 대해서 궁금하여 질문 드립니다. 제 짧은 생각으로는 현재 matbi_gradation.v 에서 sync_fifo를 없애고, 바로 AXI-stream output port로 연결해도 동일하게 동작할거라고 생각하였습니다.그럼에도 지금은 fifio가 depth 4로 선언이 되어 있습니다.[질문 1] 혹시 sync_fifo를 굳이 중간에 두는 이유가 무엇인지 궁금합니다.[질문 2] 현업에서 저런 식으로 output을 내보내기 전에 sync_fifo를 보통 두는 것이 일반적이기 때문이라서 그런 것인지, 맛비님의 의도가 궁금합니다..!![질문 3] 또한 만약 sync_fifo를 두는 것이 일반적이라고 하더라도, 그러면 fifo depth를 1 혹은 2로 두어도 충분할거 같은데, 4로 설정하신 특별한 이유가 있는지도 궁금합니다!항상 좋은 강의 감사드립니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
bram read 주소 설정
안녕하세요 🙂[1. 질문 챕터] : 12장 33분 41초쯤?[2. 질문 내용] : read 주소는 어떻게 초기화 & 선택 하나요?[3. 시도했던 내용, 그렇게 생각하는 이유] : 코드를 잘 뜯어 봤는데 write 시작 주소를 초기화(?) 하는 방법은 알겠는데 read 주소를 초기화 하는 코드는 없더라고요.. 강의에서도 read 초기화는 원래는 시켜줬어야 했다고 얘기하셨고. 근데 제가 bram에 write를 하고 처음부터 끝까지 데이터를 읽고 싶은게 아니라 특정 주소에 있는 데이터를 읽고 싶다면 주소를 설정해줘야하는데 그럴때는 어떤 방법을 쓸 수 있을까욥... 만약 너무 벗어난 질문이면 무시하셔도 괜찮습니다! ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
always와 assign 문
안녕하세요 🙂[1. 질문 챕터] : 14장 19강 6분쯤[2. 질문 내용] : always 문에서 ff값을 업데이트에만 사용하고 연산은 assign으로 하는데 always 블락 안에서 연산하는건 비효율적이거나 안되는건가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : always @(posedge clk or negedge reset_n) begin if(!reset_n) r_power_2 <= 0; else r_power_2 <= i_value * i_value; end always @(posedge clk or negedge reset_n) begin if(!reset_n) r_power_4 <= 0; else r_power_4 <= r_power_2 * r_power_2; end always @(posedge clk or negedge reset_n) begin if(!reset_n) r_power_8 <= 0; else r_power_8 <= r_power_4 * r_power_4; end 실습코드 같이 보기전에 제가 한번 써보고 맛비님 강의 들으면서 코드 비교하는식으로 듣는중인데 차이가 커서 궁금해서 질문드려요! 지난 강의에서 카운터 만들때는 always block 내부에서 +1 연산을 했어서 이것도 괜찮지 않을까 싶어서 이렇게 코딩했는데 혹시 처리시간이나 딜레이쪽에서 손해를 보나요?================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
예외처리 관련 질문
안녕하세요 🙂[1. 질문 챕터] : HDL 34장 [2. 질문 내용] : 안녕하세요! 강의 너무 즐겁게 잘 수강하고 있습니다.강의를 듣던 중 예외처리와 관련하여 궁금증이 생겨서 질문 남기게 되었습니다.강의 내용 중 pos_x + width 가 1920 보다 커질 경우 존재하지 않는 영역에 대한 픽셀 값을 불러오게 되는데, 이렇게 세팅되지 않도록 하드웨어 차원에서 예외처리를 해야하나요?다른 IP를 설계하면서도 생길 수 있는 모든 상황에 대한 예외처리(안정성)을 하드웨어 설계 차원에서 수행해야하는지, 현업에서는 어떻게 해결하는지 궁급합니다!항상 좋은 강의 감사합니다. [3. 시도했던 내용, 그렇게 생각하는 이유] : 이전에 divider 를 설계했던 경험이 있는데, 그때 0으로 나누는 경우에 대한 예외처리를 HW에서 해야하는지, 해당 IP를 사용하는 User가 SW에서 그러한 입력이 생기지 않도록 막아야하는지 의문이 있었는데, 의문을 해결하지 못하였었습니다. 이번 강의를 듣다가 다시 문득 의문이 들어 질문하게 되었습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
FSM과 CORE logic 분리 설계..?!
안녕하세요! 해당 질문이 적합한지 모르겠지만, 일단 남겨보겠습니다. 궁금한 것fsm_counter_test이라는 하나의 모듈 안에 fsm logic(?)과 core logic(?)(counter)을 같이 설계하셨는데 실제로도 이렇게 core와 fsm을 하나의 모듈 안에서 설계하나요?아니면 fsm_controlle, core_counter 이런식으로 두개의 모듈로 fsm과 core를 설계 후 top 모듈에서 두 모듈을 파생하면서 이어주시나요?!물론 상황마다 다르겠지만, 후자처럼 나누어서 설계하는 경우도 있는지. 있다면 그런 경우가 더 많은지?! 궁금해서 여쭙니다!
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Latch에 관련한 질문
안녕하세요 🙂[1. 질문 챕터] :4장 내용 / 16장의 7분 50초[2. 질문 내용] : "Latch가 발생하면 안된다" 라는 개념이 잘 이해가 안 됩니다. 엄밀히 말하면 아래 두개가 헷갈립니다.clock base로 동작하는 reg가 특정 값일 때 고정되는 경우e.g. if( r_test[9] == 1 )begin r_test = r_test;endelse r_test = r_test + 1;이 경우 "Latch 된다"고 표현되는 것으로 아는데, 맛비님 강의에서 사용하면 안된다는 것이 이러한 것인지.. 궁금합니다.clock base로 동작하지 않는 reg헷갈리고 궁금해진 이유는 아래와 같습니다.- 7:56의 to prevent latch 구문은 "clock base로 동작하지 않는 reg"가 "특정 값일 때 고정되는 경우" 둘 다 해당하는 것으로 보이기도 했고,- 52~62 줄은 clock base로 동작하지 않기에 (c_state 값의 변화는 clock base기에 clock base라 볼 수 있는 것인지?) 결국 latch 구문인지? 도 궁금합니다.[3. 시도했던 내용, 그렇게 생각하는 이유] : Latch 라는 개념이 "f/f 처럼 clock based가 아닌 경우" 와 "한 값으로 고정되는 경우" 두 개가 있어서 충돌되는 것 같습니다... 다른 질문을 보고 왔는데도 잘 이해가 안가서 질문을 남겨둡니다.늘 감사드리며, 좋은 주말 되십시오.