Agenda. PicoBlaze Hello World project using the PicoBlaze. Class 9 Copyright 2011 Greg Tumbush Ver 1.0 1

Size: px
Start display at page:

Download "Agenda. PicoBlaze Hello World project using the PicoBlaze. Class 9 Copyright 2011 Greg Tumbush Ver 1.0 1"

Transcription

1 Agenda PicoBlaze Hello World project using the PicoBlaze Class 9 Copyright 2011 Greg Tumbush Ver 1.0 1

2 Embedded Processor Why? Firmware is easier to maintain/modify/deploy If the constraints of you system can be met by a processor, no reason build dedicated hardware. Customization e.g. connectivity to FPGA on-chip functions Obsolescence Mitigation soft processor RTL can be purchased to fulfill product lifespan requirements. Multiple components can be combined for cost and count reduction. Multiple processers on same FPGA to control particular functions. Hardware Acceleration Slow SW algorithm can be moved to custom HW co-processor and interfaced to processor. Why Not? Design tools more complex as integration of HW/SW. What? ARM, Tensilica, Xilinx, etc. market embedded processors How? Distributed as hard macro or soft core Class 9 Copyright 2011 Greg Tumbush Ver 1.0 2

3 Xilinx s Embedded Processors PicoBlaze 8-bit RISC Distributed as a soft core Can use the EDK or a free DOS based EDK Supplied in VHDL MicroBlaze 32-bit RISC Harvard Distributed as a soft core Requires Xilinx Embedded Developer Kit (EDK) DO-254 Compliant version available from Logicircuit PowerPC 32-bit RISC Instantiated in some higher end FPGAs Requires Xilinx Embedded Developer Kit (EDK) PLC Interface ARM Dual core Cortex-A9 MPCore processors Each run up to 800MHz AMBA-AXI Interface Class 9 Copyright 2011 Greg Tumbush Ver 1.0 3

4 The PicoBlaze Embedded Processor Downloadable from the 4211 web site or Core is kcpsm3.v (VHDL version also available) Uses block ram configured as a PROM for program memory. Occupies 96 slices or about 2% of the FPGA on our boards Program memory space occupies 5% of block RAM 57 Instructions Up to 200MHz or 100MIPS on a Virtex-II Pro FPGA Free assembler Class 9 Copyright 2011 Greg Tumbush Ver 1.0 4

5 PicoBlaze Block Diagram 10 1K x 18 Block Ram instruction address 10 31x10 PC Stack 10 64x8 Scratchpad RAM 8 port_id 18 interrupt_ack Instruction Decoder read_strobe write_strobe interrupt IE 8 out_port in_port clk reset x8 General Purpose Registers 8 ALU C z Class 9 Copyright 2011 Greg Tumbush Ver 1.0 5

6 PicoBlaze Function Blocks General Purpose Registers 16 Byte wide registers (s0 sf) Can be renamed for better program clarity No registers are reserved or have priority Each result is computed in specified register 1024 Instruction PROM Instructions are 18 bits wide Instructions are compiled within the FPGA design and automatically loaded during FPGA config. Can update code w/o FPGA design recompile. ALU 8 bits wide Addition and Subtraction Bitwise AND, OR, and XOR Arithmetic compare and bitwise test operations Shift and Rotate operations Source: Xilinx PicoBlaze User Guide 6

7 PicoBlaze Function Blocks (cont.) Flags ZERO: indicates results of last op. resulted in zero. CARRY: depending on last instruction, indicates various conditions Scratchpad RAM 64 Byte Accessed via the STORE or FETCH commands. Directly or Indirectly accessable I/O Up to 256 input or output or combination of PC Points to the next instruction Automatically increments to next instruction JUMP, CALL, RETURN, and RETURNI instructions and Interrupt and Reset Events modify auto increment behavior. Source: Xilinx PicoBlaze User Guide 7

8 PicoBlaze Function Blocks (cont.) CAL/RETURN Stack Stores up to 31 instruction addresses Allows up to 31 nested CALL sequences Interrupt Optional asynchronous (w.r.t. instruction cycle) input. Reset Automatically reset after FPGA configuarion Source: Xilinx PicoBlaze User Guide 8

9 PicoBlaze Ports User Level Subfunctions Can also use dist. ROM if all block ROM used Source: Xilinx PicoBlaze User Guide 9

10 port_id and in_port Should register PicoBlaze... mux_out 8 in_port read_strobe Indirect Addressing port_id 8 FPGA Logic clk instruction port_id mux_out mux_out_q INPUT s0, (s7) contents of register s7 Valid Data Valid Data read_strobe Register s0 Valid Data Class 9 Copyright 2011 Greg Tumbush Ver

11 port_id and out_port PicoBlaze 8 out_port write_strobe port_id 8 D Q R1 EN 8 Q address of register R1, (constant) clk instruction OUTPUT s0, 65 port_id 65 out_port Contents of Register s0 write_strobe Q Contents of Register s0 Class 9 Copyright 2011 Greg Tumbush Ver

12 Performance The PicoBlaze on a Spartan-3 FPGA has a maximum clock of 125.3MHz Fully static, i.e. operates down to DC. All instructions execute in two clock cycles. Class 9 Copyright 2011 Greg Tumbush Ver

13 Interrupts Single INTERRUPT input Use FPGA logic to create single interrupt from multiple sources. INTERRUPT disabled upon reset Enable via the ENABLE INTERRUPT instruction. Interrupt signal must be applied for at least two clock cycles. Interrupts must be disabled during ISR. Interrupt causes: processor to execute CALL 3FF (which typically has jump to ISR) Preserves ZERO and CARRY flags Pushes the PC value onto the CALL/RETURN stack. Class 9 Copyright 2011 Greg Tumbush Ver

