top of page

Search Results

464 items found for ""

  • A Hello, World! Node.js Server on Windows 10

    This post shows how to write, start, and stop a Node.js HTTP server that prints Hello, World! A Hello, World! Node.js Server on Windows 10 1. Put this into a file called server.js (or click here to download one). const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 2. Open the folder and right-click on Open in Terminal 3. Type node .\server.js 4. Ctrl-click on the link or open a browser and type http://127.0.0.1:3000/ or click here 5. Type Ctrl-c to quit Other Node.js logo clipped from https://nodejs.org/ The version posted at https://nodejs.org/en // server.mjs import { createServer } from 'node:http'; const server = createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World!\n'); }); // starts a simple http server locally on port 3000 server.listen(3000, '127.0.0.1', () => { console.log('Listening on 127.0.0.1:3000'); }); // run with `node server.mjs`

  • Install and Test Node.js on Windows 10

    Install and Test Node.js on Windows 10 Quickly install and Test Node.js on Windows 10 using this post. Node.js v20.11.1 (LTS) Windows, x86 is used. Download & Install 1. Open https://nodejs.org/en/download 2. Select v20.11.1 (LTS), Windows, x86: 3. Download node-v20.11.1-x64.msi (Windows Installer Package) to the Downloads folder 4. Open Downloads 5. Right-click and select Install 6. On the Node.js Setup screen, click Next 7. Accept the License Agreement and click Next 8. Click Next to install Node.js in the default directory C:\Program Files\nodejs\ 9. Click Next to install everything: Disk Usage: Everything: 10. Check the Automatically install tools... box and click Next 11. Click Install 12. After a time, click Finish 13. To skip this, close the pop-up. To proceed, close other programs, and hit any key 14. You may see this Chocolatey notification, if so press any key to start the installation The end of the install log Chocolatey upgraded 19/19 packages. See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log). Upgraded: - chocolatey-compatibility.extension v1.0.0 - chocolatey-core.extension v1.4.0 - chocolatey-dotnetfx.extension v1.0.1 - chocolatey-visualstudio.extension v1.11.1 - chocolatey-windowsupdate.extension v1.0.5 - dotnetfx v4.8.0.20220524 - KB2919355 v1.0.20160915 - KB2919442 v1.0.20160915 - KB2999226 v1.0.20181019 - KB3033929 v1.0.5 - KB3035131 v1.0.3 - python v3.12.2 - python3 v3.12.2 - python312 v3.12.2 - vcredist140 v14.38.33135 - vcredist2015 v14.0.24215.20170201 - visualstudio2019buildtools v16.11.34 - visualstudio2019-workload-vctools v1.0.1 - visualstudio-installer v2.0.3 Packages requiring reboot: - vcredist140 (exit code 3010) The recent package changes indicate a reboot is necessary. Please reboot at your earliest convenience. Type ENTER to exit The referenced C:\ProgramData\chocolatey\logs\chocolatey.log Test 1. Right-click the Windows Icon and select run 2. Type cmd.exe 3. Type node -v. I see v20.11.1. 4. Type npm -v. I see 10.2.4 This post showed how to install and test Node.js on Windows 10 using this post.

  • Building Android (AOSP) for emulator and Pixel devices

    This article will show you how to: build Android for an emulator target build Android for a real hardware target run the build in an emulator Prerequisites & environment setup (Google docs: https://source.android.com/docs/setup/start/requirements) Google says you can use Ubuntu 18.04+ for Android development. You can use a lightweight LXC container to get an Ubuntu environment regardless of your native Linux distribution. Using a container also helps prevent any conflicts between environment setup required for other development work you’re doing on the host OS. Refer to our article on LXC setup for more information. Google says you’ll need 400 GB of disk space and 64 GB of RAM. Their 72 core x 64 GB machines take 40 minutes for a clean build, and their 6 core x 64 GB machines need 6 hours to do a build. Install prerequisites: (run these commands in the LXC container, or the host OS if you’re using native Ubuntu) sudo apt update sudo apt upgrade sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig sudo apt install repo Repo is AOSP’s wrapper around git. See the Google docs for more info: https://source.android.com/docs/setup/create/coding-tasks Also, install adb and fastboot: sudo apt install adb fastboot Download the AOSP source and binary blobs https://source.android.com/docs/setup/download/downloading mkdir android cd android repo init -b main -u https://android.googlesource.com/platform/manifest Instead of `-b main`, you can do something like `-b android-14.00.0_r1` to check out a specific version of Android. See https://source.android.com/docs/setup/reference/build-numbers#source-code-tags-and-builds for a list of tag names. The above commands will set up a repo project. Run repo sync to download the files. repo sync -c -j$(nproc) This took about 40 minutes total on a ~450 Mbit/s internet connection. The download size was just under 100 GB, and the unbuilt project uses ~200 GB of disk space. This is not required, but you can use GPG to verify your downloaded project against Google's key. Refer to Google's documentation for more info on that: https://source.android.com/docs/setup/download/downloading#verifying-git-tags Binary blobs The default AOSP build can run in an emulator, but additional binary blobs are needed to run on actual hardware. Google distributes the blobs for their hardware: If using the main branch: https://developers.google.com/android/blobs-preview If using another release: https://developers.google.com/android/drivers These files are 300-500 MB. Using the Pixel 7 (panther) as an example: Download the .tgz file for your target and extract it to get a shell script: tar -xzf google_devices-panther-….tgz This will extract a shell script: ./extract-google_devices-panther.sh If you’re not already in the AOSP project folder (where you ran `repo init` and `repo sync`) move the .sh script into the project folder. From the AOSP project folder, run the script: ./extract-google_devices-panther.sh Accept the license. A new `vendor` folder is created and contains the blobs. Build Android source build/envsetup.sh Select a build target with `lunch`. The `cf_x86_64_phone` target is for the Cuttlefish emulator, whereas `panther` is a Pixel 7. lunch aosp_cf_x86_64_phone-trunk_staging-eng lunch aosp_panther-trunk_staging-eng Instead of `...-eng`, you can use the `user` or `userdebug` build variants instead: https://source.android.com/docs/setup/create/new-device#build-variants You can run just `lunch` to get a list of all available build targets. Run m to do the build: m Building Android can take a few hours, depending on your hardware. When the build is complete, the output products (.img files) will be available in out/target/product/vsoc_x86_64 or out/target/product/panther (this directory will be available in the $OUT environment variable after you run lunch). Launch the emulator The acloud tool manages Android virtual devices (emulators). It can run AVDs locally or on Google Cloud instances. Ensure you’ve done `source build/envsetup.sh` and `lunch ` in the terminal session you’re running acloud in. First, do its one-time setup: acloud setup And reboot. Next, create a local AVD from the current project build: acloud create --local-image –local-instance This will open up a VNC viewer window with your Android build. You should also be able to connect to the AVD with adb – e.g. `adb devices`, adb shell`. References Android logo from https://commons.wikimedia.org/wiki/File:Android_robot.svg The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

  • XCVE2802-2MSEVSVH1760 At-A-Glance

    XCVE2802-2MSEVSVH1760 At-A-Glance This post is an XCVE2802-2MSEVSVH1760 at-a-glance. This part is featured on the AMD Versal™ AI Edge Series VEK280 Evaluation Kit (EK-VEK280-PP-G) https://www.xilinx.com/products/boards-and-kits/vek280.html and lists XCVE2802-2MSEVSVH1760 info and links to key information and documents. Click [ https://www.centennialsoftwaresolutions.com/post/xcvc1902-1msevsva2197-decoded ] if you need a XCVC1902-1MSEVSVA2197 at-a-glance, This part is featured on the first Versal™ AI Core series evaluation kit (it actually uses a XCVC1902-2MSEVSVA2197) It includes: XCVE2802-2MSEVSVH1760 Ordering Information Decode XCVE2802-2MSEVSVH1760 Resources XCVE2802-2MSEVSVH1760 Maximum I/O XCVE2802-2MSEVSVH1760 I/O Overview XCVE2802-2MSEVSVH1760 Voltage XCVE2802-2MSEVSVH1760 Vivado Part Number XCVE2802-2MSEVSVH1760 Physical Layout XCVE2802-2MSEVSVH1760 PL System Perspective XCVE2802-2MSEVSVH1760 Boot XCVE2802-2MSEVSVH1760 Software Development XCVE2802-2MSEVSVH1760 Ordering Information Decode From Figure 3: Versal Device Ordering Information https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page=35 XCVE2802-2MSEVSVH1760 Resources From Table 2: Versal AI Edge Series https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page=3 XCVE2802-2MSEVSVH1760 Maximum I/O From Table 3: Versal AI Edge Series: Device-Package Combinations and Maximum I/O https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page=4 XPIO DDR: 186 XPIO DDR+PL: 300 HDIO (high-density I/O): 44 MIO (multiplex I/O): 78 https://docs.xilinx.com/r/en-US/am011-versal-acap-trm/Multiplexed-I/O-Signals-and-Pins GTY: 0 Versal ACAP GTY and GTYP Transceivers Architecture Manual (AM002) @ https://docs.xilinx.com/r/en-US/am002-versal-gty-transceivers GTY Description @ https://docs.xilinx.com/r/en-US/am002-versal-gty-transceivers/Features 26.5625 Max Gb/s, 1.2 Min Gb/s , https://www.xilinx.com/support/documents/data_sheets/ds957-versal-ai-core.pdf#page=58 GTYP: 32 XCVE2802-2MSEVSVH1760 I/O Overview From https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page%20=28 XCVE2802-2MSEVSVH1760 Voltage From: https://www.xilinx.com/support/documents/data_sheets/ds957-versal-ai-core.pdf#page=7 (DS957) The specified portion of the Vivado design tools device selection code includes speed grade (-3, -2, -1), operating voltages (HP, MP, MHP, MM, LP, LHP, LLI), temperature grade, (-i, -e, - m), and maximum static power screen (-S, -L). From: https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page=33 (DS950) XCVE2802-2MSEVSVH1760 Vivado Part Number From Table: Available Speed Grades and Operating Voltages https://docs.xilinx.com/r/en-US/ds958-versal-ai-edge/Available-Speed-Grades-and-Operating-Voltages The XCVE2802-2MSEVSVH1760 Vivado Part # is xcve2802-vsvh1760-2MP-e-S (Vivado 2022.1) = XCVE2802-2MSEVSVH1760 Physical Layout From https://docs.xilinx.com/v/u/en-US/ds950-versal-overview#page=12 From https://docs.xilinx.com/r/en-US/am011-versal-acap-trm/PL-Block-Diagram XCVE2802-2MSEVSVH1760 PL System Perspective XCVE2802-2MSEVSVH1760 Boot https://docs.xilinx.com/r/en-US/am011-versal-acap-trm/Non-Secure-Boot-Flow https://docs.xilinx.com/r/en-US/am011-versal-acap-trm/Secure-Boot-Flow XCVE2802-2MSEVSVH1760 Software Development https://docs.xilinx.com/r/en-US/ug1304-versal-acap-ssdg References To Items Used In This Post Logo from https://library.amd.com/media/ (requires a password) Related Information 2023.2 Installation Summary https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html AMD Unified Installer for FPGAs & Adaptive SoCs 2023.2 SFD (TAR/GZIP - 103.92 GB) MD5 SUM Value : 64d64e9b937b6fd5e98b41811c74aab2

  • Install Chrome on Ubuntu

    This post lists the commands to install Chrome on Ubuntu Open a terminal wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb google-chrome Ubuntu logo from https://commons.wikimedia.org/wiki/File:Logo-ubuntu_cof-orange-hex.svg Chrome logo from https://en.m.wikipedia.org/wiki/File:Google_Chrome_icon_(February_2022).svg

  • Fix keyboard not working in Ubuntu

    This post shows a way to fix a keyboard not working in Ubuntu. Fix Press: Ctrl + Alt + F3 Type: ubuntu Type: /etc/init.d/gdm3 restart The GUI should come back up, and the keyboard should work. Specifics Press F12 while turning on a ThinkPad ( Specific T460 ThinkPad: https://www.zachpfeffer.com/single-post/2017/01/28/new-t460-system-information ) Boot Ubuntu 22.10 on the ThinkPad from a USB stick ( Install instructions: https://www.zachpfeffer.com/single-post/install-ubuntu-1604-on-a-usb-stick-from-windows ) Run "Try Ubuntu" Notice the keyboard not working Notes This doesn't occur every time. Reference Ubuntu logo from https://commons.wikimedia.org/wiki/File:Logo-ubuntu_cof-orange-hex.svg

  • I2S audio output with a Raspberry Pi Zero W and AD SSM2518 DAC (PMOD AMP3)

    Raspberry Pi Zero W and AD SSM2518 DAC This blog post shows how to enable audio output with a Raspberry Pi Zero W and AD SSM2518 DAC by configuring Linux & ALSA on a Raspberry Pi Zero W to output audio via I2S to a Digilent PMOD AMP3, which uses an SSM2518. Hardware setup Configure the jumpers on the PMOD AMP3 as follows: JP2: unset (BCLK = MCLK) JP3: set (I2S mode) JP4: set (BCLK = 256x Fs) JP5: set (put DAC in stand-alone mode) JP6: unset (0db gain) The PMOD must be connected to the 40-pin header on the Pi. On the Pi header, the square pad is pin #1 (3v3), adjacent to pin #2 (5v). The next row of the header has pins #3 & 4, and so on. The PMOD’s pinout is shown on its documentation page (linked above). Connect pin #1 (3v3) on the Pi to pin #12 (Vcc) on the PMOD Connect pin #5 (GND) on the Pi to pin #5 or #11 on the PMOD Connect pin #12 (BCM18) on the Pi to pin #1 (BCLK) on the PMOD Connect pin #35 (BCM19) on the Pi to pin #4 (LRCLK) on the PMOD Connect pin #40 (BCM21) on the Pi to pin #2 (SDATA) on the PMOD Environment setup If you don’t already have your Pi running Raspbian, download the image from https://www.raspberrypi.com/software/operating-systems/ (any version of the 32-bit image will be fine – desktop or lite), unxz it, and flash the .img file to a SD card. The SD card should now contain a 512 MB FAT32 partition and a 2 GB ext4 root partition. Boot the Pi once to allow it to perform the initial one-time setup (set a username & password and expand the filesystem to fit the SD card). Configure device tree overlays Edit the config.txt file in the FAT32 partition (on a running Raspbian system, that’ll be /boot/config.txt). Disable the built-in HDMI audio interface by commenting out the “dtparam=audio=on” line. Next, add to the file: dtoverlay=ssm2518 dtoverlay=i2s-mmap This will tell the Raspbian bootloader to load these dtbo (compiled device tree overlay) files and pass them off to the kernel while booting. The overlays add a simple-audio-card device for the ssm2518 chip linked to the Pi CPU DAI. Configure ALSA In the ext4 partition on the SD card (the Raspbian rootfs), create /etc/asound.conf with this content: pcm.ssm2518 { type hw card 0 } pcm.dmixer { type dmix ipc_key 1024 slave { pcm “ssm2518” channels 2 } } pcm.!default { type plug slave.pcm “dmixer” } This sets up an ALSA device corresponding to the simple-audio-card interface defined by the device tree. The dmix intermediary is necessary to allow multiple applications to use the device simultaneously. Finally, it configures the dmix to be the default output. Verify functionality After a reboot, the new audio devices defined in asound.conf will be visible in alsamixer. Test audio output with speaker-test: speaker-test -c2 This will alternate playing white noise on the left & right channels – speaker-test will print out which channel it’s currently playing on. References ALSA logo from https://www.alsa-project.org/main/images/alsalogo.gif Raspberry Pi Zero W clipped from https://www.raspberrypi.com/products/raspberry-pi-zero-w Pmod AMP3 clipped from https://digilent.com/reference/pmod/pmodamp3/start Methods The animated gif was built with Canva

  • Linux Kernel: main.c

    Diagram Each box in the main.c [1] diagram [2] represents a critical aspect of the kernel's initialization process, ensuring the system is ready to execute processes, manage resources, and interact with hardware effectively. Detail main - Purpose: The entry point for the Linux kernel initialization. - Key Activities: - Initialize kernel data structures. - Parse kernel command-line arguments. - Set up the kernel's running environment, including memory, processor, and early hardware initialization. init functions - Purpose: Call various initialization functions to set up different kernel subsystems. - Key Activities: - Sequentially invokes specific initialization routines for subsystems such as memory management, device drivers, filesystems, and networking. Setup - Purpose: Handle early kernel setup tasks. - Key Activities: - Detect and configure the CPU and its features. - Identify available RAM and set up memory zones. - Initialize kernel data structures and prepare the environment for further subsystem initialization. Scheduling - Purpose: Initialize the process scheduler. - Key Activities: - Set up the scheduler data structures and algorithms (like CFS - Completely Fair Scheduler). - Initialize the idle task for each CPU. - Prepare task management structures for process execution. Memory Management - Purpose: Set up the memory management subsystem. - Key Activities: - Initialize the virtual memory system, including creating the initial memory mappings for the kernel space. - Set up page tables and allocate memory for essential kernel structures. - Initialize slab allocators and the buddy system for efficient memory allocation. Driver Initialization - Purpose: Load and initialize device drivers. - Key Activities: - Detect and initialize essential hardware drivers like disk, network, and input/output devices. - Set up interrupt handling mechanisms for device drivers. - Register device drivers with the kernel's device model. Filesystem - Purpose: Establish the kernel's filesystem infrastructure. - Key Activities: - Initialize the Virtual File System (VFS) layer to provide a common interface for filesystem operations. - Mount the root filesystem and prepare it for use. - Load filesystem drivers for supported filesystem types (e.g., ext4, NFS). Networking - Purpose: Set up the kernel's networking stack. - Key Activities: - Initialize networking data structures and protocols (IP, TCP, UDP, etc.). - Configure networking interfaces and set up routing tables. - Prepare the network stack to handle incoming and outgoing network packets. Virtual FS - Purpose: Initialize the Virtual File System (VFS), an abstraction layer over actual filesystems. - Key Activities: - Provide a uniform interface for filesystem operations, allowing the kernel to interact with different filesystems transparently. - Manage file descriptors, file objects, and inode objects. - Handle filesystem mount points and namespace management. Memory Manager - Purpose: Manage all memory allocation and usage aspects within the kernel. - Key Activities: - Handle page allocation, page fault handling, and memory paging. - Manage kernel and user-space memory separation and protection. - Implement memory policies like overcommit handling and memory compaction. References [1] main.c https://drive.google.com/file/d/1Z5tTO8mJUL8zFEhKMAPTKdkOHS31pUCA/view?usp=sharing https://github.com/torvalds/linux/blob/master/init/main.c @ https://github.com/torvalds/linux/commit/8001f49394e353f035306a45bcf504f06fca6355 [2] Diagram generated with ChatGPT Diagrams: Show Me main.c

  • Xilinx 404 Page Not Found Workaround

    This post shows a Xilinx 404 Page Not Found workaround. I needed this as of 2024-01-30. It may have been fixed now. Xilinx 404 Page Not Found Workaround If you get a 404: Page Not Found with a link like this: https://www.xilinx.com/support/answers/55/5577/55776.html Try this: https://support.xilinx.com/s/article/55776?language=en_US

  • What's the difference between XSCT and XSDB?

    What's the difference between XSCT and XSDB? Dive into the essentials of XSDB and XSCT with this post. We cover key differences, commands, installation guides, and usage tips, including help commands. It's crafted as a quick reference and a repository for crucial documentation, ensuring you have the right tools at your fingertips for efficient workflow. This information is accurate as of Vivado and Vitis release 22.04.1 What's the difference between XSCT and XSDB? XSDB, short for Xilinx System Debugger, offers a command line interface that is both interactive and scriptable, making it user-friendly for developers. Its primary function is to facilitate debugging processes. Similarly, the Xilinx Software Command-line Tool (XSCT) provides interactive, scriptable command-line access to the suite of Xilinx development tools. It enables users to execute all the operations available in the Eclipse-based Vitis interface but from the convenience of a shell environment. xsct Commands xsdb Commands Note: The documentation lists these under xsct This list was generated with this command and then transposed with Google Sheets: xsdb% help xsct allcommands unknown command or category "xsct allcommands": must be ... Google Sheet with this info: https://docs.google.com/spreadsheets/d/1eXjRYJJsxTR3DK3z7FW4F0aOBflYe0jEzrFge6Zo0zo/edit?usp=sharing Documentation XSCT Xilinx Software Command-Line Tool Reference Guide UG1208 (v2019.1) May 22, 2019 https://docs.xilinx.com/v/u/en-US/ug1208-xsct-reference-guide Cached: https://drive.google.com/file/d/1Ypd-aaT7COpVTwzErdatRw8Rjw8NTspq/view?usp=drive_link Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400) - 636 pages - snapshot on 2024-01-28 https://docs.xilinx.com/r/en-US/ug1400-vitis-embedded/XSCT-Commands Cached: https://drive.google.com/file/d/1YvAOMlEh654nrctlZ0n0L0-vaIulV-pe/view?usp=drive_link XSDB Debugging Guest Applications with QEMU, XSDB, and XSCT https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/821985347/Debugging+Guest+Applications+with+QEMU+XSDB+and+XSCT Cached: https://drive.google.com/file/d/1Z011GMpEOMygvT5aotIDG5S9DNhMcdcK/view?usp=sharing Example Install location XSCT /home/demouser/tools/amd//Vitis/2023.1/bin/xsct XSDB /home/demouser/tools/amd//Vitis/2023.1/bin/xsdb Start XSCT source ~/tools/amd/Vitis/2022.1/settings64.sh xsct Output: rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems. ****** Xilinx Software Commandline Tool (XSCT) v2022.1.0 **** SW Build 3524075 on 2022-04-13-17:42:45 ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. xsct% XSDB source ~/tools/amd/Vitis/2022.1/settings64.sh xsdb Output: rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems. ****** Xilinx System Debugger (XSDB) v2022.1 **** Build date : Apr 18 2022-16:10:31 ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. xsdb% Exit XSCT exit XSDB exit Help XSCT xsct -help demouser@fpgadev:~/Desktop$ xsct -help rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems. Usage: xsct [options] [tclscript] [tclargs] Options: -interactive Enter interactive mode after -eval or running script. -help Display this help message. -no-ini Do not load xsct.ini -quiet Start XSCT in silent mode -eval tclcommand Execute then exit -eclipseargs Any other arguments that should be passed to Eclipse. This should follow all other XSCT arguments. -vmargs Any other arguments that should be passed to Java VM. This should follow all other XSCT arguments. XSDB xsdb -help demouser@fpgadev:~/Desktop$ xsdb -help rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems. Usage: xsdb [options] [tclscript] [tclargs] Options: -interactive Enter interactive mode after -eval or running script. -help Display this help message. -no-ini Do not load xsdb.ini -quiet Start XSDB in silent mode -eval tclcommand Execute then exit

  • Show Missing GUI Elements in Vivado

    This post presents a way to show missing GUI elements in Vivado. Show Missing GUI Elements in Vivado When I run Vivado v2023.1 in Ubuntu 22.04.01 running on VMWare Workstation VMware® Workstation 17 Pro 17.5.0 build-22583795 with the Virtual Machine Setting Accelerate 3D graphics turned on, some GUI elements are missing in Vivado. Turning off the Accelerate 3D graphics option works around the problem. Reproduce the Bug 1. Start with a powered-off VM 2. Enable Accelerate 3D graphics 3. Power On the VM 4. Start the license server: ~/tools/lin_flm_v11.17.2.0/lnx64.o/lmgrd -z -c- ~/licenses/ -l ~/license_log/license.log & 5. Start Vivado : source ~/tools/amd/Vivado/2023.1/settings64.sh export XILINXD_LICENSE_FILE=2100@fpgadev vivado 6. Click Run Synthesis and see the pop-up with the missing elements: 7. Turn off the VM Reproduce the Bug 1. Disable 3D graphics 2. Power On the VM 3. Start the license server: ~/tools/lin_flm_v11.17.2.0/lnx64.o/lmgrd -z -c- ~/licenses/ -l ~/license_log/license.log & 4. Start Vivado : source ~/tools/amd/Vivado/2023.1/settings64.sh export XILINXD_LICENSE_FILE=2100@fpgadev vivado 5. Click Run Synthesis and see the pop-up with all the elements:

  • Versal AI Edge Device - Essential Licensing Instructions for Early Silicon Users ( TE0950-02-EGBE21A )

    This post is meant to help anyone searching for how to bring up a board with an AMD Versal™ AI Edge XCVE2302-1LSESFVA784 device (engineering sample), such as the TE0950-02-EGBE21A from Trenz. Board Documentation https://wiki.trenz-electronic.de/display/PD/TE0950+Resources https://wiki.trenz-electronic.de/display/PD/TE0950+TRM https://wiki.trenz-electronic.de/display/PD/TE0950+Reference+Designs https://wiki.trenz-electronic.de/display/PD/TE0950+PCN https://wiki.trenz-electronic.de/display/PD/TE0950+AN https://shop.trenz-electronic.de/search?sSearch=TE0950 https://shop.trenz-electronic.de/Download/?path=Trenz_Electronic/Development_Boards/TE0950/ https://shop.trenz-electronic.de/Download/?path=Trenz_Electronic/Pinout https://shop.trenz-electronic.de/trenzdownloads/Trenz_Electronic/Development_Boards/TE0950/REV02/Documents/SCH-TE0950-02-EGBE21A.PDF Pictures Pictures of the board so you'll be able to tell: Your board requires special licensing for tool access. Here's a guide to help you navigate the licensing process: 1. Vitis/Vivado License: Your board's ES silicon necessitates a unique license, not covered by the standard support in Vitis/Vivado tools. To obtain this ES license, you'll need to contact AMD. 2. PDI License: Accessing the device in the tool does not automatically enable you to generate a PDI. For this capability, registration at the Errata Lounge is necessary. Post-registration, AMD will approve your request, and you'll receive the license to generate PDI files. 3. Vitis AI Support: If your work involves implementing a CNN inference model using Vitis AI, you'll require access to the EA DPU. This is available through a separate registration process. Please be aware that the C20B1 DPU provided is specifically for early-access customers. It's functional for development but lacks optimizations to exploit the full performance potential of the silicon. Additional Resources PDI stands for "Programmable Device Image" Reference: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2037088327/Versal+Platform+Loader+and+Manager Cached: https://drive.google.com/file/d/1Yakjj8TnbyWmR_Nxp8rJTWUm8CR4sah5/view?usp=sharing PDI Doc: https://docs.xilinx.com/r/en-US/ug1304-versal-acap-ssdg/Creating-a-Boot-Image-PDI "A Brief Overview of the Versal Boot files" Original: https://support.xilinx.com/s/article/1146981?language=en_US Cached: https://drive.google.com/file/d/1Y_sxCAaAzzrR160eKUKFc-k4MGu2CKBK/view?usp=drive_link Trenz Logo: https://wiki.trenz-electronic.de/download/attachments/393218/global.logo?version=4&modificationDate=1366710180000&api=v2 Buy a TE0950-02-EGBE21A from Trenz: https://shop.trenz-electronic.de/en/TE0950-03-EGBE21A-AMD-Versal-AI-Edge-Evalboard-with-VE2302-device-8-GB-DDR4-SDRAM-15-x12-cm

bottom of page