ECE 532 Group Report: Virtual Boxing Game

Size: px
Start display at page:

Download "ECE 532 Group Report: Virtual Boxing Game"

Transcription

1 ECE 532 Group Report: Virtual Boxing Game Group 18 Professor: Paul Chow TA: Vincent Mirian Ryan Fernandes Martin Kovac Zhan Jun Liau

2 Table of Contents 1.0 Overview Motivation Goals and Description System Block Diagram Brief Description of IP's Diagram of Game Outcome Comparison of Original and Final Features Assessment of Operation Improvements for the System Future Work Possibilities Review of Project Schedule Description of Blocks Microblaze Game Code Video Switching Color Detection Setup Color Detection Block (Paddle Detector) Fast Simplex Link (FSL) Video to RAM Video Switch Plb_tft_cntrlr Xps_interrupt_controller Plb_uart Xps_timer Debug Module LED debug mux Clock Generator MPMC Description of Design Tree References

3 1.0 Overview An overview of the project motivation, details, goals, and system blocks. 1.1 Motivation In recent years there has been an increasing trend to create motion tracking and touch user interfaces to interact with computing devices as seen on the Nintendo Wii, Microsoft Kinect, and touch screen phones/tablets. As such, our team thought that it would be interesting to work with motion tracking and alternative user interfaces in a game environment for this course project. By using two cameras, one tracking an x coordinate from above, and one tracking a y coordinate from the side, a screening space can be defined that maps directly to a VGA monitor. Such an interface allows direct tracking of a user's motion that corresponds to a screen without having to physically touch the screen. 1.2 Goals and Description The purpose of this project is to create a virtual boxing game. This is done by allowing users to punch towards the VGA screen and translate the position of a fist into coordinates relative to the screen. Since one camera has no depth perception, two cameras are required to correctly identify the position of the fist. The punches are to be aimed at diamond targets that are displayed randomly on the VGA screen. The cameras will be placed facing down and to the side, which allows each camera to detect one set of coordinates; X for the top camera and Y for the side camera. Through switching the video input of the two cameras and writing their inputs into separate memory locations, video data is obtained for the screening area for both x-z and y-z coordinate planes. A video processing block obtains the x and y coordinates by inspecting each video frame in memory (one x frame, one y frame) for the colored fist that corresponds to a punch through a color detection algorithm. The Microblaze CPU will compare the video coordinates from the video processing block to the diamond target coordinates on screen, if the coordinates are reasonably close, then the target will be hit as indicated by a yellow marker. The Microblaze CPU draws the diamonds and game visuals in software. Targets will randomly appear on the screen at regular intervals, with the intervals decreasing as the user successfully hits more and more targets. A counter will be used to record the score of the player, level time, and also to record the calories burned and the reaction time of the user. Therefore, in order for the project to be a success, the camera detection must be done in real time, and the accuracy of the detection must be within at least a few centimeters. 3

4 1.3 System Block Diagram Figure 1: System Block Diagram 1.4 Brief Description of IP's A brief description of the IP's from the block diagram is listed below. Video to Ram: Uses a timer and control signals from the Microblaze processor to switch between the 2 camera inputs and stores them to DDR RAM. This block was taken from the Video to RAM code and modified to work with 2 cameras. Video Switch: Relays signals between the Microblaze s PLB bus and the Video to Ram block. This block was newly created. Paddle Detector: Reads the frames from DDR RAM memory and searches for a predefined color, once the color is found it sends the coordinates using an FSL to the Microblaze processor. This block was taken from "Move-o-Phone" project and modified to work with our project. 4

5 Microblaze: Runs our game software, that will be used to display targets to be punched by the user. Additionally controls the video switching and color to detect for the paddle detector. Software originated from Wild West Project. IIC: I2C communication block for video decoder communication. From Video to RAM code given. Plb_tft_cntrlr: VGA output core, to display graphics on screen. From Video to RAM code given. Xps_interrupt_controller: Manages multiple interrupts over PLB. xps_intc Ver 1.00a from the IP catalog Plb_uart: UART module for debugging data over RS232. From Video to RAM code given. Xps_timer: Produces an interrupt at a set time interval. xps_timer ver 1.00a from the IP catalog. Debug Module: Debugs Microblaze through XMD and JTAG. From Video to RAM code given. LED debug mux: Debug multiplexor output for LED debugging. From Video to RAM code given. Clock Generator: Generates outputt clocks from a given input clock though PLL and DCM. From Video to RAM code given. MPMC: Allows multiple devices to access memory through ports. From Video to RAM code given. DDR Memory: External RAM of 256MB. From Video to RAM code given. 1.5 Diagram of Game Figure 2. Diagram of the external components of the game 5

6 The game consists of two video cameras, one pointed down and one to the sides as can be seen in figure 2. The user punches towards the screen, and the two cameras are each responsible for one coordinate; X for the top camera and Y for the bottom camera. The red X on screen represents the location that is detected corresponding to the position of the fist relative to the screen. 2.0 Outcome An analysis of the final design, assessment of operation, challenges, improvements that we could make, and a future outlook. 2.1 Comparison of Original and Final Features All of the original features indicated in the proposal have been included in the final product in some shape or form. Changes from the original include having diamond shaped targets instead of creatures to hit and detecting a colored fist as opposed to a generic hand to better accommodate the color detection algorithm. The Microblaze uses an FSL to obtain coordinate data instead of reading from memory. Score, level time, response time, and calories burned are added features displayed on the VGA. Multiple levels are supported, with the diamond target moving faster at higher levels. Below are the final features with the changes mentioned above. The following are the features of the project: Diamond targets show up on the screen at random locations drawn by the Microblaze CPU The user punches toward the screen at the target s location, stopping before impact to score One camera on top and one on the side identifies the colored fist location A hardware block translates colored fist location to X and Y coordinates A software block compares fist location to identify a hit or miss of the target Score, level, level time, response time, and calories burned displayed on screen Multiple levels of increasing movement speed for diamond target 2.2 Assessment of Operation Listed below are the original functional requirements from the project proposal Functional requirements: Must be accurate down to a couple of centimeters Must do processing in real time Must use two cameras Hardware block will perform video processing to determine X and Y coordinates from input video stream Microblaze processor will process X and Y coordinate data and map it to the VGA screen to identify a hit or miss 6

