Source : http://www.scribd.com/doc/51534460/108/YASEP "Soft-Processor IP per FPGA Tipologie e confronto" Michael Marioli, 2009-2010 Edited and updated : 20120910 by whygee@ygdes.com 3.12 YASEP Yasep (Yet Another Small Embedded Processor) `e un soft-processor realizzato, in VHDL, da Yann Guidon e disponibile gratuitamente sotto licenza AGPL. Sono disponibili due versioni del processore, lo YASEP16 e lo YASEP32, che differiscono oltre che per la dimensione del datapath, in alcuni altri punti riguardanti il set d’istruzioni, la memoria e le dimensioni. Le caratteristiche principali di tale processore, il cui schema a blocchi `e riportato in figura3.25, sono: • Architettura RISC a 16 o 32 bit a seconda della versione; • Pipeline a 4 stadi: fetch, decode/read, execute e write back; • Set d’istruzioni ortogonale: istruzioni a 16 bit con possibilità di estensione a 32; sono permessi quattro formati delle istruzioni: – RR: 16 bits con 2 registri; – iR: 16 bits con un registro e un valore immediato, con segno, di 4 bits; – IRR: 32 bits con 2 registri e un valore immediato, con segno, di 16 bits; – RRR: 32 bits con 3 registri. "Extended long form" (32 bits) con 3 registri e altri • 16 registri, R0 R1 R2 R3 R4 PC A0 D0 A1 D1 A2 D2 A3 D3 A4 D4, divisi in quattro gruppi (rifucendo il numero di opcode necessari): – Normal: R0, R1, R2, R3 e R4, usati per memorizzare temporaneamente risultati di operazioni, contatori, parametri di funzioni... – Adress: A0, A1, A2, A3 e A4, contengono l’indirizzo in cui verr`a lettoo scritto il dato; – Data: D0, D1, D2, D3 e D4, legati ai registri adresss, contengono il dato memorizzato nella locazione indirzzata dal registro associato (Dx=memory[Ax]); – PC: `e il puntatore all’istruzione a quella in ese-cuzione, viene automaticamente incrementato e pu`o essere letto e scritto (la scrittura corrisponde ad un’istruzione di salto). • "Special Registers space" (SR) dedicato a operazioni di I/O, configurazione, gestione di eccezioni e interrupt...