Video Painting Group Report

Size: px
Start display at page:

Download "Video Painting Group Report"

Transcription

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

2 Contents List of Figures... ii List of Tables... iii Chapter 1 Overview Background and Motivation Prior Work Why Use FPGAs? Project Definition & Goals System Overview System Description Key Definitions System Block Diagram Brief Description of IP... 5 Chapter 2 Outcome Summary Area of Improvements Lessons for Next Time Future Work Chapter 3 Project Schedule Chapter 4 Description of Blocks Significant IP Cores Other IP Cores Chapter 5 Description of Design Tree Chapter 6 Conclusion Tips and Tricks Video Demo References i

3 List of Figures Figure 1 Final system block diagram. The green blocks indicate existing IP blocks, while the red blocks indicate custom IP that was created as part of this project Figure 2 XPS System Assembly View of project Figure 3 The vmodcam IP core with modifications (red) for XY coordinate and Track Wand Figure 4 Track Wand IP logic Figure 5 vidcoord_xfer IP core Figure 6 The original HDMI_OUT IP core provided at the start of project [8] Figure 7 Modifications (red) made to HDMI_OUT IP core to integrate frame merging ii

4 List of Tables Table 1 - Acceptance Criteria for Project and Implementation in Final Project... 8 Table 2 - Proposed and Actual Project Schedule iii

5 Chapter 1 Overview 1.1 Background and Motivation The use of video processing in human-computer interaction (HCI) is expanding in applications ranging from entertainment, health-care, and education. Gaming consoles like the Xbox and its Kinect camera sensor augment users multimedia experience: computer vision and image processing algorithms built around the Kinect has been used to control ingame avatars based on user facial expressions and biometrics [1]. A biomedical company, Gestsure, is developing a Kinect-based system that uses surgeons hand motions to retrieve patient scans and images during operation [2]. In addition, studies note that the customized software to facilitate classroom interactions and to create Kinect-enabled contents seems to be missing in the picture of current technology integration [3] Prior Work While several video-based HCI systems have been developed as discussed previously, two systems implement a video painting system similar to this project. Virtual Whiteboard [4] This system develops an electronic chalkboard for teaching, without using specialized hardware. Instead, it uses generic camera and projectors. This software system uses Java and OpenCV libraries to detect and predict hand motions in real-time video. This system is a robust and feature-rich solution: it recognizes hand gestures by both hands at a real-time video frame rate (30 frames/sec at 320x240 resolution). However, the system only produces a screen of drawn shapes, not real-time video. cvpaint - Simple drawing using camera [5] This system is an OpenCV project that captures video from a webcam, tracks a user pointer (e.g. yellow block), and paint on the output streaming video based on location of pointer. This 1

6 project serves both as an inspiration and an example for this project. It is a simple algorithm implemented using the high-level OpenCV API. One downside is it relies on an OpenCVcompatible operating system. The reliance on software means limits the system s frame rate Why Use FPGAs? The benefits of using FPGAs for this project are twofold: hardware acceleration and reconfigurability. By implementing this project on an FPGA, custom hardware cores can be developed to accelerate video processing. This can directly improve frame rate. Reconfigurability allows for fast design cycles: redefining and testing software and hardware can be done relatively quickly using an FPGA. 1.2 Project Definition & Goals The goal of this project is to expand this video-based HCI to a proof-of-concept design on an FPGA. In particular, this project implements a video painting application that runs on video processing hardware in the FPGA. The motivation is to demonstrate real-time video HCI on an embedded FPGA system. In brief, the high-level goal of this project is to develop an embedded system on an FPGA that will output a video stream overlaid with trace of the arc a user draws in the air with a light source. The following are the specific goals of this project: Stream video input from a camera through the FPGA to video output on a monitor. Track the location of the light source paintbrush in the video input and store its coordinates within the video frame. Create a Draw Frame that is updated as the light source is tracked. For each tracked location of the light, a filled in circle (brush) is drawn at those coordinates in the draw frame. Merge the Draw and Video Frames into a Composite Frame. Output Composite Frame to HDMI Out. 2

7 Additional features of our project that were originally planned: Different drawing modes (colours, eraser, changing brush width) controlled by switches on the Digilent Atlys TM Board [6]. Clear screen functionality that resets the Draw Frame to an empty frame. Some applications of this project are as listed below: Interactive video, for a growing field for entertainment uses like the Kinect camera. Teaching, particularly for presentations conveyed over the Internet. Art, where our video drawing system could form a new creative medium. 1.3 System Overview System Description The design will make use of a Xilinx MicroBlaze soft processor to implement the Video- Painting algorithm. In order to implement a real-time system, critical software functions will be hardware accelerated. The system will integrate these hardware IP with the MicroBlaze to process real-time Video-Painting Key Definitions Draw Frame: An intermediate frame which is used to store the user drawn data Video Frame: An input frame from the camera which will be used as a background Composite Frame: An output frame with the Draw Frame overlaid on top of the Video Frame Paint Wand: The light source used for drawing. The location of the Paint Wand is tracked by Track Wand. 3