7 The measured accuracy of the project is within around 5cm, which meets the first requirement. The processing is all done in real time, however there is a video input and output delay, but it is consistent and not growing through the game operation. There are two cameras used, one for x and one for y coordinate determination. A hardware block does process x and y coordinate data, averages it and sends it to the Microblaze. The Microblaze does take this data over the FSL and maps it to the screen to identify a hit or miss for the targets. A detailed assessment of each major module is given below. The Video to Ram and Video Switch cores work very well. The switching between cameras is flawless, however the switching time is somewhat longer than we expected. The color detection module was largely successful. The module was intended to detect a certain color and find the centre of a large block of color. It was able to do this successfully and also was able to process the data from the cameras in real time. The module was also able to push the coordinates into a Fast Simplex Link (FSL) which allows the Microblaze C code to collect the coordinate data quickly. The block was instantiated twice, once for each camera, and each block was able to process the correct video frame and find the centre of a large block of color. The Microblaze code is able to draw a diamond on the screen which is able to randomly move through the screen using the rand function. Through a timer, the set interval of redrawing the diamond is controlled explicitly. This timer interval is reduced as the level increases, making the diamond drawn more quickly. The FSL is read through the timer, when the video frame is ready and emptied out as quick as possible to reduce video output delay on the screen and to ensure that the latest coordinates are being read. However, the video input delay is around 1 second, and so hitting the target is not perfectly synced with the punch motion. Score, level, level time, response time, and calories burned appear on the screen based on the user's performance in the game. These features seem to work as expected. 2.3 Improvements for the System For the video switching, one way to improve the switching timing is to create interrupt signals in the video switch block and trigger an interrupt in the processor based on this signal. During the interrupt the processor will reconfigure the video decoder chip to switch the video input. Improvements could be made for the FSL to cause an interrupt in the Microblaze when a pair of coordinates are available. This would make it easy for software to read the data from the hardware and will let the software know when the data is available immediately. For the Microblaze code, better graphics could have been used for the game. A smarter averaging and prediction code could have been created to compensate for the video input delay, reducing the appearance of lag for hitting targets. 2.4 Future Work Possibilities As the next steps I would recommend reducing the input video delay and video processing lag. Currently the delay is around 1 second and ideally we would want the delay to be less than 100ms, to have a smooth and accurate game that works at high speeds. Improved video graphics would go a long way to improving the visual prowess of the game, including creatures instead of diamond targets to hit, and 7

8 visual effects to indicate fast punches and fast response times. An audio effect that is played when a target first appears, would improve the overall user experience and fun factor. Finally having specialized targets, that require a certain response time to be hit, or a certain punch speed to score a point would be added for extra challenge. One suggestion for future work is for the project to identify the speed of the punch. This allows the user to vary the strength of the punch and can add a new depth to the game by requiring different speeds for different targets. This will require the video switching to happen relatively quickly so that the coordinates can be stored and compared with the previous set of coordinates without noticeable delay. Another suggestion is to add in support for a second player, as the color detection module can already detect a second color. Some modifications are required to add in support for the output of the second pair of coordinates through the FSL, and for the block to detect the centre coordinates of the second color block. As well, some rethinking of the game is required to add additional targets or some other purpose for the second player. 3.0 Review of Project Schedule Below is a table comparing our proposed milestones with our actual progress throughout the semester. Throughout the development of our project our group was able to keep up with our weekly milestones fairly well until around March 21, where we had to delay all progress by around 1 week due to having a busy schedule and having to submit a group report for another course, ECE496. In the beginning we completed locating sample code and setting up the video cameras for switching between two inputs on time. Problems began when we attempted to modify the Video to RAM p-core to allow for storing and loading video in memory. Work was started on Feb 29, however due to numerous technical challenges was not completed until Mar 28, with an expected completion date originally of Mar 7. The challenges included difficulty in analyzing the video to RAM p-core to modify its FSM to store and load video data, and creating a second address to store video data. We felt as if we were working blind until we ran simulation using ModelSim as per the advice of the TA, and convinced ourselves that the video was indeed being stored in memory. The video processing algorithm came together much as initially expected under the original schedule. The Microblaze game code was delayed by around 1 week, due to the previously mentioned delay. It was originally assumed that the game code would be completed before integration, however this assumption turned out to be optimistic, as many of the bugs in software were not ironed out until after integration occurred, additionally new game data was output on screen with new input from the TA at the end of March. Overall our method of splitting the work into three parallel parts (video switching, video processing, game code), prevent us from having any major bottlenecks from a single part not being completed. This allowed us to have our game completed for a system test by the original April 4 deadline. 8

9 Date Proposed Milestone Actual Progress Feb 8 Find Sample Code Found the Video to RAM sample code to For the software and hardware blocks, sample provide our video input interface. code will be searched for that implements as Looked into the Laser Pointer many features as possible to display video from a video camera, process video through Game and Interactive Snake Game for a color detection module in Verilog. edge detect/color and display output on the Read through the datasheets of the video VGA. daughter board to identify how to setup 2 Feb 15 Setup Video Camera Perform the necessary software and hardware changes from the given video input code to input 2 video camera sources alternatively cameras switching. Modified the video setup of the Video to RAM software code to switch between multiple analog inputs using the I2C interface on the fly, allowing us to connect 2 composite inputs to our 2 video cameras Used a switch to demonstrate switching from camera 1 to camera 2 Feb 29 Store and Load Video in Memory Be able to store and load video in memory. Assess if video buffers are required for video storage. Feb 29 Detection Algorithm Determine and code an algorithm to identify that an object has entered the viewing area. This algorithm must be able to differentiate the background from unidentified objects. Stored a single frame in memory and displayed it on the VGA output by modifying the Video to Ram Verilog Implemented a color detection algorithm from the Move-o-Phone project. We were able to change the color detected from red, blue and green Mar 7 Mar 7 Microblaze Game Interface Create preliminary code to read x and y coordinate data from memory and display output on screen at an acceptable speed. Determine delay and bandwidth headroom Determine the delays, and the inherent bandwidth of the system with particular focus on the video storage and processing, with aid from the snoopy core. The video processing algorithm was created utilizing the color detection algorithm from the "paddle detector" core, and adding an averaging block to find the center point of the detected colored object. An FSL was added to output the coordinate data. Switching between video frames in memory was added. A counter records the number of lines written and switches between inputs at the end of a frame and switches the memory location to store the video data. A new IP core called video switch was added that takes 2 frame done signals and writes them to a software accessible register, where the Microblaze can switch frames by writing to these registers The game code was started and included a drawing diamond algorithm 9

