Agenda. PicoBlaze Hello World project using the PicoBlaze. Class 9 Copyright 2011 Greg Tumbush Ver 1.0 1
|
|
- Garry Clark
- 6 years ago
- Views:
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 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 informationChanges 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 informationChapter 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 informationPicoBlaze 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 informationImplementing 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 informationCDA 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 informationCDA 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 informationPicoBlaze 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 informationHow-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 informationPicoBlaze 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 informationPicoBlaze 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 informationPicoBlaze 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 information17.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 informationLab 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 informationUnit 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 informationSpiral 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 informationEE 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 informationLearning 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 informationPICOBLAZE 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 informationProgrammable 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 informationTopics. 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 informationKCPSM. 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 informationELEC 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 informationLearning 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 informationInterrupt 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 informationDigital 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 informationELCT501 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 informationPicoBlaze 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 informationLecture 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 informationCHAPTER 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 informationTopics. 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 informationMicrocomputer 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 informationBlock 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 informationLaboratory 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 informationEfficiency 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 informationMIGRATING 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 informationPicoBlaze 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 informationSHA-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 informationDigital 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 informationFPGA 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 informationFPGAs 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 informationInterrupt 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 informationEVALUATION 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 informationLCD 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 informationAgenda. 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 informationCS/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 informationXilinx 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 informationPicoBlaze 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 informationSilicore 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 informationLogiCORE 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 informationToday. 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 informationDual 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 informationDocumentation 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 informationV8-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 informationCOSC 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 informationVerilog 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 informationISE 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 informationLab 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 informationDragon12 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 informationDragon12 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 informationLogiCORE 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 informationECE 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 informationDesign 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 informationHDL 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 informationDragon12 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 informationUnderstanding 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 informationJob 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 informationNikhil 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 informationHardware 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 informationUniversity 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 informationChapter 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 informationChapter 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 informationLecture 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 informationDEVELOPMENT 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 informationHardware 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 informationFPGA 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 informationInstruction 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 informationProcessing 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 informationLaboratory Exercise 7
Laboratory Exercise 7 Finite State Machines This is an exercise in using finite state machines. Part I We wish to implement a finite state machine (FSM) that recognizes two specific sequences of applied
More informationLogiCORE 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 informationBlock 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 informationLogiCORE 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 informationTEACHING 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 informationComputer 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 informationTSEA44 - 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 informationArchitecture 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 informationRECONFIGURABLE 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 informationLogiCORE 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 information5.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 informationEEL 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 informationLogiCORE 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 informationA 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 informationVersion 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 informationField 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 informationECE 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 informationLab 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 information16.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 informationR-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 informationLab 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 informationLogiCORE 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