8 1.3.3 System Block Diagram DDR2 Draw Frame Video Frame Memory Controller VmodCam Video In VidCoordXfer HDMI Out Video Out Switches Track Wand Slave Registers Frame Merge AXI Bus MicroBlaze FPGA Update Draw Frame Update Brush Settings Figure 1 Final system block diagram. The green blocks indicate existing IP blocks, while the red blocks indicate custom IP that was created as part of this project. The system block diagram Figure 1 highlights the design and integration of various parts of our project. A camera records a video stream of a user. This video stream is captured by a Video-In IP block which controls the camera and stores the video stream on DDR3 memory. This is known as the Video Frame. When the user shines a light, the location of the light within the frame is tracked by a hardware IP, Track Wand. This hardware IP saves the location of the light in slave registers which are then read by software modules on the MicroBlaze. For example, a software module Update Draw Frame uses the tracked coordinates and draws a brush stroke (coloured square) at the location of the tracked coordinates in a Draw Frame (located on DDR3 memory). Next, a hardware IP called Frame Merge reads the Draw Frame and the Video Frame from memory, overlays the Draw Frame onto the Video Frame, and outputs the result to HDMI where it can be viewed on a monitor. 4

9 1.4 Brief Description of IP The following describe the functional blocks which were developed and/or used for this project. IP blocks which we were provided with are marked accordingly. 1. Update Brush Settings (Software) The Update Brush Settings block takes user input from the switches on the Atlys board and translates them into brush settings. Valid settings include brush colour, brush width, brush type (erase/draw), and a clear Draw Frame setting. The value of the switches is written to hardware slave registers and the values are read in software to be processed by the Update Brush Settings function. Inputs: Switch values read from hardware slave registers. Outputs: Brush setting values. 2. Update Draw Frame (Software) The Update Draw Frame block uses brush location, brush settings computed by Update Brush Settings and Draw Frame address to update the Draw Frame. The brush settings will be used to determine a stencil of the brush, which will be written to the Draw Frame at the specific brush location. Inputs: Brush settings, Paint Wand coordinates, draw frame memory address. Outputs: Updated Draw Frame, written directly to DDR3 memory. 3. Track Wand (Hardware) The Track Wand block monitors input video frames, locates a light source (hereinafter referred to as Paint Wand ) and outputs its coordinates to be stored in slave registers connected to the AXI bus. Inputs: Stream of pixel values and their coordinates within the frame from video-in IP as they are written to memory. Outputs: The horizontal and vertical pixel positions of the Paint Wand in the frame. 5

10 4. Frame Merge (Hardware) The Frame Merge block reads both the Draw Frame and Video Frame from memory, produces the Composite Frame based on the Video and Draw Frames, and writes the composite frame to the Video Out interface. Inputs: The memory addresses corresponding to the Draw, Video, and Composite Frames in DDR3 memory. Outputs: Composite Frame, written directly to Video Out. 5. Video In (Hardware, provided) [7] The Video In IP takes pixel input from the camera and stores it in DDR3 memory as the Video Frame. Inputs: Video data from camera. Outputs: Video Frame stored in DDR3 memory. 6. Video Out (Hardware, provided) The Video Out IP takes the Composite Frame and outputs it through HDMI to a monitor. Inputs: Stream of pixels composing the Composite Frame. Outputs: Data formatted with VSYNC and HSYNC for HDMI protocol. 7. VidCoordXfer (Hardware) This block holds slave registers that are used to make values calculated in Vmodcam (i.e. from Switch Settings and Track Wand) available to the MicroBlaze. Slave registers inside Vmodcam could not be used for this function because of the unique master/slave interface design of the existing Video-In IP: the core could be either a master or a slave for one data bus output, but the video input dominated the use and did not allow the MicroBlaze to access its internal slave registers. Inputs: Paint Wand coordinates, switch values. Outputs: Paint Wand coordinates and switch values stored in read-only slave registers which are read by MicroBlaze. 6

11 8. Vmodcam (Hardware, provided [7] and modified) Vmodcam serves as a wrapper for Video In and Track Wand. The switches pass through Vmodcam for debugging purposes and are then routed to VidCoordXfer to be used for brush settings as well. Inputs: Camera data, switch values. Outputs: Video Frame (to DDR3 memory), Paint Wand coordinates (from Track Wand, output to VidCoordXfer), and switch values (to VidCoordXfer). 9. HDMI Out (Hardware, provided [8] and modified) HDMI Out serves as a wrapper for Video Out and Frame Merge. Inputs: Memory location of Video Frame and Draw Frame. Outputs: HDMI data sent to a monitor. 7

12 Chapter 2 Outcome 2.1 Summary Overall, we were able to achieve what we planned to accomplish with this project. The final result is comparable to our initial design goals. The following are the requirements and the matching functionality within our system. Table 1 - Acceptance Criteria for Project and Implementation in Final Project Acceptance Criteria Implemented Status Tracking of Paint Wand Accurate tracking of Paint Wand given the following conditions: Slow paint wand movement Frame with no bright white colours Completed Fast Merging of Draw Frame and Video Frame Quick changing of brush settings Real-time video (30 frames/sec) Frame Merge IP merges the two frames at same speed as the output. An artifact of the frame merge is introduced where thin lines are seen above and below the overlaid objects. Brush settings take into effect immediately after selection. All the following modes are supported: Erasing Mode Brush Width Colour Settings Clear All Implemented hardware blocks to ensure video processing from camera to HDMI monitor was transferred at least 30 frames/second. Completed Completed Completed There are many constraints introduced which is required for the system to behave as expected. Despite the new conditions, the final system achieves the requirements as originally planned summarized in Table 1, thus the basic proof-of-design has been fulfilled. 8