10 Mar 14 Processing Algorithm Determine and code an algorithm to process the fist on the screening area and determine a relatively accurate position map that can relate the screening area to the VGA screen to be stored in memory. Mar 21 Implement Verilog Hardware in EDK Implement the Verilog hardware block into EDK for a more system oriented test environment. The paddle detector code was modified to include an FSM that checked for reading the whole frame before outputting new coordinate data Integration of the video processing Verilog and the game code was done. The game code recognizes the coordinate data from the FSL and matches it to the target coordinates of the drawn diamond, increasing score. The video switching Verilog was improved to fix timing related issues, and an overwrite issue with the video data Due to a busy work schedule during this week including having to submit our ECE 496 report, we moved the milestone one week forward. Mar 21 Software Game Visuals and Speed Control Implement advanced software visual effects such as creatures on the screen/ targets to hit. Also implement speed control to modify the speed at which targets appear and disappear after being hit. Mar 28 Verification of Video Processing Algorithm Verify that the video processing algorithm is providing adequate position data and optimize as necessary. Mar 28 Verification of Game Code Verify that the game code is stable, and will be able to time well with hardware demands. Apr 4 System Test Connect the hardware and software blocks together through EDK and test the hardware and software code/description. 10 The game code includes features of multiple levels of increasing speed, level time, and calorie count. A timer was added to allow for speed control of levels. Software averaging was performed to smooth out the coordinate data from the FSL Integration of the video switching and video processing Verilog was completed Two instances of the color detection algorithm were included for both cameras, working at two different video addresses Integration for the video switching, video processing and game code was completed Additional averaging of the coordinate data was done Calorie count, levels, score, response time are displayed on screen now Video lag reduced in software by reading the FSL faster, when each frame is done for each camera, but not too fast as to cause instability Table 1: Project Schedule Comparison

11 4.0 Description of Blocks A description of the major blocks used in the block diagram with detailed analysis of the IP. 4.1 Microblaze The below diagram represents the software flow of the project. High Level Software Mid Level Game Code Video Input Switching Color Detection setup Low Level Draw Diamond Read FSL + Compare Diaomd Location Update On Screen Game Data Switch Video Input when frame done Set color to pink Figure 3: Software Block Diagram The following software is detailed: game code is derived from the "Wild West Game" (2011), the control of the color detection is derived from the "Move-o-Phone" (2011), and the video switching is derived from the "Video to RAM" version 1.00a. A timer has been setup with a time slice of 20ms, to perform all game code functionality, and keep the while loop in main() empty to optimize performance Game Code The original code from the Wild West project was modified to work completely off the timer interrupt. The VGA drawing library and implementation is derived from Andrew Shorten (2009) and used as is. New IP of drawing diamonds and circles were created, as well as target detection code, and game data code. In the timer, a diamond is drawn in a random location using rand() after a counter has finished incrementing to the max value Timerset=150. Every time a level has been increased this max value is decreased by 6 and the diamond is redrawn in a new location sooner. The max value has a lower bound of 30, which is the max speed of the game. The new diamond location is checked to ensure it is greater than +/- 150 pixels from the original diamond to ensure double hits are avoided. When a frame_x_done signal (1 or 2) is asserted its respective FSL (1 or 2) is read for new coordinate data. This process is done in the timer which has a time slice of 20ms to read the FSL not too quickly but not too slowly, to get valid coordinate data, avoiding reading delayed points, or garbage data from a blank frame when the video input has been switched. The previous coordinate data and current coordinate data are averaged [coordxavg2=(c old +c new )/2], and this averaged coordinate data is compared with the current diamond location. Averaging is necessary to avoid erroneous points from 11

12 being drawn from FSL coordinate data, which occur occasionally. To make the game easier, there is a threshold of +/- 65 pixels from the center point of the diamond to guarantee a hit. Once hit a yellow happy face is drawn over the target. Game data is redrawn on the screen after a new diamond has been drawn to optimize the performance of the C code. Score is kept by detecting a punch within the diamond threshold from the FSL data. Level is increased every 2 points of score. Response time is calculated based on the time slice and time till a punch has been detected, it is updated once a hit occurs. Level time is calculated as the current time of the level, and updated every second. Calorie count is calculated based on the number of punches on the screen, which assumes that every time a set of coordinates detected beyond a threshold of +/- 100 pixels is a new punch. Through using an average body weight of 180lb and an online calorie count calculator for boxing which bases calories on boxing time, the calorie count is calculated assuming 90 punches per minute Video Switching The original code from the Video to RAM project was modified to include a function to enable the component green input as a composite input through reprogramming the I2C. In the timer, the frame_x_done (1 and 2) signals are read from software accessible registers as asserted by the Verilog from the Video Switching module. Once a signal is asserted as done, the software writes to the register indicating that it will be switching inputs through frame_x_start signals (1 and 2). Video switching is done through reprogramming the Video daughter card through I2C, to switch between composite inputs for camera 1 and Color Detection Setup In the main code, the color detection algorithm is initialized to detect for pink/purple colors, by writing directly to memory with the HEX values for the RGB low and high threshold. This is modified from the original red, blue and green colors from the "Move-o-Phone" project. These low and high thresholds determine the acceptable RGB values that can be taken as input data. 4.2 Color Detection Block (Paddle Detector) The algorithm for the color detection was largely borrowed from the 2011 project Move-o-Phone, which in turn borrows the code from the 2010 project Virtual Pong. The block in its original form detects the first and last points of a certain color, and writes the coordinates to RAM for the Microblaze to collect. However, some modifications were made to this block for our project. The color detection block takes the system clock, system reset, frame_done and MPMC_DoneInit signals as inputs. The MPMC_DoneInit signal ensures that the MPMC memory controller is successfully initialized before attempting to read and write from memory. The frame_done signal is used to check if the video_switch module has successfully switched to the other camera and the frame data is ready to be read. This input signal was used to add a new waiting state in the FSM that blocks processing until the signal is high. The block still provides the X and Y coordinates as outputs. However, these are unused and the coordinates are now output through an FSL. 12

13 The color detection module requires that color bounds be provided from the Microblaze before processing the frame. The color bounds are not read through the FSL but through memory. This is done to reduce the amount of work that the software needs to do, as the game code can run a bit slowly. If the bounds were read through the FSL, the software would have to continuously write the bounds to the FSL, whereas once the bounds are written to memory, the software does not require to keep updating the FSL. Therefore, when the game code is first initialized, the code writes the various color bounds to memory. These bounds are: Lower Bound of Red for Color 1 Upper Bound of Red for Color 1 Lower Bound of Blue for Color 1 Upper Bound of Blue for Color 1 Lower Bound of Green for Color 1 Upper Bound of Green for Color 1 Together, these bounds set the range of color to be detected. These bounds are repeated again for the second color, but this is unused by the project. Once the color bounds are read, the module processes the entire frame stored in memory, finding the first and last points of a certain color in the entire frame. With these two points, the centre of the color is block is calculated. These coordinates are then passed to the FSL bus to be read by the Microblaze. 4.3 Fast Simplex Link (FSL) The FSL is a unidirectional bus that allows fast communication between both ends through a FIFO. The FIFO depth can vary greatly, allowing flexibility in the use of the FSL. It also supports synchronous and asynchronous modes, which allows the master and slave sides to have different clocks [1]. For the project, the FSLs are working synchronously, and they have a depth of 16, which is the minimum if the FSL is working synchronously. Two FSLs are used for the project, one for each color detection core. 4.4 Video to RAM The original IP comes from the Video to RAM project given. The hardware was modified to switch video input into two separate addresses in the DRAM. The Video to RAM is started by asserting frame_1_start or frame_2_start signal. Both frame_x_start and frame_x_done signals are connected to Video Switch IP core. Once a start signal is asserted the timer was synchronized to VBLANK signal and counts the number of lines written to memory. Once the entire frame is written, frame_x_start is deasserted and frame_x_done is asserted. After the operations are completed the block waits for another start signal to be asserted. 4.5 Video Switch This IP block was newly created for this project. It contains a PLB bus slave and 4 user addressable registers. This block is used to relay signals between the Microblaze processor and the Video to RAM block. The software in the processor is configured to write and read user addressable registers in the Video Switch IP core, which in turn are translated to signals frame_x_done and frame_x_start and 13

