Video Painting Group Report
|
|
- Prosper Lawson
- 5 years ago
- Views:
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 Group #4 Prof: Chow, Paul Student 1: Robert An Student 2: Kai Chun Chou Student 3: Mark Sikora April 10 th, 2015 Final
More informationUNIVERSITY 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 informationECE 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 informationDesign 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 informationDesign 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 informationECE 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 informationVID_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 informationMassachusetts 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 informationLogiCORE 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 informationECE 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 informationMassachusetts 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 informationDesign 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 informationDigilent 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 informationBlock 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 informationSolutions 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 informationLab 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 informationLogiCORE 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 informationPivoting 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 informationFPGA 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 informationLogiCORE 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 informationLaboratory 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 informationVGA 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 informationDesign 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 informationFPGA 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 informationBlock 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 informationAbhijeetKhandale. 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 informationVHDL 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 informationEEM 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 informationLogic 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 informationTutorial 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 informationLogic 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 informationEDA385 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 informationLaboratory 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 informationAn 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 informationFingerprint 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 informationLast 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 informationT1 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 informationTraffic 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 informationRadar 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 informationLab #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 informationFPGA 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 informationCSEE4840: 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 informationDebugging 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 informationMIPI 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 informationEECS150 - 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 informationVideo 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 informationReducing 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 informationLFSRs 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 informationDE2-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 informationEE178 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 informationGroup 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 informationAchieving 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 informationCertus 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 informationLogic 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 informationSpartan-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 informationLong 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 informationLattice 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 informationFinal 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 informationSPI 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 informationEXOSTIV 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 informationEECS 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 informationLaboratory 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 informationL11/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 informationOL_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 informationViterbi 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 informationAuthentic 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 informationDEDICATED 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 informationSapera 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 informationFrame 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 informationL12: 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 informationObjectives. 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 informationLaser 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 informationECE532 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
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 informationField 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 informationDT3162. 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 informationWhy 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 informationThe 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 informationAltera 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 informationA 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 informationSundance 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 informationBlock 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 informationSingle 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 informationLAX_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 informationmicroenable 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 informationEE178 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 informationHardware 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 informationAutomatic 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 informationFSM 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 informationFPGA 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 informationSection 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 informationEE 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 informationLab 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 informationImplementing 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 informationCalifornia 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 informationA 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 informationFigure 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 informationDigital 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 informationUsing 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 informationTV 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