13 2.2 Area of Improvements There are two main areas that should be improved to strengthen the usability of this design. The first is that the track wand algorithm, although hardware accelerated from our originally proposed software tracking algorithm, is still too slow to draw quickly. The user is required to move the light slowly through the air to draw. We spent a significant amount of time porting our software tracking algorithm to hardware and did not have time to optimize to make it faster for our demonstration. The second issue is the the video stream flips the input from the camera. The original intent was that the user would face both the camera and output monitor while using the design and that their image would look as if they were looking into a mirror. However, the camera flips this input so the output video stream is flipped in the vertical axis compared to the desired functionality. This means that the user must draw everything backwards in the air, which is a very challenging task. 2.3 Lessons for Next Time If we were to start from the beginning, the first change to our actions would be that we would not have invested so much in the software at the beginning. We relied too heavily on the software version of the Track Wand IP and writing the hardware version took up a lot of our time. We also spent time at the beginning implementing software features such as drawing in colours. These efforts should also have been put towards fixing hardware modules at the beginning. Although it was necessary to develop a software version of Track Wand to test the algorithm, we should have started on the hardware version much earlier than we did. This would have also freed up our time enough to implement other hardware features such as flipping the output frame so it mirrors the user s movements. The reason we had a late start to the hardware Track Wand is that we had planned for it to be in software, and only in hardware if it was not fast enough. What we should have planned is to make an initial software version, but always assuming that it would have to be ported to hardware. As a result of our attitude towards the block, we tried other software modifications such as optimizing the software tracking algorithm and trying to draw lines between tracked locations. This effort was in effect wasted and should have been put towards porting it to hardware earlier on. 9

14 2.4 Future Work If someone were to take over this project, there are two recommended next steps. 1. Accelerating the hardware Track Wand algorithm so that the IP can track fast movement seamlessly. 2. Work on flipping the video frame. Only after these hardware advances have been made, should they begin adding software features such as menus, paint-by-numbers games, and other features we had originally planned. 10

15 Chapter 3 Project Schedule Table 2 describes the project milestones week-by-week which were proposed and actually executed throughout the course of the semester. Table 2 - Proposed and Actual Project Schedule Week Proposed Deliverable Actual Deliverable 1 Kei-Ming: Finish software Track Wand IP with static inputs. Kei-Ming: Developed Track Wand software algorithm. Tested with an ideal static frame to verify tracking thresholds and coordinates calculation in software. Performance problem of initial algorithm noted. Wahid: Development hardware core for Frame Merge IP for use with static frames. Wahid: Initial development of hardware core for Frame Merge IP. Bugs encountered with corrupted video output. Opal: Initial development software Update Draw Frame and Update Brush Settings IPs independently with static inputs. 2 Kei-Ming: Verify functionality of preexisting Video-In IP. Opal: Software IPs Update Draw Frame, Update Brush Settings completed with static inputs for Update Draw Frame and switch inputs for Update Brush Settings. Kei-Ming: Verified functionality of Video-In IP and integrated with basic Video-Out. Tested coarser tracking algorithm, accuracy issues noted. Wahid: Develop AXI bus interface Wahid: Completed hardware Frame 11

16 control for Frame Merge IP. Merge core. Can merge two dynamic frames animated by MicroBlaze. Some horizontal corrupted lines, to debug. Opal: Complete software Update Draw Frame and Update Brush Settings IPs independently with static inputs. 3 Kei-Ming: Continue development in Video-In IP and test functionality. Opal: Integrated software IPs Update Draw Frame and Update Brush Settings with Track Wand and Frame Merge. Can now overlay a draw frame constructed from brush co-ordinates inputted from the keyboard. Kei-Ming: Integrated Video-In, Video- Out, and hardware Frame-Merge block. Tested Software Track Wand IP with input video frames (Still using software tracking; algorithm is slow). Wahid: Develop software control interface of Frame Merge IP. Wahid: Debugged Frame Merge IP to try to remove lines. Some corrupted lines at frame edges. Ran several simulations and tests, but bug not resolved. However issue was not detrimental to overall frame merging. Opal: Integrate software IPs Track Wand, Update Draw Frame, Update Brush Settings, and the software version of the Frame Merge IP using static inputs for all IPs. Note Update Brush Settings should use dynamic inputs. Opal: Made attempts to hide latency of Track Wand software IP by creating an efficient line drawing algorithm which drew lines between two tracked points. Although algorithm was successful, this did not hide latency as tracking was still slow and leading to inaccurate, choppy line 12

17 drawing. Frame Merge line bug also made some lines not visible once merged with the video stream. 4 Kei-Ming: Finalize software interface for Video-In IP Wahid: Test Frame Merge IP with software control interface. Opal: Integrate software with Video- Out IP. 5 Team: Integrate Frame Merge IP for use with dynamic frames (e.g. input video frames). Integrate software IPs Track Wand and Update Draw Frame with dynamic frames (e.g. input video frames) 6 Team: Integrate final system with dynamically changing Draw Frame (e.g. tracks user input) Team: Begun working on hardware Track Wand IP by reading in frame data as the Video-In IP wrote it to memory. Figured out how to keep track of the current location being written as well as how the pixel data was written to memory. Created a shift-register to store 10 pixels of data at a time as they were being written to memory. Team: Further development of the hardware Track Wand IP. Created an intermediate IP to hold slave registers so tracked coordinates can be read by the MicroBlaze. Simulated functionality of tracking, however, still not tracking correctly. Kei-Ming & Wahid: Implemented higher resolution XY coordinates Counter. Made several attempts to fix Track Wand hardware IP by testing for synchronization issues between XY counter and Track Wand IP. Fixed bugs related to tracking the wrong colour. Opal: Rewrote Update Brush Settings so switch values were also read from slave 13