14 connected to the Video to RAM block. To start writing a frame the software writes 1 into bit 0 or bit 1 of C_BASEADDR + 0x4 for frame 1 or frames 2 respectively. Once the frame is finished 1 is read from bit 0 or bit 1 of C_BASEADDR. The actual video switching is done in software by reprogramming the Video daughter card through I2C. For this project we used green and yellow RCA connector on the daughter video board. 4.6 Plb_tft_cntrlr XPX TFT Controller v1.00a from Xilinx IP catalog. The XPS TFT controller is a hardware display controller IP capable of displaying 256k colors connected on the PLB. Used to interface with VGA monitor to display graphics.[2] 4.7 Xps_interrupt_controller XPS interrupt controller 1.00a from the Xilinx IP catalog. Concentrates multiple interrupt inputs from peripheral devices to a single interrupt output to the system processor. Registers for accessing interrupt data are accessed through a slave interface for the PLB. [3] 4.8 Plb_uart SPS UART lite v1.00a from the Xilinx IP catalog. Connects to the PLB and provides the controller interface for asynchronous serial data transfer, interfaces with PLBV46. Used for showing debug data over RS232 to a secondary PC on HyperTerminal. [4] 4.9 Xps_timer XPS timer/counter 1.00a from the Xilinx IP catalog. A 32bit timer module that attaches to a PLB bus. Produces an interrupt at a set time interval through interrupt controller. [5] 4.10 Debug Module Microblaze Debug Module v1.00d from Xilinx IP catalog. Enables JTAG based debugging on Microblaze processors. Used through the XMD interface to debug and step through code. [6] 4.11 LED debug mux LED debug MUX v2.01a. Debug multiplexor output for LED debugging Clock Generator Clock generator v1.00a from Xilinx IP catalog. Instantiates a DCM module, PLL module, BUFG insertion, automates DCM and PLL reset sequence determination and connection. [7] 4.13 MPMC MPMC v4.03a from Xilinx IP catalog. Fully parameterizable memory controller that supports SDRAM/DDR/DDR2. Provides access to memory for one to eight ports, selected from PIM that permits connectivity into a PowerPC and Microblaze processor using Core Connect PLBv4.6 and the NPI, and memory interface block PIM. Supports SDMA, video frame buffer controller, error correcting code and performance monitoring. [8] 14

15 5.0 Description of Design Tree The design tree structure of our project is detailed below. /BoxingGame/- main directory Group Report /BoxingGame/doc - Group Report Software /BoxingGame/sw/DrawText.h - hard coded letters and numbers for drawing text on VGA /BoxingGame/sw/gamedetect.c - main game code /BoxingGame/sw/List.h - some structures for game data /BoxingGame/sw/VGA.h - VGA functions /BoxingGame/sw/constants.h - constant definitions Hardware /BoxingGame/pcores/led_debug_mux_v1_00_a - debug LED core /BoxingGame/pcores/paddle_detector_fsl_v1_00_a - the video processing module for color detection /BoxingGame/pcores/video_switch_v1_00_a - video switch module, used to switch between cameras /BoxingGame/pcores/video_to_ram_v1_00_a - modified Video to RAM module to handle 2 cameras Block Diagram /BoxingGame/blkdiagram - EDK generated block diagram All other files/folders are standard Xilinx generated files/folders. 6.0 References [1] LogiCORE IP Fast Simplex Link (FSL) V20 Bus (v2.11c), Internet: April 19, 2010 [April 6, 2012] [2] "Xilinx Thin Film Transistor (TFT) Controller (v1.00a)", Xilinx EDK v SP3, July 21, [3] "XPS Interrupt Controller (v1.00a)", Xilinx EDK v SP3, July 22,

16 [4]"XPS UART Lite (v1.00a)", Xilinx EDK v SP3, July 18, [5]"XPS Timer/Counter (v1.00a)", Xilinx EDK v SP3, April 21, [6]"Microblaze Debug Module (MDM)(v1.00d)", Xilinx EDK v SP3, June 25, [7]"Clock Generator (v2.01a)", Xilinx EDK v SP3, July 28, [8]"Multi-Port Memory Controller (MPMC)(v4.03a)", Xilinx EDK v SP3, July 30,

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras Group #4 Prof: Chow, Paul Student 1: Robert An Student 2: Kai Chun Chou Student 3: Mark Sikora April 10 th, 2015 Final

More information

ECE 532 Design Project Group Report. Virtual Piano

ECE 532 Design Project Group Report. Virtual Piano ECE 532 Design Project Group Report Virtual Piano Chi Wei Hecheng Wang April 9, 2012 Table of Contents 1 Overview... 3 1.1 Goals... 3 1.2 Background and motivation... 3 1.3 System overview... 3 1.4 IP

More information

ECE 532 PONG Group Report

ECE 532 PONG Group Report ECE 532 PONG Group Report Chirag Ravishankar (995399108) Durwyn D Silva (994761496) Jeffrey Goeders (993367566) April 5, 2010 Contents 1 Overview... 3 1.1 Goals... 3 1.2 Background... 3 1.3 System Overview...

More information

UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL

UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL Toronto 2015 Summary 1 Overview... 5 1.1 Motivation... 5 1.2 Goals... 5 1.3

More information

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA 1 ARJUNA RAO UDATHA, 2 B.SUDHAKARA RAO, 3 SUDHAKAR.B. 1 Dept of ECE, PG Scholar, 2 Dept of ECE, Associate Professor, 3 Electronics,

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 2, 2007 Problem Set Due: March 14, 2007 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 3, 2006 Problem Set Due: March 15, 2006 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012

ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012 ECE532 A/V Touch Miaad S. Aliroteh, Joe Garvey, Ben Hare 4/9/2012 Table of Contents 1 OVERVIEW... 4 1.1 Motivation... 4 1.2 Goals... 4 1.3 Block Diagram... 5 1.4 Brief Description of IP... 5 2 OUTCOME...

More information

Video Painting Group Report

Video Painting Group Report Video Painting Group Report Opal Densmore Kei-Ming Kwong Wahid Rahman Digital System Design (ECE532H1S) Prof. Paul Chow TA: Jasmina Vasiljevic April 10, 2014 Contents List of Figures... ii List of Tables...