14 Design Flow ROM_form.vhd my_code.psm ROM_form.coe ROM_form.v Assembler/KCPSM3.exe my_code.v ISE kcpsm3.v my_design.v my_design.ucf my_design.bit Class 9 Copyright 2011 Greg Tumbush Ver

15 Design Flow Note: kcpsm3 doesn t run on 64 (and 32?) bit machines. One solution is to download Intel x86 PC emulator that runs DOS from: According to the Xilinx forums, kcpsm6 won t work with Spartan-3E. Class 9 Copyright 2011 Greg Tumbush Ver

16 The Hello World Project Displays hello world on line 2 starting at character 44 BTN0 debounce.v slow_clk lcd_master.v LCDDAT[3:0] LCDE LCDRS LCDRW LCD DCM CCLK New hello_world.v LCDDAT[3:0] CCLK kcpsm3.v Block Ram control.v LCDE LCDRS LCDRW LCD Class 9 Copyright 2011 Greg Tumbush Ver

17 The program control.psm CONSTANT LCD_output_port, 40 ; output data and control CONSTANT LCD_E, 01 ; active High Enable CONSTANT LCD_RW, 02 ; Read=1 Write=0 CONSTANT LCD_RS, 04 ; Instruction=0 Data=1 CONSTANT LCD_DB4, 10 ; Data[0] CONSTANT LCD_DB5, 20 ; Data[1] CONSTANT LCD_DB6, 40 ; Data[2] CONSTANT LCD_DB7, 80 ; Data[3] ;ASCII table CONSTANT character_a, 61 CONSTANT character_b, 62 CONSTANT character_c, 63 CONSTANT character_d, syntax: CONSTANT name, value; ; is a comment delimiter Class 9 Copyright 2011 Greg Tumbush Ver

18 PC control.psm - Main CALL LCD_reset ; Initialize LCD display LOAD s5, 24 ; Line 2 position 4 CALL LCD_cursor ; Set the cursor position CALL disp_hello_world ; Display 'hello world wait: JUMP wait Class 9 Copyright 2011 Greg Tumbush Ver

19 control.psm - LCD_reset LCD_reset: CALL delay_20ms ; wait>15ms for display to be ready LOAD s4, 30 CALL LCD_write_inst4 ; send '3' CALL delay_20ms ; wait > 4.1ms CALL LCD_write_inst4 ; send '3 CALL delay_1ms ; wait > 100us CALL LCD_write_inst4 ; send '3' CALL delay_40us ; wait > 40us LOAD s4, 20 CALL LCD_write_inst4 ; send '2' CALL delay_40us ; wait >40us LOAD s5, 28 ; Function set CALL LCD_write_inst8 LOAD s5, 06 ; Entry mode CALL LCD_write_inst8 LOAD s5, 0C ; Display control CALL LCD_write_inst8 Class 9 Copyright 2011 Greg Tumbush Ver

20 control.psm - LCD_clear LCD_clear: LOAD s5, 01 ; Display clear CALL LCD_write_inst8 CALL delay_1ms ; wait >1.64ms for display to clear CALL delay_1ms RETURN Class 9 Copyright 2011 Greg Tumbush Ver

21 LCD_write_inst4 subroutine ;RS=0 (Instruction), RW=0 (Write), E=0 LCD_write_inst4: AND s4, F0 ;set up RS and RW >40ns before enable pulse OUTPUT s4, LCD_output_port CALL LCD_pulse_E RETURN LCD_pulse_E: XOR s4, LCD_E ;E=1 OUTPUT s4, LCD_output_port CALL delay_1us XOR s4, LCD_E ;E=0 OUTPUT s4, LCD_output_port RETURN Class 9 Copyright 2011 Greg Tumbush Ver

22 LCD_write_inst8 subroutine LCD_write_inst8: LOAD s4, s5 AND s4, F0 ; RS=0, RW=0, E=0 CALL LCD_write_inst4 ;write upper nibble CALL delay_1us ;wait >1us LOAD s4, s5 ;select lower nibble with SL0 s4 ;don t care SL0 s4 ;RS=0 Instruction SL0 s4 ;RW=0 Write SL0 s4 ;E=0 CALL LCD_write_inst4 ;write lower nibble CALL delay_40us ;wait >40us RETURN Class 9 Copyright 2011 Greg Tumbush Ver

23 The delay subroutines CALL delay_1us delay_1us: LOAD s0, delay_1us_constant wait_1us: SUB s0, 01 JUMP NZ, wait_1us RETURN 2 cycles 2 cycles 4 cycles 2 cycles 2cycles 2cycles 4cycles delay_1us_constant 2cycles 50E6 6 cycles 4cycles delay_1us_constant 50 cycles 50cycles - 6cycles delay_1us_constant 4 cycles delay_1us_constant 11 0xB cycles sec 1E - 6 sec CONSTANT delay_1us_constant, 0B Class 9 Copyright 2011 Greg Tumbush Ver

24 control.psm - Main PC PC CALL LCD_reset ; Initialize LCD display LOAD s5, 24 ; Line 2 position 4 CALL LCD_cursor ; Set the cursor position CALL disp_hello_world ; Display 'hello world wait: JUMP wait Class 9 Copyright 2011 Greg Tumbush Ver

25 control.psm - LCD_cursor LCD_cursor: TEST s5, 10 ; Test for line 1 JUMP Z, set_line2 ;make address in range 80 to 8F for line 1 AND s5, 0F OR s5, 80 CALL LCD_write_inst8 ;set cursor command RETURN ;make address in range C0 to CF for line 2 set_line2: AND s5, 0F OR s5, C0 CALL LCD_write_inst8 RETURN ; set cursor command Class 9 Copyright 2011 Greg Tumbush Ver