18 registers by the MicroBlaze. This was done because switches were used by Video-In and could not also be hooked up to a GPIO. We did not want to disable the switches in Video-In for debugging. 7 Team: Everything working as specified in this document. Team: Discovered software hack to solve final bug of hardware Track Wand. The bug was that the wand was tracked at an x coordinate that varied in accuracy based on a linear function of the y coordinate. Almost everything works as specified. In summary, the key difference between these schedules is that we underestimated the difficulty of hardware tasks and overestimated the difficulty of software tasks. Software tasks were completed very early with hardware taking up most of our time. Hardware design of Track Wand was delayed until later in the term when we were very busy with all our courses. This caused us to need three weeks to build the hardware Track Wand IP, which we struggled with for too long to accelerate using only software. 14

19 Chapter 4 Description of Blocks This section describes the IP blocks and software algorithms used in this project, their detailed functionality, and integration with the rest of the system. Figure 2 highlights the IP blocks used and bus connections at a high level. The IP blocks are discussed in more detail below. Figure 2 XPS System Assembly View of project. 4.1 Significant IP Cores The key IP cores unique to functionality of this project were vmodcam (with wand tracking), vidcoord_xfer, and hdmi_out (with frame merging) as discussed in this section. vmodcam v1.00.a This block was used as the Video-In core in the system architecture. In addition, to minimize memory bus usage, this core was also responsible for tracking the location of the 15

20 Paint Wand. The Video-In IP core was taken from another group responsible for working on the Video-In IP for the IP project [7]. The provided Video-In block has two cameras as input and outputs to DDR memory using the AXI bus interface. It is configured to work with RGB 565 or 16 bit wide pixels. The provided IP block works by writing each camera s data stream to their individual FIFO and bursting that onto the DDR when one of them reaches a specific threshold. In particular, it bursts out 32 pixels using the 32-bit AXI bus by sending two 16-bit pixels each transfer. Two key changes were made to the vmodcam IP core, as shown in Figure 3: A Track Wand IP block to determine if the window is considered matching An XY coordinate counter to determine the current XY location of the window in relation to the frame. This implementation is useful because it allows Track Wand IP to skip accessing the memory to read from the Video Frame. By intercepting the video stream, it reduces memory accesses. The following diagram shows the final architecture of the Video In IP with the additions: Figure 3 The vmodcam IP core with modifications (red) for XY coordinate and Track Wand. 16

21 The XY Coordinate Counter increments with the control signals from the camera control. During normal Video-In access, whenever a pixel is streamed into the FIFO, it causes certain control signals to be raised. Using these control signals, and the known reset conditions, it is possible to determine the XY location of the current pixel. The Track Wand block intercepts the video stream latches the XY coordinates of the first window which matches the thresholds. The architecture of the Track Wand IP is shown in Figure 4. Figure 4 Track Wand IP logic. The pixel stream is stored in a 10 pixel wide shift register each pixel is shifted in from the video stream when it is being sent to memory. From this, the Track Wand IP will process each pixel in parallel to determine if it matches the thresholds for each pixel. This core is called the Per Pixel Calculation Core. If each pixel matches a bright white colour, it is considered a matched pixel. From that, the number of pixels in the window that match the criteria will be summed up. This is then compared to another threshold value which will determine if the number of matching pixels is higher than required. This effectively averages the per pixel colour thresholds across all the pixels across the window and will only trigger when most of the pixels match the criteria. vidcoord_xfer v1.00.a This block was created in this project to transfer coordinates from the Track Wand logic in vmodcam IP to the MicroBlaze. This was necessary due to the unique design 17

22 of the existing vmodcam IP core. The IP core provided had one interface to an AXI bus, and could act as either a master or a slave on that bus. However, the master and slave states were mutually exclusive; a mux switched between master-style data and slave-style data on the IP to AXI data bus. Since vmodcam was constantly a master to the memory controller and writing incoming video data to memory, it could never switch into its slave role for reading by the MicroBlaze. To work around this, the new IP core vidcoord_xfer was created. This core was dedicated as a slave-only IP to the MicroBlaze through an AXI slave bus. As shown in Figure 5, the vidcoord_xfer core received directly from the vmodcam IP x-coordinate, y-coordinate, and an enable signal indicating a paint wand was found at that location. The location of this wand is saved in slave registers within the vidcoord_xfer IP, from which the MicroBlaze can read for further software processing. Figure 5 vidcoord_xfer IP core. hdmi_out v1.00.a This block was used for outputting the video frames to an HDMI screen. This block was reused from a previous ECE532 project [8] which was made available as an IP project early in the course. The function of this block was to read memory contents at a pre-determined location in memory. This data was read over an AXI memory-mapped bus. The data was taken as pixels in a frame, and the pcore stored this data in a line buffer, a FIFO of depth bit data words. The core then synchronized this data with transfer to an HDMI output 18