More information

Pivoting Object Tracking System

Pivoting Object Tracking System Pivoting Object Tracking System [CSEE 4840 Project Design - March 2009] Damian Ancukiewicz Applied Physics and Applied Mathematics Department da2260@columbia.edu Jinglin Shen Electrical Engineering Department

More information

Laboratory Exercise 4

Laboratory Exercise 4 Laboratory Exercise 4 Polling and Interrupts The purpose of this exercise is to learn how to send and receive data to/from I/O devices. There are two methods used to indicate whether or not data can be

More information

ECE 4220 Real Time Embedded Systems Final Project Spectrum Analyzer

ECE 4220 Real Time Embedded Systems Final Project Spectrum Analyzer ECE 4220 Real Time Embedded Systems Final Project Spectrum Analyzer by: Matt Mazzola 12222670 Abstract The design of a spectrum analyzer on an embedded device is presented. The device achieves minimum

More information

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

FPGA Laboratory Assignment 4. Due Date: 06/11/2012 FPGA Laboratory Assignment 4 Due Date: 06/11/2012 Aim The purpose of this lab is to help you understanding the fundamentals of designing and testing memory-based processing systems. In this lab, you will

More information

LogiCORE IP Video Timing Controller v3.0

LogiCORE IP Video Timing Controller v3.0 LogiCORE IP Video Timing Controller v3.0 Product Guide Table of Contents Chapter 1: Overview Standards Compliance....................................................... 6 Feature Summary............................................................

More information

Video Output and Graphics Acceleration

Video Output and Graphics Acceleration Video Output and Graphics Acceleration Overview Frame Buffer and Line Drawing Engine Prof. Kris Pister TAs: Vincent Lee, Ian Juch, Albert Magyar Version 1.5 In this project, you will use SDRAM to implement

More information

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics November 10, 2000 Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 E-mail: support@xilinx.com URL: www.xilinx.com/ipcenter Features Supports T1-D4 and T1-ESF

More information

How to overcome/avoid High Frequency Effects on Debug Interfaces Trace Port Design Guidelines

How to overcome/avoid High Frequency Effects on Debug Interfaces Trace Port Design Guidelines How to overcome/avoid High Frequency Effects on Debug Interfaces Trace Port Design Guidelines An On-Chip Debugger/Analyzer (OCD) like isystem s ic5000 (Figure 1) acts as a link to the target hardware by

More information

Design and analysis of microcontroller system using AMBA- Lite bus

Design and analysis of microcontroller system using AMBA- Lite bus Design and analysis of microcontroller system using AMBA- Lite bus Wang Hang Suan 1,*, and Asral Bahari Jambek 1 1 School of Microelectronic Engineering, Universiti Malaysia Perlis, Perlis, Malaysia Abstract.

More information

LogiCORE IP AXI Video Direct Memory Access v5.01.a

LogiCORE IP AXI Video Direct Memory Access v5.01.a LogiCORE IP AXI Video Direct Memory Access v5.01.a Product Guide Table of Contents Chapter 1: Overview Feature Summary.................................................................. 9 Applications.....................................................................

More information

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview Digilent Nexys-3 Cellular RAM Controller Reference Design Overview General Overview This document describes a reference design of the Cellular RAM (or PSRAM Pseudo Static RAM) controller for the Digilent

More information

Logic Analysis Basics

Logic Analysis Basics Logic Analysis Basics September 27, 2006 presented by: Alex Dickson Copyright 2003 Agilent Technologies, Inc. Introduction If you have ever asked yourself these questions: What is a logic analyzer? What

More information

Logic Analysis Basics

Logic Analysis Basics Logic Analysis Basics September 27, 2006 presented by: Alex Dickson Copyright 2003 Agilent Technologies, Inc. Introduction If you have ever asked yourself these questions: What is a logic analyzer? What

More information

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging Compatible Windows Software GLOBAL LAB Image/2 DT Vision Foundry DT3162 Variable-Scan Monochrome Frame Grabber for the PCI Bus Key Features High-speed acquisition up to 40 MHz pixel acquire rate allows

More information

Design and Implementation of Timer, GPIO, and 7-segment Peripherals

Design and Implementation of Timer, GPIO, and 7-segment Peripherals Design and Implementation of Timer, GPIO, and 7-segment Peripherals 1 Module Overview Learn about timers, GPIO and 7-segment display; Design and implement an AHB timer, a GPIO peripheral, and a 7-segment

More information

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics EECS150 - Digital Design Lecture 10 - Interfacing Oct. 1, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin EDA385 Bomberman Fredrik Ahlberg ael09fah@student.lu.se Adam Johansson rys08ajo@student.lu.se Magnus Hultin ael08mhu@student.lu.se 2013-09-23 Abstract This report describes how a Super Nintendo Entertainment

More information

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress Nor Zaidi Haron Ayer Keroh +606-5552086 zaidi@utem.edu.my Masrullizam Mat Ibrahim Ayer Keroh +606-5552081 masrullizam@utem.edu.my

More information

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4) ECE 574: Modeling and synthesis of digital systems using Verilog and VHDL Fall Semester 2017 Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and

More information

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Introduction This lab will be an introduction on how to use ChipScope for the verification of the designs done on

More information

Lab Assignment 2 Simulation and Image Processing

Lab Assignment 2 Simulation and Image Processing INF5410 Spring 2011 Lab Assignment 2 Simulation and Image Processing Lab goals Implementation of bus functional model to test bus peripherals. Implementation of a simple video overlay module Implementation

More information

LogiCORE IP AXI Video Direct Memory Access v5.03a

LogiCORE IP AXI Video Direct Memory Access v5.03a LogiCORE IP AXI Video Direct Memory Access v5.03a Product Guide Table of Contents SECTION I: SUMMARY Chapter 1: Overview Feature Summary..................................................................

More information

FPGA Development for Radar, Radio-Astronomy and Communications

FPGA Development for Radar, Radio-Astronomy and Communications John-Philip Taylor Room 7.03, Department of Electrical Engineering, Menzies Building, University of Cape Town Cape Town, South Africa 7701 Tel: +27 82 354 6741 email: tyljoh010@myuct.ac.za Internet: http://www.uct.ac.za

More information

DT3130 Series for Machine Vision

DT3130 Series for Machine Vision Compatible Windows Software DT Vision Foundry GLOBAL LAB /2 DT3130 Series for Machine Vision Simultaneous Frame Grabber Boards for the Key Features Contains the functionality of up to three frame grabbers

More information

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline EECS150 - Digital Design Lecture 12 - Video Interfacing Oct. 8, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John

More information

BUSES IN COMPUTER ARCHITECTURE

BUSES IN COMPUTER ARCHITECTURE BUSES IN COMPUTER ARCHITECTURE The processor, main memory, and I/O devices can be interconnected by means of a common bus whose primary function is to provide a communication path for the transfer of data.