26 control.psm - Main PC PC CALL LCD_reset ; Initialize LCD display LOAD s5, 24 ; Line 2 position 4 CALL LCD_cursor ; Set the cursor position CALL disp_hello_world ; Display 'hello world wait: JUMP wait Class 9 Copyright 2011 Greg Tumbush Ver

27 control.psm - disp_hello_world disp_hello_world: LOAD s5, character_h CALL LCD_write_data LOAD s5, character_e CALL LCD_write_data LOAD s5, character_l CALL LCD_write_data LOAD s5, character_l CALL LCD_write_data LOAD s5, character_o CALL LCD_write_data CALL disp_space LOAD s5, character_w CALL LCD_write_data... RETURN Class 9 Copyright 2011 Greg Tumbush Ver

28 control.psm - LCD_write_data LCD_write_data: LOAD s4, s5 AND s4, F0 ;RS=0 Instruction, RW=0 Write, E=0 OUTPUT s4, LCD_output_port CALL LCD_pulse_E ;write upper nibble CALL delay_1us ;wait >1us LOAD s4, s5 ;select lower nibble SL0 s4 ;Don't care SL1 s4 ;RS=1 Data SL0 s4 ;RW=0 Write SL0 s4 ;E=0 OUTPUT s4, LCD_output_port CALL LCD_pulse_E ;write lower nibble CALL delay_40us ;wait >40us RETURN Class 9 Copyright 2011 Greg Tumbush Ver

29 control.psm - Main PC PC CALL LCD_reset ;initialise LCD display LOAD s5, 24 ;Line 2 position 4 CALL LCD_cursor ; Set the cursor position CALL disp_hello_world ;Display 'hello world wait: JUMP wait Class 9 Copyright 2011 Greg Tumbush Ver

30 The Hello World Project hello_world.v LCDDAT[3:0] CCLK kcpsm3.v Block Ram control.v LCDE LCDRS LCDRW LCD Class 9 Copyright 2011 Greg Tumbush Ver

31 hello_world.v module hello_world ( input wire BTN_NORTH, // reset input wire clk, output reg [7:4] lcd_d, output reg lcd_rs, output reg lcd_rw, output reg lcd_e); wire [9:0] address; wire [17:0] instruction; wire [7:0] port_id; wire [7:0] out_port; wire write_strobe; Class 9 Copyright 2011 Greg Tumbush Ver

32 hello_world.v (cont.) kcpsm3 processor(.address(address),.instruction(instruction),.port_id(port_id),.write_strobe(write_strobe),.out_port(out_port),.read_strobe(),.in_port(8'b0),.interrupt(1'b0),.interrupt_ack(),.reset(btn_north),.clk(clk)); control program_rom(.address(address),.instruction(instruction),.clk(clk)); Class 9 Copyright 2011 Greg Tumbush Ver

33 hello_world.v (cont) clk or posedge BTN_NORTH) begin if (BTN_NORTH) {lcd_d, lcd_rs, lcd_rw, lcd_e} <= 0; else if (write_strobe && port_id == 8 h40) begin lcd_d <= out_port[7:4]; lcd_rs <= out_port[2]; lcd_rw <= out_port[1]; lcd_e <= out_port[0]; end // if (write_strobe) end // (posedge clk) endmodule Class 9 Copyright 2011 Greg Tumbush Ver

34 The Hello World Project hello_world.v LCDDAT[3:0] CCLK kcpsm3.v Block Ram control.v LCDE LCDRS LCDRW LCD Class 9 Copyright 2011 Greg Tumbush Ver