23 block for display on a monitor. Figure 6 shows the HDMI_OUT core that was provided at the start of the project. Figure 6 The original HDMI_OUT IP core provided at the start of project [8]. The main change that was made to this block was the addition of the Frame Merge logic, as shown in Figure 7. This new frame merging logic was integrated into the existing HDMI_OUT core. As part of this project, two changes were made: Addition of FIFO selection logic for targeting writes from the AXI bus. This allowed the core to alternate between reading single lines of the Video Frame and Draw Frame. Addition of frame merging logic, which determined if a given pixel of Draw Frame should replace that of Video Frame (the merging operation). The output of the merging operation, done in real-time with the streaming video data, was then sent to the HDMI output logic for display on a screen. 19

24 Figure 7 Modifications (red) made to HDMI_OUT IP core to integrate frame merging. 4.2 Other IP Cores axi_interconnect v.1.06.a The AXI memory-mapped interconnect in crossbar or shared-access architectures for connections between AXI masters and slaves [9]. The interconnect was clocked at 100 MHz. One instance of this interconnect (axi4_0) was used to interface multiple IP blocks with the memory controller (MCB_DDR2) in a crossbar architecture, while another instance (axi4lite_0) was in a shared-access architecture for the MicroBlaze to communicate with its slave IP blocks. lmb_v10 v.2.00.b Local memory bus (instantiated for data memory and instruction memory) for MicroBlaze [10]. microblaze v8.40.a MicroBlaze processor. Debugging capabilities and instruction/data caches (each 4 KB) were made available [11]. 20

25 bram_block v.1.00.a On-chip memory of size 64 kb for the MicroBlaze. lmb_bram_if_cntlr v.3.10.a Interface controller for local memory bus to BRAM for MicroBlaze. axi_s6_ddrx v.1.06.a Memory controller for external DDR2 memory. The memory controller block (MCB) was built with this top-level AXI to MCB bridge to connect to AXI busses [12]. The DDR2 memory ran at 333 MHz. One 32-bit wide bi-directional port on the MCB was used, which connected to the AXI memory-mapped bus for control by various video IP blocks. The address space was 128 MB. mdm v2.10.a Debug module for MicroBlaze. axi_uartlite v.1.02.a UART interface from AXI to computer terminal for printing debug messages. Baud Rate of 9600 and false parity were used. clock_generator v.4.03.a Generates system clocks except for HDMI output video clocks. 100 MHz external clock is brought in through a GCLK network as clkin. This IP generates 6 clocks: 2 clocks at 600 MHz at 0 and 180 phase shifts for the DDR2 memory controller; 2 clocks of 24 MHz fat 0 and 180 phase shifts for the vmodcam video input controller; a 25 MHz clock for the pll_module dedicated to video output clock generat; and a 100 MHz system clock for all other internal blocks. 21

26 pll_module v.2.00.a Generates the video output clocks. A 25 MHz clock is input from clock_generator. A 250 MHz, 50 MHz, and 25 MHz clocks are generated for internal use in the HDMI video synchronization logic. 22

27 Chapter 5 Description of Design Tree This section highlights the design tree of our project and describes key files and directories. Video_Painting - top level directory README system.xps - XPS project data - contains System Constraints File system.ucf doc - contains documentation for project Demo Presentation Final Report pcores - hardware IP blocks used in project hdmi_out_v1_00_a vidcoord_xfer_v1_00_a vmodcam_v1_00_a original_pcores - original pcores for hdmi_out and vmodcam workspace track_wand_0 src - Contains software source code. main.c - main program to run Update Draw Frame based on tracked values and switch inputs update_brush_settings.c, update_brush_setting.h - Update Brush Settings software IP update_draw_frame.c, update_draw_frame.h - Update Draw Frame software IP (Ignore other files from previous iterations) 23

28 Chapter 6 Conclusion For this project, we set out to create an interactive video painting using an embedded system on a Xilinx Spartan-6 FPGA. We wanted to show that real-time video HCI was possible using such a system. Our task was to design, implement, and demonstrate this system within the course of the semester. We were able to meet our initial project goals. We were able stream video input from a camera, process it through an FPGA, and output the video to a monitor. We were able to track the location of a paintbrush (a light source) in the input video and store its coordinates. We were then able to use these coordinates to create a frame that recorded and drew markers based on the tracked location. We were able to merge this Draw Frame with the video going out to the monitor: the end result was real-time video output overlaid with painting done by the user with the light source. We were also able to implement several extra features, such as different colours, erasers, screen clearing, and brush widths, which were controlled by the switches on the Atlys board. 6.1 Tips and Tricks We learned some valuable lessons in using the Xilinx tools and digital design. 1) When simulating blocks that have an AXI interface, it is often difficult and can complicate simulations by having all the AXI signals toggling. The AXI signals can be fully simulated (an AXI Bus Functional Model, or BFM, provided as an encrypted simulation block by Xilinx). However, as a very first step, sometimes it is easier to isolate the IP under test in a simulator (e.g. Modelsim), and force toggle (e.g. a DO script) the relevant AXI signals (read, write, data, clk) to see if your IP is storing, reading, and writing data correctly and at the right times. [13] shows the correct timing for important AXI signals for different read and write modes. This allows fast compile and testing of your initial Verilog code. A BFM can then be added for system-level simulation testing. 24