More information

TABLE 3. MIB COUNTER INPUT Register (Write Only) TABLE 4. MIB STATUS Register (Read Only)

TABLE 3. MIB COUNTER INPUT Register (Write Only) TABLE 4. MIB STATUS Register (Read Only) TABLE 3. MIB COUNTER INPUT Register (Write Only) at relative address: 1,000,404 (Hex) Bits Name Description 0-15 IRC[15..0] Alternative for MultiKron Resource Counters external input if no actual external

More information

Using SignalTap II in the Quartus II Software

Using SignalTap II in the Quartus II Software White Paper Using SignalTap II in the Quartus II Software Introduction The SignalTap II embedded logic analyzer, available exclusively in the Altera Quartus II software version 2.1, helps reduce verification

More information

Design and Implementation of an AHB VGA Peripheral

Design and Implementation of an AHB VGA Peripheral Design and Implementation of an AHB VGA Peripheral 1 Module Overview Learn about VGA interface; Design and implement an AHB VGA peripheral; Program the peripheral using assembly; Lab Demonstration. System

More information

Figure 1: Feature Vector Sequence Generator block diagram.

Figure 1: Feature Vector Sequence Generator block diagram. 1 Introduction Figure 1: Feature Vector Sequence Generator block diagram. We propose designing a simple isolated word speech recognition system in Verilog. Our design is naturally divided into two modules.

More information

microenable 5 marathon ACL Product Profile of microenable 5 marathon ACL Datasheet microenable 5 marathon ACL

microenable 5 marathon ACL Product Profile of microenable 5 marathon ACL   Datasheet microenable 5 marathon ACL i Product Profile of Scalable, intelligent high performance frame grabber for highest requirements on image acquisition and preprocessing by robust industrial MV standards All formats of Camera Link standard

More information

BASCOM-TV. TV Code Features: ICs supported: BASCOM versions:

BASCOM-TV. TV Code Features: ICs supported: BASCOM versions: BASCOM-TV With this software module you can generate output directly to a TV - via an RGB SCART connection - from BASCOM (AVR), using a just few resistors and a 20 MHz crystal. Write your program with

More information

EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15

EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15 EECS578 Prof. Bertacco Fall 2015 EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15 1. Overview This project focuses on designing a test plan and a set of test programs for a digital reverberation

More information

System Requirements SA0314 Spectrum analyzer:

System Requirements SA0314 Spectrum analyzer: System Requirements SA0314 Spectrum analyzer: System requirements Windows XP, 7, Vista or 8: 1 GHz or faster 32-bit or 64-bit processor 1 GB RAM 10 MB hard disk space \ 1. Getting Started Insert DVD into

More information

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit) Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6. - Introductory Digital Systems Laboratory (Spring 006) Laboratory - Introduction to Digital Electronics

More information

TransitHound Cellphone Detector User Manual Version 1.3

TransitHound Cellphone Detector User Manual Version 1.3 TransitHound Cellphone Detector User Manual Version 1.3 RF3 RF2 Table of Contents Introduction...3 PC Requirements...3 Unit Description...3 Electrical Interfaces...4 Interface Cable...5 USB to Serial Interface

More information

LogiCORE IP Video Timing Controller v3.0

LogiCORE IP Video Timing Controller v3.0 LogiCORE IP Video Timing Controller v3.0 DS857 June 22, 2011 Introduction The Xilinx Video Timing Controller LogiCORE IP is a general purpose video timing generator and detector. The input side of this

More information

Image Acquisition Technology

Image Acquisition Technology Image Choosing the Right Image Acquisition Technology A Machine Vision White Paper 1 Today, machine vision is used to ensure the quality of everything from tiny computer chips to massive space vehicles.

More information

SPI Serial Communication and Nokia 5110 LCD Screen

SPI Serial Communication and Nokia 5110 LCD Screen 8 SPI Serial Communication and Nokia 5110 LCD Screen 8.1 Objectives: Many devices use Serial Communication to communicate with each other. The advantage of serial communication is that it uses relatively

More information

microenable IV AS1-PoCL Product Profile of microenable IV AS1-PoCL Datasheet microenable IV AS1-PoCL

microenable IV AS1-PoCL Product Profile of microenable IV AS1-PoCL   Datasheet microenable IV AS1-PoCL i Product Profile of Scalable, intelligent frame grabber for image acquisition and OEM projects Single channel, Base format frame grabber PoCL SafePower Broad camera support No camera file needed Image

More information

LogiCORE IP XPS Timebase Watchdog Timer (v1.02a)

LogiCORE IP XPS Timebase Watchdog Timer (v1.02a) LogiCORE IP XPS Timebase Watchdog Timer (v1.02a) DS582 July 23, 2010 Introduction The XPS Timebase Watchdog Timer Interface is a 32-bit peripheral that provides a 32-bit free-running timebase and watchdog

More information

TV Character Generator

TV Character Generator TV Character Generator TV CHARACTER GENERATOR There are many ways to show the results of a microcontroller process in a visual manner, ranging from very simple and cheap, such as lighting an LED, to much

More information

Fingerprint Verification System

Fingerprint Verification System Fingerprint Verification System Cheryl Texin Bashira Chowdhury 6.111 Final Project Spring 2006 Abstract This report details the design and implementation of a fingerprint verification system. The system

More information

LogiCORE IP Motion Adaptive Noise Reduction v2.0

LogiCORE IP Motion Adaptive Noise Reduction v2.0 LogiCORE IP Motion Adaptive Noise Reduction v2.0 DS841 March 1, 2011 Introduction The Xilinx Motion Adaptive Noise Reduction (MANR) LogiCORE IP is a module for both motion detection and motion adaptive

More information

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract Sundance Multiprocessor Technology Limited EVP6472 Intech Demo Unit / Module Description: Capture Demo For Intech Unit / Module Number: EVP6472-SMT949 Document Issue Number 1.1 Issue Data: 27th April 2012

More information

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003 1 Introduction Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003 Circuits for counting both forward and backward events are frequently used in computers and other digital systems. Digital

More information

Laboratory 4. Figure 1: Serdes Transceiver

Laboratory 4. Figure 1: Serdes Transceiver Laboratory 4 The purpose of this laboratory exercise is to design a digital Serdes In the first part of the lab, you will design all the required subblocks for the digital Serdes and simulate them In part

More information

Solutions to Embedded System Design Challenges Part II

Solutions to Embedded System Design Challenges Part II Solutions to Embedded System Design Challenges Part II Time-Saving Tips to Improve Productivity In Embedded System Design, Validation and Debug Hi, my name is Mike Juliana. Welcome to today s elearning.

More information

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005 EE178 Lecture Module 4 Eric Crabill SJSU / Xilinx Fall 2005 Lecture #9 Agenda Considerations for synchronizing signals. Clocks. Resets. Considerations for asynchronous inputs. Methods for crossing clock