35 control.v module control (address, instruction, clk); input [9:0] address; input clk; output [17:0] instruction; RAMB16_S18 ram_1024_x_18(.di(16'h0000),.dip (2'b00),.EN (1'b1),.WE (1'b0),.SSR (1'b0),.CLK (clk),.addr (address),.do (instruction[15:0]),.dop (instruction[17:16])) Class 9 Copyright 2011 Greg Tumbush Ver

36 control.v (cont) /*synthesis init_00 = "001B004C056F004C056C004C056C004C C A" init_01 = "C001000BA000004C0520A000004C C056C004C C056F004C0577"... init_3f = " " initp_00 = "000B0B0DBF3333CFFF3BEAA3E0BEA8F0B8A38B72DCB72DCB4B2CCCCCF33333F3"... initp_07= " " */; endmodule Class 9 Copyright 2011 Greg Tumbush Ver

37 To run the Hello World Project 1. Go to and download/unzip: 1. Xilinx PicoBlaze zip archive 2. Hello World Project archive 2. Open project Hello_World_final 3. If you want to recompile the program do: <Picoblaze Path>/Picoblaze/Assembler/KCPSM3.exe control.psm from a DOS window Class 9 Copyright 2011 Greg Tumbush Ver

Reading Spartan-3A Device DNA

Reading Spartan-3A Device DNA Reading Spartan-3A Device DNA A Reference Design for the Spartan-3A Starter Kit Includes an LCD display driver Rev2 10 th July 2007 Ken Chapman Xilinx Ltd Limitations Limited Warranty and Disclaimer. These

More information

Changes in timetable (changes in GREEN)

Changes in timetable (changes in GREEN) Changes in timetable (changes in GREEN) Wk12: May25 29 HLAB5 PICOBLAZE assembly Wk13: Jun1 5 Still hand in assignment on Wk13 Jun5 C.O.B. Wks14 15 (Jun8 19) Hardware tests Exam on Jun 22 Project lab I

More information

Chapter 5 Embedded Soft Core Processors

Chapter 5 Embedded Soft Core Processors Embedded Soft Core Processors Coarse Grained Architecture. The programmable gate array (PGA) has provided the opportunity for the design and implementation of a soft core processor in embedded design.

More information

PicoBlaze Instruction Set and Event Reference

PicoBlaze Instruction Set and Event Reference Appendix C PicoBlaze Instruction Set and Event Reference This appendix provides a detailed operational description of each PicoBlaze instruction and the Interrupt and Reset events, including pseudocode

More information

Implementing a PicoBlaze microprocessor structure (state machine) using a reconfigurable hardware medium

Implementing a PicoBlaze microprocessor structure (state machine) using a reconfigurable hardware medium Laboratory number 3 Implementing a PicoBlaze microprocessor structure (state machine) using a reconfigurable hardware medium Purpose of the laboratory: A PicoBlaze TM processor version for Virtex, Virtex-E,

More information

CDA 4203L Spring 2012 Computer System Design Lab. Final Project Report Due at Final Demo

CDA 4203L Spring 2012 Computer System Design Lab. Final Project Report Due at Final Demo CDA 4203L Spring 2012 Computer System Design Lab Final Project Report Due at Final Demo Today s Date: Team Member Names: Your U Numbers: May 2, 2012 Brian Hatten, Danial Goodwin, Renato Marciano U55434397,

More information

CDA 4253 FPGA System Design The PicoBlaze Microcontroller. Hao Zheng Comp Sci & Eng U of South Florida

CDA 4253 FPGA System Design The PicoBlaze Microcontroller. Hao Zheng Comp Sci & Eng U of South Florida CDA 4253 FPGA System Design The PicoBlaze Microcontroller Hao Zheng Comp Sci & Eng U of South Florida Overview of PicoBlaze So:-core microcontroller in VHDL: portable to other plaaorms. Small: occupies

More information

PicoBlaze 8-bit Embedded Microcontroller User Guide

PicoBlaze 8-bit Embedded Microcontroller User Guide PicoBlaze 8-bit Embedded Microcontroller User Guide for Spartan-3, Virtex-II, and Virtex-II Pro FPGAs R Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design ) to you for

More information

How-To User Guide: Working with PicoBlaze on an FPGA. By: Sean Farner Peter Frandina

How-To User Guide: Working with PicoBlaze on an FPGA. By: Sean Farner Peter Frandina How-To User Guide: Working with PicoBlaze on an FPGA By: Sean Farner Peter Frandina Date: 5/20/2008 Table of Contents 1.0 Background Information...3 2.0 File Setup...3 3.0 Editing Source Files...3 4.0

More information

PicoBlaze Instruction Set

PicoBlaze Instruction Set Chapter 3 PicoBlaze Instruction Set Table 3-1 summarizes the entire PicoBlaze instruction set, which appears alphabetically. Instructions are listed using the KCPSM3 syntax. If different, the pblazide

More information

PicoBlaze 8-Bit Microcontroller for CPLD Devices

PicoBlaze 8-Bit Microcontroller for CPLD Devices Application Note: CPLD XAPP37(v.) January 9, 23 R PicoBlaze -Bit Microcontroller for CPLD Devices Summary Introduction This application note describes the implementation of an -bit microcontroller design

More information

PicoBlaze 8-bit Embedded Microcontroller

PicoBlaze 8-bit Embedded Microcontroller PicoBlaze 8-bit Embedded Microcontroller 1 PicoBlaze Overview PicoBlaze is a simple 8-bit microcontroller Compact in size Occupies 96 slices in a Spartan-3 (5% of an XC3S200) Performance is respectable

More information

17.1. Unit 17. Instruction Sets Picoblaze Processor

17.1. Unit 17. Instruction Sets Picoblaze Processor 17.1 Unit 17 Instruction Sets Picoblaze Processor INSTRUCTION SET OVERVIEW 17.2 17.3 Instruction Set Review Defines the software interface of the processor and memory system Instruction set is the vocabulary

More information

Lab 4: Integrating a picoblaze processor in LabVIEW FPGA by use of CLIP node

Lab 4: Integrating a picoblaze processor in LabVIEW FPGA by use of CLIP node Lab 4: Integrating a picoblaze processor in LabVIEW FPGA by use of CLIP node Keywords: LabVIEW, LabVIEW FPGA, Xilinx SPARTAN3E Starter Kit, VHDL, picoblaze, assembler, CLIP node. Introduction Welcome to

More information

Unit 17. Instruction Set Review INSTRUCTION SET OVERVIEW. Historical Instruction Format Options. Instruction Sets Picoblaze Processor

Unit 17. Instruction Set Review INSTRUCTION SET OVERVIEW. Historical Instruction Format Options. Instruction Sets Picoblaze Processor 17.1 17.2 Unit 17 Instruction Sets Picoblaze Processor INSTRUCTION SET OVERVIEW 17.3 17.4 Instruction Set Review Defines the software interface of the processor and memory system Instruction set is the

More information

Spiral 3-1. Hardware/Software Interfacing

Spiral 3-1. Hardware/Software Interfacing 3-1.1 Spiral 3-1 Hardware/Software Interfacing 3-1.2 Learning Outcomes I understand the PicoBlaze bus interface signals: PORT_ID, IN_PORT, OUT_PORT, WRITE_STROBE I understand how a memory map provides

More information

EE 459/500 HDL Based Digital Design with Programmable Logic

EE 459/500 HDL Based Digital Design with Programmable Logic EE 459/500 HDL Based Digital Design with Programmable Logic Lecture 17 From special-purpose FSMD to general-purpose microcontroller: Xilinx s PicoBlaze 1 Overview From FSMD to Microcontroller PicoBlaze

More information

Learning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing

Learning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing 3-. 3-.2 Learning Outcomes Spiral 3 Hardware/Software Interfacing I understand the PicoBlaze bus interface signals: PORT_ID, IN_PORT, OUT_PORT, WRITE_STROBE I understand how a memory map provides the agreement

More information

PICOBLAZE INTERRUPT INTERFACE

PICOBLAZE INTERRUPT INTERFACE CHAPTER 17 PICOBLAZE INTERRUPT INTERFACE 17.1 INTRODUCTION During normal program execution, a microcontroller polls the I/O peripherals (i.e., checks the status signals) and determines the course of action

More information

Programmable Control Logic

Programmable Control Logic Programmable Control Logic Microsequencers Example: building the micro8 Hardware/Software tradeoff Lab #5 due Thursday, project abstract next Monday 1 Digital Systems = FSMs + Datapath FSM control Datapath:

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

KCPSM. Ken Chapman. Constant(k) Coded Programmable State Machine. Xilinx Ltd

KCPSM. Ken Chapman. Constant(k) Coded Programmable State Machine. Xilinx Ltd KCPSM Constant(k) Coded Programmable State Machine Ken Chapman Xilinx Ltd Version 1.10 - July 2000 Limited Warranty and Disclaimer. These designs are provided to you as is. Xilinx and its licensors make

More information

ELEC 4200 Lab#10 Interrupting SPI Receiver for use with a Processor Core

ELEC 4200 Lab#10 Interrupting SPI Receiver for use with a Processor Core ELEC 4200 Lab#10 Interrupting SPI Receiver for use with a Processor Core SPI description: http://en.wikipedia.org/wiki/serial_peripheral_interface_bus References you may need: PicoBlaze KCPSM6 User Manual

More information

Learning Outcomes. Input / Output. Introduction PICOBLAZE 10/18/2017

Learning Outcomes. Input / Output. Introduction PICOBLAZE 10/18/2017 3-. Learning Outcomes 3-.2 Hardware/Software Interfacing PICOBLAZE Slides from Mark Redekopp, EE29 slide set (EE29Spiral3.pdf) adopted to suit EE354L I understand the PicoBlaze bus interface signals: PORT_ID[7:],

More information

Interrupt Lab using PicoBlaze

Interrupt Lab using PicoBlaze Interrupt Lab using PicoBlaze - Vikram & Chethan Advisor: Prof. Gandhi Puvvada Introduction An interrupt is a signal to the processor from hardware (or software) indicating an event that needs immediate

More information

Digital Design Using Verilog and FPGAs An Experiment Manual. Chirag Sangani Abhishek Kasina

Digital Design Using Verilog and FPGAs An Experiment Manual. Chirag Sangani Abhishek Kasina Digital Design Using Verilog and FPGAs An Experiment Manual Chirag Sangani Abhishek Kasina ii Contents I Combinatorial and Sequential Circuits 1 1 Seven-Segment Decoder 3 1.1 Concept.........................................

More information

ELCT501 Digital System Design Winter Tutorial #11 FPGA Complete Design Flow with LCD Example

ELCT501 Digital System Design Winter Tutorial #11 FPGA Complete Design Flow with LCD Example ELCT501 Digital System Design Winter 2014 Tutorial #11 FPGA Complete Design Flow with LCD Example Design a 4-bit Up-Counter with Enable Design Flow Steps: 1. Write VHDL code for the counter. 2. Test the

More information

PicoBlaze 8-Bit Microcontroller for Virtex-E and Spartan-II/IIE Devices Author: Ken Chapman

PicoBlaze 8-Bit Microcontroller for Virtex-E and Spartan-II/IIE Devices Author: Ken Chapman Application Note: Virtex-E and Spartan-II/IIE Devices XAPP23 (v2.) February 4, 23 PicoBlaze 8-Bit Microcontroller for Virtex-E and Spartan-II/IIE Devices Author: Ken Chapman Summary The Constant (k) Coded

More information

Lecture 16 PicoBlaze Instruction Set & Assembler Directives

Lecture 16 PicoBlaze Instruction Set & Assembler Directives Lecture 16 PicoBlaze Instruction Set & Assembler Directives ECE 448 FPGA and ASIC Design with VHDL Required reading P. Chu, FPGA Prototyping by VHDL Examples Chapter 15 PicoBlaze Assembly Code Development

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

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

Microcomputer Architecture and Programming

Microcomputer Architecture and Programming IUST-EE (Chapter 1) Microcomputer Architecture and Programming 1 Outline Basic Blocks of Microcomputer Typical Microcomputer Architecture The Single-Chip Microprocessor Microprocessor vs. Microcontroller

More information

Block RAM. Size. Ports. Virtex-4 and older: 18Kb Virtex-5 and newer: 36Kb, can function as two 18Kb blocks

Block RAM. Size. Ports. Virtex-4 and older: 18Kb Virtex-5 and newer: 36Kb, can function as two 18Kb blocks Block RAM Dedicated FPGA resource, separate columns from CLBs Designed to implement large (Kb) memories Multi-port capabilities Multi-clock capabilities FIFO capabilities Built-in error detection and correction

More information

Laboratory Memory Components

Laboratory Memory Components Laboratory 3 3. Memory Components 3.1 Objectives Design, implement and test Register File Read only Memories ROMs Random Access Memories RAMs Familiarize the students with Xilinx ISE WebPack Xilinx Synthesis

More information

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Dariusz Caban, Institute of Informatics, Gliwice, Poland - June 18, 2014 The use of a real-time multitasking kernel simplifies

More information

MIGRATING MICROCONTROLLER BASED CONTROL SYSTEMS INTO THE NANO FABRICS OF FPGAS

MIGRATING MICROCONTROLLER BASED CONTROL SYSTEMS INTO THE NANO FABRICS OF FPGAS MIGRATING MICROCONTROLLER BASED CONTROL SYSTEMS INTO THE NANO FABRICS OF FPGAS Santosh A. Shinde, Vinod G. Shelake and R. K. Kamat* VLSI Laboratory, Department of Electronics, Shivaji University, KOLHAPUR

More information

PicoBlaze for Spartan-6, Virtex-6, 7-Series, Zynq and UltraScale Devices (KCPSM6)

PicoBlaze for Spartan-6, Virtex-6, 7-Series, Zynq and UltraScale Devices (KCPSM6) PicoBlaze for Spartan-6, Virtex-6, 7-Series, Zynq and UltraScale Devices (KCPSM6) Including Ultra-Compact UART Macros and Reference Designs Ken Chapman 30 th September 2014 Release: 9 Disclaimer Notice

More information

SHA-1 Algorithm for use with DS2432

SHA-1 Algorithm for use with DS2432 SHA-1 Algorithm for use with DS2432 Rev.1 Ken Chapman Xilinx Ltd April 2006 Limitations Limited Warranty and Disclaimer. These designs are provided to you as is. Xilinx and its licensors make and you receive

More information

Digital IP Cell 8-bit Microcontroller PE80

Digital IP Cell 8-bit Microcontroller PE80 1. Description The is a Z80 compliant processor soft-macro - IP block that can be implemented in digital or mixed signal ASIC designs. The Z80 and its derivatives and clones make up one of the most commonly

More information

FPGA Interfacing of HD44780 Based LCD Using Delayed Finite State Machine (FSM)

FPGA Interfacing of HD44780 Based LCD Using Delayed Finite State Machine (FSM) FPGA Interfacing of HD44780 Based LCD Using Delayed Finite State Machine (FSM) Edwin NC Mui Custom R & D Engineer Texco Enterprise Ptd. Ltd. {blackgrail2000@hotmail.com} Abstract This paper presents a

More information

FPGAs in a Nutshell - Introduction to Embedded Systems-

FPGAs in a Nutshell - Introduction to Embedded Systems- FPGAs in a Nutshell - Introduction to Embedded Systems- Dipl.- Ing. Falk Salewski Lehrstuhl Informatik RWTH Aachen salewski@informatik.rwth-aachen.de Winter term 6/7 Contents History FPGA architecture

More information

Interrupt Lab using PicoBlaze

Interrupt Lab using PicoBlaze Interrupt Lab using PicoBlaze - Vikram & Chethan Advisor: Prof. Gandhi Puvvada Introduction An interrupt is a signal to the processor from hardware (or software) indicating an event that needs immediate

More information

EVALUATION OF PICOBLAZE AND IMPLEMENTATION OF A NETWORK INTERFACE ON A FPGA

EVALUATION OF PICOBLAZE AND IMPLEMENTATION OF A NETWORK INTERFACE ON A FPGA EVALUATION OF PICOBLAZE AND IMPLEMENTATION OF A NETWORK INTERFACE ON A FPGA Thesis project at Elektronics system Linköping Institute of Technology by Robert Mattsson Reg nr: LiTH-ISY-EX-ET-0288-2004 Linköping

More information

LCD Display. Other I/O. LCD display Flash ROM SPI EPROM Keyboard (PS/2) UART connectors DAC ADC. 2-line, 16 character LCD display

LCD Display. Other I/O. LCD display Flash ROM SPI EPROM Keyboard (PS/2) UART connectors DAC ADC. 2-line, 16 character LCD display Other I/O LCD display Flash ROM SPI EPROM Keyboard (PS/2) UART connectors DAC ADC LCD Display 2-line, 16 character LCD display 4-bit interface Relatively easy to use once you have it mapped into your processor

More information

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs New Directions in Programming FPGAs for DSP Dr. Jim Hwang Xilinx, Inc. Agenda Introduction FPGA DSP platforms Design challenges New programming models for FPGAs System Generator Getting your math into

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

Xilinx ASMBL Architecture

Xilinx ASMBL Architecture FPGA Structure Xilinx ASMBL Architecture Design Flow Synthesis: HDL to FPGA primitives Translate: FPGA Primitives to FPGA Slice components Map: Packing of Slice components into Slices, placement of Slices

More information

PicoBlaze 8-Bit Microcontroller for Virtex Devices Author: Ken Chapman

PicoBlaze 8-Bit Microcontroller for Virtex Devices Author: Ken Chapman Application Note: Virtex Series and Spartan-II family XAPP213 (v1.2) April 30, 2002 PicoBlaze 8-Bit Microcontroller for Virtex Devices Author: Ken Chapman Summary The Constant (k) Coded Programmable State

More information

Silicore Corporation

Silicore Corporation Silicore Corporation Datasheet For The: Silicore SLC1657 8-BIT RISC Microcontroller / VHDL Core Overview The Silicore SLC1657 is an eight-bit RISC microcontroller. It is delivered as a VHDL soft core module,

More information

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) DS799 June 22, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded

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

