oscimp / oscimpdigital Goto Github PK
View Code? Open in Web Editor NEWOscillatorIMP ecosystem for the digital characterization of ultrastable oscillators and Software Defined Radio (SDR) frontend processing
License: Other
OscillatorIMP ecosystem for the digital characterization of ultrastable oscillators and Software Defined Radio (SDR) frontend processing
License: Other
Hello everyone,
I am really interested in trying your platform for resonator characterization, but unfortunately I am having some trouble with the installation on the RedPitaya (14 bit version).
After running sudo make install_nfsdir (https://github.com/oscimp/oscimpDigital/wiki/2Prepare#drivers)
I made sure to follow every instruction, including adding Path and sourcing the variables.
bernardo@bernardo-ThinkPad-X230:~/oscimpDigital/linux_driver$ sudo make install_nfsdir make -C add_const_core install; make -C axi_to_dac_core install; make -C data_dma_direct_core install; make -C data_to_ram_core install; make -C edfb_core install; make -C fft_core install; make -C fir_core install; make -C fpgagen_core install; make -C nco_counter_core install; make -C pidv3_axi_core install; make -C redpitaya_converters_12_core install; make -C switch_core install; make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' Makefile:2: /Makefile.inc: No such file or directory make[1]: *** No rule to make target '/Makefile.inc'. Stop. make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/axi_to_dac_core' Makefile:2: /Makefile.inc: No such file or directory (...) for all instances make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/redpitaya_converters_12_core' make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/switch_core' Makefile:2: /Makefile.inc: No such file or directory make[1]: *** No rule to make target '/Makefile.inc'. Stop. make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/switch_core' Makefile:7: recipe for target 'install_nfsdir' failed make: *** [install_nfsdir] Error 2
Running only make install_nfsdir yields:
bernardo@bernardo-ThinkPad-X230:~/oscimpDigital/linux_driver$ make install_nfsdir make -C add_const_core install; make -C axi_to_dac_core install; make -C data_dma_direct_core install; make -C data_to_ram_core install; make -C edfb_core install; make -C fft_core install; make -C fir_core install; make -C fpgagen_core install; make -C nco_counter_core install; make -C pidv3_axi_core install; make -C redpitaya_converters_12_core install; make -C switch_core install; make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' make -C ~/buildroot-2020.11.1//output/build/linux-xilinx-v2019.1 SUBDIRS=/home/bernardo/oscimpDigital/linux_driver/add_const_core modules ARCH=arm \ CROSS_COMPILE=~/buildroot-2020.11.1//output/host/bin/arm-linux- make[2]: Entering directory '/home/bernardo/buildroot-2020.11.1/output/build/linux-xilinx-v2019.1' Building modules, stage 2. MODPOST 1 modules make[2]: Leaving directory '/home/bernardo/buildroot-2020.11.1/output/build/linux-xilinx-v2019.1' add_const_core.o mkdir -p /nfs/redpitaya/modules mkdir: cannot create directory โ/nfsโ: Permission denied /home/bernardo/oscimpDigital/linux_driver/Makefile.inc:33: recipe for target 'install' failed
My environment at the time of running:
XDG_VTNR=7 LC_PAPER=de_BE.UTF-8 LC_ADDRESS=de_BE.UTF-8 XDG_SESSION_ID=c2 XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/bernardo LC_MONETARY=de_BE.UTF-8 CLUTTER_IM_MODULE=xim SESSION=ubuntu GPG_AGENT_INFO=/home/bernardo/.gnupg/S.gpg-agent:0:1 TERM=xterm-256color VTE_VERSION=4205 SHELL=/bin/bash OSCIMP_DIGITAL_APP=/home/bernardo/oscimpDigital/app QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 WINDOWID=60880727 LC_NUMERIC=de_BE.UTF-8 OLDPWD=/home/bernardo/oscimpDigital UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1238 GNOME_KEYRING_CONTROL= GTK_MODULES=gail:atk-bridge:unity-gtk-module OSCIMP_DIGITAL_IP=/home/bernardo/oscimpDigital/fpga_ip USER=bernardo LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: LC_TELEPHONE=de_BE.UTF-8 QT_ACCESSIBILITY=1 UNITY_HAS_3D_SUPPORT=true XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh BR_DIR=~/buildroot-2020.11.1/ DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg UNITY_DEFAULT_PROFILE=unity DESKTOP_SESSION=ubuntu PATH=/~/buildroot-2020.11.1/output/host/usr/bin:/home/bernardo/bin:/home/bernardo/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/ QT_IM_MODULE=ibus QT_QPA_PLATFORMTHEME=appmenu-qt5 OSCIMP_DIGITAL_LIB=/home/bernardo/oscimpDigital/lib LC_IDENTIFICATION=de_BE.UTF-8 XDG_SESSION_TYPE=x11 PWD=/home/bernardo/oscimpDigital/linux_driver JOB=unity-settings-daemon XMODIFIERS=@im=ibus GNOME_KEYRING_PID= LANG=en_US.UTF-8 GDM_LANG=en_US MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path LC_MEASUREMENT=de_BE.UTF-8 COMPIZ_CONFIG_PROFILE=ubuntu IM_CONFIG_PHASE=1 OSCIMP_DIGITAL_DRIVER=/home/bernardo/oscimpDigital/linux_driver OSCIMP_DIGITAL_NFS=/nfs GDMSESSION=ubuntu SESSIONTYPE=gnome-session GTK2_MODULES=overlay-scrollbar SHLVL=1 HOME=/home/bernardo XDG_SEAT=seat0 LANGUAGE=en_US GNOME_DESKTOP_SESSION_ID=this-is-deprecated UPSTART_INSTANCE= UPSTART_EVENTS=xsession started XDG_SESSION_DESKTOP=ubuntu LOGNAME=bernardo COMPIZ_BIN_PATH=/usr/bin/ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-HMmCGZ5wBW XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop QT4_IM_MODULE=xim LESSOPEN=| /usr/bin/lesspipe %s INSTANCE= UPSTART_JOB=unity7 BOARD_NAME=redpitaya XDG_RUNTIME_DIR=/run/user/1000 DISPLAY=:0 IP=10.42.0.1 XDG_CURRENT_DESKTOP=Unity GTK_IM_MODULE=ibus LESSCLOSE=/usr/bin/lesspipe %s %s LC_TIME=de_BE.UTF-8 LC_NAME=de_BE.UTF-8 XAUTHORITY=/home/bernardo/.Xauthority _=/usr/bin/env
I should add some considerations:
The buildroot-2020.11.1 is untouched besides the instructions given in the Wiki.
The file Makefile.inc is indeed in the parent directory.
Anything else that would help this debugging I can happily provide.
Thank you very much for the help!
Hello everyone.
I am a user of the OscimpDigital framework and I would like to start by thanking you guys all the good work.
I use a 14b RedPitaya to do some signal processing on my sensors and wanted to implement a biquad structured IIR lpf with coefficients that could be accessed externally by the user and injected through the add_const IP. There would be no need to add these to the libOscimpDig libraries since I could change the coefficients in such a simple way like in the FIR IP.
I saw an (unfinished?) implementation of the IIR lpf (https://github.com/oscimp/fpga_ip/blob/master/iir_lpf_complex/hdl/iir_lpf_complex.vhd). I have tried to adapt this script (annexed) for my implementation, but when I tried connecting it to the other IPs the connections did not match.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity iir_lpf_complex is
generic (
DATA_WIDTH : natural := 16
);
port (
data_i_i : in std_logic_vector(DATA_WIDTH-1 downto 0);
data_q_i : in std_logic_vector(DATA_WIDTH-1 downto 0);
data_en_i : in std_logic;
data_clk_i : in std_logic;
data_rst_i : in std_logic;
data_i_o : out std_logic_vector(DATA_WIDTH-1 downto 0);
data_q_o : out std_logic_vector(DATA_WIDTH-1 downto 0);
data_en_o : out std_logic;
data_clk_o : out std_logic;
data_rst_o : out std_logic;
a0 : in signed(DATA_WIDTH-1 downto 0); -- Biquad filter coefficients
a1 : in signed(DATA_WIDTH-1 downto 0);
b0 : in signed(DATA_WIDTH-1 downto 0);
b1 : in signed(DATA_WIDTH-1 downto 0);
b2 : in signed(DATA_WIDTH-1 downto 0)
);
end entity;
architecture bhv of iir_lpf_complex is
signal data_i_1, data_i_2, data_i_3 : signed(DATA_WIDTH+1 downto 0) := (others => '0');
signal data_q_1, data_q_2, data_q_3 : signed(DATA_WIDTH+1 downto 0) := (others => '0');
signal en_i_1 : std_logic := '0';
begin
data_i_2 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_i_1 - b1 * data_i_3 - b2 * data_i_2;
data_q_2 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_q_1 - b1 * data_q_3 - b2 * data_q_2;
data_i_3 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_i_1 - a1 * data_i_3 - a0 * data_i_2;
data_q_3 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_q_1 - a1 * data_q_3 - a0 * data_q_2;
data_i_o <= std_logic_vector(data_i_1(DATA_WIDTH-1 downto 0));
data_q_o <= std_logic_vector(data_q_1(DATA_WIDTH-1 downto 0));
data_en_o <= en_i_1;
data_clk_o <= data_clk_i;
data_rst_o <= data_rst_i;
process(data_clk_i) is
begin
if rising_edge(data_clk_i) then
en_i_1 <= data_en_i;
if (data_rst_i = '1') then
en_i_1 <= '0';
data_i_1 <= (others => '0');
data_q_1 <= (others => '0');
data_i_2 <= (others => '0');
data_q_2 <= (others => '0');
data_i_3 <= (others => '0');
data_q_3 <= (others => '0');
end if;
if (data_en_i = '1') then
data_i_1 <= signed(data_i_i);
data_q_1 <= signed(data_q_i);
else
data_i_1 <= data_i_1;
data_q_1 <= data_q_1;
end if;
if (en_i_1 = '1') then
data_i_1 <= data_i_3;
data_q_1 <= data_q_3;
else
data_i_1 <= data_i_1;
data_q_1 <= data_q_1;
end if;
end if;
end process;
end architecture bhv;
I used Vivado's IP Packager.
Are there guidelines to make customized IP compatible with the OscimpDigital library? Or could you point me in a direction where I could make this specific source compatible?
Thank you!
Bernardo
Hello once again.
I am encountering a problem regarding mounting the nfs folder on the red pitaya.
I have tried debugging it, but with no success.
1. I am able to ping the RP from my host computer.
bernardo@bernardo-ThinkPad-X230:~/oscimpDigital$ ping 192.168.0.10
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=64 time=0.225 ms
and vice-versa:
redpitaya> ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=64 time=0.402 ms
All necessary files are sourced:
source redpitaya/sourceme.ggm
source oscimpDigital/settings.sh
source /tools/Xilinx/Vivado/2019.2/settings64.sh
export PATH=/buildroot-2020.11.1/output/host/usr/bin:$PATH
are executed everytime I open a new terminal
My exports file in RP:
/nfs *(rw,no_root_squash,sync,no_subtree_check)
My fstab file (I have tried both the existing line and the one present in the wiki, chapter 2. Prepare):
GNU nano 5.2 New Buffer Modified
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620 0 >
tmpfs /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 >
sysfs /sys sysfs defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
configfs /sys/kernel/config configfs defaults 0 0
192.168.0.1:/nfs/redpitaya /usr/local nfs defaults,noauto,nolock 0 0
#192.168.0.2:/nfs/redpitaya16 /usr/local nfs defaults,noauto,nolock 0>
#192.168.0.1:/nfs /usr/local nfs defaults,noauto,nolock 0 0
I have nfs-kernel-server and nfs-common installed and updated. I have uninstalled and re-installed to see if that would fix the situation but it did not. I have checked the ports used by nfs (followed https://serverfault.com/questions/377170/which-ports-do-i-need-to-open-in-the-firewall-to-use-nfs) and I disabled the firewall for those ports.
When executing the last command on Chapter 2, I get a connection timed out error in the red pitaya.
redpitaya> mount /usr/local
mount: mounting 192.168.0.1:/nfs/redpitaya on /usr/local failed: Connection timed out
Is there a log that could hint me what could be originating this error?
Could the cause be the location of the nfs folder and the path interpretation depending if you are root or not when doing the last steps of Chapter 2 on the host computer?
I have tried doing the final steps both at the oscimpDigital folder and using sudo su and following the steps from there.
In the last case, the nfs folder will be created in the SSD where the host computer system folders are. Here if I am not mistaken is where I think ~ is interpreted differently.
The combination of the settings.sh file, the export file and the fstab file not matching is something that I would like to take out of the way before assuming it is a networking problem. What is the default location of the NFS folder in a working environment?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.