묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
FPGA21장 - fully connected layer 설계 - 코드 리뷰 편에서 질문 있습니다
https://www.inflearn.com/questions/330774 FPGA21장에서, FC layer에 대한 의문이 있어서 질문을 찾아본 결과, 위 링크의 질문자와 비슷한 질문이 생겼습니다. 위의 test.c 코드대로라면, 입력 노드는 4096 x 4 = 16384개가 된다고 생각하였습니다. 그러면 input = 16384, weight = 16384, output = 4개에 대하여 drop out 기법? 을 사용한 듯한 형태가 되는데, 이것을 의도하신 건지 여쭤보고 싶습니다. 아니라면, 위 링크의 질문에 답변 해주신 것처럼 node 0~4 의 값이 모두 동일해야 한다는 생각이 듭니다. 또, 오해의 소지가 있다고도 답변해주셨는데, 읽어봐도 어떠한 오해가 생긴건지 잘 이해가 안됩니다. 어떠한 오해가 있었던 것인지 간단하게라도 말씀해주시면 정말 감사하겠습니다. 이틀 뒤면 주말이네요! 오늘도 좋은 하루 되세요 맛비님.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
reg 이해확인? 질문입니다!
"조합논리에서 wire선언과 reg선언 시의 시뮬레이션 차이는 없다"가 결론이지만 학부생때는 reg를 거의 임시저장용으로 사용하였어서 딜레이 차이가 있을것이라고 생각했습니다. (컴파일 및 rtl 변환 시 왠지 차이가 생길 것 같다...!라는 생각으로 말이죠)하지만 아래 링크를 참고해보니 결국에는 이 저장은 설명하신대로 물리적 저장이 아니라 Verilog의 SW적 저장이고 실제는 wire와 같게 구현된다로 이해했는데 이 개념이 맞는지 궁금합니다..! * 참고한 링크입니다!https://stackoverflow.com/questions/33459048/what-is-the-difference-between-reg-and-wire-in-a-verilog-module * 5:54경에 나오는 문서와 비슷한 링크입니다. 혹여나 찾으시려는 수강생분들을 위해 올려봅니다 :)https://inst.eecs.berkeley.edu/~cs150/Documents/Nets.pdf
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 질문입니다
- 강의 내용외의 개인 질문은 받지 않아요 (개별 과제, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 거의 다 온 거 같아서 오히려 마음이 급해지네요 ㅎㅎ.. ./Xilinx_Unified_2020.2_1118_1232_Lin64.bin -- -a 3rdPartyEULA,WebTalkTerms,XilinxEULA -b Install -c /root/.Xilinx/install_config.txt 이 명령만 입력하면 끝나는 거 같은데 자꾸 에러가 발생하네요 sudo apt install gcc 로 gcc를 설치하는 과정에서 gcc 보다는 command 모드로 설치하는게 좋다고 하셔서 gcc모드는 설치중에 오류발생해서 그냥 넘어갔습니다. 이후 에는 영상이랑 가이드북 따라가면서 설치를 하고 있는데 마지막 명령어에서 에러가 발생해서 설치를 못하네요.. 어떻게 하면 좋을까요..?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Addresss와 Memory write error에 관련되어 질문이 있습니다
안녕하세요 맛비님! 어렵고 좋은 강의 늘 잘 듣고 있습니다 ㅎㅎ 아직 익숙치 않은 부분이 많아 필기하고 강의를 따라하는 쪽으로 우선 강의를 수강하고 있는데요. 강의를 따라하면서 해결하지 못하는 부분이 있어서 질문을 남기게 되었습니다. 이전강의에서는 Address map에 문제가 없었는데 Lab9, Lab10부터 Address map이 문제가 조금 있는 것 같습니다. address가 0x43C0_0000이 아니라 자동적으로 0x4000_0000으로 설정이 되더라구요. 해서 아래 사진에서는 제가 직접 설정하였고 Range역시 4K가 Maximum 값이더라구요. 또한 lab10에서 vitis build project에서는 문제가 없었으나 보드에서 run시키면서 Memory write error가 발생하였습니다. 이하 사진 첨부하겠습니다. (참고로 Vivado version은 2022.1 입니다!) 늘 감사합니다 : )
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
홈페이지에서 vivado 설치 과정입니다
- 강의 내용외의 개인 질문은 받지 않아요 (개별 과제, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Please correct the errors and send your information again. We cannot fulfill your request as your account has failed export compliance verification. If this verification is in error, please e-mail account.help@amd.com for help. 주소입력은 다 했는데 자꾸 이런 오류가 발생해서 더 진행할 수가 없습니다. 어떤 부분을 더 추가 해 달라는 건지 정말 모르겠습니다..
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Vivado 2022.1과 보드에 관련된 질문입니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요안녕하세요 맛비님! HDL 강의 유익하게 잘 들었고 이제 FPGA 강의에 초입에 있습니다! 다름이 아니라 Vivado 버전과 보드에 대한 질문이 있어서 글을 남기게 되었습니다. 이하는 질문입니다! 1. 제가 Zybo z7 보드 구매가 현실적으로 어려워서 어디선가 얻어온(?) Basys3를 이용하려고하는데요! 혹시 문제가 있을까요? (ex. 해당 FPGA강좌 수강의 어려움 or 향후 맛비 유니버스 강좌에 대한 어려움 등등) 2. Vivado2022와 Vivado2020.2가 달라서 board를 install하는 GUI가 없더라구요 그래서 이것저것 만져보다 basys3를 install한 것 같은데 맞게 했는지 모르겠습니다! 확인부탁드립니다! 혹시 몰라서 제가 가지고 있는 board도 보여드릴게요!! 앞으로도 많이 배우겠습니다 !!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
fpga 툴에 대해 질문있습니다!
현재 베릴로그 강의를 들으면서 다음 주 안으로 fpga도 슬슬 넘어갈 준비를 하고있는데요 이 강의와 유튜브에 fpga5강까지 올려주신거에는 리눅스쪽을 추천해주셨는데 fpga강의에선 윈도우용으로 까는 이유가 궁금합니다 뭔가 윈도우쪽에서 더 좋게 변했다던가...? 등의 이유가 있나 싶어서요
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
벌써부터 여쭤보긴 좀 이른 질문입니다만
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. fpga 사용 시 와이파이 동글을 달아서 원격으로 디버깅이 가능한가요?? https://projects.digilentinc.com/catalin-bitire/zybo-autonomous-car-2d343d 여기선 와이파이 어댑터 우리는 USB Wi-Fi 동글을 사용하여 디버깅 목적으로 차량을 무선으로 사용하고 온보드에서 실행되는 Embedded Linux 배포판과 긴밀하게 통합합니다 이러더라구요 그리고 https://www.youtube.com/watch?v=ftpH37sYmQo&t=290s 이렇게 영상처리되는걸 실시간으로(무선으로) 볼 수 있는게 가능한지도 궁금해서 여쭤봅니다
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
d_ff_test.v에 관한 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 맛비님. 강의 잘 듣고 있는 학생인데 질문이 생겨 글을 남기게 되었습니다. module d_ff_test( input clk , input sync_reset , input async_reset , input async_reset_n , input i_value , output o_value_sync_reset , output o_value_async_reset , output o_value_async_reset_n , output o_value_mixed_reset , output o_value_no_reset ); D Flip-flop과 reset 실습에서 이렇게 output을 정의하고 또 reg인 r_ff_sync_reset, 등등을 사용합니다. 제가 이해하기로는 always 구문을 사용하려면 reg가 필요하고 wire로 정의된 output에 연결하기 위해 assign구문을 사용한 것 같습니다. 그렇다면 제가 의문이 생기는 부분은 새로운 r_ff_sync_reset을 생성하는 대신 output인 o_value_sync_reset을 reg로 선언하여 always 구문을 사용하고 assign과정을 없애면 되는게 아닌가? 하는 질문이 생겨서 여쭤보게 되었습니다. DUT의 output은 wire나 reg 둘다 사용해도 상관없다고 알고 있어서요. 혹시 제가 알고 있는 부분 중 틀린 부분이 있다면 알려주시면 감사하겠습니다 :)
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
FSM 설계 방법에 관해 질문드립니다.
안녕하세요, 맛비님. FSM의 설계 방법 관련하여 질문이 있습니다. FSM 관련 코드 실습이나 verilog 교재에서 FSM을 설계할 때, 항상 조합회로와 순차회로로 나누어서 설계하는 것을 볼 수 있었습니다. 이 때 조합회로에 해당하는 로직은 always@(*)로 설계하고, state를 바꾸는 순차회로는 always@(clk)을 이용하더라고요. 여기서 질문이 하나 있습니다. 조합회로에 해당하는 로직도 always@(clk) 구문안에 포함시켜서 설계하지 않는 이유가 따로 있나요? 순차회로는 non-blocking assign을 사용하라고 강조하신 이유와 관련이 있을까요? 감사합니다. 김민호 드림
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
모듈과 always블록의 관계(?)에 대한 질문입니다.
안녕하세요, 맛비님. 강의 영상을 통해 항상 많은 배움을 얻는 중입니다. 감사합니다. 파이프라인 실습편 강의의 Q&A를 읽다가 질문이 하나 생겼습니다. 해당 질문의 답변중에 모듈간의 handshake를 통해 timing을 맞춘다고 답변을 해주신 게 있습니다. 모듈간에 handshake가 필요한 건 이해하였습니다. 제가 궁금한 건, 만약 모듈들을 한 모듈안의 always(clk) 구문으로 구현한다면, always 구문간에 통신할 때도 handshake가 필요한 지 궁금합니다. 제 생각에는 한 모듈안에 여러 always(clk) 구문으로 구현하더라도 각 alway 블록이 하나의 모듈과 같다고 생각이 들긴 합니다. 질문을 정리하면 다음과 같습니다. 1. 모듈들을 한 모듈안의 always 구문으로 보통 구현하지 않는 것 같은데, 가독성을 위한 이유 말고 다른 이유가 있는지 2. 한 모듈 안의 여러 always 구문 v.s. always 블록마다 모듈로 구현 -> 차이점이 무엇인지 기존에 질문이 있을 것 같아서 찾아봤는데 없는 것 같아서 질문드립니다 ㅠ 아직 많이 헷갈리네요 ㅠ 읽어주셔서 감사합니다. 김민호 드림
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Design Runs에서 BRAM 타일에 대한 질문 드립니다.
안녕하세요. 맛비님. 강의 내용 약 16분 즘에 BRAM 타일에 대한 내용을 설명해주셨는데요. 이해가 안되는 부분이 있어서 질문 드립니다. 저희가 사용하는 BRAM의 size가 16K이고 fpga BRAM size가 36K라 1타일의 BRAM이 사용되어야 한다는 것은 알겠습니다. 그런데 총 BRAM을 보면 4.5로 나오는데요. 0.5? 이러면 저희가 사용한 BRAM의 타일도 1.0이 아니라 0.5 이렇게되야하는 것 아닌가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 맛비님! BRAM에 관해서 질문하고 싶은 것이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 맛비님. 너무 유익한 강의 감사드립니다. 저가 이번 강의를 복습하면서 궁금한 점이 있는데요. 맛비님 블로그를 봤을 때 BRAM을 IP catalog에서 불러와서 쓰셨는데 강의에서는 직접 설계하셨습니다. IP에서 BRAM을 불러온 것과 직접 BRAM을 설계하는 차이가 뭔지 궁금합니다. 또 실제 설계함에 있어서 어느 방법을 더 많이 쓰는지 궁금합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
MEM_SIZE 관련 질문
안녕하세요. 맛비님. default MEM_SIZE가 3840인 이유가 있나요? 갑자기 궁금증이 드는데 보통 메모리는 2의 몇승 되는 값?으로 정의되지 않나 싶어서요.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
if 문과 case 문의 차이점에 관해 문의 드립니다.
fsm_test.v의 64행 Step 3 의 always block 에서 o_done 을 1로 셋하는 부분에 궁금한 점이 있습니다. 아래와 같이 if ..else 문을 사용해도 되는 것 같은데 case문을 사용한 것과 타이밍이나 사이즈 면에서 합성 결과가 차이가 나는지 궁금합니다. 시뮬레이션 결과는 같이 보여서요.. if (c_state == S_DONE) o_done <= 1; else o_done <= 0; if 문과 case문을 선택하는 것은 단지 설계자의 취향 차이 일까요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
fsm 에서 next state 계산하는 always 블록 관련 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 맛비님. 먼저 글씨가 흐려서 죄송합니다.. 어떻게 바꾸는지 모르겠어요..ㅠㅠㅠ next state 계산?하는 always block에서 n_state = S_IDLE; n_state = S_RUN; Blocking 구문으로 작성되어 있는데요. n_state <= S_IDLE; n_state <= S_RUN; 이런식으로 Non-blocking 구문으로 작성하면 안되는 이유가 있나요? 제가 이해하기론 n_state 는 combinational 회로라 굳이 Non-blocking 구문으로 작성할 이유는 없다고 생각해요. clock이랑 동기화를 해줄 이유가 없어서..그런데 https://verilogguide.readthedocs.io/en/latest/verilog/fsm.html#verilog-edgedetector 위 링크에서 rising edge detector 예제를 푸는데, waveform이 next state 를 Non-blocking 구문으로 작성했을 때 예제에서 제공한 waveform이랑 같은 것을 확인할 수 있었습니다. 이상한 것은 예제에서는 next state가 Blocking 구문으로 작성되어 있다는 것이에요. 아래 그림은 위 링크 예제처럼 작성했을 때 waveform 차이입니다. 코드는 혹시나 제가 실수한 것이 있을까봐 올려둡니다. 죄송합니다. figure1. 링크 waveform figure2. 실습했을 때 waveform, mealy_tick과 moore_tick이 위 사진과 다르게 출력되는 것을 확인. 아래처럼 Blocking 구문을 전부 Non-blocking 구문으로 바꾸면 파형이 잘 나옵니다. figure3. Non-blocking 구문으로 수정한 후의 waveform. 내용이 너무 기네요. 정리해보겠습니다. 수업 외 다른 코드를 이용해 질문 드리는 것에 대해 사과드립니다. 그래도 최대한 코드 볼 필요 없이 질문 드려봅니다. <- 제 개인적인 생각입니다.. 제가 알고 싶은 것은 1. next state 계산에서 Blocking 구문으로 사용하는 이유가 제가 이해한 것이 맞는지 2. 제가 이해한 것이 맞다면 왜 이 예제는 Blocking 구문으로 작성하면 원하는 파형이 안 나오는 것인지 3. 추가로 지금 waveform을 보면 reset이 눌리기 전에 c_state와 n_state가 x로 나오는데, 만약 x로 나오지않고 0으로 나온다면 c_state와 n_state는 Latch로 된 것인지 알고싶습니다. 이상입니다. 감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
더 복잡한 회로에 관한 질문
안녕하세요 맛비님 ! 이번에 전자공학과 3학년으로 진학하는 대학생입니다. 드디어 심화편의 FSM까지 오게되었습니다. 핵심만 짚어드리는 강의가 쏙쏙 들어와 이해하기 쉬웠습니다. 질문 내용은 현업에서 설계하는 훨씬 더 복잡한 회로를 FSM을 이용하여 만든다고 할 때 (step 4이후부터는 core가 무엇인지에 따라 달라지겠지만) verilog code에 똑같이 step 1~3부분이 있다고 한다면, 실제로도 실습코드의 step 1~3부분과 어느정도 비슷한가요?! 세부족인 code내용들은 당연히 다르겠지만 큰 틀로 봤을때요 !! 또, IDLE, RUN, DONE이 3개의 state말고도 다른 state를 사용하여 만드는 경우도 있을까요?
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
makefile 오류 관련 문제 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 맛비님. Makefile 3개 수정하고 빌드를 했는데 알 수 없는 오류가 나와서 질문 드립니다. lab8_axi4_lite_app의 Debug안에 있는 makefile에서 에러가 발생한다고 나오는 것 같은데 아무리 봐도 무엇이 문제인지 모르겠어요. 저 Path에 있는 파일 전부 확인했는데 문제 없어보이는데 이런 에러는 어떻게 해결하는지 알 수 있을까요? 아래는 Vitis Log 중 ERROR에 해당되는 내용입니다.. 13:43:14 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:14 ERROR : Failed to update application flags from BSP for 'lab8_axi4_lite_app'. Reason: null java.lang.NullPointerException at com.xilinx.sdx.sw.internal.SDxSwPlatform.<init>(SDxSwPlatform.java:305) at com.xilinx.sdx.sw.internal.SDxSwPlatform.create(SDxSwPlatform.java:214) at com.xilinx.sdx.sdk.core.util.SdkPlatformHelper.getSwPlatform(SdkPlatformHelper.java:61) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.getSwPlatform(SdkMakefileGenerationListener.java:160) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.syncAppFlags(SdkMakefileGenerationListener.java:78) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.preMakefileGeneration(SdkMakefileGenerationListener.java:48) at com.xilinx.sdk.managedbuilder.XilinxGnuMakefileGenerator.notifyPreMakefileGenerationListeners(XilinxGnuMakefileGenerator.java:91) at com.xilinx.sdk.managedbuilder.XilinxGnuMakefileGenerator.regenerateMakefiles(XilinxGnuMakefileGenerator.java:75) at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performMakefileGeneration(CommonBuilder.java:1006) 13:43:15 ERROR : Failed to compute checksum of hardware specification file used by project 'lab8_axi4_lite_app' 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa"ㄴㅁ Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA강의 10장.FSM] vitis terminal 관련 질문입니다.
강의 내용을 똑같이 따라했고 포트 인식도 잘 되었는데(4장의 Hello World 출력도 잘 되었으므로 보드와 Cable에는 문제 없습니다..) Vitis에서 Launch on Hardware 누르면 Terminal에 다음 메시지가 뜨면서 정상 출력이 안되네요. 정상 출력 된다면 ======= Hello Lab10 Matbi ====== plz input run mode1. write (CTRL) 2. read (REG) 와 같이 나와야하는 것으로 알고 있습니다. 구글링 해봤지만 관련 내용이 잘 나오지 않아 혹시 원인을 알 수 있을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
clock gating 및 assign 구문 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1. clock gating 생성에 관한 질문 clock gating 생성 예제에서는 DUT에서 input i_clk input i_clock_en의 wire 타입의 입력과 output o_clk을 이용해 assign o_clk = i_clk & i_clock_en 을 만들어 testbench에서 o_clk과 연결해줬는데, D F/F 실습 예제에서는 바로 testbench에서 reg타입의 clk, clk_enable을 이용해 wire clk_for_dut = clk && clk_enable로 만들어 DUT를 인스턴스 하는 과정에서 clk와 clk_for_dut를 연결해준걸로 이해했습니다. 질문 1 : clock gating 생성을 DUT와 testbecnh에서 모두 위의 다른 방식으로 생성하는것인가요 ? (예를들어 testbench에서만 해야된다? DUT에서만 해야된다?) 질문 2 : wire clk_for_dut = clk && clk_enable 이식에서 clk와 clk_enable 모두 reg타입인데 결과값이 wire로 나올 수 있나요 ? (&&의 논리연산 때문인가요? 0or1) 질문 3 : DUT를 인스턴스하는 과정에서 clk를 제외한 다른 값 (sync_reset, async_reset등)은 뒤의 괄호안에 reg 타입의 값이 들어가는데 .clk(clk_for_dut)에서는 clk_for_dut가 wire값인데 들어가도 되는지 질문드립니다. clk와 clk_enable이 이미 reg타입으로 값을 저장하고 있는 상태이고, 이 저장되는 값들의 관계에 의해서 clk_for_dut가 나오므로 단지 결과값을 연결하는 선(wire)으로 썻다. 이정도로 이해하면 될까요 ? 2. assign 구문에 대한 질문 D F/F 실습에서 마지막에서 이러한 구문이 나오는데 assign o_value_sync_reset = r_ff_sync_reset; assign o_value_async_reset = r_ff_async_reset; assign o_value_async_reset_n = r_ff_async_reset_n; assign o_value_mixed_reset = r_ff_mixed_reset; assign o_value_no_reset = r_ff_no_reset; 질문 4 :이렇게 reg 타입을 wire 타입 output과 연결시켜주는데 input, 또는 output으로 나오는 reg타입은 무조건 wire타입과 연결해줘야 하나요?(testbench 마지막에서 DUT를 인스턴스 하는 과정이랑 동일하다고 보면 될까요 ?) 그래서 testbench에서 인스턴스 할때 output값들이 매핑이 안되는 것인가요 ? (ex .o_value_sync_reset(빈칸) ) 또한 testbench에서 output값들이 wire로 선언이 되지 않은 이유인가요? 베릴로그를 오랜만에 접하다 보니 이런저런 귀찮은 질문 지송합니다. ㅠ