Download presentation
Presentation is loading. Please wait.
Published byBrice Webster Modified over 9 years ago
1
Picoblaze Overview EENG 2910
2
Introduction 8-bit microcontroller for Xilinx devices Soft Core – Soft Processor 5% of the resources of spartan 3 (3S200 devicee) Compact, and Flexible Utilized for simple data processing and control
3
Introduction 8-bit data width 8-bit ALU with carry and zero flag 16 8-bit general-purpose registers 64-byte data memory 18 bit instruction width 10-bit instruction address (supports 1024 instr.) 256 input ports and 256 output ports 2 clock cycles per instruction
5
Instruction Set Logical Instructions Arithmetic Instruction Compare and test Instruction Shift and rotate Instruction Data Movement Instruction Program flow control Instructions Interrupt related Instruction
6
Programming Model (Notation) sX, sY : represents General Purpose Register Pc : Program Counter Tos : top-of-stack pointer of the call/return stack c, z, i: carry, zero, and interrupt flags Kk : 8 bit constant or port id Ss : 6-bit constant data memory address AAA: 10-bit constant instruction memory address.
7
Instruction Format op sX, sY : register-register format (sX, sY – operand, op – operation, sX – destination, sX sX op kk) op sX, kk: register-constant format (?) op sX: single – register format – used in shifting and rotating instructions with one operand. op AAA : single-address format. E.g jump and call instruction. AAA – address. Op - instruction without operand
8
Operations (Examples) Logical Operation (6 instructions) : and, or, xor Arithmetic operation (8): add, addcy or addc (addcy – add with carry flag), sub, subcy or subc. Compare and Test operation: compare sX, sY or comp sX, sY, compare sX, kk or comp sX, kk if sX=sY then z 1 else z 0; if sX>sY then c 1 else c 0; test sX, SY t s X and s Y ; if t = 0 then else z 0; C t(7) xor t(6) xor....xor t(0)
9
Operations Shift and Rotate Instruction sl0 sX – Shift a register left 1 bit and shift 0 into the LSB. sX sX(6…0) & 0; c sX(7) sl1 sX – shift a register left 1 bit and shift 1 into LSB. sX sX(6…0) & sX(0); c sX(7) slx sX – shift a register left 1 bit and shift sX(0) into the LSB. sla sX – shift left 1 bit and shift c into LSB similarly, sr0, sr1, srx, sra sX, rl sX, rr sX etc.
10
Data Movement Computation done via Registers and ALU Movement between - registers – load -Register and data RAM – Fetch and Store -Register and I/O port : input and output Load sX, sY; load sX, kk; - sX (sY or kk); fetch sX, (sY) or fetch (sX, sY);- sX RAM(sY); Fetch sX, SS, - sX RAM(sY); store sX, (sY) (or store sX, sY) –RAM[sX] sX; - move data from register to data RAM. Input sX, (sY), or in sX, sY –move data from input port to a register. sX in_port Output sX, (sY) (out sX, sY) move data from a register to the input port
11
Program Flow Jump, call, and return – load a value to the program counter and modify program flow. Unconditionally or conditionally based on zero and carry flags. Jump AAA – unconditional jump Jump c, AAA – jump if carry flag is set ( if c = 0 then pc AAA else pc = pc + 1) Jump nc, AAA; jump z, AAA; jump nz, AAA
12
Program flow - Call and Return Implementation of functions Call – loads a new value to the pc, saves it current value to a stack (special buffer). The routine contains a return( obtains the saved value from the stack and increment by 1) at the end. Picoblaze support nested function (LIFO). Picoblaze has 31-word stack.
13
Program flow Call AAA (unconditionally call subroutine) tos tos Stack [tos] pc; Pc AAA Call c, AAA (conditionally call subroutine) If (c = 1) tos tos Stack [tos] pc; Pc AAA Else Pc pc + 1 Return (ret) Return c, (ret c)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.