Store and share experiences about robocon, IoT, Embedded...
  • Home
  • Linux
  • Window
    • Latex
    • Matlab
  • Embedded programming
    • Jetson Tx1
    • Raspberry Pi
    • Raspberry Pico
  • Internet of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
    • ESP32
  • Electronics and robots
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Network and devices
    • Basic CCNA
  • IoT Server
  • Q&A (Hỏi đáp)
  • About
No Result
View All Result
  • Home
  • Linux
  • Window
    • Latex
    • Matlab
  • Embedded programming
    • Jetson Tx1
    • Raspberry Pi
    • Raspberry Pico
  • Internet of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
    • ESP32
  • Electronics and robots
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Network and devices
    • Basic CCNA
  • IoT Server
  • Q&A (Hỏi đáp)
  • About
No Result
View All Result
Store and share experiences about robocon, IoT, Embedded...
No Result
View All Result
Home Điện tử- Robot FPGA

Thực thi lõi RISCV lên mạch FPGA Xillinx Arty 35T

admin by admin
November 24, 2019
in FPGA, RISCV
0 0
0

Main contents

  1. Giới thiệu
  2. Yêu cầu về phần cứng
  3. Kết nối phần cứng
  4. Phần mềm:

Giới thiệu

Giới thiệu thực hành trên board FPGA Xilinx Arty7 35T ( giá khoảng 200$) và khảo sát hoạt động của lõi vi xử lý sử dụng kiến trúc tập lệnh mã nguồn mở RISCV ( vi xử lý FE300 RISCV của SiFive). Project này sẽ thực hiện kết nối cổng JTAG trên Arty 7 với Olimex ARM-USB-TINY-H Debugger, cài đặt phần mềm Vivado, biên dịch FE310 bitstream để nạp vào Arty 7, lập trình một số ứng dụng cơ bản về GPIO lên vi xử lý SiFive FE310.

Yêu cầu về phần cứng

– Board mạch Artix-7 35T Arty FPGA Evaluation Kit

– Olimex ARM-USB-TINY-H Debugger

Kết nối phần cứng

Sơ đồ chân Port JD trên Arty 7 Sơ đồ chân trên Olimex Jtag

Sơ đồ đấu nối

Phần mềm:

Tất cả các phần mềm thực hiện trong Project này được cài đặt trên Ubuntu 16.04 64bit

Phần mềm Vivado của Xilinx ( Trong project này dùng bản 2016.2)

– Có thể cài đặt phiên bản Webpack ( bản miễn phí)

– Trong cài đặt cần chọn Artix-7

Cài đặt các gói phần mềm cần thiết

– Di chuyển đến thư mục Home, tạo thư mục RISCV để chứa các file cần thiết cho Project.

mkdir /home/user_name/riscv

– Tải các board files cho Vivado. Sau khi tải xong có thể copy trực tiếp đến thư mục chứa Board file của Vivado.