More information

IMS B007 A transputer based graphics board

IMS B007 A transputer based graphics board IMS B007 A transputer based graphics board INMOS Technical Note 12 Ray McConnell April 1987 72-TCH-012-01 You may not: 1. Modify the Materials or use them for any commercial purpose, or any public display,

More information

EXOSTIV TM. Frédéric Leens, CEO

EXOSTIV TM. Frédéric Leens, CEO EXOSTIV TM Frédéric Leens, CEO A simple case: a video processing platform Headers & controls per frame : 1.024 bits 2.048 pixels 1.024 lines Pixels per frame: 2 21 Pixel encoding : 36 bit Frame rate: 24

More information

Checkpoint 1 AC97 Audio

Checkpoint 1 AC97 Audio UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Checkpoint 1 AC97 Audio 1.0 Motivation One of the most difficult aspects of digital

More information

Why FPGAs? FPGA Overview. Why FPGAs?

Why FPGAs? FPGA Overview. Why FPGAs? Transistor-level Logic Circuits Positive Level-sensitive EECS150 - Digital Design Lecture 3 - Field Programmable Gate Arrays (FPGAs) January 28, 2003 John Wawrzynek Transistor Level clk clk clk Positive

More information

microenable IV AD1-PoCL Product Profile of microenable IV AD1-PoCL Datasheet microenable IV AD1-PoCL

microenable IV AD1-PoCL Product Profile of microenable IV AD1-PoCL Datasheet microenable IV AD1-PoCL i Product Profile of Scalable, intelligent frame grabber for image acquisition and OEM projects Base to Medium incl DualBase format frame grabber PoCL SafePower Broad camera support No camera file needed

More information

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core Video overlays on 24-bit RGB or YCbCr 4:4:4 video Supports all video resolutions up to 2 16 x 2 16 pixels Supports any

More information

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits Nov 26, 2002 John Wawrzynek Outline SR Latches and other storage elements Synchronizers Figures from Digital Design, John F. Wakerly

More information

Fast Quadrature Decode TPU Function (FQD)

Fast Quadrature Decode TPU Function (FQD) PROGRAMMING NOTE Order this document by TPUPN02/D Fast Quadrature Decode TPU Function (FQD) by Jeff Wright 1 Functional Overview The fast quadrature decode function is a TPU input function that uses two

More information

Registers and Counters

Registers and Counters Registers and Counters A register is a group of flip-flops which share a common clock An n-bit register consists of a group of n flip-flops capable of storing n bits of binary information May have combinational

More information

DT9834 Series High-Performance Multifunction USB Data Acquisition Modules

DT9834 Series High-Performance Multifunction USB Data Acquisition Modules DT9834 Series High-Performance Multifunction USB Data Acquisition Modules DT9834 Series High Performance, Multifunction USB DAQ Key Features: Simultaneous subsystem operation on up to 32 analog input channels,

More information

EE178 Spring 2018 Lecture Module 5. Eric Crabill

EE178 Spring 2018 Lecture Module 5. Eric Crabill EE178 Spring 2018 Lecture Module 5 Eric Crabill Goals Considerations for synchronizing signals Clocks Resets Considerations for asynchronous inputs Methods for crossing clock domains Clocks The academic

More information

EdgeConnect Module Quick Start Guide ITERIS INNOVATION FOR BETTER MOBILITY

EdgeConnect Module Quick Start Guide ITERIS INNOVATION FOR BETTER MOBILITY EdgeConnect Module Quick Start Guide ITERIS INNOVATION FOR BETTER MOBILITY 493456301 Rev B April 2009 Table of Contents Installation... 1 Setup... 2 Operation... 4 Live Video... 4 Video Settings... 5 Network

More information

Risk Risk Title Severity (1-10) Probability (0-100%) I FPGA Area II Timing III Input Distortion IV Synchronization 9 60

Risk Risk Title Severity (1-10) Probability (0-100%) I FPGA Area II Timing III Input Distortion IV Synchronization 9 60 Project Planning Introduction In this section, the plans required for completing the project from start to finish are described. The risk analysis section of this project plan will describe the potential

More information

Altera s Max+plus II Tutorial

Altera s Max+plus II Tutorial Altera s Max+plus II Tutorial Written by Kris Schindler To accompany Digital Principles and Design (by Donald D. Givone) 8/30/02 1 About Max+plus II Altera s Max+plus II is a powerful simulation package

More information

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC or SoC Supplied as human readable VHDL (or Verilog) source code Output supports full flow control permitting

More information

OpenXLR8: How to Load Custom FPGA Blocks

OpenXLR8: How to Load Custom FPGA Blocks OpenXLR8: How to Load Custom FPGA Blocks Webinar Breakdown: Introduc*on to pseudorandom number generator (LFSR) code Review of Verilog wrapper interface to microcontroller Simula*on with Mentor Graphics

More information

Enhancing Performance in Multiple Execution Unit Architecture using Tomasulo Algorithm

Enhancing Performance in Multiple Execution Unit Architecture using Tomasulo Algorithm Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology ISSN 2320 088X IMPACT FACTOR: 6.017 IJCSMC,

More information

Sandia Project Document.doc

Sandia Project Document.doc Sandia Project Document Version 3.0 Author: Date: July 13, 2010 Reviewer: Don Figer Date: July 13, 2010 Printed on Monday, June 04, 2012 Sandia Project Document.doc 1.0 INTRODUCTION...1 2.0 PROJECT STATEMENT

More information

FPGA Design. Part I - Hardware Components. Thomas Lenzi

FPGA Design. Part I - Hardware Components. Thomas Lenzi FPGA Design Part I - Hardware Components Thomas Lenzi Approach We believe that having knowledge of the hardware components that compose an FPGA allow for better firmware design. Being able to visualise

More information

Synchronous Sequential Logic

Synchronous Sequential Logic Synchronous Sequential Logic Ranga Rodrigo August 2, 2009 1 Behavioral Modeling Behavioral modeling represents digital circuits at a functional and algorithmic level. It is used mostly to describe sequential

More information

Last time, we saw how latches can be used as memory in a circuit

Last time, we saw how latches can be used as memory in a circuit Flip-Flops Last time, we saw how latches can be used as memory in a circuit Latches introduce new problems: We need to know when to enable a latch We also need to quickly disable a latch In other words,

More information

TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices

TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices Physics & Astronomy HEP Electronics TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices LECC 2004 Matthew Warren warren@hep.ucl.ac.uk Jon Butterworth,

More information

Course 10 The PDH multiplexing hierarchy.

Course 10 The PDH multiplexing hierarchy. Course 10 The PDH multiplexing hierarchy. Zsolt Polgar Communications Department Faculty of Electronics and Telecommunications, Technical University of Cluj-Napoca Multiplexing of plesiochronous signals;