Dual Port SRAM Based Microcontroller Chip Test Report

Dual Port SRAM Based Microcontroller Chip Test Report Dual Port SRAM Based Microcontroller Chip Test Report By Sergey Kononov, et al. Chip Description Fig. 1: Chip Layout, Pin Configuration The Chip consists of 3 main components: Dual Port SRAM (DPRAM), test

More information

Documentation Design File Formats

Documentation Design File Formats PIC165X Fast RISC Microcontroller (DFPIC165X) July 16, 2008 Product Specification Digital Core Design Wroclawska 94 41-902 Bytom Poland Phone : +48 32 2828266 Fax : +48 32 2827437 E-mail : info@dcd.pl

More information

V8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs

V8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs V8-uRISC 8-bit RISC Microprocessor February 8, 1998 Product Specification VAutomation, Inc. 20 Trafalgar Square Nashua, NH 03063 Phone: +1 603-882-2282 Fax: +1 603-882-1587 E-mail: sales@vautomation.com

More information

COSC 122 Computer Fluency. Computer Organization. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 122 Computer Fluency. Computer Organization. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 122 Computer Fluency Computer Organization Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) The standard computer (von Neumann) architecture consists

More information

Verilog Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

ISE Design Suite Software Manuals and Help

ISE Design Suite Software Manuals and Help ISE Design Suite Software Manuals and Help These documents support the Xilinx ISE Design Suite. Click a document title on the left to view a document, or click a design step in the following figure to

