This document discusses the benefits of using a Chip Specification Language (CSL) to automatically generate shared infrastructure elements across hardware, software, simulation, and verification domains for chip design. Key points include:
- CSL allows for a single specification of infrastructure that can be compiled to generate equivalent code for all domains, avoiding errors from manual generation and maintenance.
- Automatically generating infrastructure can reduce engineering time spent on repetitive tasks by 10-100x, allowing teams to focus on design.
- Shared infrastructure specified in CSL maintains consistency when changes are made, rather than requiring updates across different files and teams manually.
- CSL can generate test benches, vectors, and other elements to dramatically increase verification points
Moving to the cloud isn’t easy, transforming your engineering team to adopt to the cloud and services lifestyle is therefore crucial. It all starts with creating a common understanding of the engineering and development principles which are important in the cloud, which are different then building regular applications. This session will take you on a road trip based on the presenters experience developing and more importantly operating Azure Active Directory, SQL Server Azure and most recently the Xbox Live Services to support Xbox One.
The document provides an overview of the .NET framework. It describes .NET as a software platform and language-neutral runtime that executes programs written in any compliant language. It discusses key aspects of .NET including the Common Language Runtime (CLR), support for multiple programming languages, and tools like ASP.NET and Visual Studio.NET. The conclusion compares .NET to the J2EE architecture.
This document summarizes Netflix's journey to building a globally ubiquitous and failure-resilient architecture. It describes how Netflix evolved from a single data center architecture to a multi-region active-active design using microservices, Cassandra for data storage, EVCache for caching, and virtual DNS regions for traffic management. The architecture is designed to reliably serve customers from any region by replicating data and traffic across regions and implementing failover mechanisms.
This document discusses the declining relevance of traditional Java application servers. It argues that application servers are no longer needed as containers for multiple applications due to limitations in isolation. Modern applications are better suited as individual JAR files with their own custom infrastructure and standard monitoring and deployment tools rather than relying on application server-specific approaches. Frameworks like Spring Boot and Dropwizard provide an alternative to application servers by allowing applications to be self-contained deployable units without dependency on external application server infrastructure.
Accelerating time to delivery: Modernizing Application DevelopmentMicro Focus
The document discusses tools for accelerating application development including project templates, code snippets, cross-platform development, and application workflow modeling. It also covers Micro Focus's Enterprise Test Server for scalable enterprise testing without consuming mainframe resources.
The document discusses updates and changes in .NET. It recommends developing new applications on .NET Core, which is more modern and cross-platform than the .NET Framework. It provides guidance on migrating existing desktop and web applications to .NET Core, including leveraging .NET Standard for shared business logic. It also outlines new features in C# 8.0 like nullable reference types, asynchronous streams, and default interface implementations.
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
The idea of making Xen secret-free has been floating since Spectre and Meltdown came into light. In this talk we will discuss what is being done and what needs to be done next.
Moving to the cloud isn’t easy, transforming your engineering team to adopt to the cloud and services lifestyle is therefore crucial. It all starts with creating a common understanding of the engineering and development principles which are important in the cloud, which are different then building regular applications. This session will take you on a road trip based on the presenters experience developing and more importantly operating Azure Active Directory, SQL Server Azure and most recently the Xbox Live Services to support Xbox One.
The document provides an overview of the .NET framework. It describes .NET as a software platform and language-neutral runtime that executes programs written in any compliant language. It discusses key aspects of .NET including the Common Language Runtime (CLR), support for multiple programming languages, and tools like ASP.NET and Visual Studio.NET. The conclusion compares .NET to the J2EE architecture.
This document summarizes Netflix's journey to building a globally ubiquitous and failure-resilient architecture. It describes how Netflix evolved from a single data center architecture to a multi-region active-active design using microservices, Cassandra for data storage, EVCache for caching, and virtual DNS regions for traffic management. The architecture is designed to reliably serve customers from any region by replicating data and traffic across regions and implementing failover mechanisms.
This document discusses the declining relevance of traditional Java application servers. It argues that application servers are no longer needed as containers for multiple applications due to limitations in isolation. Modern applications are better suited as individual JAR files with their own custom infrastructure and standard monitoring and deployment tools rather than relying on application server-specific approaches. Frameworks like Spring Boot and Dropwizard provide an alternative to application servers by allowing applications to be self-contained deployable units without dependency on external application server infrastructure.
Accelerating time to delivery: Modernizing Application DevelopmentMicro Focus
The document discusses tools for accelerating application development including project templates, code snippets, cross-platform development, and application workflow modeling. It also covers Micro Focus's Enterprise Test Server for scalable enterprise testing without consuming mainframe resources.
The document discusses updates and changes in .NET. It recommends developing new applications on .NET Core, which is more modern and cross-platform than the .NET Framework. It provides guidance on migrating existing desktop and web applications to .NET Core, including leveraging .NET Standard for shared business logic. It also outlines new features in C# 8.0 like nullable reference types, asynchronous streams, and default interface implementations.
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
The idea of making Xen secret-free has been floating since Spectre and Meltdown came into light. In this talk we will discuss what is being done and what needs to be done next.
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the CoreFX repo contains the base class libraries for .NET Core, is maintained by around 40 engineers, and receives 500-600 new issues and 700 pull requests monthly. It outlines techniques for slicing the large repo, setting guidelines for triaging issues, processes for adding new APIs, and approaches for involving external contributors and community. The document aims to gather feedback on managing the repo and improving collaboration.
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the repo contains the base class libraries for .NET Core, is maintained by around 40 Microsoft engineers, and receives hundreds of issues and pull requests monthly. It outlines tools used to manage the large repo and process for evaluating new APIs and code changes. It also discusses efforts to improve communication and involvement with external contributors on issues like onboarding, unclear issues, and driving consensus.
.NET MeetUp Prague 2017 - .NET Standard -- Karel ZikmundKarel Zikmund
The document discusses .NET Standard, which is a specification that defines a set of APIs that all .NET platforms must implement. This allows code written for one platform using those APIs to work seamlessly across all other platforms that support the same .NET Standard version. The document outlines the different versions of .NET Standard and shows which platforms support each version. It emphasizes that .NET Standard is for libraries, while applications should target specific platforms like .NET Core or Xamarin. The document also provides an overview of .NET Core and its key advantages like being cross-platform, unified, fast, modern, open source and lightweight.
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the repo contains the base class libraries for .NET Core, is maintained by around 40 Microsoft engineers, and receives hundreds of issues and pull requests monthly. It outlines strategies for organizing the large repo, prioritizing work, adding new APIs, and involving external contributors through community outreach efforts.
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
This document summarizes Codice Software, a company that provides version control software. It introduces Plastic SCM, their flagship product, which enables parallel development through branching and merging capabilities. Plastic SCM aims to increase productivity and quality by allowing developers to work independently and merge changes efficiently. The document highlights customer case studies where Plastic SCM helped reduce costs and time to market. It also outlines Codice's values of proven technology, customer focus, and striving for excellence.
Sencha Tooling and Framework brings enterprise-grade development tools to Ext JS including visual application builders, theme designers, and debugging tools to help developers quickly build performant and beautiful applications. The document demonstrates using Sencha Architect to visually build a news application, and highlights new features in Architect 4.1 like support for premium components, grid enhancements, and importing themes from Themer. Sencha's tools help developers improve productivity and adopt Ext JS frameworks easily.
This document discusses reverse engineering thick-client applications. It begins with an overview of thick clients, noting they provide local software that connects to server software via TCP/IP sockets. It describes the attack surface of thick clients, including potential for rootkits, cache/registry corruption, and information disclosure due to local software and storage. Tools that can be used for reverse engineering thick clients are also outlined, such as decompilers, profilers, proxies and sniffers. An example reverse engineering process using these tools on a Java thick client is then provided.
Moving 1,000 Users & 100 Branches into StreamsPerforce
MathWorks has approximately 100 products derived from a single large code base, with over 1,000 developers contributing changes to almost one million source files. Their products are used to develop safety-critical systems, so managing a continuous influx of changes while guaranteeing quality and correctness is challenging. Learn how MathWorks, unable to use a simple model of “component as a directory,” created an elegant system using virtual streams and the Perforce broker in their ongoing efforts to modularize their code base.
IPv4 and IPv6 are protocols that assign numeric addresses to devices to enable communication and routing of information across the internet. DNS is a hierarchical system that maps human-friendly domain names to these numeric IP addresses. It uses caching and time-to-live values to improve efficiency. Local networks can be merged using bridges, which expose internal addresses, or NAT, which hides internal addresses behind a single external address.
Developing and Deploying Deep Learning Based Computer Vision Systems - Alka N...CodeOps Technologies LLP
Deep Learning is enabling a wide range of computer vision applications from advanced driver assistance systems to sophisticated medical diagnostic devices. However, designing and deploying these applications involve a lot of challenges like handling large datasets, developing optimized models, effectively performing GPU computing and efficiently deploying deep learning models to embedded boards like NVIDIA Jetson. This session illustrates how MATLAB supports all phases of this workflow starting with algorithm design to automatically generating portable and optimized CUDA code helping engineers and scientists address the commonly observed challenges in deep learning workflow
Implementing Continuous Delivery with Enterprise MiddlewareXebiaLabs
This document discusses implementing continuous delivery with enterprise middleware. It begins with introductions of the speakers and an overview of ThoughtWorks Studios and XebiaLabs. It then provides definitions and explanations of continuous delivery. The remainder of the document discusses approaches to continuous delivery in the enterprise including dealing with complex dependency trees, diverse deployment landscapes, and integration with release management. It provides an example continuous delivery pipeline for a Java EE application and how it can be optimized for an enterprise approach.
Get Devops Training in Chennai with real-time experts at Besant Technologies, OMR. We believe that learning Devops with practical and theoretical will be the easiest way to understand the technology in quick manner. We designed this Devops from basic level to the latest advanced level
http://www.traininginsholinganallur.in/devops-training-in-chennai.html
Vikash Kumar Singh is seeking a challenging role in software development. He has 7 years of experience in QA testing and 4 years testing storage domains. Currently a QA Engineer at Emulex, he is experienced with storage protocols, firmware, operating systems, and pre-boot testing. Previously he worked as an Interoperability Engineer at Wipro on Netapp projects.
Foundational Design Patterns for Multi-Purpose ApplicationsChing-Hwa Yu
This document discusses foundational design patterns for multi-purpose applications. It covers topics like coupling, cohesion, and moving beyond using a single while loop. Functional global variables and queued message handlers are introduced as design patterns to enable communication between independent processes. The document provides examples of how these patterns can be used to decompose an application into independent processes to improve scalability, testability, and maintainability.
They didn’t think migrating off their legacy version control system would be difficult. They thought it would be impossible.
For Cadence Design Systems, the multinational electronic design automation (EDA) software and engineering services company, moving off ClearCase was an important but daunting goal.
They knew a modern, flexible system would foster innovation and help them keep up with rapidly evolving customer demands. But, they had a highly customized environment and wanted to preserve the data they’d accumulated over the years.
It wasn’t easy. But, with Perforce, it was possible.
How? Find out.
Cindi Hunter, Director of Configuration Management and Tom Tyler, Senior Consultant at Perforce Software, share their highly successful migration process, which includes:
• Defining the scope of your migration given your unique environment.
• Determining a migration strategy to preserve sophisticated branching strategies, custom tools, and important data.
• Ensuring you get the migration support you need from your new vendor.
Perfecting Your Development Tools: Updates to the Helix Plugin for JenkinsPerforce
Considering a mono repo that can manage all your source code, binary and other assets?
Join us for an exclusive recap of our Birds of Feather presentation from this year’s Jenkins World conference! Senior Integration Engineer Paul Allen will reveal much anticipated updates around the Helix Plugin for Jenkins (or ‘P4 Plugin’).
This presentation covers...
- The latest DSL Pipeline support in the ‘P4 Plugin'
- Tips & tricks on mapping your Branches and Streams into a Jenkins Workspace
- Best practices on publishing assets into Helix
- A sneak preview of the latest ‘P4 Plugin’ for Jenkins
The document provides an overview of the Microsoft .NET Framework. It discusses how .NET aims to unite isolated web applications and make information available anytime through the use of web services, XML support, and rich development tools. The .NET Framework includes a Common Language Runtime that manages running code and supports multiple programming languages. It also includes various framework services like ASP.NET, ADO.NET, and Windows forms. The Common Language Specification allows different .NET languages to interoperate. Visual Studio .NET is the primary development tool for building .NET applications.
Heroku is a platform as a service that originally started as a Ruby PaaS but now supports Node.js, Clojure, Grails, Scala, and Python. It uses the Git version control system for deployment and a dyno process model for scaling applications. While flexible in allowing custom buildpacks and configuration via environment variables, there are also restrictions like maximum source code size and memory limits for dyno processes.
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
The document discusses several cases where architecture decisions hurt software teams. It provides lessons learned from each case:
- Overly sharing code across domains can cause dependencies and fragility. Architectural boundaries should separate domains.
- Attempting to satisfy all use cases with a single highly configurable solution often satisfies no one. Specific solutions may be preferable.
- Microservices are not a universal solution and will not improve a flawed design alone. Modules should only be split across microservices at domain boundaries.
- Systems need to be designed to evolve dynamically over time as requirements change. Centralized control hinders this.
Embedded systems are application-specific systems that contain hardware and software tailored for a particular task. They have real-time constraints and include requirements for performance, reliability, and form factor. Models and architectures are used to represent embedded system designs at different levels of abstraction. Hardware/software partitioning is the process of deciding which subsystems are best implemented in hardware versus software to meet performance goals within constraints like size, power, and cost.
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the CoreFX repo contains the base class libraries for .NET Core, is maintained by around 40 engineers, and receives 500-600 new issues and 700 pull requests monthly. It outlines techniques for slicing the large repo, setting guidelines for triaging issues, processes for adding new APIs, and approaches for involving external contributors and community. The document aims to gather feedback on managing the repo and improving collaboration.
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the repo contains the base class libraries for .NET Core, is maintained by around 40 Microsoft engineers, and receives hundreds of issues and pull requests monthly. It outlines tools used to manage the large repo and process for evaluating new APIs and code changes. It also discusses efforts to improve communication and involvement with external contributors on issues like onboarding, unclear issues, and driving consensus.
.NET MeetUp Prague 2017 - .NET Standard -- Karel ZikmundKarel Zikmund
The document discusses .NET Standard, which is a specification that defines a set of APIs that all .NET platforms must implement. This allows code written for one platform using those APIs to work seamlessly across all other platforms that support the same .NET Standard version. The document outlines the different versions of .NET Standard and shows which platforms support each version. It emphasizes that .NET Standard is for libraries, while applications should target specific platforms like .NET Core or Xamarin. The document also provides an overview of .NET Core and its key advantages like being cross-platform, unified, fast, modern, open source and lightweight.
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel ZikmundKarel Zikmund
This document summarizes the challenges of managing the .NET CoreFX repository. It discusses that the repo contains the base class libraries for .NET Core, is maintained by around 40 Microsoft engineers, and receives hundreds of issues and pull requests monthly. It outlines strategies for organizing the large repo, prioritizing work, adding new APIs, and involving external contributors through community outreach efforts.
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
This document summarizes Codice Software, a company that provides version control software. It introduces Plastic SCM, their flagship product, which enables parallel development through branching and merging capabilities. Plastic SCM aims to increase productivity and quality by allowing developers to work independently and merge changes efficiently. The document highlights customer case studies where Plastic SCM helped reduce costs and time to market. It also outlines Codice's values of proven technology, customer focus, and striving for excellence.
Sencha Tooling and Framework brings enterprise-grade development tools to Ext JS including visual application builders, theme designers, and debugging tools to help developers quickly build performant and beautiful applications. The document demonstrates using Sencha Architect to visually build a news application, and highlights new features in Architect 4.1 like support for premium components, grid enhancements, and importing themes from Themer. Sencha's tools help developers improve productivity and adopt Ext JS frameworks easily.
This document discusses reverse engineering thick-client applications. It begins with an overview of thick clients, noting they provide local software that connects to server software via TCP/IP sockets. It describes the attack surface of thick clients, including potential for rootkits, cache/registry corruption, and information disclosure due to local software and storage. Tools that can be used for reverse engineering thick clients are also outlined, such as decompilers, profilers, proxies and sniffers. An example reverse engineering process using these tools on a Java thick client is then provided.
Moving 1,000 Users & 100 Branches into StreamsPerforce
MathWorks has approximately 100 products derived from a single large code base, with over 1,000 developers contributing changes to almost one million source files. Their products are used to develop safety-critical systems, so managing a continuous influx of changes while guaranteeing quality and correctness is challenging. Learn how MathWorks, unable to use a simple model of “component as a directory,” created an elegant system using virtual streams and the Perforce broker in their ongoing efforts to modularize their code base.
IPv4 and IPv6 are protocols that assign numeric addresses to devices to enable communication and routing of information across the internet. DNS is a hierarchical system that maps human-friendly domain names to these numeric IP addresses. It uses caching and time-to-live values to improve efficiency. Local networks can be merged using bridges, which expose internal addresses, or NAT, which hides internal addresses behind a single external address.
Developing and Deploying Deep Learning Based Computer Vision Systems - Alka N...CodeOps Technologies LLP
Deep Learning is enabling a wide range of computer vision applications from advanced driver assistance systems to sophisticated medical diagnostic devices. However, designing and deploying these applications involve a lot of challenges like handling large datasets, developing optimized models, effectively performing GPU computing and efficiently deploying deep learning models to embedded boards like NVIDIA Jetson. This session illustrates how MATLAB supports all phases of this workflow starting with algorithm design to automatically generating portable and optimized CUDA code helping engineers and scientists address the commonly observed challenges in deep learning workflow
Implementing Continuous Delivery with Enterprise MiddlewareXebiaLabs
This document discusses implementing continuous delivery with enterprise middleware. It begins with introductions of the speakers and an overview of ThoughtWorks Studios and XebiaLabs. It then provides definitions and explanations of continuous delivery. The remainder of the document discusses approaches to continuous delivery in the enterprise including dealing with complex dependency trees, diverse deployment landscapes, and integration with release management. It provides an example continuous delivery pipeline for a Java EE application and how it can be optimized for an enterprise approach.
Get Devops Training in Chennai with real-time experts at Besant Technologies, OMR. We believe that learning Devops with practical and theoretical will be the easiest way to understand the technology in quick manner. We designed this Devops from basic level to the latest advanced level
http://www.traininginsholinganallur.in/devops-training-in-chennai.html
Vikash Kumar Singh is seeking a challenging role in software development. He has 7 years of experience in QA testing and 4 years testing storage domains. Currently a QA Engineer at Emulex, he is experienced with storage protocols, firmware, operating systems, and pre-boot testing. Previously he worked as an Interoperability Engineer at Wipro on Netapp projects.
Foundational Design Patterns for Multi-Purpose ApplicationsChing-Hwa Yu
This document discusses foundational design patterns for multi-purpose applications. It covers topics like coupling, cohesion, and moving beyond using a single while loop. Functional global variables and queued message handlers are introduced as design patterns to enable communication between independent processes. The document provides examples of how these patterns can be used to decompose an application into independent processes to improve scalability, testability, and maintainability.
They didn’t think migrating off their legacy version control system would be difficult. They thought it would be impossible.
For Cadence Design Systems, the multinational electronic design automation (EDA) software and engineering services company, moving off ClearCase was an important but daunting goal.
They knew a modern, flexible system would foster innovation and help them keep up with rapidly evolving customer demands. But, they had a highly customized environment and wanted to preserve the data they’d accumulated over the years.
It wasn’t easy. But, with Perforce, it was possible.
How? Find out.
Cindi Hunter, Director of Configuration Management and Tom Tyler, Senior Consultant at Perforce Software, share their highly successful migration process, which includes:
• Defining the scope of your migration given your unique environment.
• Determining a migration strategy to preserve sophisticated branching strategies, custom tools, and important data.
• Ensuring you get the migration support you need from your new vendor.
Perfecting Your Development Tools: Updates to the Helix Plugin for JenkinsPerforce
Considering a mono repo that can manage all your source code, binary and other assets?
Join us for an exclusive recap of our Birds of Feather presentation from this year’s Jenkins World conference! Senior Integration Engineer Paul Allen will reveal much anticipated updates around the Helix Plugin for Jenkins (or ‘P4 Plugin’).
This presentation covers...
- The latest DSL Pipeline support in the ‘P4 Plugin'
- Tips & tricks on mapping your Branches and Streams into a Jenkins Workspace
- Best practices on publishing assets into Helix
- A sneak preview of the latest ‘P4 Plugin’ for Jenkins
The document provides an overview of the Microsoft .NET Framework. It discusses how .NET aims to unite isolated web applications and make information available anytime through the use of web services, XML support, and rich development tools. The .NET Framework includes a Common Language Runtime that manages running code and supports multiple programming languages. It also includes various framework services like ASP.NET, ADO.NET, and Windows forms. The Common Language Specification allows different .NET languages to interoperate. Visual Studio .NET is the primary development tool for building .NET applications.
Heroku is a platform as a service that originally started as a Ruby PaaS but now supports Node.js, Clojure, Grails, Scala, and Python. It uses the Git version control system for deployment and a dyno process model for scaling applications. While flexible in allowing custom buildpacks and configuration via environment variables, there are also restrictions like maximum source code size and memory limits for dyno processes.
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
The document discusses several cases where architecture decisions hurt software teams. It provides lessons learned from each case:
- Overly sharing code across domains can cause dependencies and fragility. Architectural boundaries should separate domains.
- Attempting to satisfy all use cases with a single highly configurable solution often satisfies no one. Specific solutions may be preferable.
- Microservices are not a universal solution and will not improve a flawed design alone. Modules should only be split across microservices at domain boundaries.
- Systems need to be designed to evolve dynamically over time as requirements change. Centralized control hinders this.
Embedded systems are application-specific systems that contain hardware and software tailored for a particular task. They have real-time constraints and include requirements for performance, reliability, and form factor. Models and architectures are used to represent embedded system designs at different levels of abstraction. Hardware/software partitioning is the process of deciding which subsystems are best implemented in hardware versus software to meet performance goals within constraints like size, power, and cost.
Embedded systems are application-specific systems that contain hardware and software tailored for a particular task. Models and architectures are used to represent embedded system designs at different levels of abstraction. Hardware/software partitioning is the process of deciding which functionality is implemented in hardware versus software to meet performance and other constraints. There are various approaches to partitioning including functional decomposition, allocation of components, and using metrics to evaluate different partitions. Specification languages are used to capture system functionality in a way that supports partitioning.
XP teams try to keep systems fully integrated at all times, and shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt.
Watch our record for the webinar "Continuous Integration" to explore how Azure DevOps helps us in achieving continuous feedback using continuous integration.
Infrastructure as Code - Getting Started, Concepts & ToolsLior Kamrat
This document provides an overview of infrastructure as code concepts and tools. It begins with an introduction to infrastructure as code and how it allows infrastructure to be provisioned and maintained through code. It then covers different categories of tools including ad-hoc scripts, configuration management tools, server templating tools, and provisioning tools. Examples like Packer and Terraform are demonstrated. The document also discusses concepts like mutable vs immutable infrastructure and imperative vs declarative code. It profiles major infrastructure as code players and frameworks. Finally it touches on best practices and the benefits of infrastructure as code.
DSD-INT 2020 Scripting a Delft-FEWS configuration - VerkadeDeltares
Presentation by Jan Verkade, Deltares, at the Delft-FEWS International User Days 2020, during Delft Software Days - Edition 2020. Monday, 2 November 2020.
Embedded systems are application-specific systems that contain both hardware and software tailored for a particular task. Good hardware/software codesign involves representing the system functionality using unified models that can be partitioned between hardware and software implementations. There are various partitioning algorithms that aim to optimize metrics like performance, cost and power consumption by assigning functional objects to either hardware or software components. The choice of modeling language and partitioning approach depends on the application and design constraints.
The document discusses the need for holistic systems engineering and breaking down disconnected silos. It proposes a conceptual framework using lightweight traceability and digital thread analytics to address completeness, correctness, and consistency challenges when transferring engineering data between systems engineering tools and detailed design tools. This approach aims to improve communication, reduce defects, and connect previously separated disciplines and tools.
- Build automation helps ensure consistent builds, prevents errors, and speeds up the release process. It helps development teams integrate and deliver changes continuously.
- Common tools for build automation include MSBuild, Team Foundation Server, CruiseControl.NET, and Hudson. These tools help with continuous integration (CI), running tests, code analysis, versioning, and deploying builds.
- Best practices include CI on every code check-in, running unit tests as part of the build to prevent bugs, and continuously delivering integrated builds to environments for testing. This supports rapid and reliable software delivery.
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Vadym Kazulkin
The goal of Serverless is to focus on writing the code that delivers business value and offload everything else to your trusted partners (like Cloud providers or SaaS vendors). You want to iterate quickly and today’s code quickly becomes tomorrow’s technical debt. In this talk we will show why Serverless adoption increases the developer productivity and how to measure it. We will also go through AWS Serverless architectures where you only glue together different Serverless managed services relying solely on configuration, minimizing the amount of the code written.
Reactive Development: Commands, Actors and Events. Oh My!!David Hoerster
Distributed applications are becoming more popular with the increasing popularity of microservices (however you want to define that term). But the principles of distributed application development are key if you want to build a system that is resilient, responsive, elastic and maintainable. In this workshop, we’ll review the principles of CQRS and the Reactive Manifesto, and how they complement each other. We’ll build an application that can handle a large stream of data, and allow users to still have a responsive experience while interacting with real-time and near-real-time data.
We’ll look at Akka.NET as the workhorse inside your services, and how the principles of CQRS can help with your service-to-service communications.
We’ll also look at how Event Sourcing can aid in managing your domain state, and how an event stream can be used to project data for your system for a number of different uses. We’ll build our own simple event store, but also look at commercially available stores, too.
This session will focus on using Akka.NET along with a few other tools and technologies, such as EventStore and MongoDB. The concepts learned in this session will be applicable to a number of different tools, technologies and languages.
Abstract
The idea of this talk is to help development teams to make correct architectural decisions.
Andrei will highlight the basic architectural principles and show ways to achieve architecture that is good enough to cover the project requirements and evolve in the future.
He will also present several cases from real projects, where wrong, missing, or over-sophisticated architecture decisions really hurt the development teams:
- Painful sharing: do shared modules increase reusability or will be the source of problems?
- Microservices are the solution to every problem!
- Non-extensible extensibility: too sophisticated configuration hurts
- Over fine-grained: incorrect splitting to Microservices can make life even harder as with monolith
- Convey horizontal split: how organizational driven split can jeopardise the architecture
- Model-driven: central responsibility blocks and limits the team
- Cargo cult: blindly following patterns and rule can produce an unmaintainable system
- Freestyle architecture: what happens if teams completely ignore architecture
- Improve with less intelligence: smart endpoint and dumb pipes
Abstract
The idea of this talk is to help development teams to make correct architectural decisions.
Andrei will highlight the basic architectural principles and show ways to achieve architecture that is good enough to cover the project requirements and evolve in the future.
He will also present several cases from real projects, where wrong, missing, or over-sophisticated architecture decisions really hurt the development teams:
- Painful sharing: do shared modules increase reusability or will be the source of problems?
- Microservices are the solution to every problem!
- Non-extensible extensibility: too sophisticated configuration hurts
- Over fine-grained: incorrect splitting to Microservices can make life even harder as with monolith
- Convey horizontal split: how organizational driven split can jeopardise the architecture
- Model-driven: central responsibility blocks and limits the team
- Cargo cult: blindly following patterns and rule can produce an unmaintainable system
- Freestyle architecture: what happens if teams completely ignore architecture
- Improve with less intelligence: smart endpoint and dumb pipes
FoundationDB is a next-generation database that aims to provide high performance transactions at massive scale through a distributed design. It addresses limitations of NoSQL databases by providing a transactional, fault-tolerant foundation using tools like the Flow programming language. FoundationDB has demonstrated high performance that exceeds other NoSQL databases, and provides ease of scaling, building abstractions, and operation through its transactional design and automated partitioning. The goal is to solve challenges of state management so developers can focus on building applications.
Database Build and Release - SQL In The City - Ernest HwangRed Gate Software
Ernest Hwang discusses automating database maintenance tasks using Red Gate SQL Source Control, continuous integration with Jenkins, and unit testing with tSQLt. He demonstrates committing database changes to source control, how continuous integration runs builds and tests on each commit, and deploying changes between environments with SQL Compare. Automating these processes saves developers time by eliminating manual scripting and deployments while improving quality by catching errors early in continuous integration builds and unit tests.
Convince your boss to go Serverless at serverless week BrazilVadym Kazulkin
TCO of Serverless application. How Serverless helps us to be productive, write less code and implement evolutionary architectures. How to measure productivity to see you're on track with Serverless
Keith Douglas Johnston has over 30 years of experience as a senior software engineer designing, developing, and testing software. He has expertise in C, C++, Ada, and other languages. His experience ranges from digital signal processors to supercomputers. He holds MS degrees in Computer Science and Health Physics and a BS in Physics/Mathematics. He has received recognition from Boeing and NASA for his work.
This document discusses code generation in .NET. It begins by outlining some common problems developers face when dealing with large amounts of repetitive code. It then discusses various approaches to solving this problem, including hand coding everything, fully generic design, and using a combination of tools including code generation. The rest of the document discusses specific code generation tools for .NET like StringBuilder, CodeSnippets, XSLT, Reflection.Emit, EnvDTE, CodeDom, and T4. It also discusses pros and cons of each approach and provides examples of using code generation in different real world scenarios.
This document discusses various system design techniques and networks. It begins with an overview of design methodologies like waterfall model, spiral model, and concurrent engineering. It then covers topics like requirements analysis, specifications, CRC cards for system analysis, and quality assurance techniques. It discusses several distributed embedded systems including CAN bus, I2C, Ethernet, and the Internet. It concludes with sections on multiprocessor system-on-chips and shared memory multiprocessors.
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...SPS Monaco
Quel développeur n’a jamais rêvé d’avoir une assurance qualité de bout en bout pour éviter le stress et les cauchemars ? Historiquement avec SharePoint on a toujours dit que c’était chose compliquée, coûteuse etc…
Nous verrons un ensemble d’outils et de solutions avec Visual Studio Team Services qui vous démontreront le contraire et vous n’aurez plus d’excuses après cette session pour automatiser la qualité dans vos processus.
Au programme :
- Gestion des sources et des branches
- Build automtisé de solutions/apps SharePoint
- Déploiements automatisés
- Tests automatisés
- Qualité de code
Nombreuses démonstrations
Similar to Methodologies and flows for chip design (20)
Slides from James Currier, Co-Founder Ooga Labs & Curator of the NFX- LeWeb'1...Derek Pappas
The document discusses the psychology required for startup growth. It argues that understanding user psychology and their needs is essential to growth. Companies must commit to constantly testing, measuring, and iterating based on data to power growth. The psychology needed is a love of data, an ability to sustain failure without losing enthusiasm, and a "shrew" mentality of always moving quickly through experiments. User insights like those behind Facebook, Snapchat, Instagram, Etsy, and WeWork that address core human desires are key to standing out.
This document provides guidance on techniques for effective passing in lacrosse. It discusses the importance of creating passing lanes and connections between players while avoiding dead ends. Proper technique is emphasized, including controlling the ball before passing and using deception. The roles of the passer, receiver and how they work together are covered. Strategies like changing the direction of play and creating numerical advantages through passing are also presented.
FIH men's vs women's ranking diff sorted by men's rankingDerek Pappas
This document compares the world rankings of men's and women's national field hockey teams. It lists the women's and men's rankings side by side, along with the difference (+/-) between the two rankings. On average, the rankings of the top 10 men's teams were closer than the bottom 10 teams, with smaller differences between rankings. The largest differences were Pakistan (men ranked 10 places higher), Belarus (men ranked 21 places higher), and Peru (men ranked 15 places higher).
FIH men's vs women's ranking diff sorted by women's rankingDerek Pappas
This document compares the world rankings of men's and women's national field hockey teams. It lists each team's world ranking for women and men, the difference between the two rankings, and the absolute value of the difference. On average, there is a ranking difference of 7.5 for the bottom 10 teams and 13.2 for the middle 10 teams. The largest ranking differences are 45 places between Pakistan's women (10th) and men (55th) and 43 places between Kazakhstan's women (33rd) and men (76th).
The drag flick in field hockey derives power from turning the right hip into the shot, similar to tennis forehands and golf swings. It involves reaching a lunge position with bent elbows before the stick rotates forward, creating a 90 degree angle with the right forearm. As the right hip begins to drive and rotate into the shot path, weight transfers to the left leg and the right hand drives through the ball. Correct counter rotation of the stick is important to control the angle of release as the right hip and leg release through past the left leg. Practicing the drag flick involves breaking it into small phases, practicing each movement individually and slowly before combining into full movements.
This document provides instructions and diagrams for various field hockey stick grips and techniques. It describes grips for dribbling, tackling, hitting, stopping, pushing, penalty corners, and deflections. For each grip or technique, it specifies hand placement on the stick and the angle of the stick in relation to the body or ground. The document aims to teach proper form and techniques for handling the stick in all aspects of field hockey play.
This document discusses techniques for effective passing in lacrosse. It provides tips on creating passing lanes, avoiding dead ends, proper technique for different types of passes, using deception, controlling the ball before passing, and ensuring the next pass is available. It emphasizes the importance of both individual skills like stickwork and team coordination in developing and executing a passing plan to advance the ball downfield.
Pressing is a tactic used in soccer to force turnovers by applying pressure to opponents with possession of the ball. There are different types of pressing including full pressing, where the entire team presses deep in the opponent's half, and half pressing, where players are arranged behind the halfway line. Successful pressing relies on restricting passing options and reducing space for the player with the ball. Teams must have a plan for when and how to press depending on the game situation.
The document provides details on the various stages of the drag flick in field hockey. It breaks down the drag flick into components like the run up, ball pickup, crossover step, drag, and follow through. It emphasizes maintaining the proper body and stick positions through each stage, such as keeping the stick perpendicular to the ball's path. It also provides links to video examples of elite players demonstrating excellent drag flick technique.
This 3-minute video breaks down the technique of drag flicking in field hockey into distinct stages: setup, backswing, forward swing, and follow through. Screenshots from the video show an athlete demonstrating proper form for each stage of the drag flick. The video provides instruction on optimizing power and accuracy when executing this important skill in field hockey.
Drag flicking with footwork and stick diagrams and biomechanicsDerek Pappas
The document provides instruction on how to perform the drag flick in field hockey. It breaks down the drag flick into stages and provides diagrams to illustrate proper footwork and stick positioning for each stage, from the approach to ball pickup to follow through. Key points include having the feet and body positioned at a 45 degree angle during pickup, rolling the ball up the stick as the hands drop down, maintaining shoulder rotation through the drag phase and release, and rotating 180 degrees on the follow through to prevent injury. The goal is for the ball to travel in a straight line to the goal.
The document provides detailed instructions for how to perform a drag flick in field hockey. It breaks the drag flick down into stages and provides tips for each stage, including footwork, stick positioning, and body rotation. The goal is for the ball to travel in a straight line to the goal. Top players compress the ball into the ground during the drag phase to generate power. Videos are recommended to see drag flicking techniques in action.
This document discusses techniques for effective passing in lacrosse. It provides tips on creating passing lanes, avoiding dead ends, proper technique for different types of passes, using deception, controlling the ball before passing, and ensuring the next pass is available. It emphasizes the importance of both individual skills like stickwork and team coordination in developing and executing a passing strategy to advance the ball downfield.
Defensive running lines to stop the right side baseline attack in field hockeyDerek Pappas
The document discusses defensive strategies for stopping an attacking team from running the ball down the baseline. It emphasizes the importance of defenders taking the correct angles and positioning themselves to close down the ball carrier. Defenders must prioritize stopping shots, circle penetration, bypass dribbles and dangerous passes. The direction an outside defender runs is crucial - running the wrong angle can allow the ball carrier to bypass or gain space. Working as a unit with roles like closing down the ball carrier, marking receivers, and blocking passes is key to effective baseline defense.
Pressing is a tactic used in soccer to force turnovers by overwhelming opponents with numbers near the ball or surprising them tactically. Successful pressing requires the entire team to participate and cut off passing lanes in order to funnel opponents into a designated space where pressure can be applied. There are different types of presses that position players differently on the field, but they generally aim to restrict options for the player with the ball through marking and denying space. Examples from successful international teams demonstrate how pressing can be used strategically at different points in the game.
Field Hockey World Cup 2014 Professional Foul Study Derek Pappas
Deliberate fouling has become a common tactic in international hockey according to an analysis of one game from the 2014 Men's World Cup. The analysis identified 24 deliberate fouls committed by Germany against Belgium, primarily to disrupt attacking plays and prevent quick counters. While umpires penalized some fouls, none resulted in severe punishment like cards. The tolerated fouling is likely due to pressure on umpires to keep games flowing, but it also represents a strategic choice by teams to disrupt opponents through physical play rather than clean skills. Distinct styles of fouling are emerging between countries.
Pressing is a tactic used in soccer to force turnovers by applying pressure to opponents with possession of the ball. There are different types of pressing including full pressing, where the entire team presses deep in the opponent's half, and half pressing, where players are arranged behind the halfway line. Successful pressing relies on restricting passing options and reducing space for the player with the ball. Teams must have a plan for when and how to press depending on the game situation.
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.
The CBC machine is a common diagnostic tool used by doctors to measure a patient's red blood cell count, white blood cell count and platelet count. The machine uses a small sample of the patient's blood, which is then placed into special tubes and analyzed. The results of the analysis are then displayed on a screen for the doctor to review. The CBC machine is an important tool for diagnosing various conditions, such as anemia, infection and leukemia. It can also help to monitor a patient's response to treatment.
Batteries -Introduction – Types of Batteries – discharging and charging of battery - characteristics of battery –battery rating- various tests on battery- – Primary battery: silver button cell- Secondary battery :Ni-Cd battery-modern battery: lithium ion battery-maintenance of batteries-choices of batteries for electric vehicle applications.
Fuel Cells: Introduction- importance and classification of fuel cells - description, principle, components, applications of fuel cells: H2-O2 fuel cell, alkaline fuel cell, molten carbonate fuel cell and direct methanol fuel cells.
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.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELgerogepatton
As digital technology becomes more deeply embedded in power systems, protecting the communication
networks of Smart Grids (SG) has emerged as a critical concern. Distributed Network Protocol 3 (DNP3)
represents a multi-tiered application layer protocol extensively utilized in Supervisory Control and Data
Acquisition (SCADA)-based smart grids to facilitate real-time data gathering and control functionalities.
Robust Intrusion Detection Systems (IDS) are necessary for early threat detection and mitigation because
of the interconnection of these networks, which makes them vulnerable to a variety of cyberattacks. To
solve this issue, this paper develops a hybrid Deep Learning (DL) model specifically designed for intrusion
detection in smart grids. The proposed approach is a combination of the Convolutional Neural Network
(CNN) and the Long-Short-Term Memory algorithms (LSTM). We employed a recent intrusion detection
dataset (DNP3), which focuses on unauthorized commands and Denial of Service (DoS) cyberattacks, to
train and test our model. The results of our experiments show that our CNN-LSTM method is much better
at finding smart grid intrusions than other deep learning algorithms used for classification. In addition,
our proposed approach improves accuracy, precision, recall, and F1 score, achieving a high detection
accuracy rate of 99.50%.
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...shadow0702a
This document serves as a comprehensive step-by-step guide on how to effectively use PyCharm for remote debugging of the Windows Subsystem for Linux (WSL) on a local Windows machine. It meticulously outlines several critical steps in the process, starting with the crucial task of enabling permissions, followed by the installation and configuration of WSL.
The guide then proceeds to explain how to set up the SSH service within the WSL environment, an integral part of the process. Alongside this, it also provides detailed instructions on how to modify the inbound rules of the Windows firewall to facilitate the process, ensuring that there are no connectivity issues that could potentially hinder the debugging process.
The document further emphasizes on the importance of checking the connection between the Windows and WSL environments, providing instructions on how to ensure that the connection is optimal and ready for remote debugging.
It also offers an in-depth guide on how to configure the WSL interpreter and files within the PyCharm environment. This is essential for ensuring that the debugging process is set up correctly and that the program can be run effectively within the WSL terminal.
Additionally, the document provides guidance on how to set up breakpoints for debugging, a fundamental aspect of the debugging process which allows the developer to stop the execution of their code at certain points and inspect their program at those stages.
Finally, the document concludes by providing a link to a reference blog. This blog offers additional information and guidance on configuring the remote Python interpreter in PyCharm, providing the reader with a well-rounded understanding of the process.
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Sinan KOZAK
Sinan from the Delivery Hero mobile infrastructure engineering team shares a deep dive into performance acceleration with Gradle build cache optimizations. Sinan shares their journey into solving complex build-cache problems that affect Gradle builds. By understanding the challenges and solutions found in our journey, we aim to demonstrate the possibilities for faster builds. The case study reveals how overlapping outputs and cache misconfigurations led to significant increases in build times, especially as the project scaled up with numerous modules using Paparazzi tests. The journey from diagnosing to defeating cache issues offers invaluable lessons on maintaining cache integrity without sacrificing functionality.
3. Shared infrastructure
• Infrastructure elements are shared between teams
• Infrastructure elements include hierarchies,
connections, vectors, vector readers/writers, state
elements (e.g. registers, register files, …), ISA’s,
pipelines, address maps, …
• Infrastructure elements do not include
• Control and data path elements which are typically
implemented differently in RTL and simulation
4. The cost of not automating vs automating
• Failing to automate the generation of infrastructure
code costs companies $$$’s and increases time to
market
• Conversely a significant reduction in engineering and
verification time can be achieved by automating the
infrastructure generation process
5. Infrastructure changes
• Changes in the architecture and RTL cause changes in
simulation, verification, documentation, and software
• Manually generated infrastructure is time consuming to
maintain
• Manually generated infrastructure limits the number of
verification points/test benches on projects
• Teams should not spend time creating and maintaining
infrastructure when the infrastructure can be generated
6. Infrastructure changes (continued)
• Changes in infrastructure are communicated through
emails, meetings, build breaks, and tickets
• Often documentation is not updated to reflect the
infrastructure changes
7. Throwing problems over the wall
• Throwing problems over the wall gives the illusion that
the generation of infrastructure in one domain can be
done quickly
• The next domain has to reimplement the same
infrastructure elements
• The changes have to be made in all domains
8. Problem: Parallel bookkeeping
• Eliminate the parallel bookkeeping required to
synchronize shared infrastructure elements between
teams
9. Automatically generate shared infrastructure
• 100x reduction in code
• Rapidly bring up the project
• Rapidly make changes
• Propagate changes to all affected parties
14. Benefits
• Rapidly bring up test benches, simulation and design
• Test RTL from day 1
• Spend time on the architecture and design
• No time wasted bringing up and maintaining
infrastructure
• 10-100x reduction in work required to create the project
infrastructure
15. Benefits (continued)
• Generate infrastructure code and documentation which
is in sync
• Create a specification for infrastructure which can be
compiled
• Cloud based team solution (to be built) for instant
collaboration using a GUI and table driven entry
• To be constructed using the existing C++ class
hierarchy and compiler, with web based tools and an
underlying database
16. Benefits (continued)
• Extensive CSL documentation (manuals)
• Need to be converted from Framemaker which is no
longer supported by Adobe
• CSL is throughly tested
• Automatic and manual test suites
• Regression/reports
• Needs to be turned into a web based report and run on
a continuous integration server like Jenkins
17. Dramatically increase the number of verification
points
• A verification point in an RTL design is either set of
interfaces or state that is driven by stimulus vectors and
compared expected vectors and/or state from an
alternate implementation’s
• Teams are bandwidth limited when creating verification
points in designs
• Creation and maintenance of test infrastructure is time
consuming
19. Typical objections by HW engineers to using
meta specification languages
• “I can write the infrastructure code as fast as writing
meta language spec”
• No one can write code as accurately as a working
compiler can.
• “I only write the infrastructure code once”
• Infrastructure code changes and needs to be synced
across domains
20. Typical objections by HW engineers to using
meta specification languages (continued)
• “Integration does not take long so I do not need a meta specification
language/GUI/compiler”
• Integration lasts for an entire project cycle and if the entire design has
complete coverage with respect to test points it will take an army of
verification engineers to generate the test benches.
• “Integration does not take long so I do not need a meta specification
language/GUI/compiler”
• Integration accounts for a huge amount of delays on projects. We
Brought up 64 processor application specific chips at Sun in 2 weeks,
including a basic compiler and RTL model in under 3 weeks using a
meta language to generate the complex interconnect for the entire
chip in 2 days.
21. Typical objections by HW engineers to using
meta specification languages (continued)
• “Generated code is not flexible and I can’t add custom
code to it”
• Wrong. Generated code has points where custom
code can be inserted to modify the behavior of the
design
• “No one uses tools to do that…”
• Hardware engineers who do not not embrace well
understood software engineering principles reject
meta language compilers
22. Typical objections by HW engineers to using
meta specification languages (continued)
• “We already have point tools for memory map
generation, interconnect generation”
• The individual tools typically do not communicate with
one another and parts of the infrastructure
specification needs to be replicated in each of the
overlapping tool’s input format.
• “We have SystemC/System Verilog“
• These are not meta description languages
23. The Objections are not factual…
• In reality no programmer can create or maintain large
pieces of infrastructure code on a project
• Infrastructure code needs to be consistent across
different views which is not possible with “parallel book
keeping”
• It takes a lot longer to manually create and maintain
infrastructure code than it does to write a compressed
representation in a meta language and/or to use a GUI
to describe the specification and to compile the
specification
25. Guaranteeing consistency between different
views
• A single source is used to describe the shared
infrastructure
• A single source eliminates parallel bookkeeping
problems
26. Automating the chip specification process
• A meta level specification is constructed using a GUI
and the Chip Specification Language (CSL)
• The CSL specification is checked for correctness by
software
• Generation of shared infrastructure code for RTL,
simulation, software, and verification
28. Meta specification language benefits
• Single source
• Rapid changes
• Synchronization of changes across all domains
• Minimal time to infrastructure
• Minimal code set
29. Requirements for a meta specification language
• Different domains share infrastructure
• Need an unambiguous shared specification
• The specification should compile
31. CSL Attributes
• CSL is object oriented
• CSL is similar to C++/Java
• No pointers/memory management
• Scopes
• CSL is easy to learn
32. CSL Documentation
• CSL grammar is specified for each major component
(e.g. interconnect, test benches, …)
• Examples for each language construct are shown
• CSL code + diagrams + generated Verilog/C++
39. Connections and functional units
Hierarchies and pipelines
a0_0[9:0]
b0_0[9:0]
c0_0[9:0]
d0_0[9:0]
a1_0[9:0]
b1_0[9:0]
c1_0[9:0]
d1_0[9:0]
a0_1[9:0]
b0_1[9:0]
c0_1[9:0]
d0_1[9:0]
a1_1[9:0]
b1_1[9:0]
c1_1[9:0]
d1_1[9:0]
x{x0}
x{x1}
y
x{x0}
x{x1}
y
x{x0}
x{x1}
y
z{z2}z{z0} z{z1}
top
40. Auto routing connections between end points
• End points, name(s), and the type to route are specified
• Intermediate connections do not need to be specified
• Benefits
• Consistency between different file views
• Rapid floor planning changes to meet full chip timing
41. Connections and functional units
a[9:0]
b[9:0]
c9:0]
d[9:0]
Signal Group
abcd
Connections
z{z0}.y.x{x0} ->
abcd
-> z{z1}.y.x{x0}
Hierarchy
x{x0} x{x1} x{x1} x{x1} x{x1} x{x1}
y y
top
y
z{z0} z{z1} z{z2}
Connections are autoroutes across hierarchies
44. Generation of simulator infrastructure code
• Simulator code is generated from the meta specification
• Equivalent verification points are chosen between the
RTL design and simulator
• Vector writers/readers are generated automatically
• Vector readers/writers are generated in the
corresponding test benches
45. Automatic simulator infrastructure generation
benefits
• The simulator infrastructure code is updated
automatically
• The generated infrastructure infrastructure in the
simulator is in sync with the corresponding
infrastructure elements in different domains (i.e. RTL,
software, verification)
46. Automatic test bench generation
• Maintain consistency between the RTL design unit
under test (DUT), the algorithmic or cycle based
simulator, tests, and test benches
• Generate test benches at every level
• The generation of infrastructure for test bench
generation/design coverage is not limited by the
bandwidth of the design, simulation, and verification
teams
47. Level of verification detail
• Creating test benches
• Integration of multiple units
• Leaf level testing
• Lots to maintain
48. Connections (signals) become vectors
• Consistency between the design, the simulator and the
test bench is maintained
49. Different levels of abstraction in models
C++ simulator
uint abcd1
uint abcd0
uint abcd1
uint abcd0
a1_0[9:0]
b1_0[9:0]
c1_0[9:0]
d1_0[9:0]
a1_1[9:0]
b1_1[9:0]
c1_1[9:0]
d1_1[9:0]v
==
RTL test bench
50. Infrastructure equivalency requirement
uint abcd1
uint abcd0
uint abcd1
uint abcd0
a1_0[9:0]
b1_0[9:0]
c1_0[9:0]
d1_0[9:0]
a1_1[9:0]
b1_1[9:0]
c1_1[9:0]
d1_1[9:0]v
==
Input vector Expected vector
Module under test instantiation
Vector checkerVector reader
Inter unit
Connections
Outputs
Design hierarchy
Inputs
OutputsInputs
Inter unit Connections
C++ simulator
RTL test bench
51. Infrastructure maintenance/parallel book keeping
• Single test bench
• At least 7 infrastructure elements to maintain
• Different teams needs to keep in sync
• Changes break regressions/tests
52. Deign hierarchy equivalency-verification point
uint abcd1
uint abcd0
uint abcd1
uint abcd0
a1_0[9:0]
b1_0[9:0]
c1_0[9:0]
d1_0[9:0]
a1_1[9:0]
b1_1[9:0]
c1_1[9:0]
d1_1[9:0]v
==
C++ simulator
RTL test bench
Design hierarchy
53. Unit interface equivalency
uint abcd1
uint abcd0
uint abcd1
uint abcd0
a1_0[9:0]
b1_0[9:0]
c1_0[9:0]
d1_0[9:0]
a1_1[9:0]
b1_1[9:0]
c1_1[9:0]
d1_1[9:0]v
==
OutputsInputs
OutputsInputs
C++ simulator
RTL test bench
67. Generating pipelines (under construction)
• Generation of pipeline code can eliminate register over
and under run errors
• Valid, stall, and enable logic is generated
• Cookie cutter/cut and paste pipeline logic is generated
• Pipeline naming conventions are followed and names
are updated automatically
70. Out of band communication
• [UNDER CONSTRUCTION]
71. Non-shared infrastructure elements
• Non-shared infrastructure elements which need to integrate with RTL
for tape out models which can be generated from a specification
• Clock trees
• Testability logic
• IO pads
• Note: it can be argued that most of this logic should be int he RTL
design
• Some design teams “hack” the clock trees and testability logic into
the netlist which further delays takeout instead of putting the clock
trees and testability logic under test/regression control
72. More CSL components
• The CSL language is very comprehensive
• Many more CSL components are supported by the CSL
compiler and documented.
• Some components need to be built out