This document provides a tutorial on using WinDLX, a Windows-based simulator for the DLX processor. It begins with instructions on installing WinDLX and configuring the simulation settings. Then, it walks through loading and running a sample assembly program that calculates factorials. Key steps include loading code, single-stepping through the pipeline, examining registers and memory, setting breakpoints, and analyzing statistics. The goal is to demonstrate how DLX's pipelined architecture works through use of WinDLX's various display windows.
This document describes several practical experiments conducted using the WinDLX and WinMIPS64 simulators. It begins with an introduction to the DLX processor and WinDLX simulator. It then outlines 6 practical experiments: 1) Using WinDLX to calculate factorials, 2) Writing a prime number program in WinDLX, 3) Writing a program to calculate z=(x^2+y^2)*(x+y) in WinDLX, 4) Studying the WinMIPS64 simulator, 5) Implementing register swapping in WinMIPS64 without a third variable, and 6) Writing a program to calculate x^n in WinMIPS64. For each experiment, the document provides the program
- The document discusses programming in the Windows environment using C.
- It recommends the book "Programming Windows 3.1" by Charles Petzold as the definitive reference for learning Windows programming in C.
- The Microsoft Developer Network CD is also mentioned as a useful reference that includes sample programs.
- The chapter aims to answer common questions about programming in Windows using C.
The document provides instructions for using various features in the Winisis 1.3 software, including:
1) Using record models to populate default field values in data entry;
2) Implementing searched term highlighting in search results;
3) Changing the background of database windows from within formats using the \isispatt command.
It also describes additional commands for hyperlinks, controlling search result displays, and other customizations via SYSPAR parameters. The supplement offers technical details for advanced Winisis users to customize functions and improve usability.
File 1 proteus tutorial for digital circuit designSanjeev Singh
This document provides instructions for using Proteus software to simulate and design digital circuits. It discusses:
1) The objectives of learning to use Proteus software to simulate designed digital circuits and understand how to apply digital logic equations to hardware designs.
2) How to use tools in Proteus like parts browsing, power supplies, input generators, and logic state components.
3) How to simulate circuits by placing components, wiring them, and using logic probes or waveform displays to view output measurements.
4) Some example assignments involving creating circuits from logic equations and comparing/reducing equations, and plotting input-output relationships.
This document provides over 100 keyboard shortcuts for Windows 8, divided into Windows 8 specific shortcuts and standard Windows shortcuts. Some key Windows 8 shortcuts include switching between the Start screen and last app with Windows+C, accessing the charms bar with Windows+C, and taking screenshots with Print Screen. Standard shortcuts include minimizing all windows with Windows+M, locking the computer with Windows+L, and cycling through apps with Alt+Tab. All shortcuts are based on the Windows 8 Consumer Preview.
This document provides an intermediate-level practical guide to using Unix. It covers topics such as redirecting standard input/output to files, filename substitution using wildcards, using shell variables, command substitution, and writing simple shell scripts. Examples are provided to illustrate how to use commands like date, ls, and echo to manipulate files and data. Shell programming concepts like conditional expressions and foreach loops are demonstrated in short scripts.
The document describes a virtual machine (VM) model and language that serves as an intermediate representation between high-level programming languages and machine language. The VM uses a stack-based architecture and 16-bit integers to represent data, pointers, and Booleans. It features arithmetic, Boolean, memory access, and flow control commands that operate on the stack to evaluate expressions and control program flow. The VM is designed to provide an abstraction of a program that is compiler-independent and can be implemented on different hardware platforms through various compilers and virtual machines.
Logging on to a UNIX/Linux system requires a valid username and password. The root user has full administrative privileges. Users can log in through either a terminal window or graphical window interface. After logging in, the date command displays the current date and time, while the exit command logs the user off the system.
This document describes several practical experiments conducted using the WinDLX and WinMIPS64 simulators. It begins with an introduction to the DLX processor and WinDLX simulator. It then outlines 6 practical experiments: 1) Using WinDLX to calculate factorials, 2) Writing a prime number program in WinDLX, 3) Writing a program to calculate z=(x^2+y^2)*(x+y) in WinDLX, 4) Studying the WinMIPS64 simulator, 5) Implementing register swapping in WinMIPS64 without a third variable, and 6) Writing a program to calculate x^n in WinMIPS64. For each experiment, the document provides the program
- The document discusses programming in the Windows environment using C.
- It recommends the book "Programming Windows 3.1" by Charles Petzold as the definitive reference for learning Windows programming in C.
- The Microsoft Developer Network CD is also mentioned as a useful reference that includes sample programs.
- The chapter aims to answer common questions about programming in Windows using C.
The document provides instructions for using various features in the Winisis 1.3 software, including:
1) Using record models to populate default field values in data entry;
2) Implementing searched term highlighting in search results;
3) Changing the background of database windows from within formats using the \isispatt command.
It also describes additional commands for hyperlinks, controlling search result displays, and other customizations via SYSPAR parameters. The supplement offers technical details for advanced Winisis users to customize functions and improve usability.
File 1 proteus tutorial for digital circuit designSanjeev Singh
This document provides instructions for using Proteus software to simulate and design digital circuits. It discusses:
1) The objectives of learning to use Proteus software to simulate designed digital circuits and understand how to apply digital logic equations to hardware designs.
2) How to use tools in Proteus like parts browsing, power supplies, input generators, and logic state components.
3) How to simulate circuits by placing components, wiring them, and using logic probes or waveform displays to view output measurements.
4) Some example assignments involving creating circuits from logic equations and comparing/reducing equations, and plotting input-output relationships.
This document provides over 100 keyboard shortcuts for Windows 8, divided into Windows 8 specific shortcuts and standard Windows shortcuts. Some key Windows 8 shortcuts include switching between the Start screen and last app with Windows+C, accessing the charms bar with Windows+C, and taking screenshots with Print Screen. Standard shortcuts include minimizing all windows with Windows+M, locking the computer with Windows+L, and cycling through apps with Alt+Tab. All shortcuts are based on the Windows 8 Consumer Preview.
This document provides an intermediate-level practical guide to using Unix. It covers topics such as redirecting standard input/output to files, filename substitution using wildcards, using shell variables, command substitution, and writing simple shell scripts. Examples are provided to illustrate how to use commands like date, ls, and echo to manipulate files and data. Shell programming concepts like conditional expressions and foreach loops are demonstrated in short scripts.
The document describes a virtual machine (VM) model and language that serves as an intermediate representation between high-level programming languages and machine language. The VM uses a stack-based architecture and 16-bit integers to represent data, pointers, and Booleans. It features arithmetic, Boolean, memory access, and flow control commands that operate on the stack to evaluate expressions and control program flow. The VM is designed to provide an abstraction of a program that is compiler-independent and can be implemented on different hardware platforms through various compilers and virtual machines.
Logging on to a UNIX/Linux system requires a valid username and password. The root user has full administrative privileges. Users can log in through either a terminal window or graphical window interface. After logging in, the date command displays the current date and time, while the exit command logs the user off the system.
The document provides an overview of Lab 1 for ECEN 474/704. The objectives are to learn Linux commands, Cadence basics, and MOS transistor characterization. Students will create an inverter schematic in Cadence, simulate it, and measure transistor model parameters like threshold voltage. The document reviews transistor operation and SPICE models. It provides instructions for starting Cadence, creating a library and cell, building an inverter schematic, setting up a DC simulation, and interpreting output plots.
The document discusses the Freescale DSP development environment and assembler. It introduces Symphony Studio, which combines an editor, assembler, simulator, and debugger. It describes how to create and build projects in Symphony Studio, configure the simulator and debugger as external tools, and set up debug configurations. It also provides an overview of DSP source code basics, including the preprocessor, labels, jumps, and move instructions.
Visual Logic is a software tool for creating interactive flowcharts and programs. It allows users to graphically design programs using symbols like inputs, outputs, and assignments. The document provides instructions on how to install Visual Logic and create sample programs that get user input, perform calculations, and display output using both dialog boxes and the console window. It emphasizes best practices like enclosing text in quotes and using variables to store and concatenate input values for customized output.
This document provides instructions for creating and simulating a counter design using the Xilinx ISE design suite. It describes how to start ISE, create a new project, add a VHDL source file to define the counter module, generate a testbench waveform to simulate the design, and view the simulation results. Key steps include using language templates to add behavioral code to the counter, initializing timing settings for the testbench, and generating expected output values to create a self-checking testbench.
Lab: Installation of Xilkernel on Xilinx Spartan 3E Starter boardVincent Claes
This document provides instructions for implementing the Xilkernel real-time operating system on a Xilinx Spartan 3E FPGA board. It involves 4 steps: 1) Creating a base system in EDK, 2) Configuring software platform settings, 3) Writing a sample C application, and 4) Debugging the application on hardware. The application demonstrates creating threads and killing processes using functions from the Xilkernel library.
This tutorial covers using Eagle PCB design software to design an electronic schematic and circuit board layout. Eagle consists of a schematic editor, PCB editor, and autorouter. It is available in both Windows and Linux versions. The tutorial will guide the user through drawing a schematic for a microcontroller circuit including a power supply, microcontroller, and interfaces. It also describes how to create custom library components when needed parts are missing from the standard Eagle libraries.
This document provides an overview and introduction to using the curses module in Python for writing text-based terminal applications. It describes initializing and terminating curses, creating windows and pads, displaying text with attributes and colors, and getting user input. The curses module hides complex terminal control codes and provides a consistent interface for building terminal applications that works across systems.
The document provides step-by-step instructions for installing maxDNA software on a Windows workstation. It involves installing prerequisites like Service Pack 2, changing drive letters, configuring system settings like display resolution and time zone, installing additional software components, and configuring the workstation name and domain. The installation is completed by configuring the workstation startup and rebooting the system.
This document provides an introduction and overview of MS-DOS commands and how to use the Windows command line interface. It discusses what MS-DOS is, how to open the command prompt in Windows 7 and 8, and provides examples of basic commands like navigating directories, viewing folder contents, creating and deleting files and folders, copying and moving files, launching applications, and getting help. The document also describes how to customize properties of the command prompt like fonts, colors, window size and buffers.
This document provides an overview of basic Python skills needed to complete labs and problem sets, including logging into a server, using the Python shell and IDLE integrated development environment, running Python scripts locally, and basic Python operations like arithmetic, variables, lists, tuples, strings, and modules. It covers starting the Python interpreter, using xterms and logging into a server, the Python shell and IDLE, running Python scripts from the command line or within IDLE, and demonstrates basic Python concepts like arithmetic, variables, lists, tuples, strings, and modules through examples.
This document contains several tips and tricks for customizing Windows XP, including:
1. Making folders invisible by renaming them with a special character code and removing their icon.
2. Speeding up shutdown time by modifying the registry to kill services faster during shutdown.
3. Making desktop icons transparent by enabling a visual effect setting.
4. Hiding the Recycle Bin icon and "User Accounts" control panel item from view.
5. Creating a shortcut to quickly lock the computer without logging off.
Image Processing and Deep Learning (EEEM063) DIGITS IntrodMalikPinckney86
Image Processing and Deep Learning (EEEM063)
DIGITS Introductory Deep Learning Lab
Dr John Collomosse - Autumn 2017
Introduction
In this lab you will use a web based interface called “DIGITS” to run some simple classification
experiments using a convolution neural network (CNN). This lab assumes use of DIGITS v3.0.0 or
higher.
CNNs are state of the art deep neural networks that perform well at machine perception tasks such
as image classification. You will start learning about these in detail within Week 6.
To do this work you will need to connect to a teaching server
called aineko1 on the campus network. The server is not
visible off campus, so you are encouraged to use the lab or
library PCs on campus to do this work. If you want to use
your own laptop then you will be able to connect via the
campus wide “eduroam” wifi network. The campus wide
“The Cloud” network will not work. It is possible to connect
from offcampus using the https://anywhere.surrey.ac.uk
facility and entering the web interface address including
http:// into the text box in the upper-right of the portal.
The address of the web interface is http://aineko.eps.surrey.ac.uk:34448
Verify now that you can connect to the web interface via your browser, or you will not be able to
progress any further.
It is possible to install your own version of DIGITS on your local lab PC (e.g. in the Penguin lab). Since
we have a large class this year this may be useful if the aineko server becomes very busy. You can
refer to the supplementary instructions on SurreyLearn if you find is desirable to do this. If you want
to install DIGITS yourself on your own machine then you might find those instructions a useful
starting point but note that we do not have the resource to assist 50+ students installing their own
DIGITS on their own variants/configurations of Linux so if you try this you are on your own.
The aineko server (pictured right) is an Intel i7 PC with 4 Nvidia Titan-X GPUs which power our deep
learning experiments.
1. Getting Started
We will be working with a dataset of hand-written numbers 0-9, collected by the US postal service
from mail. The dataset is called MNIST and contains 70k images each only 28x28 pixels in size.
1 https://en.wikipedia.org/wiki/Accelerando
You must first create your own work area on the server and download the database.
Remotely login to the teaching server using ssh. In the Linux labs you can open up a terminal
window using Ctrl-Alt-T and then enter the following
ssh aineko.eps.surrey.ac.uk –l your_username
Note that character after the hyphen is a lower case L not a 1! Please substitute username you’re
your actual username. The password is your URN. If you are prompted by an “are you sure…”
prompt just type the word yes. If you can’t log in the we will have to create you an account.
Alternatively you may issue the same command in the Mac OS “Terminal” (usually found under
/Appl ...
Utkarsh Kapoor expresses gratitude to various people who helped and supported him in completing another chapter of his life. He thanks his industrial supervisor Mr. Setu Maheshwari for guiding him during his training. He also thanks his colleagues for their kindness and help. Finally, he thanks his parents for their sacrifice and inspiration in allowing him to pursue his studies.
This document provides a tutorial on creating a layout in Cadence from an existing schematic. It outlines the steps to synthesize the layout from the schematic, place and connect the components, add labels and pins, run DRC and LVS checks, extract the schematic with parasitics, and set up post-layout simulation. The key steps are synthesizing the layout from the schematic, placing and connecting devices, adding I/O pins, correcting any DRC or LVS errors, extracting the schematic, and simulating the layout-based design.
To understand the basic features and functions to create and debug a project in CCS v3.3
To get familar with CCS v3.3
More in-depth explanations of Code Composer Studio’s various features .
Ex: Breakpoints,watch window, single stepping, memory etc..,
Finally, you will able to work with CCS v3.3
This tutorial provides step-by-step instructions for analyzing a 2D truss bridge using the FEPC finite element analysis software. The tutorial defines the 7 nodes, 11 truss elements, material properties, boundary conditions restraining the left and right nodes, and vertical loads of 40,000 lbs at node 3 and 20,000 lbs at node 5 to represent vehicles on the bridge.
The document provides instructions for customizing the dashboard displayed on the driver station screen in the 2010 FIRST Robotics Competition. It discusses modifying the dashboard to display additional sensor readings, status updates, and video feeds from the robot. The key steps include using data types to bundle and transfer information from the robot program to the driver station via UDP, designing the dashboard user interface, and building an executable file to display the customized dashboard.
This document provides an overview of events and presentations at the 2010 International Microwave Symposium (IMS) featuring AWR Corporation. It lists the schedule of 6 microapps presentations to take place on May 25th, 2010, covering topics like multi-chip module design challenges, nonlinear co-simulation, system-level component models, and power amplifier design techniques. It also advertises AWR's online design environment for generating customized transistor datasheets.
The purpose of this document is to guide you step by step in exploring the various basic features of Xcos for a user who has never used a hybrid dynamic systems modeler and simulator.
The document provides information on various utilities and functions in WinCC including:
1) Calling Windows applications from WinCC using "ProgramExecute" and setting the foreground window.
2) Exporting and importing message texts and tags to edit them in external programs like Excel.
3) Configuring direct connections in WinCC for improved performance compared to C-actions.
4) Various other functions like the hardcopy function, saving project data without online archives, setting the language and date/time via buttons, and more.
Este documento presenta el calendario y los resultados de la temporada 2017-2018 de la Liga LEB Oro de baloncesto en España, que contó con la participación de 18 equipos distribuidos en 34 jornadas. Además, incluye información sobre los clubes, jugadores, entrenadores y demás aspectos relacionados con la competición.
Este documento contiene un ejercicio de actividades sobre los seres vivos y las plantas para estudiantes de 5o curso de primaria. Incluye preguntas sobre las partes de las plantas, la clasificación de los reinos, la nutrición en las plantas y ejercicios para completar información y relacionar características de los seres vivos con imágenes.
The document provides an overview of Lab 1 for ECEN 474/704. The objectives are to learn Linux commands, Cadence basics, and MOS transistor characterization. Students will create an inverter schematic in Cadence, simulate it, and measure transistor model parameters like threshold voltage. The document reviews transistor operation and SPICE models. It provides instructions for starting Cadence, creating a library and cell, building an inverter schematic, setting up a DC simulation, and interpreting output plots.
The document discusses the Freescale DSP development environment and assembler. It introduces Symphony Studio, which combines an editor, assembler, simulator, and debugger. It describes how to create and build projects in Symphony Studio, configure the simulator and debugger as external tools, and set up debug configurations. It also provides an overview of DSP source code basics, including the preprocessor, labels, jumps, and move instructions.
Visual Logic is a software tool for creating interactive flowcharts and programs. It allows users to graphically design programs using symbols like inputs, outputs, and assignments. The document provides instructions on how to install Visual Logic and create sample programs that get user input, perform calculations, and display output using both dialog boxes and the console window. It emphasizes best practices like enclosing text in quotes and using variables to store and concatenate input values for customized output.
This document provides instructions for creating and simulating a counter design using the Xilinx ISE design suite. It describes how to start ISE, create a new project, add a VHDL source file to define the counter module, generate a testbench waveform to simulate the design, and view the simulation results. Key steps include using language templates to add behavioral code to the counter, initializing timing settings for the testbench, and generating expected output values to create a self-checking testbench.
Lab: Installation of Xilkernel on Xilinx Spartan 3E Starter boardVincent Claes
This document provides instructions for implementing the Xilkernel real-time operating system on a Xilinx Spartan 3E FPGA board. It involves 4 steps: 1) Creating a base system in EDK, 2) Configuring software platform settings, 3) Writing a sample C application, and 4) Debugging the application on hardware. The application demonstrates creating threads and killing processes using functions from the Xilkernel library.
This tutorial covers using Eagle PCB design software to design an electronic schematic and circuit board layout. Eagle consists of a schematic editor, PCB editor, and autorouter. It is available in both Windows and Linux versions. The tutorial will guide the user through drawing a schematic for a microcontroller circuit including a power supply, microcontroller, and interfaces. It also describes how to create custom library components when needed parts are missing from the standard Eagle libraries.
This document provides an overview and introduction to using the curses module in Python for writing text-based terminal applications. It describes initializing and terminating curses, creating windows and pads, displaying text with attributes and colors, and getting user input. The curses module hides complex terminal control codes and provides a consistent interface for building terminal applications that works across systems.
The document provides step-by-step instructions for installing maxDNA software on a Windows workstation. It involves installing prerequisites like Service Pack 2, changing drive letters, configuring system settings like display resolution and time zone, installing additional software components, and configuring the workstation name and domain. The installation is completed by configuring the workstation startup and rebooting the system.
This document provides an introduction and overview of MS-DOS commands and how to use the Windows command line interface. It discusses what MS-DOS is, how to open the command prompt in Windows 7 and 8, and provides examples of basic commands like navigating directories, viewing folder contents, creating and deleting files and folders, copying and moving files, launching applications, and getting help. The document also describes how to customize properties of the command prompt like fonts, colors, window size and buffers.
This document provides an overview of basic Python skills needed to complete labs and problem sets, including logging into a server, using the Python shell and IDLE integrated development environment, running Python scripts locally, and basic Python operations like arithmetic, variables, lists, tuples, strings, and modules. It covers starting the Python interpreter, using xterms and logging into a server, the Python shell and IDLE, running Python scripts from the command line or within IDLE, and demonstrates basic Python concepts like arithmetic, variables, lists, tuples, strings, and modules through examples.
This document contains several tips and tricks for customizing Windows XP, including:
1. Making folders invisible by renaming them with a special character code and removing their icon.
2. Speeding up shutdown time by modifying the registry to kill services faster during shutdown.
3. Making desktop icons transparent by enabling a visual effect setting.
4. Hiding the Recycle Bin icon and "User Accounts" control panel item from view.
5. Creating a shortcut to quickly lock the computer without logging off.
Image Processing and Deep Learning (EEEM063) DIGITS IntrodMalikPinckney86
Image Processing and Deep Learning (EEEM063)
DIGITS Introductory Deep Learning Lab
Dr John Collomosse - Autumn 2017
Introduction
In this lab you will use a web based interface called “DIGITS” to run some simple classification
experiments using a convolution neural network (CNN). This lab assumes use of DIGITS v3.0.0 or
higher.
CNNs are state of the art deep neural networks that perform well at machine perception tasks such
as image classification. You will start learning about these in detail within Week 6.
To do this work you will need to connect to a teaching server
called aineko1 on the campus network. The server is not
visible off campus, so you are encouraged to use the lab or
library PCs on campus to do this work. If you want to use
your own laptop then you will be able to connect via the
campus wide “eduroam” wifi network. The campus wide
“The Cloud” network will not work. It is possible to connect
from offcampus using the https://anywhere.surrey.ac.uk
facility and entering the web interface address including
http:// into the text box in the upper-right of the portal.
The address of the web interface is http://aineko.eps.surrey.ac.uk:34448
Verify now that you can connect to the web interface via your browser, or you will not be able to
progress any further.
It is possible to install your own version of DIGITS on your local lab PC (e.g. in the Penguin lab). Since
we have a large class this year this may be useful if the aineko server becomes very busy. You can
refer to the supplementary instructions on SurreyLearn if you find is desirable to do this. If you want
to install DIGITS yourself on your own machine then you might find those instructions a useful
starting point but note that we do not have the resource to assist 50+ students installing their own
DIGITS on their own variants/configurations of Linux so if you try this you are on your own.
The aineko server (pictured right) is an Intel i7 PC with 4 Nvidia Titan-X GPUs which power our deep
learning experiments.
1. Getting Started
We will be working with a dataset of hand-written numbers 0-9, collected by the US postal service
from mail. The dataset is called MNIST and contains 70k images each only 28x28 pixels in size.
1 https://en.wikipedia.org/wiki/Accelerando
You must first create your own work area on the server and download the database.
Remotely login to the teaching server using ssh. In the Linux labs you can open up a terminal
window using Ctrl-Alt-T and then enter the following
ssh aineko.eps.surrey.ac.uk –l your_username
Note that character after the hyphen is a lower case L not a 1! Please substitute username you’re
your actual username. The password is your URN. If you are prompted by an “are you sure…”
prompt just type the word yes. If you can’t log in the we will have to create you an account.
Alternatively you may issue the same command in the Mac OS “Terminal” (usually found under
/Appl ...
Utkarsh Kapoor expresses gratitude to various people who helped and supported him in completing another chapter of his life. He thanks his industrial supervisor Mr. Setu Maheshwari for guiding him during his training. He also thanks his colleagues for their kindness and help. Finally, he thanks his parents for their sacrifice and inspiration in allowing him to pursue his studies.
This document provides a tutorial on creating a layout in Cadence from an existing schematic. It outlines the steps to synthesize the layout from the schematic, place and connect the components, add labels and pins, run DRC and LVS checks, extract the schematic with parasitics, and set up post-layout simulation. The key steps are synthesizing the layout from the schematic, placing and connecting devices, adding I/O pins, correcting any DRC or LVS errors, extracting the schematic, and simulating the layout-based design.
To understand the basic features and functions to create and debug a project in CCS v3.3
To get familar with CCS v3.3
More in-depth explanations of Code Composer Studio’s various features .
Ex: Breakpoints,watch window, single stepping, memory etc..,
Finally, you will able to work with CCS v3.3
This tutorial provides step-by-step instructions for analyzing a 2D truss bridge using the FEPC finite element analysis software. The tutorial defines the 7 nodes, 11 truss elements, material properties, boundary conditions restraining the left and right nodes, and vertical loads of 40,000 lbs at node 3 and 20,000 lbs at node 5 to represent vehicles on the bridge.
The document provides instructions for customizing the dashboard displayed on the driver station screen in the 2010 FIRST Robotics Competition. It discusses modifying the dashboard to display additional sensor readings, status updates, and video feeds from the robot. The key steps include using data types to bundle and transfer information from the robot program to the driver station via UDP, designing the dashboard user interface, and building an executable file to display the customized dashboard.
This document provides an overview of events and presentations at the 2010 International Microwave Symposium (IMS) featuring AWR Corporation. It lists the schedule of 6 microapps presentations to take place on May 25th, 2010, covering topics like multi-chip module design challenges, nonlinear co-simulation, system-level component models, and power amplifier design techniques. It also advertises AWR's online design environment for generating customized transistor datasheets.
The purpose of this document is to guide you step by step in exploring the various basic features of Xcos for a user who has never used a hybrid dynamic systems modeler and simulator.
The document provides information on various utilities and functions in WinCC including:
1) Calling Windows applications from WinCC using "ProgramExecute" and setting the foreground window.
2) Exporting and importing message texts and tags to edit them in external programs like Excel.
3) Configuring direct connections in WinCC for improved performance compared to C-actions.
4) Various other functions like the hardcopy function, saving project data without online archives, setting the language and date/time via buttons, and more.
Este documento presenta el calendario y los resultados de la temporada 2017-2018 de la Liga LEB Oro de baloncesto en España, que contó con la participación de 18 equipos distribuidos en 34 jornadas. Además, incluye información sobre los clubes, jugadores, entrenadores y demás aspectos relacionados con la competición.
Este documento contiene un ejercicio de actividades sobre los seres vivos y las plantas para estudiantes de 5o curso de primaria. Incluye preguntas sobre las partes de las plantas, la clasificación de los reinos, la nutrición en las plantas y ejercicios para completar información y relacionar características de los seres vivos con imágenes.
Este documento contiene las soluciones a una evaluación de matemáticas de 6o de primaria. Incluye respuestas a operaciones aritméticas, problemas de porcentajes, representación de números decimales y fracciones, construcción de gráficos, y más.
El documento describe un sistema biprocesador con memoria compartida que utiliza un protocolo de coherencia de caché snoopy. Explica que si la CPU B tiene cargada en caché la variable X y la CPU A realiza una lectura seguida de una escritura sobre X, la secuencia de acciones de coherencia será que la CPU A pase de inválida a compartida tras la lectura, y luego a sucia tras la escritura, mientras la CPU B pasará de compartida a inválida. También señala que podría haber problemas si la CPU B real
El documento describe el cálculo de la aceleración de dos procesadores con segmentación (P1 y P2) en comparación con un procesador sin segmentación. P1 tiene una segmentación de 9 etapas iguales con una sobrecarga de 7 nseg. por etapa, resultando en una aceleración de 7,03 veces. P2 tiene etapas de diferentes tiempos con una sobrecarga de 7 nseg. y diferentes porcentajes de instrucciones detenidas, resultando en una aceleración de 2,01 veces.
El documento presenta un problema que involucra transformar un bucle secuencial en instrucciones VLIW para ejecutarlo de forma paralela. Se pide: a) obtener el diagrama de flujo de datos, b) transformar las instrucciones a formato VLIW considerando latencias, c) desenrollar el bucle 4 veces y planificarlo en VLIW usando todos los registros posibles, y d) comparar el rendimiento entre las soluciones b y c. La solución desenrolla el bucle, ejecuta las 4 iteraciones en paralelo y log
El documento presenta 4 preguntas sobre diseño digital en VHDL. La primera pregunta pide diseñar un contador síncrono módulo 4 en VHDL. La segunda pregunta pide crear un banco de pruebas VHDL para verificar el contador. La tercera pregunta pide diseñar un circuito combinacional para realizar desplazamientos de bits en VHDL. Y la cuarta pregunta pide diseñar un flip-flop D en VHDL usando una sentencia if.
Este documento proporciona una introducción al uso del simulador WinDLX para simular el procesador DLX. Explica cómo instalar WinDLX, cargar programas de ensamblador en la memoria, ejecutar la simulación paso a paso utilizando diferentes ventanas como Pipeline, Code y Clock Cycle Diagram, y utilizar funciones como breakpoints. El objetivo es simular un programa que calcula el factorial de un número introducido por el usuario para ilustrar el funcionamiento del simulador.
3. Introduction
The DLX processor (pronounced "DeLuXe") is a pipelined processor used as an
example in J. Hennessy's and D. Patterson's Computer Architecture - A
quantitative approach. This tutorial describes a session using WinDLX, a
Windows-based simulator, that shows how DLX's pipeline works.
The example used in this tutorial is very simple and is not meant to show
all aspects of WinDLX. It should act only as a first introduction to the
use of the application. When you have completed it, please refer to the
help files; you can at every stage of a session get context-sensitive help
by pressing F1. During this example, though, this will probably not be
necessary.
Though every step of the example will be discussed in detail, basic
knowledge in the use of Windows must be required. It must be assumed that
you know how to start Windows, scroll using scrollbars, execute a double
click or bring a window uppermost on the screen. The exact appearance of
your screen cannot be foretold (e. g. Is a special icon covered by a window
or not?), so you must be able to "tidy up" your screen without help.
You will need Windows 3.0 or higher for this simulation.
Installation
WinDLX consists of the files windlx.exe and windlx.hlp. Together with these
you should have got some assembler code files with the extension .s. In
this manual fact.s and input.s will be needed.
If you are familiar with the installation of Windows applications, you
might as well skip now to the next chapter, A complete example, after
making sure that fact.s and input.s are copied into the WinDLX directory.
To install WinDLX to Windows 3.1, please execute the following steps:
1. Create a directory for WinDLX, e. g. C:WINDLX.
2. Copy all the WinDLX files you have got, at least windlx.exe,
windlx.hlp, fact.s and input.s to the WinDLX directory.
3. If you have not already done this, enter Windows now.
4. Assuming that you use the German version of Windows, double click on
Windows Setup in "Hauptgruppe".
5. Select Optionen and Anwendungsprogramme einrichten.
6. Select Sie ein Anwendungsprogramm angeben lassen, click OK and enter
the WinDLX directory and the filename, e. g. C:WINDLXWINDLX.EXE.
Windows will then automatically install WinDLX to the group "Anwendungen";
the icon looks like this:
3
4. A complete example
This chapter uses the assembler file fact.s in WinDLX assembler. The
program calculates the factorial of a number you can enter on the keyboard.
The file input.s will be required for this, too.
Starting and configuring WinDLX
WinDLX is started - like every Windows application - by double clicking
on the WinDLX icon. A window (denoted main window in the future) with
six icons appears. Double clicking on these icons will pop up child
windows. Each of these windows will be explained and used later.
To make sure the
simulation is
reset, click on
the File menu and click Reset all. A window pops up and you will have to
confirm your intention by clicking the OK button in the "Reset DLX"
window.
WinDLX is capable of working with several configurations. You can change
the structure and time requirements of the pipeline, the memory size and
several parameters that control the simulation. Let us choose the
standard settings; click Configuration / Floating Point Stages (read
that as: click Configuration to open the menu, then click on Floating
Point Stages) and make sure that the following settings are given:
Coun Delay
t
Addition Units: 1 2
Multiplication 1 5
Units:
Division Units: 1 19
If necessary, change the settings by clicking in the appropriate field
and editing the given numbers. When you are finished, click OK to return
to the main window.
By clicking Configuration / Memory Size the size of the simulated
processor's memory can be set. This should be 0x8000. Again, OK goes
back to the main window.
Three more options in the Configuration menu can be chosen: Symbolic
addresses, Absolute Cycle Count and Enable Forwarding should all be set,
that is, a small hook should be shown beside it. If this is not the
case, click on the option.
4
5. Loading testprograms
In order to be able to start the simulation, at least one program must
be loaded into the main memory. To accomplish this, select File / Load
Code or Data. A list of assembler programs in the directory appears in a
window.
As mentioned earlier, fact.s calculates the factorial of an integer
number. input.s contains a subprogram which reads the standard input
(the keyboard) and stores the integer in the general purpose register 1
of the DLX processor. To load these two files into the memory, do the
following:
• click on fact.s
• click the select button
• click on input.s
• click the select button
• click the load button
The sequence of selection of the files is essential as it defines the
order of appearance in the memory. Confirm the message File(s) loaded
successfully. Reset DLX? by clicking OK. The files are now loaded into
the memory.
After these preparations the simulation is ready to begin.
Simulating
When looking now at the main window, you should see six icons, named
(not necessarily in that order) "Register", "Code", "Pipeline", "Clock
Cycle Diagram", "Statistics" and "Breakpoints". Clicking any of these
icons will pop up a new window (a "child" window). The characteristics
and the use of each of these windows will be introduced during the
simulation.
Pipeline window
Let us first take a look at the inner structure of the DLX processor. To
do this, double click on the icon Pipeline. The appearing child window
shows a schematic representation of DLX' five-stage pipeline. You should
enlarge this window as much as possible, so that instructions held in
the various pipe stages can be shown in the schematic.
5
6. The picture shows the five pipeline stages of the DLX processor and the
units for floating point operations (addition / subtraction,
multiplication and division).
Code window
The next window we will look at is the Code window. When double clicking
the icon, you will see a three column representation of the memory,
showing from the left to the right an address (symbolic or in numbers),
a hex number giving the machine code representation of the command and
the assembler command.
$TEXT 0x20011000 addi r1,r0,0x1000
main+0x4 0x0c00003c jal InputUnsigned
It is time to start the simulation now, so click Execution in the main
window. In the appearing pull down menu, click Single Cycle. Pressing F7
has the same effect.
You will note that the first line in the window with the address $TEXT
is now coloured yellow. Pressing F7 advances the simulation for one time
step; this changes the first line's colour to orange and the next line
is coloured yellow. These colours show the pipeline stage the command is
in. If you have closed the pipeline window, please re-open Pipeline
again (double click on the icon). If the window is large enough, you can
see that the command jal InputUnsigned is in the IF stage and the
preceding command addi r1, r0, 0x1000 is in the second stage, ID. The
other blocks are marked with a cross, showing that no sensible
information is processed in them.
Pressing F7 again will re-arrange the colours in the code window,
introducing red for the third pipeline stage intEX. The next F7,
however, will change the picture: the yellow line appears farther down
and is probably now the only coloured line in the code window. Examining
the pipeline window will show that IF, intEX and MEM are used but ID is
not. Why?
Clock Cycle Diagram window
Another window will show further information. Iconize all child windows
and open the Clock Cycle Diagram window. It contains a representation of
the timing behaviour of the pipeline.
You can see that the simulation is now in the 4th cycle, the first
command is in the MEM stage, the second in intEX and the fourth in IF.
The third command, however, is denoted as "aborted". The reason for
this: The second command, jal, is an unconditional branch. This fact is
known only after the 3rd cycle, when jal has been decoded. During this
cycle the command movi2fp (following after jal) has already been
fetched, but the next executed command will be at another address.
Therefore the execution of movi2fp must be aborted, leaving a "bubble"
in the pipeline.
6
7. The branch address of jal is named "InputUnsigned". To find out the
actual value of this symbolic address, click Memory in the main window
and Symbols. The appearing window shows the correspondence between the
used symbols and the actual numbers. Select "name" in the "Sort:" area
to have them sorted by name rather than by value. "G" after the value
denotes a global, "L" a local symbol. "InputUnsigned" in the module
"input" therefore is a global symbol standing for 0x144 and is used as
an address. Please close the window now by clicking on the OK button.
Pressing F7 once more will bring the first command, addi, into the last
pipeline stage. What has internally happened to execute this command can
be examined by pointing to the line to be examined in the clock cycle
diagram (the line containing the addi-command) and double clicking. A
new window will pop up that contains a detailed description of the
processor's internal actions for every pipeline stage. The window is
denoted "Information about ..." referred to as the "information window"
in the future. After having examined it, close the window by clicking
the OK button. Double clicking on the third line, movi2fp, shows that
only the first pipeline stage, IF, has been exectued and then the
command was aborted due to a jump. Do not forget to click OK.
(The information window can be brought up double clicking on a line in
the code window or a stage in the pipeline window, too.)
Breakpoint window
When examining the code by opening the code window (double click on icon
code if it is not already opened) you will notice that the next
instructions are all nearly the same; they are sw-operations that store
words from a register into the memory. Repeatedly pressing F7 would be
quite boring, so we will speed this up by using a breakpoint.
Please point now to the line 0x0000015c in the code window that contains
the command trap 0x5. This is a system call to write to the screen.
Click once (this will reverse the line) and click on Code in the main
windows menu line (to do this, the code window must be uppermost on the
screen). Select Set Breakpoint by clicking on it (make sure the line is
still marked!). A new window "Set Breakpoint" pops up to let you decide
what pipeline stage of the command shall be reached before execution of
the program stops. This is ID by default. We will leave it at that;
click OK to close the window.
Now in the trap 0x5-line in the code window, "BID" appears, showing that
a break from program execution will occur when this command is in the
decode phase.
To examine the defined breakpoints click on the icon Breakpoints. A
small window containing all breakpoints (only one so far) is shown. Re-
Iconize the window again.
7
8. Now let the simulation run by clicking Execution / Run or simply F5. A
window will inform you that "ID-Stage: reached at Breakpoint #1"; it is
closed by clicking OK.
If you bring the clock cycle diagram window to the foreground by
clicking on it, you will note something new: The simulation is now in
cycle 14, but the line trap 0x5 looks like
The reason for this is that the pipeline is cleared in DLX whenever a
trap-instruction is found to avoid all possibility of problems. This is
documented in the information window (double click on the trap-line to
bring it up) with the note "3 stall(s) because of Trap-Pipeline-
Clearing!" in the IF stage. (Do not forget to close the window again by
clicking OK.)
The instruction trap 0x5 has already written to the screen. You can
check this by clicking on Execute / Display DLX-I/O in the main window's
menu line. The created window shows you the screen's appearance. As
usual, OK will remove the window.
Register window
To go further in the simulation, click on the code window to bring it
uppermost on the screen and scroll down (using the arrow keys or the
mouse on the vertical scrollbar) to the line with the address
0x00000194, with the instruction lw r2, SaveR2(r0). Set a breakpoint on
this line (click on the line; press Ins as a shortcut or click on Code /
Set Breakpoint / OK). Use the same procedure to set a breakpoint on line
0x000001a4 jar r31. Pressing F5 now to run the simulation further will
bring a surprise: The DLX-Standard-I/O window pops up with the cursor
blinking after "An integer value >1: ". Type in 20 and press Enter; the
simulation resumes and reaches breakpoint # 2 (OK!).
The picture in the clock cycle diagram window (bring it to the
foreground by clicking on it) shows something new - red and green arrows
between instructions (if you do not see them, scroll up the clock cycle
diagram window using the scroll bar until you can examine simulation
cycles 52, 53, 54, 55 and 56). Red arrows denote the necessity of a
stall; the reason for this stall is explained in the line the arrow
points to. In this case, we have R-Stalls, which means stalls due to
RAW-hazards (an instruction needs the result of the previous instruction
that is not yet known). Green arrows symbolize the use of forwarding,
that is the use of a result before it is written back into the target
register of the instruction.
Now it is time to examine the registers' contents. To do so, double
click the Register icon in the main window. The register window shows
you the values contained in the registers. Look especially at R1 to R5.
Running the simulation to the next breakpoint (F5, OK) will show that
some values are altered. The lw instructions do just that: they load
values from memory into registers.
If you want to advance the simulation without having to set a
breakpoint, there is another possibility. Click on Execute / Multiple
Cycles or simply press F8. In the newly created window, type 17 and
press Enter. The simulation advances 17 clock cycles.
Scroll up the clock cycle diagram window until you see instruction
cycles 72 to 78 at least. Two floating point operations (multd and subd
- multiply/subtract double) each are executed on separate units during
the EX stage, but they both need more than one cycle to terminate.
Therefore the next instruction after these (j Fact.Loop) can be fetched,
decoded and executed, but after that has to stall for one cycle to allow
subd to finish its MEM phase.
8
9. Statistics window
Now we will examine the last remaining window, the statistics window.
Let the program finish its execution by pressing F5. The message "Trap
#0 occurred" (OK) shows that the last instruction, trap 0 has been
executed. Trap number 0 is not defined; this instruction is used as an
end instruction to ensure termination of the program. Iconize all
windows and double click the icon Statistics.
This window provides information about general aspects (e. g. number of
simulation cycles), the hardware configuration used in the simulation,
stalls and their causes, conditional branches, Load-/Store-instructions,
floating point stage instructions and traps. Usually, an absolute count
of events and a percentage are given, e. g. "RAW stalls: 17(7.91 % of
all Cycles)".
The statistics window is extremely useful to compare the effects of
changes in the configuration. We will try this now:
Let us examine the effects of forwarding in the example. Until now, we
have used this feature; what would the execution time have been without
forwarding?
To accomplish that, note the total number of cycles (215) and stalls (17
RAW, 25 Control, 12 Trap; 54 Total) and close the statistics window;
then click on Configuration. To disable forwarding, click on Enable
Forwarding (the hook must vanish). The following "WARNING: OK resets
automatically the processor! Disable Forwarding?" should be answered
with OK. Remove all breakpoints by opening the breakpoints icon,
clicking on the Breakpoints menu, clicking on Delete All and confirming
by OK. Then you can run the whole simulation at once with F5, 20 Enter
and OK when trap 0 occurred. By re-examining the statistics window, you
learn that the number of Control stalls and Trap stalls remained the
same, but the number of RAW stalls was now 53 instead of 17, thus
increasing the total number of simulation cycles to 236. With this
information you can e. g. calculate the speedup gained by forwarding
(236 / 215 = 1.098 => DLXforwarded is 9.8 % faster than DLXnot forwarded
with fact.s).
Further experiments
This tutorial somewhat hurried through the example out of the necessity to
show all important features of WinDLX. The understanding of pipelining in
general and the mode of operation of the DLX processor in particular,
however, can only come to you if you work through this and other examples
in greater detail and in a speed that suits you. You could especially
change the configuration to see if an additional floating point adder is
useful or if a faster division unit (less instruction cycles) justifies
additional cost. Further you can simulate the effects of an optimizing
compiler by rearranging lines in the source codes, thus avoiding RAW-
stalls.
Refer intensively to Help. You will find many details that could not be
answered in this tutorial.
In general: "play" with WinDLX to get a "feeling" for the function of
pipelining - WinDLX surely is a means to accomplish that.
9