More information

RAPID SOC PROOF-OF-CONCEPT FOR ZERO COST JEFF MILLER, PRODUCT MARKETING AND STRATEGY, MENTOR GRAPHICS PHIL BURR, SENIOR PRODUCT MANAGER, ARM

RAPID SOC PROOF-OF-CONCEPT FOR ZERO COST JEFF MILLER, PRODUCT MARKETING AND STRATEGY, MENTOR GRAPHICS PHIL BURR, SENIOR PRODUCT MANAGER, ARM RAPID SOC PROOF-OF-CONCEPT FOR ZERO COST JEFF MILLER, PRODUCT MARKETING AND STRATEGY, MENTOR GRAPHICS PHIL BURR, SENIOR PRODUCT MANAGER, ARM A M S D E S I G N & V E R I F I C A T I O N W H I T E P A P

More information

Certus TM Silicon Debug: Don t Prototype Without It by Doug Amos, Mentor Graphics

Certus TM Silicon Debug: Don t Prototype Without It by Doug Amos, Mentor Graphics Certus TM Silicon Debug: Don t Prototype Without It by Doug Amos, Mentor Graphics FPGA PROTOTYPE RUNNING NOW WHAT? Well done team; we ve managed to get 100 s of millions of gates of FPGA-hostile RTL running

More information

2.6 Reset Design Strategy

2.6 Reset Design Strategy 2.6 Reset esign Strategy Many design issues must be considered before choosing a reset strategy for an ASIC design, such as whether to use synchronous or asynchronous resets, will every flipflop receive

More information

Understanding Compression Technologies for HD and Megapixel Surveillance

Understanding Compression Technologies for HD and Megapixel Surveillance When the security industry began the transition from using VHS tapes to hard disks for video surveillance storage, the question of how to compress and store video became a top consideration for video surveillance

More information

A MISSILE INSTRUMENTATION ENCODER

A MISSILE INSTRUMENTATION ENCODER A MISSILE INSTRUMENTATION ENCODER Item Type text; Proceedings Authors CONN, RAYMOND; BREEDLOVE, PHILLIP Publisher International Foundation for Telemetering Journal International Telemetering Conference

More information

CMS Conference Report

CMS Conference Report Available on CMS information server CMS CR 1997/017 CMS Conference Report 22 October 1997 Updated in 30 March 1998 Trigger synchronisation circuits in CMS J. Varela * 1, L. Berger 2, R. Nóbrega 3, A. Pierce

More information

Transmitter Interface Program

Transmitter Interface Program Transmitter Interface Program Operational Manual Version 3.0.4 1 Overview The transmitter interface software allows you to adjust configuration settings of your Max solid state transmitters. The following

More information

Using on-chip Test Pattern Compression for Full Scan SoC Designs

Using on-chip Test Pattern Compression for Full Scan SoC Designs Using on-chip Test Pattern Compression for Full Scan SoC Designs Helmut Lang Senior Staff Engineer Jens Pfeiffer CAD Engineer Jeff Maguire Principal Staff Engineer Motorola SPS, System-on-a-Chip Design

More information

SHENZHEN H&Y TECHNOLOGY CO., LTD

SHENZHEN H&Y TECHNOLOGY CO., LTD Chapter I Model801, Model802 Functions and Features 1. Completely Compatible with the Seventh Generation Control System The eighth generation is developed based on the seventh. Compared with the seventh,

More information

Agilent I 2 C Debugging

Agilent I 2 C Debugging 546D Agilent I C Debugging Application Note1351 With embedded systems shrinking, I C (Inter-integrated Circuit) protocol is being utilized as the communication channel of choice because it only needs two

More information

LAX_x Logic Analyzer

LAX_x Logic Analyzer Legacy documentation LAX_x Logic Analyzer Summary This core reference describes how to place and use a Logic Analyzer instrument in an FPGA design. Core Reference CR0103 (v2.0) March 17, 2008 The LAX_x

More information

Multiband Noise Reduction Component for PurePath Studio Portable Audio Devices

Multiband Noise Reduction Component for PurePath Studio Portable Audio Devices Multiband Noise Reduction Component for PurePath Studio Portable Audio Devices Audio Converters ABSTRACT This application note describes the features, operating procedures and control capabilities of a

More information

Scalable, intelligent image processing board for highest requirements on image acquisition and processing over long distances by optical connection

Scalable, intelligent image processing board for highest requirements on image acquisition and processing over long distances by optical connection i Product Profile of Scalable, intelligent image processing board for highest requirements on image acquisition and processing over long distances by optical connection First Camera Link HS F2 Frame grabber

More information

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract Sundance Multiprocessor Technology Limited EVP6472 Intech Demo Unit / Module Description: Capture Demo For Intech Unit / Module Number: EVP6472-SMT909 Document Issue Number 1.1 Issue Data: 25th Augest

More information

Explorer Edition FUZZY LOGIC DEVELOPMENT TOOL FOR ST6

Explorer Edition FUZZY LOGIC DEVELOPMENT TOOL FOR ST6 fuzzytech ST6 Explorer Edition FUZZY LOGIC DEVELOPMENT TOOL FOR ST6 DESIGN: System: up to 4 inputs and one output Variables: up to 7 labels per input/output Rules: up to 125 rules ON-LINE OPTIMISATION:

More information

AD9884A Evaluation Kit Documentation

AD9884A Evaluation Kit Documentation a (centimeters) AD9884A Evaluation Kit Documentation Includes Documentation for: - AD9884A Evaluation Board - SXGA Panel Driver Board Rev 0 1/4/2000 Evaluation Board Documentation For the AD9884A Purpose

More information

Logic Analyzer Triggering Techniques to Capture Elusive Problems

Logic Analyzer Triggering Techniques to Capture Elusive Problems Logic Analyzer Triggering Techniques to Capture Elusive Problems Efficient Solutions to Elusive Problems For digital designers who need to verify and debug their product designs, logic analyzers provide

More information

CSCB58 - Lab 4. Prelab /3 Part I (in-lab) /1 Part II (in-lab) /1 Part III (in-lab) /2 TOTAL /8

CSCB58 - Lab 4. Prelab /3 Part I (in-lab) /1 Part II (in-lab) /1 Part III (in-lab) /2 TOTAL /8 CSCB58 - Lab 4 Clocks and Counters Learning Objectives The purpose of this lab is to learn how to create counters and to be able to control when operations occur when the actual clock rate is much faster.

More information

Processor time 9 Used memory 9. Lost video frames 11 Storage buffer 11 Received rate 11

Processor time 9 Used memory 9. Lost video frames 11 Storage buffer 11 Received rate 11 Processor time 9 Used memory 9 Lost video frames 11 Storage buffer 11 Received rate 11 2 3 After you ve completed the installation and configuration, run AXIS Installation Verifier from the main menu icon

More information