묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
wsl 환경 Tool에 대한 질문
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================맛비님 Tool을 설치하며 궁금증이 생겨 질문드립니다. 강의 내 설치 방법으로 vivado hls도 사용 가능한지 물어봐도 되겠습니까?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 관련으로 문의 드립니다. _마지막 Display 설정 관련
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 맛비님 안녕하세요. 이전에 1회독을 마무리하였지만, 부족함을 느끼게 되어 반복해서 공부를 하려고 강의를 들으려고 했지만 vivado 설치 과정에서 다시금 발목을 잡혔습니다. ㅠㅠ 다름이 아니라, 이전에 올려주신 display 관련 문제 발생 해결방법을 참조하여 해결을 해보려고 했지만 잘 안되서 문의드려요 ㅠㅠ기존에 설정되어있던 DISPLAY 변수를 제 ip에 맞게 변경하였더니 원래 뜨던 에러는 안뜨고 start_gui라고 만 뜨고 비바도는 실행이 안되네요... ㅠㅠ +ps : 한 3분 정도 뒤에 에러가 동일하게 뜨네요
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[Lab12] 시뮬레이션 결과([0:31]mem [0:511])에 질문있습니다.
안녕하세요 맛비님!Lab12 simulation 결과에 대해 궁금한점이 있습니다.시뮬레이션 결과에서 BRAM의 [31:0] mem[0:511]을 보면 mem[0] 부터 mem[31]까지만 값이 보이고, 이후 mem[32]부터는 값이 보이지 않습니다. 즉 32bit 데이터 32개만 보입니다.BIT크기의 문제인가 싶어서 8bit로 수정한 뒤 시뮬레이션을 돌린결과 128개만 보입니다. 두 경우 모두 bitwidth × memdepth = 1024로 동일한데, axi vip를 사용한 시뮬레이션의 경우 버퍼, 메모리등의 데이터를 보여주는데 개수의 한계가 존재하는건가요? mem[0]부터 mem[511]까지 다 확인하고 싶은데 axi vip 테스트벤치의 코드를 수정하면 가능할까요? 가능하다면 어느 부분을 수정해야하나요!
-
해결됨설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
Handshake 관련 질문
안녕하세요 맛비님. 강의 잘 듣고 있습니다.Handshake관련해서 더 알고 싶어 AXI의 specification을 읽고 있는데밑줄 친 부분이 무슨 뜻이고 왜 그런지 이해가 안가서 이렇게 질문드립니다!
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
내가 한 리눅스 D드라이브로 옮기고 설치하는 방법 정리
제가 리눅스를 C드라이브에서 D드라이브로 이동하고 설치한 Flow를 정리한 내용입니다. 이 방법을 찾고 있던 분들께 도움이 될까해서 공유합니다. 버전 : Ubuntu22.04.2 LTS, Xilinx Vivado 2022.2 「2023.1은 에러생김」 *리눅스를 C드라이브에 설치하고 mnt/d에 vivado를 설치할 때보다 빠른 설치, 빠른 동작이 가능했고, C드라이브의 용량을 차지하지 않음 (리눅스가 C드라이브에 존재하면 이번 설치기준으로 몇 기가(약 3~5GB) 용량 차지) *설치 순서를 나타내는 1,2,3,4.5는 작성자가 설치한 순서를 나타내므로 flow만 살피고 자세한 내용은 영상과 같음을 인지하길 바람. 3번이 리눅스를 D드라이브로 옮기는 방법이므로 이 부분 핵심.1. Microsoft store에서 wsl검색 후 Ubuntu22.04.2 LTS 다운, Xilinx Vivado 2022.2 리눅스 버전 다운, MobaXterm 다운2. [영상과 같음](리눅스 설치는 영상참고) Ubuntu22.04.2 LTS들어가서 username, password설정하고, MobaXterm접속 -> explorer.exe-> home/username폴더에 들어가서 Xilinx bin 파일 복붙-> 다시 MobaXterm에서 ls 친 후 필요없는 파일 삭제 [ex)rm Xilinx_Unified_2022.2_1118_1232_Lin64.bin:Zone.Identifier] -> sudo passwd -> root계정 password 설정 -> su 입력 후 root계정으로 접속 -> chmod +x X(tap쳐서 자동완성) -> ls 치면 녹색으로 실행권한 있게 바뀐 걸 확인할 수 있음 user 계정에서 설치할 폴더 생성 ex) mkdir tools3. 「D드라이브로 이동」출처 : https://velog.io/@iamnowist/WSL%EC%97%90%EC%84%9C-Ubuntu-%EC%82%AD%EC%A0%9C참고 : https://jooy34.tistory.com/29 관리자 권한 PowerShell 실행1) 우분투 상태확인 : wsl -l -vRunning이면 wsl --shutdown 로 종료 -> wsl –l –v로 Stopped인지 확인PS C:\Windows\system32> wsl -l -v NAME STATE VERSION * Ubuntu-22.04 Running 2PS C:\Windows\system32> wsl --shutdown PS C:\Windows\system32> wsl -l -v NAME STATE VERSION * Ubuntu-22.04 Stopped 2 2) 기존 우분투 이관을 위한 백업(Archiving)PS C:\Windows\system32> cd d:\ PS D:> mkdir d:\ubuntu-22.04 PS D:> cd d:\ubuntu-22.04 PS D:\Ubuntu-22.04> wsl --export Ubuntu-22.04 ubuntu.tar 3) 기존 우분투 등록 해제 PS D:\Ubuntu-22.04> wsl --unregister Ubunut-22.04 4) 신규 우분투 생성현재 작업 디렉터리 확인. 아마 이전 단계에서 만든 ubuntu.tar 파일이 보인다.PS D:\Ubuntu-22.04> pwd Path ---- D:\Ubuntu-22.04 백업 받은 ubuntu.tar를 임포트 한다. PS D:\Ubuntu-22.04> wsl —import Ubuntu-22.04 ubuntu ubuntu.tarwsl --import <새로 만들어 줄 ubuntu 이름> <설치할 경로> <추출한 파일 경로>설치할 경로(D:\ubuntu\)는 미리 만들어 줍니다. 기본 우분투로 설정한다. (사실 생략해도 됨) PS D:\Ubuntu-22.04> wsl —set-version Ubuntu-22.04 2 5) 신규 우분투 실행 PS D:\Ubuntu-22.04> wsl -d ubuntu-22.04 Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Wed Jun 29 15:18:37 IST 2022 System load: 0.18896484375 Processes: 8 Usage of /: 0.5% of 250.98GB Users logged in: 0 Memory usage: 0% IPv4 address for eth0: 172.22.158.246 Swap usage: 0% 0 updates can be applied immediately. The list of available updates is more than a week old. To check for new updates run: sudo apt update This message is shown once a day. To disable it please create the /root/.hushlogin file. root@{hostname}:/mnt/d/Ubuntu-22.04#실행하게 되면 root 로 변경되어 있다. root 사용자로서 사용하기 원한다면 바꾸지 않아도 되나, sudo 권한을 가진 사용자가 더 익숙하고 안정적이므로 다음과 같은 방법으로 변경한다. PowerShell껐다가 다시 관리자 권한으로 PowerShell 실행-nlo는 username이다.-PS C:\Windows\system32>에서 cd .. 2번하고 아래 위치 찾아가서 ubuntu2204 config —default-user nlo와 같이 입력PS C:\Users\{host_id}\AppData\Local\Microsoft\WindowsApps> ubuntu2204 config —default-user nlo PS C:\Users\{host_id}\AppData\Local\Microsoft\WindowsApps> wsl To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. ryan@{host_name}:/mnt/c/Users/{host_id}/AppData/Local/Microsoft/WindowsApps$4. 「영상과 동일하게 Vivado설치 (설치가이드북의 step1, step2)」root계정에서sudo apt-get update # apt-get 파일리스트 update sudo apt upgrade -y sudo apt install gcc -y # gcc 설치 sudo apt install g++ -y # g++ 설치 sudo apt install unzip -y # unzip 설치 sudo apt-get install libtinfo5 libncurses5 libxrender1 -y # vivado 구동을 위한 library 설치 sudo apt install libncurses5-dev libncursesw5-dev libtinfo-dev –y sudo apt-get install libxrender1 #libXrender.so.1 문제 sudo apt-get update #libXtst.so.6 문제 sudo apt-get install libxtst6 sudo apt-get install libxi6 libgconf-2-4 # libXi.so.6 문제 sudo apt-get install language-pack-en-base #영어 언어팩이 설치가 안되어 있는 경우도 있음 그 경우 Vivado가 실행이 안됨 (이를 확인하는 방법: locale -a)이전에 설치 하면서 오류가 있었기 때문에 설치가이드에 있는거 말고도 위와 같이 추가 설치 진행함(정확한 에러 원인을 못 찾았기 때문에 꼭 필요한지는 확실치 않음.) ./Xilinx_Unified_2022.2_1118_1232_Lin64.bin -- -b AuthTokengenAMD 이메일주소, 비밀번호 입력 ./Xilinx_Unified_2022.2_1118_1232_Lin64.bin -- -b ConfigGen Vivado (2), standard(1) 선택 vi /root/.Xilinx/install_config.txt설치 경로변경(home/nlo/tools/Xilinx), 필요없는거 설치 X(0으로 변경)(/mnt/d에 설치하지 않아도 리눅스가 D드라이브에 있기 때문에 D드라이브에 설치 됨.) ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin -- -a XilinxEULA,3rdPartyEULA -b Install -c /root/.Xilinx/install_config.txt5. 「영상과 동일하게 (설치가이드북 step3)」 exit # root 계정 종료. source ./tools/Xilinx/Vivado/2022.2/settings64.sh # 설치한 Vivado 의 환경을 잡아주는 shell vivado & # vivado 실행되는지 확인 user계정에서 cd ~ #home디렉토리로 이동 vi .bashrc맨 밑줄에 입력모드(a 또는 Ins키)로 변경 후 source ./tools/Xilinx/Vivado/2022.2/settings64.sh 입력 후 저장하고 나가기(esc->:wq)삭제 후 다시 설치하고 싶을 땐 rm -rf tools와 같이 vivado를 설치한 디렉토리를 삭제하고 wsl --unregister Ubunut-22.04관리자 권한 powershell에서 위와 같이 우분투를 삭제한다. 그리고 다시 우분투에 들어가 username, password부터 다시 시작한다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Step 2. command line 으로 vivado 설치과정 오류질문
# 2021.2 이상 버전 은 다음과 같이 명령어를 치시면 됩니다. ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin -- -a XilinxEULA,3rdPartyEULA -b Install -c /root/.Xilinx/install_config.txt step2 마지막 단계에서 문제가 생겼습니다 ㅜ_ㅜ입력을 하고 설치 과정에서 다음과 같은 오류가 뜹니다. 어떻게 해결해야 하나요?!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
11장 카운터 실습 코드에 대한 질문입니다.
코드를 보면 카운터에는 else if 쪽에 cnt < 100으로 100 이전까지 1씩 증가하도록 하였고 always 카운터에서는 cnt_always == 100-1로 설계하셨는데 왜 cnt_always = 99으로 적지않고 저렇게 적으셨나요? 간혹 저렇게 9를 10-1로 적거나 연산을 넣어서 표기하는 경우를 본것같은데 왜 그렇게 하는지 궁금합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Serial terminal 무응답
안녕하세요 Lab3 실습을 진행했습니다.이 과정에서 동일하게 했음에도 불구하고 Vitis에서 진행했을때 Vitis Serial Terminal이 무응답입니다.Digilent driver도 설치하고 Vivado driver도 설치해보고 Vivado자체를 최신버전 2023.1로 설치를 해보아도 시리얼 통신이 안됩니다ㅠㅠ그리고 Vitis에서 Launch Hardware를 하면 FPGA보드의 DONE LED가 동시에 켜집니다..또한 Launch Hardware를 실행시킬때 두번에 한번씩은 'could not find fpga device on the board for connection 'local' '라는 오류가 뜹니다..이에 대한 해결법으로 구글링해서 드라이버 설치하라는거 다 해봤는데도 안되네요ㅠㅠ뭐가 문제일까요.이번 실습 뿐 아니라 모든 실습 + 제 프로젝트까지도 무응답입니다..ㅜㅜ
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
chapter_1 ./build에 관하여 여쭙고 싶습니다.
vivado를 직접 실행시키는 것은 문제가 없는데 ./build를 치면 이렇게 뜨는데 해결 방법을 알 수 있을까요?
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
Counter를 이용한 LED 제어 실습 부분 관련 문의 입니다
안녕하세요.강의노트가 Counter를 이용한 LED 제어 - 10은 78 페이지이고, Counter를 이용한 LED 제어 - 11는 106 페이지 입니다.Counter를 이용한 LED 제어 - 12는 80페이지 인데,79페이지는 누락된것 인가요?아니면 실습진행에 없어도 되는 페이지라서 106페이지로 대체를 하신건가요?그리고 Counter를 이용한 LED 제어 - 11에 나와있는 코드는 어떤 파일을 수정해서 작성 하는것인가요?
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 4강] PS 영역에 대해
안녕하세요.강의를 보면서, Processing system에 대해 궁금증이 생겨 질문 드립니다. 일단 저는 Quartus로 Verilog HDL을 조금 배운 학부생 3학년이고, Xilinx Tool은 완전히 처음 접해봅니다. 원래 Vitis HLS에 관심이 생겨서 알아보다 이 강의를 수강하기에 이르렀네요.Vitis에서 C Code를 작성하는 이유가 궁금합니다.Zynq에는 ARM Cortex A9 Processor가 있기 때문에, Vitis에서 C Code를 작성해도 FPGA에 들어갈 수 있는 것인가요? C Code가 Compile되어 ARM Assembly Code가 되고, 그 Assembly Code가 ARM Cortex A9 Processor에서 돌아가는 것인지 궁금합니다.Vitis HLS에서는 C Code가 Logic Gate로?제가 알기로는 Vitis HLS가 C/C++ Code를 Verilog HDL로 바꾸어준다고 이해하고 있는데, 이 이해가 맞나요?그러면, 위에서 말한 것처럼 Vitis에서 작성한 C Code와 Vitis HLS에서 작성한 C Code는 완전히 다른 것인가요? 양질의 강의 감사드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
./build 실행 후 Warning 메시지 관련 문의 입니다.
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 맛비님,빌드 실행 하고 나면WARNING: [XSIM 43-3479] Unable to increase the current process stack size.위와 같은 WARNING 메시지가 발생 하는데,원인이 무엇인지 알 수 있을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
make 실행이 되질 않습니다
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요.Chapter2 실습 파일을 실습 하기 위해서make 명령어를 실행 했는데, 아래와 같은 에러 메시지가 나오면서 실행파일이 생성되질 않습니다.도움 부탁드립니다! make: g++: No such file or directorymake: *** [Makefile:15: test] Error 127
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치관련 질문입니다.
settings64.sh가 없다고 나와서 따라해봤는데 xvlog가 안되네요..여러변 처음부터 다시 해봐도 똑같습니다. 어떻게 해봐야할까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 15장] BRAM Data Mover 모듈 설계 질문
안녕하세요 ! 다름이 아니라 초보자 입장에서 문득 햇갈리는 부분이 있어서 질문 남겨드립니다. data mover bram 코드 리뷰를 해주셨는데 해당 코드를 testbench를 포함하여 직접 다 작성한 것인지 아니면 templet 코드를 수정한 것인지 궁금합니다. 항상 친절하고 꼼꼼한 강의 감사합니다 !
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Verilog Module argument에 대해 질문이 있습니다.
안녕하세요.Vivado Xilinx에서 찾을 수 있는 'xilinx_true_dual_port_no_change_2_clock_ram'의 Verilog 코드를 분석하다가 막힌 부분이 있어서 질문을 드립니다.이해가 되지 않는 부분은 모듈의 인자값 addra, addrb의 정의부분입니다.해당코드는 메모리를 정의해주는 코드이기에 메모리의 Depth길이에 따라서 input으로 받는 Address의 길이를 모듈내에 정의된 함수 'clogb2'로 설정합니다.궁금한것은 모듈내부에 정의된 함수로 모듈 인자값을 설정할 수 있는 것이 궁금합니다.무엇보다 본 코드는 Xilinx에서 제공한 것인데, RTL코드를 Block Design 모듈로 불러올때 함수를 사용하는 부분에서 Error가 나옵니다.(단, clogb2(RAM_PEPTH-1)를 다른 숫자로 치환하면 Error는 없음) module xilinx_true_dual_port_no_change_2_clock_ram #( parameter RAM_WIDTH = 18, // Specify RAM data width parameter RAM_DEPTH = 2048, // Specify RAM depth (number of entries) parameter RAM_PERFORMANCE = "HIGH_PERFORMANCE", // Select "HIGH_PERFORMANCE" or "LOW_LATENCY" parameter INIT_FILE = "" // Specify name/location of RAM initialization file if using one (leave blank if not) ) ( input [clogb2(RAM_DEPTH-1)-1:0] addra, // Port A address bus, width determined from RAM_DEPTH input [clogb2(RAM_DEPTH-1)-1:0] addrb, // Port B address bus, width determined from RAM_DEPTH input [RAM_WIDTH-1:0] dina, // Port A RAM input data input [RAM_WIDTH-1:0] dinb, // Port B RAM input data input clka, // Port A clock input clkb, // Port B clock input wea, // Port A write enable input web, // Port B write enable input ena, // Port A RAM Enable, for additional power savings, disable port when not in use input enb, // Port B RAM Enable, for additional power savings, disable port when not in use input rsta, // Port A output reset (does not affect memory contents) input rstb, // Port B output reset (does not affect memory contents) input regcea, // Port A output register enable input regceb, // Port B output register enable output [RAM_WIDTH-1:0] douta, // Port A RAM output data output [RAM_WIDTH-1:0] doutb // Port B RAM output data ); reg [RAM_WIDTH-1:0] BRAM [RAM_DEPTH-1:0]; reg [RAM_WIDTH-1:0] ram_data_a = {RAM_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] ram_data_b = {RAM_WIDTH{1'b0}}; // The following code either initializes the memory values to a specified file or to all zeros to match hardware generate if (INIT_FILE != "") begin: use_init_file initial $readmemh(INIT_FILE, BRAM, 0, RAM_DEPTH-1); end else begin: init_bram_to_zero integer ram_index; initial for (ram_index = 0; ram_index < RAM_DEPTH; ram_index = ram_index + 1) BRAM[ram_index] = {RAM_WIDTH{1'b0}}; end endgenerate always @(posedge clka) if (ena) if (wea) BRAM[addra] <= dina; else ram_data_a <= BRAM[addra]; always @(posedge clkb) if (enb) if (web) BRAM[addrb] <= dinb; else ram_data_b <= BRAM[addrb]; // The following code generates HIGH_PERFORMANCE (use output register) or LOW_LATENCY (no output register) generate if (RAM_PERFORMANCE == "LOW_LATENCY") begin: no_output_register // The following is a 1 clock cycle read latency at the cost of a longer clock-to-out timing assign douta = ram_data_a; assign doutb = ram_data_b; end else begin: output_register // The following is a 2 clock cycle read latency with improve clock-to-out timing reg [RAM_WIDTH-1:0] douta_reg = {RAM_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] doutb_reg = {RAM_WIDTH{1'b0}}; always @(posedge clka) if (rsta) douta_reg <= {RAM_WIDTH{1'b0}}; else if (regcea) douta_reg <= ram_data_a; always @(posedge clkb) if (rstb) doutb_reg <= {RAM_WIDTH{1'b0}}; else if (regceb) doutb_reg <= ram_data_b; assign douta = douta_reg; assign doutb = doutb_reg; end endgenerate // The following function calculates the address width based on specified RAM depth function integer clogb2; input integer depth; for (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >> 1; endfunction endmodule
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
Counter를 이용한 LED 제어 실습 관련 문의
안녕하세요.Counter를 이용한 LED 제어 실습 중 마지막 부분에서LED 점등이 되지 않아 문의 드립니다.vitis에서 빌드까지는 성공 하였고,Run As 혹은 Debus As 실행 시 저는 강의노트에서 보이는것 처럼 보드에 점등이 되질 않네요.무엇이 문제인지 모르겠습니다.. Vitis Log를 보니, 에러 메시지는 아래와 같습니다.14:56:28 ERROR : Could not find ARM device on the board for connection 'Local'.Check if the target is in:1. Split JTAG - No operations are possible with ARM DAP.2. Non JTAG bootmode - Bootrom may need time to enable DAP.Please try again.Troubleshooting hints:1. Check whether board is connected to system properly.2. In case of zynq board, check whether Digilent/Xilinx cable switch settings are correct.3. If you are using Xilinx Platform Cable USB, ensure that status LED is green.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Xilinx Zynq FSBL 방법에 대해서 궁금합니다.
보드로 맛비님 강의도 듣고, 실습 해보던 중에Zynq FSBL(First Stage Bootloader) 방법이 있더라구요.이 방법과 강의에서 사용하는 방법이 어떻게 다른지,Zybo Z7-10 보드로도 가능한 것인지 궁금합니다!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
빌드/디버깅 시 JTEG 관련 문
안녕하세요.다름이 아니라 혹시 Debug As 나 Run As 실행 시 아래와 같은 에러가 발생 하는 경우에는어떻게 해결해야 하는지 도움을 주실 수 있으실까요? 저는 현재 아래 사진의 ZYBO Z7 보드를 사용하고 있습니다.
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
Zynq 보드 다운로드 - 32~33 부분 실행이 안됩니다.
Zynq 보드 다운로드 - 32~33 부분을 진행 중 입니다.그런데 아래와 같은 에러메시지가 나오면서 동작하질 않네요.. 저는 현재 Zybo-z7-10 보드를 사용 중입니다.