Histogram equalization of images

Size: px
Start display at page:

Download "Histogram equalization of images"

Transcription

1 CSL316 Digital Hardware Design Laboratory Project Report Indian Institute of Technology, Delhi Histogram equalization of images Pawan Jain (2003CS10177) Atul Bansal (2003CS10157) Cycle 1 Teaching Assistant: Mr. Anant Vishnoi Instructor: Prof. M. Balakrishnan 1

2 Contents TOPIC PAGE NO. 1. Specifications 3 2. High level description 4 3. The Algorithm 5 4. Overall Block Diagram 7 5. Circuit Description The Input-Output module The Datapart Histogram Generator Cumulative Histogram Generator Computation Part Transformation of input image The Control Part Simulation UCF File Implementation Results Conclusion 39 2

3 1. Specifications: 1.1 Input: The input is a monochrome uncompressed bitmap image file. Monochrome image consists of a pixel matrix. Each of the pixels is assumed to be encoded in 8-bits (Gray scale). This is ensured by the uncompressed nature of the input image file. There are two ways of transferring the image to the FPGA. One is to use the INCODE tool for transferring the image. But this will limit the maximum size of the image file to 256 pixels. Second option is to use the serial COM port to transfer the image s pixels one bit at a time. This will require programming the serial COM port in Visual C++ (Windows) or C++ (Linux). 1.2 Output: The output consists of an image whose pixel matrix is the result of normalization of the pixel matrix of the input image using the histogram equalization algorithm. The format of the output image will be same as that of the input image. 1.3 User interface: The user will input a text file containing the input image (max 255 pixels) pixel by pixel in a pre-specified format. Our module processes it after which the user can upload a file from the fpga board which will contain the output image pixel by pixel in the same format. 3

4 2. High level description: This circuit basically performs the histogram equalization to improve the quality of the input image. The computation basically proceeds in the following steps: Image download : In this step the image is downloaded and stored in a ram on the fpga. 1. Computation of Histogram: In this step the histogram of the image is constructed, the value of the histogram at any point I is equal to the no. of pixels in the image whose gray scale is equal to I. 2. Computation of Cumulative histogram: In this step the cumulative histogram is computed. The value of the cumulative histogram is equal to the sum of all the values of the histogram up to that point. 3. Computation of Transform function:- The transform function is computed from the cumulative histogram and a calculator module to get the transform function. The transform function is stored in a ram. If the value of the ram at I th address is equal to j then each pixel in the image is whose value is I has to be changed to j 4. Application of the transform function to obtain the new image:- In this step the output image is calculated in a ram after applying the transform function to the input image. Here the ram storing the output image is same as ram storing the cumulative histogram. This is done to save the no. of clb s required in the fpga. 5. Uploading the image to the PC using microcontroller :- In this step the image is uploaded to the PC from the ram using the read/write module. 4