More information

Lab 2: Barrel Shifter Design

Lab 2: Barrel Shifter Design EGR 400 A Advanced Digital System Design Using FPGAs Lab 2: Barrel Shifter Design Prepared for: Dr. Foist Christopher Parisi College of Engineering California Baptist University 10/05/12 Introduction The

More information

Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) Dragon12 LCD Display. The Dragon12 board has a 16 character x 2 line display

Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) Dragon12 LCD Display. The Dragon12 board has a 16 character x 2 line display Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) o Using the Dragon12 LCD display Dragon12 LCD Display The Dragon12 board has a 16 character x 2 line display Each character is a 5x7

More information

Dragon12 LCD Displays Huang Sections 7.8 Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) ATD_10B8C Block User Guide. Dragon12 LCD Display

Dragon12 LCD Displays Huang Sections 7.8 Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) ATD_10B8C Block User Guide. Dragon12 LCD Display Dragon12 LCD Displays Huang Sections 7.8 Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) ATD_10B8C Block User Guide o Using the Dragon12 LCD display Dragon12 LCD Display The Dragon12 board has a 16 character

More information

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a)

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a) LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a) DS836 March 1, 2011 Introduction The AXI Master Lite is an AXI4-compatible LogiCORE IP product. It provides an interface between a user-created IP

More information

