Skip to content

Instantly share code, notes, and snippets.

@olegslavkin
Last active May 11, 2024 15:03
Show Gist options
  • Save olegslavkin/8aa46bf2500488dc69634ed6e705f28a to your computer and use it in GitHub Desktop.
Save olegslavkin/8aa46bf2500488dc69634ed6e705f28a to your computer and use it in GitHub Desktop.
Lattice ECP5-5G Versa Development Kit

Первое включение.

Поведение индикаторов devboard

  • При первом включение горят постоянно светодиоды: D20, D9, D11, D12, D31 (green), D13 (blue)
  • Светодиоды D21 - D29 включаются по-переменно.
  • 14-ти сегментный дисплей по-переменно включаются все сегменты, включая точку справа.

Сообщения в Linux

$ dmesg
...
[176582.424605] usb 1-2: new high-speed USB device number 30 using xhci_hcd
[176582.577817] usb 1-2: New USB device found, idVendor=0403, idProduct=6010, bcdDevice= 7.00
[176582.577819] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[176582.577820] usb 1-2: Product: Lattice ECP5_5G VERSA Board
[176582.577820] usb 1-2: Manufacturer: FTDI
[176582.577821] usb 1-2: SerialNumber: FTS7S0C
[176583.123527] usbcore: registered new interface driver usbserial_generic
[176583.123533] usbserial: USB Serial support registered for generic
[176583.128836] usbcore: registered new interface driver ftdi_sio
[176583.128843] usbserial: USB Serial support registered for FTDI USB Serial Device
[176583.128868] ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
[176583.128883] usb 1-2: Detected FT2232H
[176583.129055] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
[176583.129086] ftdi_sio 1-2:1.1: FTDI USB Serial Device converter detected
[176583.129106] usb 1-2: Detected FT2232H
[176583.129360] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1

docker (host)

unset ${PROJECT}
export PROJECT=ecp5_5g
mkdir -p ~/Projects/${PROJECT} && cd "$_"
# Plug miniUSB to Host and Turn On DevBoard
docker run -it --rm -v $(pwd):/host -v /dev:/dev -w /host --privileged \
   --net host -h ${PROJECT} --name ${PROJECT} \
   ubuntu:18.04

docker (container)

Prepare container

export ECP5_5G=/host
export ECP5_5GSRC=${ECP5_5G}/src
apt update -y && apt install python3-dev clang cmake git libboost-all-dev libboost-python-dev -y

Clone and install Trellis

mkdir -p ${ECP5_5GSRC} && cd "$_"
git clone --recursive https://github.com/SymbiFlow/prjtrellis
cd prjtrellis/libtrellis
cmake -DCMAKE_INSTALL_PREFIX=/host/tools .
make -j $(nproc) && make install

Clone and install Yosys

cd ${ECP5_5GSRC}
apt install -y build-essential clang bison flex \
 libreadline-dev gawk tcl-dev libffi-dev git \
 graphviz xdot pkg-config python3 libboost-system-dev \
 libboost-python-dev libboost-filesystem-dev
git clone https://github.com/YosysHQ/yosys
cd yosys
make config-clang
export PREFIX=/host/tools
make -j $(nproc) && make install

Clone, compile and install nextpnr

cd ${ECP5_5GSRC}
apt install -y qt5-default libeigen3-dev
git clone https://github.com/YosysHQ/nextpnr
cd nextpnr/
cmake -DARCH=ecp5 -DTRELLIS_ROOT=${ECP5_5GSRC}/prjtrellis \
      -DTRELLIS_INSTALL_PREFIX=/host/tools \
      -DCMAKE_INSTALL_PREFIX=/host/tools \
      -DBUILD_GUI=OFF .
make -j$(nproc) && make install

Syn Hello World

export PATH=/host/tools/bin/:$PATH
cd ${ECP5_5GSRC}/prjtrellis/examples/versa5g
make demo.svf
root@ecp5_5g:/mnt/src/prjtrellis/examples/versa5g# ls -all demo.bit 
-rw-r--r-- 1 root root 1032299 May 13 22:37 demo.bit

root@ecp5_5g:/mnt/src/prjtrellis/examples/versa5g# make prog
openocd -f /usr/share/trellis/misc/openocd/ecp5-versa5g.cfg -c "transport select jtag; init; svf demo.svf; exit"
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
none separate
adapter speed: 25000 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Warn : Transport "jtag" was already selected
Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"
Info : clock speed 25000 kHz
Info : JTAG tap: ecp5.tap tap/device found: 0x81112043 (mfg: 0x021 (Lattice Semi.), part: 0x1112, ver: 0x8)
Warn : gdb services need one or more targets defined
svf processing file: "demo.svf"
HDR     0;
HIR     0;
TDR     0;
TIR     0;
ENDDR   DRPAUSE;
ENDIR   IRPAUSE;
STATE   IDLE;
SIR     8       TDI  (E0);
                        MASK (FFFFFFFF);
SIR     8       TDI  (1C);
                                FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
SIR     8       TDI  (C6);
SDR     8       TDI  (00);
RUNTEST IDLE    2 TCK   1.00E-02 SEC;
SIR     8       TDI  (3C);
                        MASK (0000B000);
SIR     8       TDI  (46);
SDR     8       TDI  (01);
RUNTEST IDLE    2 TCK   1.00E-02 SEC;
SIR     8       TDI  (7A);
RUNTEST IDLE    2 TCK   1.00E-02 SEC;
                        007F248941000000620000000200000044C204888100000047000000DCFFFFFFFFCDBDFFFFFF00FF);
                        00000000000000000000000000000000000004000004004004804000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000FFE9BA0000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000008060000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000FF304400000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000FF3044000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000FF90458000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000000000000000FF679F00000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000FF3044000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000000000000000000000000000FF30440000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000000000000000000000000000000000000000FF304400000000);
                        44000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000FF3044);
                        0000FF30440000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000FF304400000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000010FF3044000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000FF30440000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000000010FF679F00000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000FF3044000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000000000000000000000FF30440000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000000000000000000000000000000000FF304400000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000FF3044000000);
                        30440000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000000000000000000000000000000000000000000000FF30);
                        000000FF304400000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000FF3044000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000FF30440000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000FF304400000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000FF3044000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000000000000000FF30440000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        000000000000000000000000000000000000000000000000000000FF304400000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000FF3044000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
                        0000000000000000000000000000000000000000000000000000000000000000000000FF30440000);
                        FF304400000000000000000000000000000000000000000000000000000000000000000000000000);
                        00000000000000000000000000000000000000000000000000000000000000000000000000000000);
SIR     8       TDI  (FF);
RUNTEST IDLE    100 TCK 1.00E-02 SEC;
SIR     8       TDI  (C0);
RUNTEST IDLE    2 TCK   1.00E-03 SEC;
                        MASK (FFFFFFFF);
SIR     8       TDI  (26);
RUNTEST IDLE    2 TCK   2.00E-01 SEC;
SIR     8       TDI  (FF);
RUNTEST IDLE    2 TCK   1.00E-03 SEC;
SIR     8       TDI  (3C);
                        MASK (00002100);

Time used: 0m1s12ms 
svf file programmed successfully for 115 commands with 0 errors
root@ecp5_5g:/mnt/src/prjtrellis/examples/versa5g#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment