This document provides an overview of basic Linux commands and concepts for beginners. It covers topics such as opening the terminal, changing directories, listing and manipulating files and folders, searching for files, managing processes, installing packages, setting environment variables, and compressing files. The document is intended to help new Linux users learn the basics of how Linux is organized and how to navigate and perform tasks on the command line interface.
A deep dive into what makes Plan 9 a unique operating system. Built as a successor to Unix at Bell Labs, Plan 9 is a distributed operating system in the true sense.
Installing and configuring a dhcp on windows server 2016 step by stepAhmed Abdelwahed
This lab provides the required knowledge to install and manage the DHCP on Windows Server 2016:
Contents
Lab Objective.
Install DHCP role.
DHCP Post Installation Configuration.
DHCP Authorization.
Configuring DHCP.
Create and configure new scope.
Test DHCP functionality from Windows Client (Windows 10).
How DHCP client obtain automatic IP address (DORA).
DHCP Scope Options.
Address leases.
DHCP Exclusion.
DHCP Reservation.
DHCP Filter.
Scope and Server options.
DHCP Classes.
Testing DHCP Class.
DHCP Statistics.
DHCP Advanced Options.
Integration with DNS.
Conflict detection.
DHCP Maintenance.
Saber M. A. has over 6 years of experience as a broadcast engineer working for television broadcasters in India. He is currently a broadcast engineer at Tourism & Travel Media Entertainment Pvt Ltd, where his responsibilities include operating and maintaining playout systems, setting up multi-camera productions, and monitoring transmission equipment. Saber has experience working with a variety of broadcast equipment including video switchers, automation systems, graphics systems and encoders/decoders. He holds a B.Sc. in Mathematics, Electronics and Computer Science and has strong technical skills in broadcast engineering, networking and troubleshooting.
The document discusses board bringup and the startup process. It explains that on power on, the processor executes initial startup code which loads a stage 1 bootloader. The stage 1 bootloader then loads a stage 2 bootloader which loads the operating system. The operating system then starts the init application, which starts other applications and daemons. It also discusses understanding the target board hardware, restoring it to a factory default state, and using vendor-provided utilities.
The document discusses techniques for achieving fast convergence in networks including graceful restart, fast down detection using Bidirectional Forwarding Detection (BFD), and exponential backoff. It explains how these techniques work in routing protocols like OSPF, IS-IS, and EIGRP to limit instability during convergence events and prevent issues like network meltdowns. Key aspects covered are separating the control and forwarding planes to ensure continuous forwarding, signaling between routers to resynchronize routing information, and throttling routing updates and SPF calculations to introduce stability.
This document provides an overview of basic Linux commands and concepts for beginners. It covers topics such as opening the terminal, changing directories, listing and manipulating files and folders, searching for files, managing processes, installing packages, setting environment variables, and compressing files. The document is intended to help new Linux users learn the basics of how Linux is organized and how to navigate and perform tasks on the command line interface.
A deep dive into what makes Plan 9 a unique operating system. Built as a successor to Unix at Bell Labs, Plan 9 is a distributed operating system in the true sense.
Installing and configuring a dhcp on windows server 2016 step by stepAhmed Abdelwahed
This lab provides the required knowledge to install and manage the DHCP on Windows Server 2016:
Contents
Lab Objective.
Install DHCP role.
DHCP Post Installation Configuration.
DHCP Authorization.
Configuring DHCP.
Create and configure new scope.
Test DHCP functionality from Windows Client (Windows 10).
How DHCP client obtain automatic IP address (DORA).
DHCP Scope Options.
Address leases.
DHCP Exclusion.
DHCP Reservation.
DHCP Filter.
Scope and Server options.
DHCP Classes.
Testing DHCP Class.
DHCP Statistics.
DHCP Advanced Options.
Integration with DNS.
Conflict detection.
DHCP Maintenance.
Saber M. A. has over 6 years of experience as a broadcast engineer working for television broadcasters in India. He is currently a broadcast engineer at Tourism & Travel Media Entertainment Pvt Ltd, where his responsibilities include operating and maintaining playout systems, setting up multi-camera productions, and monitoring transmission equipment. Saber has experience working with a variety of broadcast equipment including video switchers, automation systems, graphics systems and encoders/decoders. He holds a B.Sc. in Mathematics, Electronics and Computer Science and has strong technical skills in broadcast engineering, networking and troubleshooting.
The document discusses board bringup and the startup process. It explains that on power on, the processor executes initial startup code which loads a stage 1 bootloader. The stage 1 bootloader then loads a stage 2 bootloader which loads the operating system. The operating system then starts the init application, which starts other applications and daemons. It also discusses understanding the target board hardware, restoring it to a factory default state, and using vendor-provided utilities.
The document discusses techniques for achieving fast convergence in networks including graceful restart, fast down detection using Bidirectional Forwarding Detection (BFD), and exponential backoff. It explains how these techniques work in routing protocols like OSPF, IS-IS, and EIGRP to limit instability during convergence events and prevent issues like network meltdowns. Key aspects covered are separating the control and forwarding planes to ensure continuous forwarding, signaling between routers to resynchronize routing information, and throttling routing updates and SPF calculations to introduce stability.
U-boot provides a multistage boot process that initializes the CPU and board resources incrementally at each stage. It begins execution on the CPU in a limited environment and hands off to subsequent stages that gain access to more resources like memory and devices. U-boot supports booting an operating system image from storage like SSD or over the network and offers features like secure boot and hypervisor support.
Network Convergence of Mobile, Broadband and Wi-Fi3G4G
A presentation and video by Ben Toner, Founder & Director, Numerous Networks exploring the convergence of Mobile, Broadband and Wi-Fi
*** SHARED WITH PERMISSION ***
All our #3G4G5G slides and videos are available at:
Videos: https://www.youtube.com/3G4G5G
Slides: https://www.slideshare.net/3G4GLtd
5G Page: https://www.3g4g.co.uk/5G/
Free Training Videos: https://www.3g4g.co.uk/Training/
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
Linux Kernel and Driver Development TrainingStephan Cadene
This document provides information about a Linux Kernel and Driver Development training from Free Electrons. It begins with an overview of the course and hardware that will be used. It then discusses Free Electrons as a company and their online resources. The document also provides generic course information and guidelines for participation and the practical labs.
COSCUP 2020 RISC-V 32 bit linux highmem portingEric Lin
- The document discusses porting HIGHMEM support to 32-bit RISC-V Linux to allow the kernel to access physical memory above 896MB. It involves deciding the memory layout, creating a PKMAP region for temporary mappings, allocating FIXMAP slots for kmap_atomic(), and setting up a page table for the PKMAP region. However, maintaining HIGHMEM comes with performance costs and some upstream developers prefer to avoid it on new architectures if possible.
This document discusses platform device drivers in Linux. It describes the components of platform device drivers, including platform drivers and platform devices. It explains how to register a platform driver, register a platform device, bind a driver to a device, specify platform resources and data. It also discusses using device tree bindings with platform drivers and summarizes the key topics covered.
This document provides an overview of Vector Packet Processing (VPP), an open source packet processing platform developed as part of the FD.io project. VPP is based on DPDK for high performance packet processing in userspace. It includes a full networking stack and can perform L2/L3 forwarding and routing at speeds of over 14 million packets per second on a single core. VPP processing is divided into individual nodes connected by a graph. Packets are passed between nodes as vectors to support batch processing. VPP supports both single and multicore modes using different threading models. It can be used to implement routers, switches, and other network functions and topologies.
The document discusses disk caches in Linux, including:
- Traditional Linux designs used separate buffer and page caches, requiring synchronization between caches.
- Modern Linux unified the caches into a single page cache to avoid synchronization overhead and better support NFS.
- The page cache uses radix trees for fast lookup of pages indexed by their address space and page offset. Tags on radix tree nodes track dirty and writeback pages.
EDW CENIPA is a opensource project designed to enable analysis of aeronautical incidentes that occured in the brazilian civil aviation. The project uses techniques and BI tools that explore innovative low-cost technologies. Historically, Business Intelligence platforms are expensive and impracticable for small projects. BI projects require specialized skills and high development costs. This work aims to break this barrier.
This course gets you started with writing device drivers in Linux by providing real time hardware exposure. Equip you with real-time tools, debugging techniques and industry usage in a hands-on manner. Dedicated hardware by Emertxe's device driver learning kit. Special focus on character and USB device drivers.
This document provides an overview and agenda for a presentation on Yocto, an open source project for embedded Linux development. It discusses Yocto components, layers, recipes, classes, and the build system. It also outlines how Yocto can be used by both system developers and application developers.
This document provides an introduction to Linux, including definitions of open source software and its advantages. It discusses the Linux system overview consisting of the kernel, OS services, and applications. It also covers Linux usage basics such as directories, shells, files, users, permissions, and input/output redirection. The document is intended to explain what topics will be covered in an introduction to Linux workshop.
Linux kernel Architecture and PropertiesSaadi Rahman
This document discusses the key components and architecture of the Linux kernel. It begins by defining the kernel as the central module of an operating system that loads first and remains in memory, providing essential services. It then describes the major subsystems of Linux, including process management, memory management, virtual file systems, network stacks, and device drivers. It concludes that the modular design of the Linux kernel has supported its growth and success through independent and extensible development of these subsystems.
Firewalls act as a choke point between networks to control and monitor traffic. Packet filters examine each IP packet to allow or deny services based on rules, while stateful packet filters track client-server sessions to better detect invalid packets. Application proxies have full access to protocols and validate requests before fulfilling them, but cannot support all services. Circuit gateways relay TCP connections between trusted internal users and external networks. Bastion hosts are highly secured systems that may run gateway or service functions with connections to multiple networks. Access control determines what resources users can access based on their identity and the classification of the protected objects.
Lesson 2 Understanding Linux File SystemSadia Bashir
The document provides an overview of Linux file systems and file types. It discusses:
1) The main types of files in Linux including directories, special files, links, sockets and pipes.
2) The standard Linux directory structure and the purpose of directories like /bin, /sbin, /etc, and /usr.
3) Common Linux file extensions and hidden files that begin with a dot.
4) Environment variables and how they can be used to customize a system.
5) Symbolic links and how they create references to files without copying the actual file.
This document discusses bootloaders, specifically the Universal Boot Loader (U-Boot). It provides an overview of bootloader concepts, U-Boot specifics, the U-Boot initialization sequence, how U-Boot passes arguments to the kernel, hands-on with U-Boot commands, the U-Boot source code structure, configuring and compiling U-Boot for a board, and porting U-Boot to support a new board.
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
Sniffing through the ages
Capturing packets running on the wire to send them to a software doing analysis seems at first sight a simple tasks. But one has not to forget that with current network this can means capturing 30M packets per second. The objective of this talk is to show what methods and techniques have been implemented in Linux and how they have evolved over time.
The talk will cover AF_PACKET capture as well as PF_RING, dpdk and netmap. It will try to show how the various evolution of hardware and software have had an impact on the design of these technologies. Regarding software a special focus will be made on Suricata IDS which is implementing most of these capture methods.
Eric Leblond, Stamus Networks
Group Policy Objects (GPOs) can be used to centrally manage user and computer settings across a Windows network. GPOs are created and linked to sites, domains, and organizational units to apply policies to all computers and users within those containers. Common uses of GPOs include controlling user desktop settings and security, deploying login and startup scripts, redirecting user folders, and installing or removing software applications. Troubleshooting tools like GPRESULT and Resultant Set of Policy can help determine which policies are in effect for a given user or computer.
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Learn an overview of design trends and designer challenges, simulator extensions for models and abstraction levels in PSpice, and examples of a coding algorithm models into PSpice PCB level cycle
Greg Tierney of Avid presented on their experiences using SystemC for design verification. SystemC provides hardware constructs and simulation capabilities in C++. Avid chose SystemC to enhance their existing C++ verification code and take advantage of its industry acceptance and built-in verification features. SystemC helped Avid solve issues like crossing language boundaries between HDL modules and testbenches, connecting ports and channels, implementing randomization, using multi-threaded processes, and defining module hierarchies. However, Avid also encountered issues with SystemC like slow compile/link times and limitations in its foreign language interface.
U-boot provides a multistage boot process that initializes the CPU and board resources incrementally at each stage. It begins execution on the CPU in a limited environment and hands off to subsequent stages that gain access to more resources like memory and devices. U-boot supports booting an operating system image from storage like SSD or over the network and offers features like secure boot and hypervisor support.
Network Convergence of Mobile, Broadband and Wi-Fi3G4G
A presentation and video by Ben Toner, Founder & Director, Numerous Networks exploring the convergence of Mobile, Broadband and Wi-Fi
*** SHARED WITH PERMISSION ***
All our #3G4G5G slides and videos are available at:
Videos: https://www.youtube.com/3G4G5G
Slides: https://www.slideshare.net/3G4GLtd
5G Page: https://www.3g4g.co.uk/5G/
Free Training Videos: https://www.3g4g.co.uk/Training/
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
Linux Kernel and Driver Development TrainingStephan Cadene
This document provides information about a Linux Kernel and Driver Development training from Free Electrons. It begins with an overview of the course and hardware that will be used. It then discusses Free Electrons as a company and their online resources. The document also provides generic course information and guidelines for participation and the practical labs.
COSCUP 2020 RISC-V 32 bit linux highmem portingEric Lin
- The document discusses porting HIGHMEM support to 32-bit RISC-V Linux to allow the kernel to access physical memory above 896MB. It involves deciding the memory layout, creating a PKMAP region for temporary mappings, allocating FIXMAP slots for kmap_atomic(), and setting up a page table for the PKMAP region. However, maintaining HIGHMEM comes with performance costs and some upstream developers prefer to avoid it on new architectures if possible.
This document discusses platform device drivers in Linux. It describes the components of platform device drivers, including platform drivers and platform devices. It explains how to register a platform driver, register a platform device, bind a driver to a device, specify platform resources and data. It also discusses using device tree bindings with platform drivers and summarizes the key topics covered.
This document provides an overview of Vector Packet Processing (VPP), an open source packet processing platform developed as part of the FD.io project. VPP is based on DPDK for high performance packet processing in userspace. It includes a full networking stack and can perform L2/L3 forwarding and routing at speeds of over 14 million packets per second on a single core. VPP processing is divided into individual nodes connected by a graph. Packets are passed between nodes as vectors to support batch processing. VPP supports both single and multicore modes using different threading models. It can be used to implement routers, switches, and other network functions and topologies.
The document discusses disk caches in Linux, including:
- Traditional Linux designs used separate buffer and page caches, requiring synchronization between caches.
- Modern Linux unified the caches into a single page cache to avoid synchronization overhead and better support NFS.
- The page cache uses radix trees for fast lookup of pages indexed by their address space and page offset. Tags on radix tree nodes track dirty and writeback pages.
EDW CENIPA is a opensource project designed to enable analysis of aeronautical incidentes that occured in the brazilian civil aviation. The project uses techniques and BI tools that explore innovative low-cost technologies. Historically, Business Intelligence platforms are expensive and impracticable for small projects. BI projects require specialized skills and high development costs. This work aims to break this barrier.
This course gets you started with writing device drivers in Linux by providing real time hardware exposure. Equip you with real-time tools, debugging techniques and industry usage in a hands-on manner. Dedicated hardware by Emertxe's device driver learning kit. Special focus on character and USB device drivers.
This document provides an overview and agenda for a presentation on Yocto, an open source project for embedded Linux development. It discusses Yocto components, layers, recipes, classes, and the build system. It also outlines how Yocto can be used by both system developers and application developers.
This document provides an introduction to Linux, including definitions of open source software and its advantages. It discusses the Linux system overview consisting of the kernel, OS services, and applications. It also covers Linux usage basics such as directories, shells, files, users, permissions, and input/output redirection. The document is intended to explain what topics will be covered in an introduction to Linux workshop.
Linux kernel Architecture and PropertiesSaadi Rahman
This document discusses the key components and architecture of the Linux kernel. It begins by defining the kernel as the central module of an operating system that loads first and remains in memory, providing essential services. It then describes the major subsystems of Linux, including process management, memory management, virtual file systems, network stacks, and device drivers. It concludes that the modular design of the Linux kernel has supported its growth and success through independent and extensible development of these subsystems.
Firewalls act as a choke point between networks to control and monitor traffic. Packet filters examine each IP packet to allow or deny services based on rules, while stateful packet filters track client-server sessions to better detect invalid packets. Application proxies have full access to protocols and validate requests before fulfilling them, but cannot support all services. Circuit gateways relay TCP connections between trusted internal users and external networks. Bastion hosts are highly secured systems that may run gateway or service functions with connections to multiple networks. Access control determines what resources users can access based on their identity and the classification of the protected objects.
Lesson 2 Understanding Linux File SystemSadia Bashir
The document provides an overview of Linux file systems and file types. It discusses:
1) The main types of files in Linux including directories, special files, links, sockets and pipes.
2) The standard Linux directory structure and the purpose of directories like /bin, /sbin, /etc, and /usr.
3) Common Linux file extensions and hidden files that begin with a dot.
4) Environment variables and how they can be used to customize a system.
5) Symbolic links and how they create references to files without copying the actual file.
This document discusses bootloaders, specifically the Universal Boot Loader (U-Boot). It provides an overview of bootloader concepts, U-Boot specifics, the U-Boot initialization sequence, how U-Boot passes arguments to the kernel, hands-on with U-Boot commands, the U-Boot source code structure, configuring and compiling U-Boot for a board, and porting U-Boot to support a new board.
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
Sniffing through the ages
Capturing packets running on the wire to send them to a software doing analysis seems at first sight a simple tasks. But one has not to forget that with current network this can means capturing 30M packets per second. The objective of this talk is to show what methods and techniques have been implemented in Linux and how they have evolved over time.
The talk will cover AF_PACKET capture as well as PF_RING, dpdk and netmap. It will try to show how the various evolution of hardware and software have had an impact on the design of these technologies. Regarding software a special focus will be made on Suricata IDS which is implementing most of these capture methods.
Eric Leblond, Stamus Networks
Group Policy Objects (GPOs) can be used to centrally manage user and computer settings across a Windows network. GPOs are created and linked to sites, domains, and organizational units to apply policies to all computers and users within those containers. Common uses of GPOs include controlling user desktop settings and security, deploying login and startup scripts, redirecting user folders, and installing or removing software applications. Troubleshooting tools like GPRESULT and Resultant Set of Policy can help determine which policies are in effect for a given user or computer.
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Learn an overview of design trends and designer challenges, simulator extensions for models and abstraction levels in PSpice, and examples of a coding algorithm models into PSpice PCB level cycle
Greg Tierney of Avid presented on their experiences using SystemC for design verification. SystemC provides hardware constructs and simulation capabilities in C++. Avid chose SystemC to enhance their existing C++ verification code and take advantage of its industry acceptance and built-in verification features. SystemC helped Avid solve issues like crossing language boundaries between HDL modules and testbenches, connecting ports and channels, implementing randomization, using multi-threaded processes, and defining module hierarchies. However, Avid also encountered issues with SystemC like slow compile/link times and limitations in its foreign language interface.
Greg Tierney of Avid presented on their experiences using SystemC for design verification. Some key points:
1) Avid chose SystemC to enhance their existing C++ verification code and take advantage of its built-in verification capabilities like randomization and multi-threading.
2) SystemC helped Avid solve problems like connecting entire HDL modules to their testbench and monitoring foreign signals.
3) While SystemC provided benefits, Avid also encountered issues with its compile/link performance and large library size. Overall, Avid found SystemC reliable for design verification over three years of use.
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
This document provides an introduction and overview of electronic system level (ESL) design using SystemC. It begins with background on ESL design basics, system on chip design flows, and SystemC. It then provides 3 examples of SystemC code: a counter, traffic light, and simple bus. The counter example shows a basic module with clocked process. The traffic light demonstrates a finite state machine. The bus example illustrates an interface, master/slave devices, and memory mapped components communicating over a bus. Overall, the document serves as an introductory tutorial for designing and modeling electronic systems using the SystemC language.
The document discusses adding checkpointing capabilities to SystemC simulations. It proposes two approaches: process save/restore, which saves the entire process state, and state variable save/restore, which only saves the values of state variables. It describes adding checkpointing support to the SystemC kernel to allow saving simulation state to disk and restoring later. Checkpoint data sizes are small, on the order of kilobytes, compared to gigabytes for other solutions. This allows portability and reverse execution with low overhead. Integrating SystemC with virtual platforms and the performance impacts are also discussed.
One of the biggest issues for a developer – whether they are an engineer at an OEM or working for a mobile AI application startup – is that their apps are at the mercy of pre-set power and performance settings as defined by OEMs or Silicon vendors. So how can a developer break through that barrier when it seems their hands are tied behind their backs? The Snapdragon Power Optimization SDK allows developers to control the CPU and GPU frequency much more finely from their own application logic. This provides developers with more control within the bounds of the power/thermal framework.
Industrial Automation Technical Support including: Tasks estimation, research and technical documentation writing, manual preparation; Real-time operation systems; Porting of existing Software to new target Hardware; Software and Hardware optimization; Hardware bring-up; Drivers development, redesign, upgrades; Design and implementation of embedded Software; Testing software development and verification.
This document is a resume for Jaydip Patel seeking an internship or entry-level position in VLSI design and validation. It summarizes his education, including an M.S. in Electrical and Electronics Engineering from California State University, Sacramento and a B.S. in Electronics and Communication Engineering from Gujarat University, India. It also lists relevant coursework, professional experience including internships, tools and software skills, and projects in analog and mixed signal design, logic design, computer architecture, and VLSI validation and testing.
Sudheer Vaddi is seeking a full-time opportunity in VLSI that utilizes his skills in physical design, hardware design, computer architecture, and ASIC design/verification. He has a Master's degree in Electrical Engineering from Arizona State University and work experience as an intern at FINISAR and Analog Rails. His skills include Cadence, Synopsys, Verilog, SystemVerilog, and he has experience with projects involving microprocessor component design, ASIC design from RTL to layout, and memory hierarchy latency measurement.
Software variability management involves developing software systems that can be efficiently extended, changed, customized, or configured for different contexts. Variability in software can come from bundles, command line parameters, plugins, configuration files, and microservices. Managing variability is challenging due to the large number of potential product configurations. Software product lines address this challenge by systematically combining common and variable features using techniques like feature modeling. Feature models document the features and options of a product line through a tree structure showing mandatory, optional, and mutually exclusive relationships between parent and child features. This allows efficiently developing, testing, and maintaining many derived products that share common parts.
FPGA_prototyping proccesing with conclusionPersiPersi1
This document discusses FPGA prototyping and system on chip (SoC) design using the Xilinx Zynq architecture. It begins with an overview of FPGA prototyping benefits like architecture exploration, software development and validation. Next, it describes the basic elements of a typical SoC like processors, memory and peripherals. It then introduces the Zynq architecture which combines an ARM processor with programmable logic on a single chip. Key aspects of the Zynq such as the processing system, application processing unit, external interfaces and programmable logic resources are explained. Memory mapped and FIFO interfaces for hardware/software communication are also covered. Finally, the basic design flow for Zynq SoC
byteLAKE's CFD Suite (AI-accelerated CFD) (2024-02)byteLAKE
► byteLAKE's CFD Suite: Accelerate your Computational Fluid Dynamics (CFD) simulations by leveraging the speed and efficiency of artificial intelligence. Slash simulation times, minimize trial-and-error costs, and supercharge decision-making for heightened productivity. Learn more at www.byteLAKE.com/en/CFDSuite.
This document is a resume for Venkata Rakesh Gudipalli summarizing his education and experience. He has a MS in Electrical Engineering from San Jose State University with experience in Verilog, SystemVerilog, digital design and FPGA programming. He has worked as a Systems Engineer for Tata Consultancy Services developing software using C++ and Java. His projects include designing an LCD controller and Gaussian noise generator in SystemVerilog and implementing a pattern matching game on an FPGA.
JBoss Brings More Power to your Business Processes (PTJUG)Eric D. Schabell
Session given at the PTJUG (Portugal JUG):
A Business Process Management System (BPMS) offers you the capabilities to better manage and streamline your business processes. JBoss jBPM continues its vision in this area by offering a lightweight process engine for executing business processes, combined with the necessary services and tooling to support business processes in their entire life cycles. This allows not only developers but also business users to manage your business processes more efficiently.
A lot has happened in the BPM area over the last few years, with the introduction of the BPMN 2.0 standard, the increasing interest in more dynamic and adaptive processes, integration with business rules and event processing, case management, etc. In this session, we will show you how jBPM5 tackles these challenges, discuss migration to this new platform and give you an overview of its most important features.
The document discusses ONNC, a compiler for deep learning formats like ONNX. It aims to connect ONNX to various deep learning accelerator (DLA) chips to help vendors bring products to market faster. Key features include supporting DLA features, optimizing memory usage and execution time, and being released as open source before the end of July 2018.
Mirabilis_Design AMD Versal System-Level IP LibraryDeepak Shankar
Mirabilis Design provides the VisualSim Versal Library that enable System Architect and Algorithm Designers to quickly map the signal processing algorithms onto the Versal FPGA and define the Fabric based on the performance. The Versal IP support all the heterogeneous resource.
Hi,
My name is Rohan Narula. I am a Fresh Graduate from The University of Texas at Arlington (MS Electrical Engineering) seeking full-time opportunities from June 2017. My specializations are in Embedded Systems / Firmware Development, Automation & Controls.
The document provides an overview of the Analog Devices Blackfin processor BF532. Some key points:
- The BF532 is a high-performance embedded processor designed for audio, video, automotive and other applications. It combines a 32-bit RISC instruction set with dual 16-bit MAC units and 8-bit video processing.
- It features a maximum clock speed of 600MHz, two 16-bit MACs, two 40-bit ALUs, four 8-bit video ALUs, and 148KB of on-chip memory. It supports interfaces like SPI, parallel ports, UART and has peripherals like timers and DMA.
- The document discusses the Blackfin architecture
Sandesh has over 5 years of experience in embedded systems design and validation. He has worked on projects involving sensors, microcontrollers, serial communication interfaces, hardware design, and automation. Some of his skills include Embedded C, Python, debugging, complete project lifecycles, and working with PIC, PSoC, and ARM microcontrollers. Currently he is validating soft IP blocks and automation tests for a BLE microcontroller. He holds a B.E. in Electronics and Communication and is proficient in English, Hindi, Kannada, and Tulu.
Similar to Modeling an Embedded Device for PSpice Simulation (20)
Things aren’t just getting faster; they are getting exponentially faster at a dramatic rate. As such more interfaces are relying on serial communication to meet their speed and data transfer requirements. Learn how to reliably design in your high speed serial interfaces right the first time with tips from the experts at EMA.
You can access the recorded webinar here: https://resources.ema-eda.com/all-videos-2/on-demand-webinar-serial-link-design-meeting-the-need-for-speed-2
This document discusses optimizing power supply design through simulation. It covers simulating an ideal buck converter, modeling a PWM controller and its components, capturing parasitics, optimizing capacitors, checking RMS currents, selecting components, testing for input ripple and short circuits, and calculating heat loss. The goal is to optimize efficiency and reliability through iterative simulation that accounts for real-world effects.
In this webinar, you'll learn:
Why your stackup is critical to overall design success
Key elements that comprise PCB board stack-ups (power planes, balance, flex / rigid-flex, etc)
Material selection tips and guidelines
Considerations for determining the optimal layer count
Determining impedance targets and how your stack-up affects your ability to meet your impedance goals
How to leverage your stackup to ensure design accuracy and good signal quality with your CAD system
An overview of embedding components and the costs/benefits
Achieving routing closure can be one of the most difficult tasks in the PCB design process. User surveys have shown that routing often takes up 50% or more of the PCB design cycle. Space is limited. Signals require special (often conflicting) considerations. Manufacturability must be maintained, and material costs must be controlled. On top of all this the goalposts are typically changing as you design, and the project evolves. Not all is lost though. With the proper strategy and planning these challenges can all be met in stride. Get a chance to learn from the experts at EMA and get the tips and tools you need to help you achieve routing success, even for your most complex designs.
PCB design is always changing, and not for the easier. You’re constantly being asked for more; more tech, more productivity, more efficiency. Except for when you’re being asked for less; less cost, less time, less space. Managing all these design requirements at once can sometimes seem like an impossible task. Get help from the PCB design experts at EMA with the tips and tricks you need to achieve highspeed PCB design success.
It seems almost every product these days needs to have some level of connectivity be it for end user access on their smart phone, connecting with other similar devices, or providing diagnostic data for real-time health monitoring. What all these requirements have in common is you now have RF sensitive circuits that you need to manage. Learn some quick tips and tricks to help you design and manage RF circuitry in your PCBs.
Prevent time-to-market delays by identifying manufacturing issues before they become a costly mistake. It’s not uncommon for designs to be submitted to manufacturing only to have problems identified that require design reworking and re-submission. This results in lost production time, schedule delays, and recurring tooling costs. What if you could identify DFM problems as you design and fix them when they happen? We will help show you how to spot and fix troublesome DFM issues in-design before they ever become a problem.
Based on on-demand webinar. Watch full recording here: https://resources.ema-eda.com/webinars/on-demand-webinar-design-for-manufacturing-dfm-and-why-it-matters
Flex PCB design has many advantages. In fact, the global market for flex/rigid-flex boards more than doubled in the past 4 years alone. Along with those benefits come new design challenges that weren’t present in “standard” 2D PCBs. Learn about common flex design issues and how to design to help you catch them before they become a problem. Become a flex PCB design master with tips from the experts at EMA.
Based on recorded webinar: Watch full webinar at: https://resources.ema-eda.com/webinars/lets-get-flexible-expert-tips-for-designing-flex-pcbs
Power Integrity analysis is more important than ever. Product trends continue to demand reduced form factor, while requiring even more power to support our always-on, always-connected lives. See how you can design with confidence knowing your PDN is up to the task and keep your products humming smoothly.
What You Will Learn:
Design trends driving importance of PDN analysis
What are the differences between DC and AC power loss
Common PDN challenges such as power planes fusing, resonance, and voltage ripple and how to identify and solve them
How to identify and optimize decoupling capacitor count and placement
How a design-driven PDN approach can save you time, prevent errors, and keep your designs running smoothly
Presented as a on-demand webinar. FUll recording (with demo) available at:
https://resources.ema-eda.com/webinars/on-demand-webinar-learn-how-to-ensure-a-healthy-pcb-power-delivery-network-pdn
The document summarizes new features in OrCAD 17.2 QIR6, including:
1. A new symbol editor that simplifies part creation with a single interface for properties.
2. A footprint viewer in Capture for debugging logical to physical pin mappings.
3. Enhancements to 3D modeling capabilities including shadows and automatic centering.
4. Extended DesignTrue DFM checks and new DFA checks.
5. Productivity improvements like replicate enhancements and dynamic shape quality.
This document discusses data management for PCB design. It notes that currently, PCB data is often managed through ad-hoc methods like emails and file shares rather than integrated CAD tools, which can lead to errors and wasted time. The document promotes OrCAD's Engineering Data Management and Component Information Portal products as ways to provide a centralized database and enable collaboration within design teams. It suggests these tools can help streamline the PCB design process and improve traceability.
The document discusses integrating PTC Windchill with Cadence PCB design data to create a single source of truth for electronic product creation. This would consolidate disconnected data sources, decrease time to market, and improve quality and compliance by centralizing ECAD libraries, automating data storage and retrieval, and enabling traceability at the component level. The integration would provide benefits such as a centralized library and product configuration database, integration of component compliance and lifecycle information, and an automated new part introduction process.
OrCAD Panel Editor is an assembly panel design tool that intelligently automates the panel definition and documentation process without CAD tool limitations.
Design Reuse IP has been utilized in IC and system on chip (SoC) designs effectively for many years. In PCB design, however, replication and reuse has seen slower adoption. This, in part, has been due to the rigid methodology of hierarchical blocks or symbols employed at the schematic requiring an identical PCB layout at the physical stage. These methods work in identically replicated circuits but often circuits are not 100% identical when you move from design to design. Circuits will frequently differ in component counts, net names, connectivity and PCB layer stack-up, breaking the traditional strict reuse methodology. This presentation will discuss implementing a flexible reuse solution using Cadence Allegro PCB and CircuitSpace from Cadence Connection partner EMA Design Automation.
The OrCAD constraint driven flow provides a unique, fully integrated environment to define design intent and dynamically track compliance throughout the entire implementation process. This slideshow is presented by PCB design expert Janine Flagg as demonstrating how to utilize the constraint driven flow in OrCAD to improve efficiency, reduce errors, and help ensure on-time product delivery.
ECAD MCAD Design Data Management with PTC Windchill and Cadence Allegro PCBEMA Design Automation
Learn how PTC and Cadence have developed a unique collaboration environment to connect Allegro PCB design data with the Windchill PLM system for robust file management and check-in check-out capabilities.
The document discusses challenges with PCB library creation when companies have fewer library engineers and more design requests. It introduces OrCAD Library Builder as a solution to automate library development. Key features of Library Builder include intelligent data extraction from datasheets to create symbols quickly, standards-based design, automated error checking, and 3D model generation to improve ECAD/MCAD collaboration. The automated process helps companies address library issues like long lead times, inconsistencies, and errors when engineers create parts themselves without formal processes.
Learn how EMA and Cadence are enabling the next generation of engineering data management workflows. This presentation will take you through a complete methodology covering design data management, component library management with automated footprint and symbol creation, and team based schematic design. These OrCAD engineering data management design technologies are geared to provide designers with purpose built tools to effectively manage your PCB data right from within your OrCAD design environment.
Get an update from PCB Layout as this presentation walks through the latest techniques to help tackle your tough PCB design challenges. It will cover constraint management, advanced multi-signal routing, DDR implementation, automated placement & reuse, and more. View if you want learn how you can save time and reduce errors during PCB layout.
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
International Conference on NLP, Artificial Intelligence, Machine Learning an...gerogepatton
International Conference on NLP, Artificial Intelligence, Machine Learning and Applications (NLAIM 2024) offers a premier global platform for exchanging insights and findings in the theory, methodology, and applications of NLP, Artificial Intelligence, Machine Learning, and their applications. The conference seeks substantial contributions across all key domains of NLP, Artificial Intelligence, Machine Learning, and their practical applications, aiming to foster both theoretical advancements and real-world implementations. With a focus on facilitating collaboration between researchers and practitioners from academia and industry, the conference serves as a nexus for sharing the latest developments in the field.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
3. Agenda
• Mixed-level System Design using PSpice
• Modeling of different types of devices using PSpice
– C/C++ Digital Models
– MATLAB Algorithmic Models
– SystemC Models
– Compact Device Models using VerilogA-ADMS
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
4. PSpice
accelerated
mixed-signal
system model
for large IC on
PCB with
mixed-signal
accuracy at
interface
Physical device compact model
SystemC model supporting embedded
S/W and different abstraction levels
Analog behavioral
Digital C/C++ with embedded SW
block
Temporal Data Accuracy
Functionality Structural
Simulation Acceleration with
System-Level Abstractions
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
5. Digital controllers enabled Power
Supplies
Advanced control algorithm (non-
linear control, improved transient)
Enable easy management of
multiple control loops
Better precision tolerance to
aging, temperature effects, etc.
Example – S/w algorithm Controlled Power Supply
PWM
Microcontroller with
algorithm control
Power Stage Filter Stage
IN
A/D
OUT
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
6. Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
Top-level schematic
7. Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
8. 1. C/C++ Digital Model in PSpice
• Specification of logic using
C/C++
• Timing model, I/O and
constraints specification may
be coded as part of the C-
model or applied on the
block level from datasheet
• Interfaces are accurate for
mixed-signal implementation
• Evaluation is accelerated with
C/C++/SystemC model for large
digital blocks
• Device Logic is independent of
PSpice syntax
• Model is debuggable in Visual
IDE’s
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
9. 1. C/C++ Digital Model in PSpice…
• Next: Implementing PWM Block as a Digital behavioral block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
10. Install Model
void __cdecl installpspPWMControl(void* pRef)
{
fp_descSetVersion(pRef, "1.2");
fp_descSetName(pRef, "PSPPWMCONTROL");
fp_descSetCreateDevice(
pRef,&pspPWMControl_CreateDevice);
fp_descSetDeleteDevice(
pRef,&pspPWMControl_DeleteDevice);
fp_descSetEvaluateDevice(
pRef,&pspPWMControl_EvaluateDevice); }
• Links functions between
device and simulator
– Sets function pointers from
model dll to PSpice
• Sets version and Model Name
• Allows multiple devices to be
installed from the same dll
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
11. Create Instance
pspPWMControl::pspPWMControl
(const char* pInstName,
void*pRef) {
mRef = pRef;
mInstName = pInstName;
mPortCount = 18;
mInputPortCount = 17; }
• Creates a new device
instance
• Instance Name and
Reference set by PSpice
• Port counts set by Device
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
12. Set Parameter Values
mDigSimFreq =
fp_GetParamValueDbl("DIGFREQ");
mDigSimTimeStep = 1.0 / mDigSimFreq;
//Device Specific Initialization
mPER = (int)fp_GetParamValueDbl("PER");
mDutyCycle = fp_GetParamValueDbl("D");
• Get Parameter values from
PSpice by name
o Simulator options
o Global parameters set up in
design
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
13. Evaluate
bool pspPWMControl::evaluate
(double pTicks, PSpiceState* pVectorStates, int pSize) {
double lCurrentTime = mDigSimTimeStep*pTicks;
double lDelta = pTicks - mPrevTicks;
//Get input Signal Levels
CLK = pVectorStates[0].getLevel();
//if CLK changed from LO to another value
if ((int)prevCLK == pspBit::LO && (int)CLK != pspBit::LO)
{
lCLKRisingEdge = true; }}
• Evaluate device at any
change in inputs
o Get Current time
o Get input signal levels
o Detect clock edge
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
14. Evaluate…
for (int i = 0; i < 8; i++) {
FB[i] = pVectorStates[8 - i].getLevel(); }
pspBits2Int(FB, FBInt, 8);
//evaluate logic
for (int i = 0; i < 8; i++) {
PW[i] = FB[i] & REF[i]; }
if (mPWStatus==true && (int)PW != 1){
PW = pspBit::HI; }
//update output State
for (int i = 0; i < 8; i++) {
if (oldPW[i] == PW[i]) continue;
lState = PW[i];
fp_SetState(mRef, 7-i, &lState, NULL); }
• Read levels (LO|HI) for input
signal bits
• Convert Signal Bits to C++
integer levels
• Execute Algorithm
• Convert C++ data back to
signal bits
• Update output states
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
15. Set Delays
PSpiceState lState = (pVectorStates)[0];
PSpiceDelay lDelay;
lDelay.mMaxDelay = 1e-6;
lDelay.mMinDelay = 1e-6;
lDelay.mTypDelay = 1e-6;
lState = PW;
fp_SetState(mRef, 0, &lState, &lDelay);
• Set Timing Delays
• Min/Typ/Max Delays
• Simulator can be setup to run
with any 1 value
• Worst-case analysis can be
run with min and max delays
• Alternate way is to setup
using PSpice Timing Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
16. Set Constraints
PSpiceConstraint lConstraint;
PSpiceSetupHoldConstraint& lSH =lConstraint.mSetupHold;
lSH.setuptime_hi = 3e-6;
lSH.holdtime_hi = 3e-6;
strcpy(lSH.mClockName, "CLK");
strcpy(lSH.mNetsList->mNetName, "FB1");
PSpiceWidthConstraint& lWidth = lConstraint.mWidth;
strcpy(lWidth.mInputNode, "FB1");
lWidth.min_low = 30e-6;
lWidth.min_high = 50e-6;
fp_setConstraint(mRef, &lConstraint);
• Set Digital constraints
• Setup-Hold
• Pulse Width
• Frequency
• Alternate way is to use
Digital CONSTRAINT device in
PSpice
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
17. C/C++ Digital Model – from C++ to PSpice
• Code is built into a dll
• PSpice lib and Capture
symbol created for the model
• LOGICEXP device with
keyword C_MODEL used for
specifying C-models
• Model loaded from dll by
PSpice at run-time
U1 LOGICEXP( 17, 1 ) DPWR DGND
+ CLK
+ FB7 FB6 FB5 FB4 FB3 FB2 FB1 FB0
+ REF7 REF6 REF5 REF4 REF3 REF2
REF1 REF0
+ PW
+ PWMCONTROL_TIMING IO_STD
+ C_MODEL: PSPPWMCONTROL.dll
PSPPWMCONTROL
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
18. 2. MATLAB Algorithmic Model in PSpice
• Implementing Averaging Filter Block as a MATLAB Algorithmic
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
19. Algorithmic Block
Simulation in
Matlab-Simulink
MATLAB Model Block
Implementation &
Simulation in
PSpice
Mixed-level Co-
simulation in Matlab-
Simulink & PSpice
Mixed-level
Simulation in PSpice
Using Device modeling API with
MathWorks Algorithms
Algorithmic Abstraction Implementation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
20. MATLAB
Algorithmic module
Use MATLAB Coder Generate C Code
Use Microsoft
Visual Studio
Add PSpice Adapter
and embed code
inside PSpice
behavioral block
Compile code to
generate PSpice-
DMI compatible dll
Use OrCAD Capture
Instantiate device
as a macro-model
Run PSpice
simulation and
verify results
High-level Flow for
using MATLAB blocks
using PSpice Device
Modeling API
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
21. MATLAB Filter algorithm and generated C code using MATLAB Coder
• Example of Averaging Filter
– http://www.mathworks.com/help/coder
/examples/averaging-
filter.html#zmw57dd0e162
• Generated C Code from
MATLAB Coder
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
22. Embed MATLAB C Code in PSpice
Behavioral Device
• VCVS (Voltage Controlled
Voltage Source)
• Independent Voltage Source
• More suitable for discontinuous
derivatives
y=f(x)
Matlab
Function
N1
N2
N3
N4
f(x)*V(N3-N4)
Nodes and Branches
•Node N1
•Node N2
•Node N3
•Node N4
•Branch B1
N1 N2 N3 N4 B1 RHS
N1 1
N2 -1
B1 1 -1 -f’(x) f’(x)Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
23. MATLAB Model State Variables
static double buffer[16];
double averaging_filter(const double x,
double* buffer) {
double y;
double dv0[15];
/* Scroll the buffer */
memcpy(&dv0[0], &buffer[0], 15U *
sizeof(double));
memcpy(&buffer[1], &dv0[0], 15U *
sizeof(double));
• Persistent Matlab Variable
(State variables) moved to
PSpice Model State
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
24. PSpice Model State Management
•Inner Iteration on current State
Incr0
•Increment to next state as the
previous time point has converged
Incr1
•Decrement to previous State as last
time point convergence failed
decr1
•Decrement to 2nd previous State as
last time point convergence failed
Decr2
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
25. Setup for PSpice Evaluation States
case ININIT:
averaging_filter_init(sv.x);
nonConv = true;
break;
case INPRDCT: {
double xDiff = sv.x[0] - sv.x[1];
double yDiff = sv.y[0] - sv.y[1];
if (abs(xDiff) > 0.0) {
mGain = yDiff / xDiff;
yValue = mGain * (xValue - sv.x[0]); }
break; }
case INNORM: {
sv.y[0] = yValue = averaging_filter(xValue, sv.x);
mGain = yValue / xValue;
break; }
• Initialization of device
structures
• Predictor
• Normal Evaluation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
26. Time Step Control
double pspAveragingFilterDevice::Trunc() {
double freq = fp_getParameterValue(“FREQ”);
double delta = fp_getDelta();
if (delta > 1.0/freq) {
double lValDelta = fabs((sv.x[0] - sv.x[1])) /
(fabs(sv.x[0]));
if (lValDelta > 0.1){
lReturnValue = delta / (1+lValDelta);
} }
return lReturnValue; }
• Device-Level
– Adaptive
– Fixed
• Global
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
27. MATLAB Algorithmic Model – from C++ to PSpice
• Code is built into a dll
• PSpice lib and Capture
symbol created for the model
• Y device with keyword CMI
used for specifying C-models
• Model loaded from dll by
PSpice at run-time
Y_AVGFILTER OUTPUT 0
NOISY_INPUT 0 CMI
pspMatlabDemoModels.dll
AvgFilter
.model AvgFilter CMI
PSPAVERAGINGFILTER
+ pw=.5
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
28. MATLAB PSpice
Algorithm Transfer
to PSpice Circuit
Model
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
29. Complete System Simulation
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
30. Time
0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms
V(VOUT)
0V
5V
10V
0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms 2.2ms 2.4ms 2.6ms 2.8ms 3.0ms 3.2ms 3.4ms
CLK
.REF2
Simulation Results – output voltage
(variation with duty cycle)
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
31. 3. SystemC Behavioral Model in PSpice
• Implementing PWM Block as a SystemC block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
32. Design Flow
Digital Logic implemented
only as a C++ functional
block – no timing
information
Timing information added
as PSpice/C++ delays
Digital Logic implemented
as a SystemC functional
block, with built-in timing
SystemC logic replaced
with CPU having
embedded software
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
33. SystemC Flow – How it works?
Communicating with
PSpice
Running on SystemC
Simulator
Digital-C++
wrapper
Module
Analog
Behavioral
Devices
LOGICEXP
Device
Physical
Devices
SystemC
Block
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
34. SystemC Module Definition
#include <systemc.h>
SC_MODULE(pspSysCFIR) {
sc_in<bool> clk;
sc_in<sc_logic> reset;
sc_in<sc_int<16>> input;
sc_out<sc_int<16>> output;
SC_CTOR(pspSysCFIR) {
SC_CTHREAD(entry, clk.pos());
void entry(); };
• Define Module name
• Define Interface Signals
• Define constructor and
entry method
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
35. Reading inputs from PSpice
reset = pVectorStates[1].getLevel();
for (int i = 0; i < 16; i++) {
inputBits[i] =
pVectorStates[i+2].getLevel(); }
sc_int<16> lValue;
pspBits2Array(inputBits, lValue,
16);
siginput.write(lValue);
• Read input signals
• Create SystemC variables
for input signals
• Write to SystemC Block
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
36. Evaluate SystemC Block
if (sc_pending_activity()) {
if (pTicks > mPrevTicks) {
sc_start(pTicks - mPrevTicks,
SC_PS); }
else {
sc_start(0, SC_PS); }
• sc_start to execute the
module till specified time
• pTicks is received from
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
37. Send output to PSpice
lValue = m_pspSysCFIR-
>output.read();
Int2pspBits(lValue, outputBits,
16);
lState = outputBits[i];
fp_SetState(mRef, i, &lState,
&lDelay);
• Read values from SystemC
block output
• Write to output Signal bits
• Send updated State to
PSpice Simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
38. System Models Timing
• System Models may be at
any level of abstraction
• Accuracy is maintained by
PSpice at the interface
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
39. 4. VerilogA-ADMS Compact Device Model in
PSpice
• Implementing a VerilogA-ADMS VBIC Model as a PSpice
Compact Device
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
40. Verilog-A definition for VBIC Model
module vbic(c,b,e,s)
inout c,b; // external nodes
inout e,s; // external nodes
branch (b ,e ) b_be; // base-emit
branch (b ,c ) b_bc; // base-coll
parameter real tnom = 27.0 `P(info="nominal parameter
measurement temperature " unit="C");
parameter real rcx = 0.0 from[0.0:inf]
`P(info="extrinsic collector resistance " unit="Ohm");
analog begin
Tini = `TABS+tnom;
` Vrth = V(b_rth);
Tdev = $temperature+dtemp+Vrth;
Tdev = Tdev-`TABS;
if (Tdev<tmin)
Tdev = tmin;
• Module name and external
node names
• Node definitions
• Branch definitions
• Parameter definitions
• Device Behavior
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
41. VerilogA-ADMS translation to PSpice
• admsXml used to translate Verilog-A
files to PSpice CMI models
• Script for automatic translation and
build of CMI dll
– <SPB
hierarchy>toolspspiceapibinbuildAD
MSProject.bat <path to Verilog-A file>
– Runs admsXml, using PSpice xml filters,
and generates the code files
– Also generates a Makefile to build a
PSpice-CMI compatible dll
– Runs nmake to build the code into a dll
• VBICSELFT.va translated to:
– vbicload.cpp
– vbicdefs.h
– vbicsetup.cpp
– vbictemp.cpp
– PSpiceAdapter.cpp
…
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
42. VerilogA-ADMS Simulation in PSpice
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.
43. Summary
• PSpice® system model extensions enable modeling of large
mixed-signal ICs in PCB simulation enabling simulation of
entire PCB
• PSpice analog C/C++ extensions with VerilogA-ADMS
configurations enable modeling of new technology device
compact models into PSpice simulator
Cadence, the Cadence logo, and PSpice are registered trademarks of Cadence Design Systems, Inc. All
other trademarks are the property of their respective owners.