ECE 486/586. Computer Architecture. Lecture # 7

ECE 486/586. Computer Architecture. Lecture # 7 ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix

More information

Design and Implementation of a FPGA-based Pipelined Microcontroller

Design and Implementation of a FPGA-based Pipelined Microcontroller Design and Implementation of a FPGA-based Pipelined Microcontroller Rainer Bermbach, Martin Kupfer University of Applied Sciences Braunschweig / Wolfenbüttel Germany Embedded World 2009, Nürnberg, 03.03.09

More information

HDL Coding Style Xilinx, Inc. All Rights Reserved

HDL Coding Style Xilinx, Inc. All Rights Reserved HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various

More information

Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) Dragon12 LCD Display. The Dragon12 board has a 16 character x 2 line display

Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) Dragon12 LCD Display. The Dragon12 board has a 16 character x 2 line display Dragon12 LCD Displays Hantronix_CLD.PDF data sheet (Dragon12 CD-ROM) o Using the Dragon12 LCD display Dragon12 LCD Display The Dragon12 board has a 16 character x 2 line display Each character is a 5x7

More information

Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices,

Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices, Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices, CISC and RISC processors etc. Knows the architecture and

More information

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems Job Posting (Aug. 19) ECE 425 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,

More information

Nikhil Gupta. FPGA Challenge Takneek 2012

Nikhil Gupta. FPGA Challenge Takneek 2012 Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using

More information

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20 University of Pannonia Dept. Of Electrical Engineering and Information Systems Hardware Design MicroBlaze v.8.10 / v.8.20 Instructor: Zsolt Vörösházi, PhD. This material exempt per Department of Commerce

More information

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1 University of Hawaii EE 361L Getting Started with Spartan 3E Digilent Basys2 Board Lab 4.1 I. Test Basys2 Board Attach the Basys2 board to the PC or laptop with the USB connector. Make sure the blue jumper

More information

Chapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware

More information

Chapter 5:: Target Machine Architecture (cont.)

Chapter 5:: Target Machine Architecture (cont.) Chapter 5:: Target Machine Architecture (cont.) Programming Language Pragmatics Michael L. Scott Review Describe the heap for dynamic memory allocation? What is scope and with most languages how what happens

More information

Lecture 4: Instruction Set Design/Pipelining

Lecture 4: Instruction Set Design/Pipelining Lecture 4: Instruction Set Design/Pipelining Instruction set design (Sections 2.9-2.12) control instructions instruction encoding Basic pipelining implementation (Section A.1) 1 Control Transfer Instructions

More information

DEVELOPMENT OF A DEBUG MODULE FOR A FPGA-BASED MICROCONTROLLER. Rainer Bermbach, Martin Kupfer

DEVELOPMENT OF A DEBUG MODULE FOR A FPGA-BASED MICROCONTROLLER. Rainer Bermbach, Martin Kupfer DEVELOPMENT OF A DEBUG MODULE FOR A FPGA-BASED MICROCONTROLLER Rainer Bermbach, Martin Kupfer University of Applied Sciences Braunschweig/Wolfenbuettel, Germany Abstract: Description of the development

More information

Hardware Software Co-design and SoC. Neeraj Goel IIT Delhi

Hardware Software Co-design and SoC. Neeraj Goel IIT Delhi Hardware Software Co-design and SoC Neeraj Goel IIT Delhi Introduction What is hardware software co-design Some part of application in hardware and some part in software Mpeg2 decoder example Prediction

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