Shell
1
2
git clone https://github.com/Digilent/vivado-boards
cp -rv ./vivado-boards/new/board_files/* /opt/Digilent/Xilinx/Vivado/2017.1/data/boards/board_files/

– Cài đặt các Toolchain build sẵn cho RISCV, trong đó có GNU Embedded và Open OCD

Shell
1
2
wget -c https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14.tar.gz
wget -c https://static.dev.sifive.com/dev-tools/riscv-openocd-0.10.0-2018.12.0-x86_64-linux-ubuntu14.tar.gz

– Giải nén các file vừa download

Shell
1
2
tar xf riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14.tar.gz
tar xf riscv-openocd-0.10.0-2018.12.0-x86_64-linux-ubuntu14.tar.gz

– Sửa lại tên các folder mới giải nén thành riscv64-unknow-elf và riscv-openocd (mục đích cho ngắn gọn)

– Cài đặt gói phần mềm sau để thực hiện chạy OPENOCD

sudo apt install libftdi1-dev

– Kiểm tra xem các công cụ vừa tải là GCC và OPENOCD đã hoạt động chưa.

– Cài đặt udev rule cho Olimex JTAG

+ Tạo file 99-openocd.rules, thêm các dòng sau

Shell
1
2
SUBSYSTEM=="tty", ATTRS{idVendor}=="15ba",ATTRS{idProduct}=="002a", MODE="664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="15ba",ATTR{idProduct}=="002a", MODE="664", GROUP="plugdev"

– Kiểm tra các cổng USB Olimex và USB của Xilinx:

ls -lha /dev/ttyUSB*

– Tải SiFive Freedom Respository

git clone –recursive https://github.com/sifive/freedom

Di chuyển vào freedom

cd freedom/

Biên dịch file mcs từ freedom cho Arty 7

– Cài đặt các biến môi trường cần thiết cho việc biên dịch

1
2
<span class="TextRun SCXO69629343 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO69629343 BCX0">export  RISCV=/home/</span><span class="SpellingError SCXO69629343 BCX0">ngoctuan</span><span class="NormalTextRun SCXO69629343 BCX0">/</span><span class="SpellingError SCXO69629343 BCX0">riscv</span><span class="NormalTextRun SCXO69629343 BCX0">/</span></span><span class="TextRun SCXO69629343 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO69629343 BCX0">riscv64-elf-tc</span></span><span class="EOP SCXO69629343 BCX0"> </span>
<span class="NormalTextRun SCXO90643859 BCX0">export PATH=/opt/Xilinx/</span><span class="SpellingError SCXO90643859 BCX0">Vivado</span><span class="NormalTextRun SCXO90643859 BCX0">/2017.1/bin:$PATH</span>

– Cài đặt một số phần mềm trước khi biên dịch file mcs.

1
2
3
sudo apt-get  install  default-jre
sudo apt-get install default-jdk
sudo apt install device-tree-compiler (fix error: dtc: Command not found)

– Thực hiện lệnh

1
2
3
4
make BOARD=arty -f Makefile.e300artydevkit clean
make BOARD=arty -f Makefile.e300artydevkit verilog
source /opt/Xilinx/Vivado/2016.2/settings64.sh
make BOARD=arty -f Makefile.e300artydevkit mcs

– Thiết lập Vivado, nạp file mcs cho Arty 7

Kết nối Olimex USB với Arty 7, kết nối Arty 7 với máy tính chạy Vivado qua cáp micro USB

Thực hiện theo thứ tự sau:

Flow → Open Hardware Manager

  • Open Target → Auto Connect

Chuột phải vào xc7a35t, chọn Add Cofirguration Memory Device, chọn như hình dưới

Load *.mcs file:

/home/user_name/riscv/freedom/builds/e300artydevkit/obj/E300ArtyDevKitFPGAChip.mcs

– Nhấn nút Prog trên Arty để Reload lại file cấu hình vào Artix-7

Tải các file SiFive Freedom E SDK, biên dịch để lập trình cho lõi RISCV trên Arty-7

– Di chuyển về folder riscv

git clone –recursive https://github.com/sifive/freedom-e-sdk.git

cd freedom-e-sdk/

– Thiết lập các biến môi trường cần thiết, chú ý không chạy ở quyền sudo

Shell
1
2
export RISCV_OPENOCD_PATH=/home/ngoctuan/riscv/riscv-openocd
export RISCV_PATH=/home/ngoctuan/riscv/riscv64-elf-tc

– Biên dịch các chương trình c để test GPIO

Shell
1
2
3
make BSP=metal PROGRAM=hello TARGET=freedom-e310-arty upload
make BSP=metal PROGRAM=hello TARGET=freedom-e310-arty software
make BSP=metal PROGRAM=hello TARGET=freedom-e310-arty clean

 Thực hiện cài phần mềm giao tiếp Serial tio: https://tio.github.io/

Thực hiện lệnh sau quan sát kết quả

$ tio /dev/ttyUSB1  -b57600

Nguồn tham khảo: https://www.digikey.com/eewiki/display/LOGIC/Digilent+Arty+A7+with+Xilinx+Artix-7+Implementing+SiFive+FE310+RISC-V#DigilentArtyA7withXilinxArtix-7ImplementingSiFiveFE310RISC-V-DownloadtheSiFiveFreedomrepository 

 

Số lượt xem: 451

Related Posts

No Content Available

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Bài viết đọc nhiều

IoT Webserver- ESP8266/ESP32 gửi dữ liệu lên Cloud, hiển thị ra trình duyệt web với MySQL và PHP

IoT Webserver- ESP8266/ESP32 gửi dữ liệu lên Cloud, hiển thị ra trình duyệt web với MySQL và PHP

February 9, 2023
17.6k
Điều khiển ESP8266/ESP32 từ xa qua internet, không cần mở Port modem

Điều khiển ESP8266/ESP32 từ xa qua internet, không cần mở Port modem

November 7, 2019
10.7k
ESP32-CAMERA: Cài đặt môi trường Arduino IDE và nạp chương trình

ESP32-CAMERA: Cài đặt môi trường Arduino IDE và nạp chương trình

December 27, 2019
7.3k
IoT webserver- Gửi thông báo bằng email từ ESP8266 không dùng IFTTT

IoT webserver- Gửi thông báo bằng email từ ESP8266 không dùng IFTTT

November 19, 2020
5.7k
Store and share experiences about robocon, IoT, Embedded…

Lưu và chia sẻ những gì đã đọc, đã làm, đã nghiên cứu về vi điều khiển, hệ thống nhúng, internet of things, kiến trúc máy tính và hệ điều hành.

Liên hệ với quản trị viên

Chủ đề

  • Arduino
  • CCNA cơ bản
  • Cisco
  • Điện tử- Robot
  • ESP32
  • FPGA
  • HTTP+MySQL cho IoT
  • IoT Server
  • Jetson Tx1
  • Lập trình nhúng
  • Latex
  • Linux
  • Mạng và thiết bị mạng
  • Raspberry Pi
  • Raspberry Pico
  • RISCV
  • Robocon
  • Web of things
  • Websocket+Nodejs
  • Window
  • WordPress

Quản trị trang

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

© 2019- 2023 luuvachiase.net - Phát triển và quản trị bởi Đỗ Ngọc Tuấn và Nguyễn Văn Tuấn ***Vui lòng ghi rõ nguồn khi trích dẫn bài viết từ Website này. DMCA.com Protection Status

No Result
View All Result
  • Trang chủ
  • Linux
  • Window
  • Lập trình nhúng
    • Jetson Tx1
    • Raspberry Pi
  • Web of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
  • Điện tử- Robot
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Mạng và thiết bị mạng
    • CCNA cơ bản
  • IoT Server
  • Giới thiệu
  • Q&A (Hỏi đáp)

© 2019- 2023 luuvachiase.net - Phát triển và quản trị bởi Đỗ Ngọc Tuấn và Nguyễn Văn Tuấn ***Vui lòng ghi rõ nguồn khi trích dẫn bài viết từ Website này. DMCA.com Protection Status

Login to your account below

Forgotten Password?

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In