5 3. The UNDERLYING THEORY: The ALGORITHM (Source: 1. For an N x M image of G gray-levels (often 256), create two arrays H and T of length G initialized with 0 values. 2. Form the image histogram: scan every pixel and increment the relevant number of H If pixel X has intensity p, perform H [ p] = H[ p] Form the cumulative image histogram H c. We may use the same array H to store the result. H [ 0] = H[0] H [ p] = H[ p 1] + H[ p] (1) 5

6 4. Set for p = 1,..., G-1. G 1 T[ p] = H[ p] MN Note the new gray-scale is assumed the same as the input image. i.e. q k = G-1 and q 0 = 0. (2) 5. Rescan the image and write an output image with gray-levels q, setting q = T[ p] (3) 6

7 4. The OVERALL BLOCK DIAGRAM Figure 1: The block diagram 7

8 5. CIRCUIT DESCRIPTION The design is completely modular. The various modules used are described with the input/output signals and functionality below: 5.1 The INPUT-OUTPUT module On the outline, the module looks like what is shown below. Figure 2: The Input-Output Module Inputs: WR_L, RST, RD_L, MY, HISGEN, TR[7:0], PICDATAOUT[7:0], K[7:0] Outputs: RDADDR[7:0], PICDATAOUT[7:0], CNTROUT[7:0] 8

9 Its internals are shown below: The Main Computation Unit: Figure 3: Internals of the Input-Output Module 9

10 5.1.1 Functionality This module performs two functions: a Image download This module takes its inputs as defined above from the microcontroller. The user can download the image file in the prescribed format from the PC to a RAM in the FPGA through the microcontroller using this module. The input data is stored in the PICRAM inside this module starting from address zero. Thus the size of the image file is limited to 256 pixels as the maximum depth allowed for a RAM in the fpga used is 256. The download is performed by the user through the INCODE program. If the user wants to perform a computation again then he can reset this module using the RST signal given as the input. This signal has to be kept low while the data is being downloaded b Image upload The command for image upload is given by the user in using INCODE. This module writes the data to be uploaded on the bidirectional bus named AD. The data is put on the bus AD after each positive edge of the RD_L signal coming from the microcontroller. 10

11 5.1.2 Signals description 5.1.2a Inputs (a) WR_L This signal comes from the microcontroller, when it goes from zero to one the input is latched in the ram and he counter keeping the coutnt of the no, of data samples already arrived. (b) RD_L This signal also comes from the microcontroller. When this input goes from 0 to 1 The data is put on the bidirectional bus and and the counter keeping the count of the no. of the read requests is incremented. (c) RST This signal resets the counters so that the module may be reused for downloading/uploading a new image file. (d) PICDATAIN This module provides the input which is to be written in the ram when the acive edge of the WR_L comes. (e) HISGEN when this signal is up then the module give the value of the data stored the ram On the picdata out signal. 11

12 (f) K[7:0] This signal comes gives the address of the ram when this module is in hisgen mode. (g) MY When this signal is up then the entire circuit is in process of calculating the output image from the transform function calculated in the outram b Outputs (a) RDADDR [7:0] This bus gives the urrent value of the read counter. (b) CNTROUT [7:0] Thus bus gives the current value of the write counter. (c) PICDATAOUT This gives the output of the ram which contains the value of the pixels of the image in the input. 5.2 The DATAPART 12

13 The next page shows the complete Datapart. 13

14 Figure 4: The datapart The various parts of the datapart are: Histogram Generator This part generates the histogram from the given input picture RAM. Figure 5: The histogram generator This part of the data part computes the histogram from the image stored in the PICRAM as follows: For every value in the PICRAM the corresponding position in the cumulative ram is incremented resulting in generation of histogram in 256 cycles. The counter J is used when data is to be read from HISRAM. In that case sel_2 signal is zero (this signal comes from microcontroller). 14

15 5.2.2 Cumulative Histogram Generator Figure 6a: The cumulative histogram calculation 15

16 Figure 6b: The cumulative histogram storage This part of the circuit works in two modes:- In the first mode the previous value of the CUMRAM is added to the current value of the HISRAM to get the new value of the cumulative histogram. This goes on for 256 cycles to generate the cumulative histogram. 16

17 In the second mode (this mode is active when the current instruction in the microcontrol in 15, in which case the value of the signal MY is 1). IN that case the output of the PICRAM is fed into the address line of the OUTRAM and the output of the OUTRAM is fed into the data line of the CUMRAM. The data now being stored in the CUMRAM is the final output image which is written at the falling edge so that the address at the address line is constant when data is written in the CUMRAM Computation part A small module was made out of the computation part. The module is Figure 7: The calculation module 17

18 Internals: This is the basic operation performed by the calculating module. The algorithm requires the following computation: G 1 T[ p] = H[ p] MN (for an image with grayscale 0 to G-1 and size M pixels x N pixels) For the present case, G = 256 and M=N=16. So we need to multiply a number by 255 and divide it by 256. Multiplying a number x with 255 is same as: x* 255 = x* 256 x This small manipulation makes it a lot easier in hardware to perform the computation. And then to divide by 256, the last 8 bits are dropped out. Figure 8: The calculation module block diagram 18

19 s Figure 9: The calculation module internals Transformation of the image The transform thus obtained is applied to the input image as shown below: 19

20 Figure 10a: Reading the new value for each pixel 20

21 Figure 10b: The cumulative RAM being reused to store the new image 21

22 5.2.5 Signals summary There are 2 status signals: j_not_255 k_not_zero There are 12 control signals: inc_k sel_2 hisgen ld_j outwr cumwr hiswr clr_j inc_j my ld_r1 sel_1 22

23 5.3 The CONTROL PART Micro-programmed control has been implemented. Inputs: 2 status bits Outputs: 12 control bits The microcontroller consists of microsequencer, a multiplexer to select the next address and a register to latch the current instruction. A combinational logic is used to calculate the select signals of the multiplexer. The instructions supported by the microsequencer are: INSTRUCTION ENCODING (i 1 i 0 ) Next address: 00 Conditional jump: 01 Unconditional jump: 10 The algorithm broadly involves steps that are doable within 16 instructions. Empty instructions have been included wherever necessary to incorporate appropriate delays. 23

24 μ Seq Control 18 R 11 ROM E G 2 1 Mux Data Part 2 Figure 11: The Microprogrammed control: Outline 24

25 The micro-sequencer: Figure 12: The Microsequencer Select Logic: S1 = i 0 i 1 r + i 1 c r S0 = r i 0 i 1 + i 0 i 1 r c (Where S1, S0 are bits of output, i 1 and i 0 are bits of instruction, c represents Condition, r represents Reset) 25

26 Figure 13: The micro-sequencer Next-Address select logic Figure 14: The micro-sequencer condition-select multiplexer 26

27 Figure 15: The micro-programmed control as in the schematic 27

28 According to the algorithm stated on page 5, the symbolic instructions are: (Default values for all signals: 0) 0: sel_2, hisgen, clr_j 1: sel_2, hisgen, hiswr 2: inc_k, sel_2, hisgen 3: sel_2, hisgen, c_sel=10, NA=2, mseq_inst=01, hiswr 4: clr_j, sel_1 5: ld_r1, sel_1 6: sel_1 7: cumwr 8: inc_j, ld_r1 9: c_sel=00, NA=8, mseq_inst=01, cumwr 10: ld_j 11: NOP 12: outwr 13: inc_j 14: c_sel=01, NA=13, mseq_inst=01, outwr 15: NA=15, mseq_inst=10, my So we finally have Bits for Next Instruction Address : n=4 Bits for Datapart Controls : m=12 Bits for mseq_inst select : k=2 Bits for condition select : s=2 Hence the instruction will be 20 bits wide. 28

29 The micro-instruction format: Figure 16: The micro-instruction format The microprogram was fed into the control ROM. The ROM contents have been listed below. 0000: ; 0001: ; 0010: ; 0011: ; 0100: ; 0101: ; 0110: ; 0111: ; 1000: ; 1001: ; 1010: ; 1011: ; 1100: ; 1101: ; 1110: ; 1111: ; 29

30 6. SIMULATION (a) Functional Simulation A screenshot of the simulation is shown below. The simulation extends till around 80 µs, so it is not possible to show the whole of it here. The waveform has been saved and will be shown during the demo. Figure 17: The functional simulation results 30

31 (a) Timing Simulation A screenshot of the simulation is shown below. The simulation extends till around 80 µs, so it is not possible to show the whole of it here. The waveform has been saved and will be shown during the demo. Figure 18: The timing simulation results 31

32 7. The.UCF file (pin mappings) ################################ # THE RW CIRCUIT (internal) # ################################ NET AD<0> LOC=P9; NET AD<1> LOC=P8; NET AD<2> LOC=P7; NET AD<3> LOC=P6; NET AD<4> LOC=P5; NET AD<5> LOC=P4; NET AD<6> LOC=P3; NET AD<7> LOC=P84; NET RD_L LOC=P83; NET WR_L LOC=P82; ############################## # CN 13 TO 1 # ############################## NET CURRADDROB3 LOC=P14; NET CURRADDROB2 LOC=P15; NET CURRADDROB1 LOC=P16; NET CURRADDROB0 LOC=P17; NET CNTROUTOB3 LOC=P18; NET CNTROUTOB2 LOC=P19; 32

33 NET CNTROUTOB1 LOC=P20; NET CNTROUTOB0 LOC=P23; NET RDADDROB3 LOC=P24; NET RDADDROB2 LOC=P25; NET RDADDROB1 LOC=P26; #NET RDADDROB0 LOC=P27; NET LSBOB LOC=P27; ############################### # CN 17 TO 11 # ############################### NET RESETRW LOC=P60; NET RESETIN LOC=P61; 33

34 8. Implementation results Design Summary: Number of errors: 0 Number of warnings: 35 Number of CLBs: 377 out of % CLB Flip Flops: 72 4 input LUTs: 196 (1 used as route-throughs) 3 input LUTs: 22 32X1 RAMs: X1 ROMs: 20 Number of bonded IOBs: 25 out of 61 40% IOB Flops: 0 IOB Latches: 0 Number of TBUFs: 280 out of % Number of RPM macros: 1 Number of OSC: 1 out of 1 100% Total equivalent gate count for design: Additional JTAG gate count for IOBs: 1200 Device utilization summary: Number of External IOBs 25 out of % Flops: 0 Latches: 0 34

35 Number of CLBs 377 out of % Total CLB Flops: 72 out of 800 9% 4 input LUTs: 728 out of % 3 input LUTs: 278 out of % Number of OSCILLATORs 1 out of 1 100% Number of TBUFs 280 out of % Timing summary: Timing errors: 0 Score: 0 Constraints cover paths, 582 nets, and 4862 connections (100.0% coverage) Design statistics: Minimum period: ns (Maximum frequency: 9.191MHz) Maximum net delay: ns PAR The Delay Summary Report The Score for this design is:

36 The Number of signals not completely routed for this design is: 0 The Average Connection Delay for this design is: ns The Maximum Pin Delay is: ns The Average Connection Delay on the 10 Worst Nets is: ns Listing Pin Delays by value: (ns) d < 7.00 < d < < d < < d < < d < d >= Section 4 - Removed Logic Summary block(s) removed 29 block(s) optimized away 37 signal(s) removed POST LAYOUT TIMING REPORT Data Sheet report: All values displayed in nanoseconds (ns) Setup/Hold to clock WR_LIB Setup to Hold to Source Pad clk (edge) clk (edge) AD<0> (R) (R) 36

37 AD<1> (R) (R) AD<2> (R) (R) AD<3> (R) (R) AD<4> (R) (R) AD<5> (R) (R) AD<6> (R) (R) AD<7> (R) (R) Clock RD_LIB to Pad clk (edge) Destination Pad to PAD AD<0> (R) AD<1> (R) AD<2> (R) AD<3> (R) AD<4> (R) AD<5> (R) AD<6> (R) AD<7> (R) RDADDROB (R) RDADDROB (R) RDADDROB (R) RDADDROB (R) Clock WR_LIB to Pad clk (edge) Destination Pad to PAD CNTROUTOB (R) CNTROUTOB (R) CNTROUTOB (R) CNTROUTOB (R) Clock to Setup on destination clock RD_LIB Src:Rise Src:Fall Src:Rise Src:Fall Source Clock Dest:Rise Dest:Rise Dest:Fall Dest:Fall

38 RD_LIB Clock to Setup on destination clock WR_LIB Src:Rise Src:Fall Src:Rise Src:Fall Source Clock Dest:Rise Dest:Rise Dest:Fall Dest:Fall WR_LIB Pad to Pad Source Pad Destination Pad Delay RESETIN CURRADDROB RESETIN CURRADDROB RESETIN CURRADDROB RESETIN CURRADDROB

39 9. Conclusions and Possible Refinements Various possible extensions to this project may be: (a) Some optimizations may be implemented like: 1. Reducing the no. of RAMs used by reusing the RAM storing the histogram for storing the cumulative histogram. 2. Reducing the size of the microinstruction by encoding various signals into various fields. 3. Splitting the last loop (in which the transform function is to be applied) into two clock cycles so that that maximum clock frequency is increased. (b) Increasing the size of the input image. But this will require a bigger FPGA because the maximum depth allowed in XC4010PC84 is 256 words. 39

Virtex-II Architecture

Virtex-II Architecture Virtex-II Architecture Block SelectRAM resource I/O Blocks (IOBs) edicated multipliers Programmable interconnect Configurable Logic Blocks (CLBs) Virtex -II architecture s core voltage operates at 1.5V

More information

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control ENGG330: Computer Organization and Design Lab5: Microprogrammed Control School of Engineering, University of Guelph Winter 201 1 Objectives: The objectives of this lab are to: Start Date: Week #5 201 Due

More information

2015 Paper E2.1: Digital Electronics II

2015 Paper E2.1: Digital Electronics II s 2015 Paper E2.1: Digital Electronics II Answer ALL questions. There are THREE questions on the paper. Question ONE counts for 40% of the marks, other questions 30% Time allowed: 2 hours (Not to be removed

More information

Asynchronous FIFO Design

Asynchronous FIFO Design Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read

More information

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6 ACCESS IC LAB Outline Concepts of Xilinx FPGA Xilinx FPGA Architecture Introduction to ISE Code Generator Constraints

More information

EC4205 Microprocessor and Microcontroller

EC4205 Microprocessor and Microcontroller EC4205 Microprocessor and Microcontroller Webcast link: https://sites.google.com/a/bitmesra.ac.in/aminulislam/home All announcement made through webpage: check back often Students are welcome outside the

More information

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline CPE/EE 422/522 Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices Dr. Rhonda Kay Gaede UAH Outline Introduction Field-Programmable Gate Arrays Virtex Virtex-E, Virtex-II, and Virtex-II

More information

The Itanium Bit Microprocessor Report

The Itanium Bit Microprocessor Report The Itanium - 1986 8 Bit Microprocessor Report By PRIYANK JAIN (02010123) Group # 11 Under guidance of Dr. J. K. Deka & Dr. S. B. Nair Department of Computer Science & Engineering Indian Institute of Technology,

More information

Module 5 - CPU Design

Module 5 - CPU Design Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction

More information

Hardware Implementation

Hardware Implementation Low Density Parity Check decoder Hardware Implementation Ruchi Rani (2008EEE2225) Under guidance of Prof. Jayadeva Dr.Shankar Prakriya 1 Indian Institute of Technology LDPC code Linear block code which

More information

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Note: Closed book no notes or other material allowed, no calculators or other electronic devices. ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page

More information

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN

Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN Programmable Logic Devices UNIT II DIGITAL SYSTEM DESIGN 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 Implementation in Sequential Logic 2 PAL Logic Implementation Design Example: BCD to Gray Code Converter A B

More information

The Xilinx XC6200 chip, the software tools and the board development tools

The Xilinx XC6200 chip, the software tools and the board development tools The Xilinx XC6200 chip, the software tools and the board development tools What is an FPGA? Field Programmable Gate Array Fully programmable alternative to a customized chip Used to implement functions

More information

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS UNIT I INTRODUCTION TO 8085 8085 Microprocessor - Architecture and its operation, Concept of instruction execution and timing diagrams, fundamentals of

More information

EE577A FINAL PROJECT REPORT Design of a General Purpose CPU

EE577A FINAL PROJECT REPORT Design of a General Purpose CPU EE577A FINAL PROJECT REPORT Design of a General Purpose CPU Submitted By Youngseok Lee - 4930239194 Narayana Reddy Lekkala - 9623274062 Chirag Ahuja - 5920609598 Phase 2 Part 1 A. Introduction The core

More information

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one

More information

GRAPHICS LCD INTERFACING WITH 8051

GRAPHICS LCD INTERFACING WITH 8051 GRAPHICS LCD INTERFACING WITH 8051 It may require some graphics image to be displayed in 8051 based products through a monochrome bitmap LCD. This is considered to be a complex task because of its bus

More information

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. 1.b. Show that a 2-to-1 MUX is universal (i.e. that any Boolean expression can be implemented with

More information

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Fall 2002 EECS150 - Lec06-FPGA Page 1 Outline What are FPGAs? Why use FPGAs (a short history

More information

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs? EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Outline What are FPGAs? Why use FPGAs (a short history lesson). FPGA variations Internal logic

More information

Introduction to WebPACK 5.2 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSB-300E Board

Introduction to WebPACK 5.2 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSB-300E Board Introduction to WebPACK 5.2 for FPGAs Using Xilinx WebPACK Software to Create FPGA Designs for the XSB-300E Board Release date: 10/27/2003 All XS-prefix product designations are trademarks of XESS Corp.

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

More information

Computer Architecture Programming the Basic Computer

Computer Architecture Programming the Basic Computer 4. The Execution of the EXCHANGE Instruction The EXCHANGE routine reads the operand from the effective address and places it in DR. The contents of DR and AC are interchanged in the third microinstruction.

More information

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4) Verilog Sequential Logic Verilog for Synthesis Rev C (module 3 and 4) Jim Duckworth, WPI 1 Sequential Logic Module 3 Latches and Flip-Flops Implemented by using signals in always statements with edge-triggered

More information

16COM / 40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

16COM / 40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD INTRODUCTION KS0066U is a dot matrix LCD driver & controller LSI whichis fabricated by low power CMOS technology It can display 1or 2 lines with the 5 8 dots format or 1 line with the 5 11 dots format

More information

Rensselaer Polytechnic Institute Computer Hardware Design ECSE 4770

Rensselaer Polytechnic Institute Computer Hardware Design ECSE 4770 RPI Rensselaer Polytechnic Institute Computer Hardware Design ECSE 4770 Lab Assignment 2 Protoboard Richards Controller and Logic Analyzer Laboratory Rev. C Introduction This laboratory assignment is an

More information

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes.

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes. Topics! SRAM-based FPGA fabrics:! Xilinx.! Altera. SRAM-based FPGAs! Program logic functions, using SRAM.! Advantages:! Re-programmable;! dynamically reconfigurable;! uses standard processes.! isadvantages:!

More information

: : (91-44) (Office) (91-44) (Residence)

:  : (91-44) (Office) (91-44) (Residence) Course: VLSI Circuits (Video Course) Faculty Coordinator(s) : Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Chennai 600036 Email Telephone : srinis@iitm.ac.in,

More information

LED Tetris. Final Project Report December 9, 2016 Robert Linden and Paul Slaats GitHub Url: https://github.com/robertmlinden/e155-tetris

LED Tetris. Final Project Report December 9, 2016 Robert Linden and Paul Slaats GitHub Url: https://github.com/robertmlinden/e155-tetris LED Tetris Final Project Report December 9, 2016 Robert Linden and Paul Slaats GitHub Url: https://github.com/robertmlinden/e155-tetris Abstract: There is no easy method to create a game of Tetris with

More information

中显液晶 技术资料 中显控制器使用说明书 2009年3月15日 北京市海淀区中关村大街32号和盛大厦811室 电话 86 010 52926620 传真 86 010 52926621 企业网站.zxlcd.com

中显液晶 技术资料 中显控制器使用说明书 2009年3月15日 北京市海淀区中关村大街32号和盛大厦811室 电话 86 010 52926620 传真 86 010 52926621   企业网站.zxlcd.com http://wwwzxlcdcom 4 SEG / 6 COM DRIVER & CONTROLLER FOR DOT MATRIX LCD June 2 Ver Contents in this document are subject to change without notice No part of this document may be reproduced or transmitted

More information

Altera FLEX 8000 Block Diagram

Altera FLEX 8000 Block Diagram Altera FLEX 8000 Block Diagram Figure from Altera technical literature FLEX 8000 chip contains 26 162 LABs Each LAB contains 8 Logic Elements (LEs), so a chip contains 208 1296 LEs, totaling 2,500 16,000

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING. Principles of Computer Operation UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim ENGN 1630 Fall 2018 Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim You will use the Xilinx ISim simulation software for the required timing simulation of the XC9572XL CPLD programmable

More information

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information. Registers Readings: 5.8-5.9.3 Storage unit. Can hold an n-bit value Composed of a group of n flip-flops Each flip-flop stores 1 bit of information ff ff ff ff 178 Controlled Register Reset Load Action

More information

FPGA Matrix Multiplier

FPGA Matrix Multiplier FPGA Matrix Multiplier In Hwan Baek Henri Samueli School of Engineering and Applied Science University of California Los Angeles Los Angeles, California Email: chris.inhwan.baek@gmail.com David Boeck Henri

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 13

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 13 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2017 Lecture 13 COMPUTER MEMORY So far, have viewed computer memory in a very simple way Two memory areas in our computer: The register file Small number

More information

PINE TRAINING ACADEMY

PINE TRAINING ACADEMY PINE TRAINING ACADEMY Course Module A d d r e s s D - 5 5 7, G o v i n d p u r a m, G h a z i a b a d, U. P., 2 0 1 0 1 3, I n d i a Digital Logic System Design using Gates/Verilog or VHDL and Implementation

More information

Memory and Programmable Logic

Memory and Programmable Logic Memory and Programmable Logic Memory units allow us to store and/or retrieve information Essentially look-up tables Good for storing data, not for function implementation Programmable logic device (PLD),

More information

16COM / 80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

16COM / 80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD INTRODUCTION KS0070B is a dot matrix LCD driver & controller LSI which is fabricated by low power CMOS technology. It is capable of displaying 1 or 2 lines with the 5 7 format or 1 line with the 5 10 dots

More information

475 Electronics for physicists Introduction to FPGA programming

475 Electronics for physicists Introduction to FPGA programming 475 Electronics for physicists Introduction to FPGA programming Andrej Seljak, Gary Varner Department of Physics University of Hawaii at Manoa November 18, 2015 Abstract Digital circuits based on binary

More information

Digital Signal Processing for Analog Input

Digital Signal Processing for Analog Input Digital Signal Processing for Analog Input Arnav Agharwal Saurabh Gupta April 25, 2009 Final Report 1 Objective The object of the project was to implement a Fast Fourier Transform. We implemented the Radix

More information

1. Internal Architecture of 8085 Microprocessor

1. Internal Architecture of 8085 Microprocessor 1. Internal Architecture of 8085 Microprocessor Control Unit Generates signals within up to carry out the instruction, which has been decoded. In reality causes certain connections between blocks of the

More information

Rensselaer Polytechnic Institute Computer Hardware Design ECSE Lab Assignment 3 Altera Richards Controller and Logic Analyzer Laboratory Rev.

Rensselaer Polytechnic Institute Computer Hardware Design ECSE Lab Assignment 3 Altera Richards Controller and Logic Analyzer Laboratory Rev. RPI Rensselaer Polytechnic Institute Computer Hardware Design ECSE 4770 Lab Assignment 3 Altera Richards Controller and Logic Analyzer Laboratory Rev.F Introduction This laboratory assignment is an introduction

More information

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING

UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING UNIVERSITY OF HONG KONG DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING Experiment PCO: Principles of Computer Operation Location: Part I Lab., CYC 102. Objective: The objective is to learn the basic

More information

Spring 2013 EE201L Instructor: Gandhi Puvvada. Time: 7:30-10:20AM SGM124 Total points: Perfect score: Open-Book Open-Notes Exam

Spring 2013 EE201L Instructor: Gandhi Puvvada. Time: 7:30-10:20AM SGM124 Total points: Perfect score: Open-Book Open-Notes Exam Spring 2013 EE201L Instructor: Gandhi Puvvada Final Exam 2 (25%) Date: May 9, 2013, Thursday Name: Open-Book Open-Notes Exam Time: 7:30-10:20AM SGM124 Total points: Perfect score: 1 ( points) min. Memory

More information

Introduction to WebPACK 6.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

Introduction to WebPACK 6.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board Introduction to WebPACK 6.1 Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board Release date: 10/30/2003 All XS-prefix product designations are trademarks of XESS Corp. All XC-prefix

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

CS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure

CS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure CS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure Overview In order to complete the datapath for your insert-name-here machine, the register file and ALU that you designed in checkpoint

More information

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

16COM/40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

16COM/40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD 6COM/4SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD INTRODUCTION is a dot matrix LCD driver & controller LSI which is fabricated by low power CMOS technology It can display, 2-line with 5 x 8 or 5 x dots

More information

File: 'ReportV37P-CT89533DanSuo.doc' CMPEN 411, Spring 2013, Homework Project 9 chip, 'Tiny Chip' fabricated through MOSIS program

File: 'ReportV37P-CT89533DanSuo.doc' CMPEN 411, Spring 2013, Homework Project 9 chip, 'Tiny Chip' fabricated through MOSIS program MOSIS Chip Test Report Dan Suo File: 'ReportV37P-CT89533DanSuo.doc' CMPEN 411, Spring 2013, Homework Project 9 chip, 'Tiny Chip' fabricated through MOSIS program Technology: 0.5um CMOS, ON Semiconductor

More information

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control, UNIT - 7 Basic Processing Unit: Some Fundamental Concepts, Execution of a Complete Instruction, Multiple Bus Organization, Hard-wired Control, Microprogrammed Control Page 178 UNIT - 7 BASIC PROCESSING

More information

This chapter introduces you to the design and test of microcontroller + FPLD designs using the XS40 and XS95 Boards.

This chapter introduces you to the design and test of microcontroller + FPLD designs using the XS40 and XS95 Boards. 1 Microcontroller+FPLD Designs This chapter introduces you to the design and test of microcontroller + FPLD designs using the XS40 and XS95 Boards. The material presented in this addendum assumes you are

More information

Spiral 2-8. Cell Layout

Spiral 2-8. Cell Layout 2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric

More information

From Datasheets to Digital Logic. synthesizing an FPGA SPI slave from the gates

From Datasheets to Digital Logic. synthesizing an FPGA SPI slave from the gates From Datasheets to Digital Logic synthesizing an FPGA SPI slave from the gates Joshua Vasquez March 26, 2015 The Road Map Top-Level Goal Motivation What is SPI? SPI Topology SPI Wiring SPI Protocol* Defining

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

INTRODUCTION TO FPGA ARCHITECTURE

INTRODUCTION TO FPGA ARCHITECTURE 3/3/25 INTRODUCTION TO FPGA ARCHITECTURE DIGITAL LOGIC DESIGN (BASIC TECHNIQUES) a b a y 2input Black Box y b Functional Schematic a b y a b y a b y 2 Truth Table (AND) Truth Table (OR) Truth Table (XOR)

More information

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: 1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit

More information

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic ECE 42/52 Rapid Prototyping with FPGAs Dr. Charlie Wang Department of Electrical and Computer Engineering University of Colorado at Colorado Springs Evolution of Implementation Technologies Discrete devices:

More information

Magdy Saeb, Samy Salamah Arab Academy for Science, Technology & Maritime Transport School of Engineering, Computer Department Alexandria, Egypt

Magdy Saeb, Samy Salamah Arab Academy for Science, Technology & Maritime Transport School of Engineering, Computer Department Alexandria, Egypt AN IMPLEMENTATION OF A PIPELINED ENCRYPTION MULTI-PROCESSING UNIT UTILIZING VHDL AND FIELD PROGRAMMABLE GATE ARRAYS Magdy Saeb, Samy Salamah Arab Academy for Science, Technology & Maritime Transport School

More information

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA Laboratory 4 Design a Muti-bit Counter and Programming a FPGA For your report: The problem written in English The flowchart or function table to solve the problem if it is necessary The design entry included

More information

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: Problem 1: CLD2 Problems. (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: C 0 = A + BD + C + BD C 1 = A + CD + CD + B C 2 = A + B + C + D C 3 = BD + CD + BCD + BC C 4

More information

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES. psa. rom. fpga THE WAY THE MODULES ARE PROGRAMMED NETWORKS OF PROGRAMMABLE MODULES EXAMPLES OF USES Programmable

More information

DESIGN AND IMPLEMENTATION OF 32-BIT CONTROLLER FOR INTERACTIVE INTERFACING WITH RECONFIGURABLE COMPUTING SYSTEMS

DESIGN AND IMPLEMENTATION OF 32-BIT CONTROLLER FOR INTERACTIVE INTERFACING WITH RECONFIGURABLE COMPUTING SYSTEMS DESIGN AND IMPLEMENTATION OF 32-BIT CONTROLLER FOR INTERACTIVE INTERFACING WITH RECONFIGURABLE COMPUTING SYSTEMS Ashutosh Gupta and Kota Solomon Raju Digital System Group, Central Electronics Engineering

More information

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY CHAPTER 5 : Introduction to Intel 8085 Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY The 8085A(commonly known as the 8085) : Was first introduced in March 1976 is an 8-bit microprocessor with 16-bit address

More information

Chapter 5 Global Timing Constraints. Global Timing Constraints 5-1

Chapter 5 Global Timing Constraints. Global Timing Constraints 5-1 Chapter 5 Global Timing Constraints Global Timing Constraints 5-1 Objectives After completing this module, you will be able to Apply timing constraints to a simple synchronous design Specify global timing

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice

More information

Device: EDR B. This document Version: 1c. Date: 11 November Matches module version: v3 [25 Aug 2016]

Device: EDR B. This document Version: 1c. Date: 11 November Matches module version: v3 [25 Aug 2016] Device: EDR-200200B This document Version: 1c Date: 11 November 2016 Matches module version: v3 [25 Aug 2016] Description: e-paper Display Driver and 200x200 e-paper Display EDR-200200B v1 datasheet Page

More information

Configurable Generic Library

Configurable Generic Library Configurable Generic Library Frozen Content Modified by on 13-Sep-2017 Altium Designer Winter 09 heralds the arrival of a new integrated library of configurable generic FPGA logic components FPGA Configurable

More information

Full-Speed USB 1.1 Function Controller

Full-Speed USB 1.1 Function Controller 2000-September-7 Introduction Dünner Kirchweg 77 32257 Bünde Germany www.trenz-electronic.de The lack of flexibility in reconfiguring the PC has been acknowledged as the Achilles heel to its further deployment.

More information

CS222: Processor Design

CS222: Processor Design CS222: Processor Design Dr. A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati Processor Design building blocks Outline A simple implementation: Single Cycle Data pathandcontrol

More information

TLL5000 Electronic System Design Base Module

TLL5000 Electronic System Design Base Module TLL5000 Electronic System Design Base Module The Learning Labs, Inc. Copyright 2007 Manual Revision 2007.12.28 1 Copyright 2007 The Learning Labs, Inc. Copyright Notice The Learning Labs, Inc. ( TLL )

More information

PESIT Bangalore South Campus

PESIT Bangalore South Campus INTERNAL ASSESSMENT TEST III Date : 21/11/2017 Max Marks : 40 Subject & Code : Computer Organization (15CS34) Semester : III (A & B) Name of the faculty: Mrs. Sharmila Banu Time : 11.30 am 1.00 pm Answer

More information

Introduction to WebPACK 6.3. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

Introduction to WebPACK 6.3. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board Introduction to WebPACK 6.3 Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board Release date: 1/1/2005 2005 by XESS Corp. All XS-prefix product designations are trademarks of XESS Corp.

More information

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation ECE 4514 Digital Design II Lecture 20: Timing Analysis and Timed Simulation A Tools/Methods Lecture Topics Static and Dynamic Timing Analysis Static Timing Analysis Delay Model Path Delay False Paths Timing

More information

Outline of Presentation

Outline of Presentation Built-In Self-Test for Programmable I/O Buffers in FPGAs and SoCs Sudheer Vemula and Charles Stroud Electrical and Computer Engineering Auburn University presented at 2006 IEEE Southeastern Symp. On System

More information

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4 TLL5000 Electronic System Design Base Module Getting Started Guide, Ver 3.4 COPYRIGHT NOTICE The Learning Labs, Inc. ( TLL ) All rights reserved, 2008 Reproduction in any form without permission is prohibited.

More information

Exp#8: Designing a Programmable Sequence Detector

Exp#8: Designing a Programmable Sequence Detector Exp#8: Designing a Programmable Sequence Detector Objectives Learning how to partition a system into data-path and control unit. Integrating Schematics and Verilog code together Overview In this lab you

More information

Chapter 3 : Control Unit

Chapter 3 : Control Unit 3.1 Control Memory Chapter 3 Control Unit The function of the control unit in a digital computer is to initiate sequences of microoperations. When the control signals are generated by hardware using conventional

More information

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011 FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level

More information

Sign here to give permission for your test to be returned in class, where others might see your score:

Sign here to give permission for your test to be returned in class, where others might see your score: EEL 4712 Midterm 2 Spring 216 VERSION 1 Name: UFID: Sign here to give permission for your test to be returned in class, where others might see your score: IMPORTANT: Please be neat and write (or draw)

More information

Address connections Data connections Selection connections

Address connections Data connections Selection connections Interface (cont..) We have four common types of memory: Read only memory ( ROM ) Flash memory ( EEPROM ) Static Random access memory ( SARAM ) Dynamic Random access memory ( DRAM ). Pin connections common

More information

16COM/80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

16COM/80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD 6COM/80SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD INTRODUCTION The is a dot matrix LCD driver & controller LSI which is fabricated by low power CMOS technology It is capable of displaying or 2 lines with

More information

FPGA: What? Why? Marco D. Santambrogio

FPGA: What? Why? Marco D. Santambrogio FPGA: What? Why? Marco D. Santambrogio marco.santambrogio@polimi.it 2 Reconfigurable Hardware Reconfigurable computing is intended to fill the gap between hardware and software, achieving potentially much

More information

Three criteria in Choosing a Microcontroller

Three criteria in Choosing a Microcontroller The 8051 Microcontroller architecture Contents: Introduction Block Diagram and Pin Description of the 8051 Registers Some Simple Instructions Structure of Assembly language and Running an 8051 program

More information

Digital Electronics & Computer Engineering (E85)

Digital Electronics & Computer Engineering (E85) Digital Electronics & Computer Engineering (E85) Lab 4: Thunderbird Turn Signal Introduction In this lab, you will design a finite state machine to control the taillights of a 1965 Ford Thunderbird 1 and

More information

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Introduction This lab introduces the concept of modular design by guiding you through

More information

Controller Implementation--Part II

Controller Implementation--Part II Controller Implementation--Part II Alternative controller FSM implementation approaches based on: Classical Moore and Mealy machines Time-State: Divide and Conquer Jump counters Microprogramming (ROM)

More information

Configuring APEX 20K, FLEX 10K & FLEX 6000 Devices

Configuring APEX 20K, FLEX 10K & FLEX 6000 Devices Configuring APEX 20K, FLEX 10K & FLEX 6000 Devices December 1999, ver. 1.02 Application Note 116 Introduction APEX TM 20K, FLEX 10K, and FLEX 6000 devices can be configured using one of six configuration

More information

Synthesizable CIO DDR RLDRAM II Controller for Virtex-II Pro FPGAs Author: Rodrigo Angel

Synthesizable CIO DDR RLDRAM II Controller for Virtex-II Pro FPGAs Author: Rodrigo Angel XAPP771 (v1.0) June 13, 2005 Application Note: Virtex-II Pro Devices Synthesizable CIO DD LDAM II Controller for Virtex-II Pro FPGAs Author: odrigo Angel Summary This application note describes how to

More information

More advanced CPUs. August 4, Howard Huang 1

More advanced CPUs. August 4, Howard Huang 1 More advanced CPUs In the last two weeks we presented the design of a basic processor. The datapath performs operations on register and memory data. A control unit translates program instructions into

More information

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr. EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board (FPGA Interfacing) Teacher: Dr. Liang Liu v.1.0.0 1 Abstract This document describes the basic behavior

More information

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

More information

INTERFACING INTERFACING. Richa Upadhyay Prabhu. NMIMS s MPSTME February 25, 2016

INTERFACING INTERFACING. Richa Upadhyay Prabhu. NMIMS s MPSTME February 25, 2016 INTERFACING Richa Upadhyay Prabhu NMIMS s MPSTME richa.upadhyay@nmims.edu February 25, 2016 8255: Programmable Peripheral Interface or Programmable Input output Device Introduction METHODS OF DATA TRANSFER

More information

Product Obsolete/Under Obsolescence

Product Obsolete/Under Obsolescence APPLICATION NOTE Adapting ASIC Designs for Use with Spartan FPGAs XAPP119 July 20, 1998 (Version 1.0) Application Note by Kim Goldblatt Summary Spartan FPGAs are an exciting, new alternative for implementing

More information

34COM/60SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

34COM/60SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD 34COM/6SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD INTRODUCTION is a dot matrix LCD driver & controller LSI which is fabricated by low power CMOS technology It can display, 2 or 4 lines with 5 8 or 6 8

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly.

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly. Unit I 8085 and 8086 PROCESSOR Introduction to microprocessor A microprocessor is a clock-driven semiconductor device consisting of electronic logic circuits manufactured by using either a large-scale

More information

Physics 623. Programmable Gate Array Experiment Nov. 30, 2006

Physics 623. Programmable Gate Array Experiment Nov. 30, 2006 Physics 623 Programmable Gate Array Experiment Nov. 30, 2006 1 The Goal of This Experiment You will design a small digital circuit, download the design to a Field Programmable Gate Array (FPGA) I, and

More information