Instruction Set Design

Instruction Set Design Instruction Set Design software instruction set hardware CPE442 Lec 3 ISA.1 Instruction Set Architecture Programmer's View ADD SUBTRACT AND OR COMPARE... 01010 01110 10011 10001 11010... CPU Memory I/O

More information

Processing Unit CS206T

Processing Unit CS206T Processing Unit CS206T Microprocessors The density of elements on processor chips continued to rise More and more elements were placed on each chip so that fewer and fewer chips were needed to construct

More information

Laboratory Exercise 7

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

More information

LogiCORE IP AXI Video Direct Memory Access v4.00.a

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

More information

Block diagram view. Datapath = functional units + registers

Block diagram view. Datapath = functional units + registers Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs = machine instruction,

More information

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

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

More information

TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE. Guoping Wang 1. INTRODUCTION

TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE. Guoping Wang 1. INTRODUCTION TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE Guoping Wang Indiana University Purdue University Fort Wayne, Indiana; Email:wang@engr.ipfw.edu 1. INTRODUCTION Computer Architecture is a common

More information

Computer Organization CS 206 T Lec# 2: Instruction Sets

Computer Organization CS 206 T Lec# 2: Instruction Sets Computer Organization CS 206 T Lec# 2: Instruction Sets Topics What is an instruction set Elements of instruction Instruction Format Instruction types Types of operations Types of operand Addressing mode

More information

TSEA44 - Design for FPGAs

TSEA44 - Design for FPGAs 2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency

More information

Architecture Project Phase (1)

Architecture Project Phase (1) Objective Cairo University CMP 301B Faculty of Engineering Spring 2013 Computer Engineering Department Architecture Project Phase (1) In this phase, it is required to design and implement a simple pipelined

More information

RECONFIGURABLE SPI DRIVER FOR MIPS SOFT-CORE PROCESSOR USING FPGA

RECONFIGURABLE SPI DRIVER FOR MIPS SOFT-CORE PROCESSOR USING FPGA RECONFIGURABLE SPI DRIVER FOR MIPS SOFT-CORE PROCESSOR USING FPGA 1 HESHAM ALOBAISI, 2 SAIM MOHAMMED, 3 MOHAMMAD AWEDH 1,2,3 Department of Electrical and Computer Engineering, King Abdulaziz University

More information

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) DS799 March 1, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded

More information

5.14 Algorithmic State Machine (ASM) Charts

5.14 Algorithmic State Machine (ASM) Charts 5.4 Algorithmic State Machine (ASM) Charts An ASM chart is an alternative method for describing a state machine More directly shows the sequential steps of a state machine. Easier to understand input priority

More information

EEL 4783: Hardware/Software Co-design with FPGAs

EEL 4783: Hardware/Software Co-design with FPGAs EEL 4783: Hardware/Software Co-design with FPGAs Lecture 5: Digital Camera: Software Implementation* Prof. Mingjie Lin * Some slides based on ISU CPrE 588 1 Design Determine system s architecture Processors

More information

LogiCORE IP AXI DMA (v4.00.a)

LogiCORE IP AXI DMA (v4.00.a) DS781 June 22, 2011 Introduction The AXI Direct Memory Access (AXI DMA) core is a soft Xilinx IP core for use with the Xilinx Embedded Development Kit (EDK). The AXI DMA engine provides high-bandwidth

More information

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,

More information

Version 1.6 Page 2 of 25 SMT351 User Manual

Version 1.6 Page 2 of 25 SMT351 User Manual SMT351 User Manual Version 1.6 Page 2 of 25 SMT351 User Manual Revision History Date Comments Engineer Version 28/07/04 First revision JPA 1.1 16/09/04 Added pin number for JP1 pinout section. Updated

More information

Field Programmable Gate Array (FPGA)

Field Programmable Gate Array (FPGA) Field Programmable Gate Array (FPGA) Lecturer: Krébesz, Tamas 1 FPGA in general Reprogrammable Si chip Invented in 1985 by Ross Freeman (Xilinx inc.) Combines the advantages of ASIC and uc-based systems

More information

ECE 545 Lecture 12. FPGA Resources. George Mason University

ECE 545 Lecture 12. FPGA Resources. George Mason University ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks

More information

Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week

Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week Objectives: Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week Build Register File Build Instruction Memory and Data Memory 1. Overview A combinational circuit neither contains

More information

16.1. Unit 16. Computer Organization Design of a Simple Processor

16.1. Unit 16. Computer Organization Design of a Simple Processor 6. Unit 6 Computer Organization Design of a Simple Processor HW SW 6.2 You Can Do That Cloud & Distributed Computing (CyberPhysical, Databases, Data Mining,etc.) Applications (AI, Robotics, Graphics, Mobile)

More information

R-type Instructions. Experiment Introduction. 4.2 Instruction Set Architecture Types of Instructions

R-type Instructions. Experiment Introduction. 4.2 Instruction Set Architecture Types of Instructions Experiment 4 R-type Instructions 4.1 Introduction This part is dedicated to the design of a processor based on a simplified version of the DLX architecture. The DLX is a RISC processor architecture designed

More information

Lab Experiment 9: LCD Display

Lab Experiment 9: LCD Display Lab Experiment 9: LCD Display 1 Introduction Liquid Crystal Displays (LCDs) provide an effective way for processors to communicate with the outside world. The LPC2148 board used in the lab is equipped

More information

LogiCORE IP Mailbox (v1.00a)

LogiCORE IP Mailbox (v1.00a) DS776 September 21, 2010 Introduction In a multiprocessor environment, the processors need to communicate data with each other. The easiest method is to set up inter-processor communication through a mailbox.

More information