programirljivi digitalni sistemi - lniv.fe.uni-lj.si · 1 101 01 1 jmp 5 if vh=1 1 100 10 1 jmp 4...

23
Procesorji Univerza v Ljubljani Fakulteta za elektrotehniko Programirljivi Digitalni Sistemi Laboratorij za načrtovanje integriranih vezij Mikrosekvenčnik in učni mikroprocesor

Upload: lyque

Post on 17-Jul-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Procesorji

Univerza v Ljubljani

Fakulteta za elektrotehniko

Programirljivi Digitalni Sistemi

Laboratorij za načrtovanje integriranih vezij

Mikrosekvenčnik in učni mikroprocesor

Programirljiva vezja / procesorji

programirljivo vezje

programski biti določajo strukturo (konfiguracijo)

LC LC

LC LC

delovanje logičnih celic (LC)

povezave znotraj LC

povezave v povezovalni mreži

pomnilnik CPE

mikroprocesor

program določa ukaze, ki jih CPE izvaja

Mikro-programirano krmilno vezje

mikroukazi so besede v

pomnilniku

mikroprogram je

zaporedje mikroukazov

v programski pomnilnik

vrste RAM lahko

vpisujemo mikroukazeregister stanj

programski

pomnilnikVHOD

podateknaslov

naslednje stanje

stanje

Krmilni avtomat narejen z LUT je mikro-programiran

mikro-programirano vezje ima krmilne vrednosti shranjene v

pomnilniku vrste ROM ali RAM

5

4

4

6IZHOD

Mikro-programiran krmilnik s števcem

prog. števec

programski

pomnilnik podateknaslov

Programski števec omogoča izvedbo skokov

izvrševanje algoritmov, ki nimajo vseh mikroukazov v

zaporedju

N

IZHOD

load naslov izhod

N M

Izvedba semaforja z mikrosekvenčnikom

Sekvenčno vezje s sekvenčnim strojem

generator impulzov: ob vh=1 impulz dolžine 1, ob vh=2 dolžine 2, ob vh=3 pa 3

Off0

On1 1

vh=3

On2 1

On3 1

vh=0

vh=2

vh=1

stanje izhod

0 0 Off 0

0 1 On1 1

1 0 On2 1

1 1 On3 1

stanje=Q vh D

0 0 0 00 11 01 1

0 01 11 00 1

0 1 x x 1 0

1 0 x x 1 1

1 1 x x 0 0

tabela prehajanja stanjdoloča vhodno logiko

Sekvenčno vezje z mikrosekvenčnikom

algoritem v obliki zaporedja ukazov

Off0

On1 1

vh=3On2

1On3

1

vh=0

vh=2

vh=1

naslov ukaz izhod

0 jmp 5 if vh=1 0

1 jmp 4 if vh=2 0

2 jmp 0 if vh=0 0

3 no 1

4 no 1

5 jmp 0 1

naredimo mikrosekvenčnik s pomnilnikom, programskimštevcem in dekodirnikom

kodiranje ukazov: load(1) naslov(3) pogoj(2) izhod(1)

1 101 01 1 jmp 5 if vh=11 100 10 1 jmp 4 if vh=21 000 00 1 jmp 0 if vh=00 000 00 1 no

Sekvenčno vezje z mikrosekvenčnikom

algoritem v obliki zaporedja ukazov

Off0

On1 1

vh=3On2

1On3

1

vh=0

vh=2

vh=1

naslov ukaz izhod

0 jmp 5 if vh=1 0

1 jmp 4 if vh=2 0

2 jmp 0 if vh=0 0

3 no 1

4 no 1

5 jmp 0 1

Mikrosekvenčnik z novim algoritmom

semafor: signal vh določa spremembo stanja

rdru110

ze001

ru010

rd100

vh=1

vh=1naslov ukaz izhod

0 no 110

1 jmp 3 if vh=1 001

2 jmp 1 001

3 no 010

4 jmp 0 if vh=1 100

5 jmp 4 100

kodiranje ukazov: load(1) naslov(3) pogoj(1) izhod(3)

1 011 1 001 jmp 3 if vh=1

Mikrosekvenčnik z novim algoritmom (2)

semafor: signal vh določa spremembo stanja

rdru110

ze001

ru010

rd100

vh=1

vh=1

kodiranje ukazov: load(1) naslov(3) pogoj(1) izhod(3)

1 001 1 001 jmp 1 if vh=0

naslov ukaz izhod

0 no 110

1 jmp 1 if vh=0 001

2 no 010

3 jmp 3 if vh=0 100

4 jmp 0 100

