sudo /tools/Xilinx/Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
login again to apply the setting
sudo /tools/Xilinx/Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
login again to apply the setting
Vivado CLI execute Tcl script
vivado_hls -f script.tcl
Vivado CLI interactive mode
vivado_hls -i [-l <logfile>]
if not specific the clock uncertainty, default value is 12.5%
Tcl script example
## Tcl script example from Xilinx Introduction to High-Level Snthesis
open_project my.prj
set_top dct
add_files dct.cpp
add_files -tb dct_test.cpp
add_files -tb in.dat
add_files -tb out.golden.dat
open_solution "solution1"
set_part {xc7k160tfbg848-1}
create_clock -period 10
source "./my.prj/solution1/directives.tcl"
csynth_design
Unsupported C Language Constructs
system call (e.g. printf, system, time...etc)
dynamic memory & functions (.e.g. malloc, new)
virtual function
pointer casting
recursive function
Most of STL library which contains recursive and dynamic allocation
Important Notes
Use APCC to compile the intN data type, gcc doesn't support this data type
Must be care if use access pointer with the same function multiple time
vscode plugin required: scope4code
Build database
Press F1, enter Cscope: Build database to start building
Hotkey
Solve "Visual Studio Code is unable to watch for file changes in this large workspace" (error ENOSPC)#
Before adjusting platform limits, make sure that potentially large folders, such as Python .venv, are added to the files.watcherExclude setting.
The limit can be increased to its maximum by editing /etc/sysctl.conf (except on Arch Linux, read below) and adding this line to the end of the file:
fs.inotify.max_user_watches=524288
The new value can then be loaded in by running sudo sysctl -p.
The device tree is located at
cd /proc/device-tree/
lrwxrwxrwx device-tree -> /sys/firmware/devicetree/base
Install tree package to view the device tree hierarchy
further investigate the content
plain text file: cat (file)
hex file: hexdump -C (file)
make menuconfig
1) Select Global build settings
2) Select Kernel build options
3) Select [*] /dev/mem virtual device support
4) Return to main menu
5) select Base System
6) select <*> busybox
7) select <*>Customize busybox options
8) select Miscellaneous Utilities
9) select <*> devmem (2.5 kb)
Usage: devmem ADDRESS [WIDTH [VALUE]]
Read/write from physical address
ADDRESS Address to act upon, for example 0x????????
WIDTH Width (8/16/...)
VALUE Data to be written, for example 0x????????
read 32bit register: devmem address
read 16bit register: devmem address 16
read 8bit register: devmem address 8
write 32bit register: devmem address 32 value
write 16bit register: devmem address 16 value
write 8bit register: devmem address 8 value