29 2) Always clean your XPS project before recompiling, when you make IP changes. This is particularly true for VHDL, where we noticed XPS did not detect small changes to our VHDL source code and so did not recompile. Cleaning the project from the XPS menu solved this problem. 6.2 Video Demo Here is the link to a video demonstration of our project: 25

30 References [1] Z. Zeng, Microsoft Kinect Sensor and Its Effect, IEEE Multimedia, vol. 19, no. 2, pp. 4-10, [2] M. Campbell, Kinect imaging lets surgeons keep their focus, New Scientist, vol. 214, no. 2865, p. 19, [3] H. J. Hsu, The Potential of Kinect in Education, International Journal of Information and Education Technology, vol. 1, no. 5, pp , [4] F. Tavakolizadeh. (2014, Jan. 10). cvpaint - Simple drawing using camera [Online]. Available: [5] M. Lech, B. Kostek, A. Czyzewski. Virtual Whiteboard: A gesture-controlled pen-free tool emulating school whiteboard, Journal of Intelligent Decision Technologies, vol. 6, no. 2, pp , [6] Digilent Inc. (2014, Apr. 9). Atlys TM Board Reference Manual [Online]. Available: [7] ECE Group 3 IP Project. VmodCAM_Team3.rar. Available: Piazza.com course website, post [8] ECE Group IP Project. hdmi_out. Available: [9] Xilinx. (2014, Apr. 9). AXI Reference Guide [Online]. Available: 26

31 [10] Xilinx. (2014, Apr. 9). Local Memory Bus (LMB) V10 (v.1.00a) [Online]. Available: [11] Xilinx. (2014, Apr. 9). MicroBlaze Processor Reference Guide [Online]. Available: [12] Xilinx. (2014, Apr. 9). Spartan-6 FPGA Memory Interface Solutions [Online]. Available: [13] Xilinx. (2014, Apr. 9). LogiCore IP AXI Master Burst [Online]. Available: ds844_axi_master_burst.pdf 27

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

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

ECE 532 Group Report: Virtual Boxing Game

ECE 532 Group Report: Virtual Boxing Game ECE 532 Group Report: Virtual Boxing Game Group 18 Professor: Paul Chow TA: Vincent Mirian Ryan Fernandes Martin Kovac Zhan Jun Liau Table of Contents 1.0 Overview... 3 1.1 Motivation... 3 1.2 Goals and

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components VGA Controller Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, 2012 Fig. 1. VGA Controller Components 1 VGA Controller Leif Andersen, Daniel Blakemore, Jon Parker University

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

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

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC reset underflow Supplied as human readable VHDL (or Verilog) source code Simple FIFO input interface

More information

AbhijeetKhandale. H R Bhagyalakshmi

AbhijeetKhandale. H R Bhagyalakshmi Sobel Edge Detection Using FPGA AbhijeetKhandale M.Tech Student Dept. of ECE BMS College of Engineering, Bangalore INDIA abhijeet.khandale@gmail.com H R Bhagyalakshmi Associate professor Dept. of ECE BMS

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

EEM Digital Systems II

EEM Digital Systems II ANADOLU UNIVERSITY DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING EEM 334 - Digital Systems II LAB 3 FPGA HARDWARE IMPLEMENTATION Purpose In the first experiment, four bit adder design was prepared

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

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

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

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

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

An FPGA Platform for Demonstrating Embedded Vision Systems. Ariana Eisenstein

An FPGA Platform for Demonstrating Embedded Vision Systems. Ariana Eisenstein An FPGA Platform for Demonstrating Embedded Vision Systems by Ariana Eisenstein B.S., Massachusetts Institute of Technology (2015) Submitted to the Department of Electrical Engineering and Computer Science

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

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

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

Traffic Light Controller

Traffic Light Controller Traffic Light Controller Four Way Intersection Traffic Light System Fall-2017 James Todd, Thierno Barry, Andrew Tamer, Gurashish Grewal Electrical and Computer Engineering Department School of Engineering

More information

Radar Signal Processing Final Report Spring Semester 2017

Radar Signal Processing Final Report Spring Semester 2017 Radar Signal Processing Final Report Spring Semester 2017 Full report report by Brian Larson Other team members, Grad Students: Mohit Kumar, Shashank Joshil Department of Electrical and Computer Engineering

More information

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts) Nate Pihlstrom, npihlstr@uccs.edu Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts) Objective The objective of lab assignments 5 through 9 are to systematically design and implement

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

CSEE4840: Embedded Systems Design Project Report Stereo Depth Extraction (SDE)

CSEE4840: Embedded Systems Design Project Report Stereo Depth Extraction (SDE) CSEE4840: Embedded Systems Design Project Report Stereo Depth Extraction (SDE) Department of Electrical Engineering School of Engineering and Applied Science Columbia University Team Members: Ang Cui (ac2024)

More information

Debugging Digital Cameras: Detecting Redundant Pixels

Debugging Digital Cameras: Detecting Redundant Pixels Debugging Digital Cameras: Detecting Redundant Pixels Application Note Introduction Pixel problems and bit problems associated with their hardware and firmware designs can seriously challenge the designers

More information