Mikro-programiran krmilnik s števcem

štev. (PC)

programski

pomnilnik mikroukaz

naslov

pogoj naslovkrmilni izhodi

podatkovna

pot

Mikroukazi

mikroprogram se izvaja kot

zaporedje mikroukazov

mikroukazi določajo

krmilne izhode

skočni ukazi ob pogoju

izvršijo skok na nov naslov

Mikro-programirana krmilna (procesna) enota

štev. (PC)

programski

pomnilnik mikroukaz

naslov

pogoj naslovkrmilni izhodi

ALE

register

register

register

register

izvršilna enota z ALE

in pomnilnikom

podatk.

pomnilnik

status

Mikroprocesorji v programirljivih vezjih

izvedba s program. logiko (Soft Core)

vnaprej pripravljene komponente intelektualne lastnine

procesor prevedemo (sinteza, tehnološka preslikava)

zgradbo procesorja in število jeder prilagodimo aplikaciji

Altera Nios (32-bit), LNIV CPE4 (12-bit)

izvedba z namenskim vezjem (Hard Core)

programirljivo vezje in mikroprocesor na istem čipu

bolj zmogljiva / manj prilagodljiva izvedba

ARM-9 (Altera in Xilinx)

Prednosti procesorjev v tehnologiji FPGA

sodobna vezja FPGA so dovolj velika za CPE

zapletena opravila izvajamo na procesorju

na FPGA lahko naredimo celoten sistem

manj integriranih vezij v napravi

nismo odvisni od proizvajalcev procesorjev

prilagodljivost

CPE popolnoma prilagodimo aplikaciji

signal število bitov

opis

clk 1 Sistemska ura.

rst 1 Reset signal.

a 8 Naslov pomnilnika.

data 12 Podatkovni vhod.

dataout 12 Podatkovni izhod.

we 1 Pisanje v pomnilnik.

dat_i 12 Vhodna vrata.

dat_o 12 Izhodna vrata.

we_o 1 Pisanje v izhodna vrata.

adr_o 1 Vhodno-izhodni naslov.

Učni mikroprocesor za FPGA

N-bitni procesor (N=12), 16 mikrooperacij (ukazov)

procesorsko jedro (CPU) in programski pomnilnik

Procesor zasede malo celic v vezju FPGA

Učni mikroprocesor za FPGA: zgradba jedra

krmilna

enota

programski

števec

akumulator

ALE

12-bitno vodilo

RAM

( program

in podatki )

Vhodna

vrata

Izhodna

vrata

8 naslov4 ukaz 12 bit

Učni mikroprocesor za FPGA: ALE

Operacije aritmetično-logične enote

vhodne podatke dobimo iz pomnilnika, vhodne enote in akumulatorja, rezultat (s) se shrani v akumulator

rezultat operacije ALE nastavi zastavice (ničelna, prenos)

Ukazi

ukazi se izvedejo v dveh korakih

zajem ukaza (iz pomnilnika prenesi ukaz in naslov - Adr)

izvedba (aritmetična, logična mikrooperacija, prenos podatka…)

Strojne kode in zbirnik

lda koda := "0001"; -- naloži iz RAM a = [M]

sta koda := "0010"; -- shrani v RAM [M] = a

add koda := "0100"; -- prištej a = a + [M]

sub koda := "0101"; -- odštej a = a - [M]

anda koda := "0110"; -- logična a = a and [M]

ora koda := "0111"; -- logična a = a or [M]

jmp koda := "1000"; -- skok na nov naslov

jze koda := "1001"; -- skok, če je a=0

prog.

števec

a

ALE

RAM

inp koda := "0011"; -- naloži iz vhoda a = IN

outp koda := "0111"; -- shrani na izhod OUT = a

ukaz operand

oznaka

komentar

start: lda 30 ; naloži konstanto v akumulator

Potek izvajanja prrograma v zbirniku

program, ki računa: 2+2+2+2+...

start: lda vred ; naloži vred

add vred ; prištej vred

jmp start ; skok nazaj

vred db 2 ; direktiva

0: 0001 0000 0011

1: 0100 0000 0011

2: 1000 0000 0000

3: 0000 0000 0010

Simulator: http://lniv.fe.uni-lj.si/cpu.html

Povzetek

Predstavi mikroprogramirano vezje (mikrosekvenčnik).

Iz katerih gradnikov je sestavljen mikrosekvečnik?

Navedi glavne gradnike mikroprocesorja.

Opiši primer vezave aritmetično-logične enote.

Opiši delovanje mikroprocesorja.

Predstavi sestavne gradnike, prenos in obdelavo podatkov.