programirljivi digitalni sistemi - lniv.fe.uni-lj.si · 1 101 01 1 jmp 5 if vh=1 1 100 10 1 jmp 4...
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
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
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