MIPI D-PHY Bandwidth Matrix Table User Guide. UG110 Version 1.0, June 2015

MIPI D-PHY Bandwidth Matrix Table User Guide. UG110 Version 1.0, June 2015 UG110 Version 1.0, June 2015 Introduction MIPI D-PHY Bandwidth Matrix Table User Guide As we move from the world of standard-definition to the high-definition and ultra-high-definition, the common parallel

More information

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General... EECS150 - Digital Design Lecture 18 - Circuit Timing (2) March 17, 2010 John Wawrzynek Spring 2010 EECS150 - Lec18-timing(2) Page 1 In General... For correct operation: T τ clk Q + τ CL + τ setup for all

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

Reducing DDR Latency for Embedded Image Steganography

Reducing DDR Latency for Embedded Image Steganography Reducing DDR Latency for Embedded Image Steganography J Haralambides and L Bijaminas Department of Math and Computer Science, Barry University, Miami Shores, FL, USA Abstract - Image steganography is the

More information

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller XAPP22 (v.) January, 2 R Application Note: Virtex Series, Virtex-II Series and Spartan-II family LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller Summary Linear Feedback

More information

DE2-115/FGPA README. 1. Running the DE2-115 for basic operation. 2. The code/project files. Project Files

DE2-115/FGPA README. 1. Running the DE2-115 for basic operation. 2. The code/project files. Project Files DE2-115/FGPA README For questions email: jeff.nicholls.63@gmail.com (do not hesitate!) This document serves the purpose of providing additional information to anyone interested in operating the DE2-115

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

Group 1. C.J. Silver Geoff Jean Will Petty Cody Baxley

Group 1. C.J. Silver Geoff Jean Will Petty Cody Baxley Group 1 C.J. Silver Geoff Jean Will Petty Cody Baxley Vision Enhancement System 3 cameras Visible, IR, UV Image change functions Shift, Drunken Vision, Photo-negative, Spectrum Shift Function control via

More information

Achieving Timing Closure in ALTERA FPGAs

Achieving Timing Closure in ALTERA FPGAs Achieving Timing Closure in ALTERA FPGAs Course Description This course provides all necessary theoretical and practical know-how to write system timing constraints for variety designs in ALTERA FPGAs.

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

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

Spartan-II Development System

Spartan-II Development System 2002-May-4 Introduction Dünner Kirchweg 77 32257 Bünde Germany www.trenz-electronic.de The Spartan-II Development System is designed to provide a simple yet powerful platform for FPGA development, which

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

Lattice Embedded Vision Development Kit User Guide

Lattice Embedded Vision Development Kit User Guide FPGA-UG-02015 Version 1.1 January 2018 Contents Acronyms in This Document... 3 1. Introduction... 4 2. Functional Description... 5 CrossLink... 5 ECP5... 6 SiI1136... 6 3. Demo Requirements... 7 CrossLink

More information

Final Project [Tic-Tac-Toe]

Final Project [Tic-Tac-Toe] Final Project [Tic-Tac-Toe] (In 2 dimension) ECE 249 Session: 3-6pm TA: Jill Cannon Joseph S Kim Ghazy Mahub Introduction As a final project for ECE 249, we will develop a multi-player tic-tac-toe game

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

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

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

Laboratory Exercise 7

Laboratory Exercise 7 Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied

More information

L11/12: Reconfigurable Logic Architectures

L11/12: Reconfigurable Logic Architectures L11/12: Reconfigurable Logic Architectures Acknowledgements: Materials in this lecture are courtesy of the following people and used with permission. - Randy H. Katz (University of California, Berkeley,

More information

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0 General Description Applications Features The OL_H264e core is a hardware implementation of the H.264 baseline video compression algorithm. The core

More information

Viterbi Decoder User Guide

Viterbi Decoder User Guide V 1.0.0, Jan. 16, 2012 Convolutional codes are widely adopted in wireless communication systems for forward error correction. Creonic offers you an open source Viterbi decoder with AXI4-Stream interface,

More information

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System R. NARESH M. Tech Scholar, Dept. of ECE R. SHIVAJI Assistant Professor, Dept. of ECE PRAKASH J. PATIL Head of Dept.ECE,

More information

DEDICATED TO EMBEDDED SOLUTIONS

DEDICATED TO EMBEDDED SOLUTIONS DEDICATED TO EMBEDDED SOLUTIONS DESIGN SAFE FPGA INTERNAL CLOCK DOMAIN CROSSINGS ESPEN TALLAKSEN DATA RESPONS SCOPE Clock domain crossings (CDC) is probably the worst source for serious FPGA-bugs that

More information

Sapera LT 8.0 Acquisition Parameters Reference Manual

Sapera LT 8.0 Acquisition Parameters Reference Manual Sapera LT 8.0 Acquisition Parameters Reference Manual sensors cameras frame grabbers processors software vision solutions P/N: OC-SAPM-APR00 www.teledynedalsa.com NOTICE 2015 Teledyne DALSA, Inc. All rights

More information

Frame Processing Time Deviations in Video Processors

Frame Processing Time Deviations in Video Processors Tensilica White Paper Frame Processing Time Deviations in Video Processors May, 2008 1 Executive Summary Chips are increasingly made with processor designs licensed as semiconductor IP (intellectual property).

More information

L12: Reconfigurable Logic Architectures

L12: Reconfigurable Logic Architectures L12: Reconfigurable Logic Architectures Acknowledgements: Materials in this lecture are courtesy of the following sources and are used with permission. Frank Honore Prof. Randy Katz (Unified Microelectronics

More information

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath Objectives Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath In the previous chapters we have studied how to develop a specification from a given application, and

More information

Laser Conductor. James Noraky and Scott Skirlo. Introduction

Laser Conductor. James Noraky and Scott Skirlo. Introduction Laser Conductor James Noraky and Scott Skirlo Introduction After a long week of research, most MIT graduate students like to unwind by playing video games. To feel less guilty about being sedentary all

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

[Krishna*, 4.(12): December, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

[Krishna*, 4.(12): December, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785 IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY DESIGN AND IMPLEMENTATION OF BIST TECHNIQUE IN UART SERIAL COMMUNICATION M.Hari Krishna*, P.Pavan Kumar * Electronics and Communication

More information

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray SLAC-TN-10-007 Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department Darius Gray Office of Science, Science Undergraduate Laboratory Internship Program Texas A&M University,

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

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

The World Leader in High Performance Signal Processing Solutions. Section 15. Parallel Peripheral Interface (PPI)

The World Leader in High Performance Signal Processing Solutions. Section 15. Parallel Peripheral Interface (PPI) The World Leader in High Performance Signal Processing Solutions Section 5 Parallel Peripheral Interface (PPI) L Core Timer 64 Performance Core Monitor Processor ADSP-BF533 Block Diagram Instruction Memory

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

A video signal processor for motioncompensated field-rate upconversion in consumer television

A video signal processor for motioncompensated field-rate upconversion in consumer television A video signal processor for motioncompensated field-rate upconversion in consumer television B. De Loore, P. Lippens, P. Eeckhout, H. Huijgen, A. Löning, B. McSweeney, M. Verstraelen, B. Pham, G. de Haan,

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

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0]

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0] Rev 13 Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA and ASIC Supplied as human readable VHDL (or Verilog) source code reset deint_mode 24-bit RGB video support

More information

Single Channel LVDS Tx

Single Channel LVDS Tx April 2013 Introduction Reference esign R1162 Low Voltage ifferential Signaling (LVS) is an electrical signaling system that can run at very high speeds over inexpensive twisted-pair copper cables. It

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

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

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

Hardware Platform Design for Real-Time Video Applications

Hardware Platform Design for Real-Time Video Applications Hardware Platform Design for Real-Time Video pplications. Ben titallah*, P. Kadionik**, F. Ghozzi*, P.uel**, N. Masmoudi*, P.Marchegay** *Laboratoire d Electronique et des Technologies de l Information

More information

Automatic Projector Tilt Compensation System

Automatic Projector Tilt Compensation System Automatic Projector Tilt Compensation System Ganesh Ajjanagadde James Thomas Shantanu Jain October 30, 2014 1 Introduction Due to the advances in semiconductor technology, today s display projectors can

More information

FSM Cookbook. 1. Introduction. 2. What Functional Information Must be Modeled

FSM Cookbook. 1. Introduction. 2. What Functional Information Must be Modeled FSM Cookbook 1. Introduction Tau models describe the timing and functional information of component interfaces. Timing information specifies the delay in placing values on output signals and the timing

More information

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique Dr. Dhafir A. Alneema (1) Yahya Taher Qassim (2) Lecturer Assistant Lecturer Computer Engineering Dept.

More information

Section 14 Parallel Peripheral Interface (PPI)

Section 14 Parallel Peripheral Interface (PPI) Section 14 Parallel Peripheral Interface (PPI) 14-1 a ADSP-BF533 Block Diagram Core Timer 64 L1 Instruction Memory Performance Monitor JTAG/ Debug Core Processor LD 32 LD1 32 L1 Data Memory SD32 DMA Mastered

More information

EE 367 Lab Part 1: Sequential Logic

EE 367 Lab Part 1: Sequential Logic EE367: Introduction to Microprocessors Section 1.0 EE 367 Lab Part 1: Sequential Logic Contents 1 Preface 1 1.1 Things you need to do before arriving in the Laboratory............... 2 1.2 Summary of material

More information

Lab 3: VGA Bouncing Ball I

Lab 3: VGA Bouncing Ball I CpE 487 Digital Design Lab Lab 3: VGA Bouncing Ball I 1. Introduction In this lab, we will program the FPGA on the Nexys2 board to display a bouncing ball on a 640 x 480 VGA monitor connected to the VGA

More information

Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow

Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow Application Note: Artix-7 Family XAPP1097 (v1.0.1) November 10, 2015 Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow Summary The Society of Motion Picture and Television

More information

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7 California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 322: Digital Design with VHDL Laboratory 7 Rational: The purpose of this lab is to become familiar in using

More information

A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER

A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER University of Kentucky UKnowledge University of Kentucky Master's Theses Graduate School 2007 A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER Subhasri Krishnan University of Kentucky, skris0@engr.uky.edu

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

Digital Blocks Semiconductor IP

Digital Blocks Semiconductor IP Digital Blocks Semiconductor IP General Description The Digital Blocks IP Core decodes an ITU-R BT.656 digital video uncompressed NTSC 720x486 (525/60 Video System) and PAL 720x576 (625/50 Video System)

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

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