Skip to content

Commit aa073aa

Browse files
committed
ajout makefile
1 parent 0bc7b2b commit aa073aa

File tree

3 files changed

+64
-26
lines changed

3 files changed

+64
-26
lines changed

Journal_alpha

+42-7
Original file line numberDiff line numberDiff line change
@@ -71,21 +71,31 @@ Explication de DECOD:
7171
- "mtrans_mask": le mask sur les registers a traiter a tout instant
7272
- "mtrans_nbr": le nombre de registre que reste a etre traiter
7373
- "mtrans_list": la liste des registre qui reste a traiter
74-
- "mtrans_rd": prochain register a traiter, le registre de destination
74+
- "mtrans_rd": prochain register a traiter, le registre de dest ou source
7575
- "mtrans_1un": quand le multi-transfert n'a qu'un seule registr a traiter
7676

7777
+ Il ya un cycle qui separe MEM et DECOD, ce qui reste interessant.
7878

7979
------------------------------------------------------------------------------------------------
8080
Explication de Exec:
8181
> ALU
82-
- commandes(dec_alu_cmd): 00 => add | 01 => and | 10 => or | 11 => xor
82+
- commandes(dec_alu_cmd):
83+
00 => add | 01 => and | 10 => or | 11 => xor
8384

84-
> SHIFTER
85+
> SHIFTER
86+
- Rm qui correspond a l'op2 qui est shifter
8587

8688

8789
---------------------------------------------------------------------------------------------------------
8890
Explication sur la machine a etat du DECOD
91+
Dans le decode il faut satisfaire les instructions selon leur cycle:
92+
- regop_t : 1 cycle
93+
- mult_t : 1 cycle + m cycle interne
94+
- branch_t : 2 cycle
95+
- mtrans_t : 15 cycle
96+
- trans_t : 1 cycle
97+
98+
8999
> FETCH: apres demarage Decod envoi une valeur vers Ifetch
90100
- reste quand la fifo vers Ifetch est pleine
91101
- quitte vers RUN une valeur PC ecrite dans
@@ -103,7 +113,10 @@ Explication sur la machine a etat du DECOD
103113

104114
> LINK:
105115
pris systematiquement: calcul de la nouvelle valeur PC par EXEC
106-
(puis vers BRANCH)
116+
(puis vers BRANCH).
117+
Il faut Remarquer dans le decode d'une instruction le PC est deja a PC+8, a cause
118+
du prefetch, c-a-d que quand decode deja a PC+8, la fifo if2dec contient PC et
119+
l'inst PC+4 est entrain d'etre recuperer par IFetch.
107120

108121
> BRANCH:
109122
- reste: if2dec est vide
@@ -129,16 +142,19 @@ Descriptions de instructions
129142
- regop
130143

131144
> Swap:
145+
- pas valeur immediat
132146
<SWP>{cond}{B} Rd,Rm,[Rn] , B = 1 => load byte, B = 0 => load word
133147
- swap_t:
134148
Rd <= [Rn]
135149
Rn <= Rm
136150

137-
> Mutiplication:
151+
> Mutiplication:
152+
- pas de valeur immediat
138153
Rd <= Rm * Rs + Rn si A=1 sinon Rd <= Rm * Rs
139154
- mla_i: op1 <= Rm; op2 <= Rs;
140155
dec_mem_data <= Rn (puisqu'il est accessible par exec)
141156
- mul_i: op1 <= Rm; op2 <= Rs;
157+
- c'est possible de comfondre mla_i & mul_i avec Rn=0 pour mul_i
142158

143159
- la multiplication est un process dans DECOD:
144160
+ pour l'instant la seule solution avec ce modele d'architecture
@@ -152,14 +168,28 @@ Descriptions de instructions
152168

153169
> transferts de donnees:
154170
- trans:
155-
Load:
171+
les complement peuvent etre utilise "comp_op{1,2}"
172+
avec les pre_index = 0, on prend l'op1 = Rn
173+
174+
Load:
156175
Store:
157176

158177
> multi transferts de donnees:
159178
- mtrans:
160179
Load:
161180
Store:
162181

182+
------------------------------------------------------------------------
183+
Comment ecrire des Test compiler
184+
> Le TME3 vlsi umpc est peut etre comme reference
185+
> (Voir Main/main_tb)
186+
Dans programme qu'il faut tester sur le processor
187+
pour savoir s'il a reussi le test ou pas il doit avoir
188+
des branchement _good et _bad, il doit se mettre sur
189+
un des branchement pour que le simulateur s'arrete
190+
les 2 branchment sont connu apres le chargement
191+
voir(C_model/src/mem.c).
192+
> On peut compiler un programme en C et le linker avec "sections.lds"
163193

164194
--------------------------
165195
A retenir
@@ -170,4 +200,9 @@ A retenir
170200
+ lors d'un traiement candencer avec une horloge, visualiser
171201
a l'instant le traiement.
172202
+ IMPORTANT: les dependance Write after Read doivent etre pris en compte
173-
pour la validite de l'operation
203+
pour la validite de l'operation
204+
205+
206+
207+
> LA FIFO A COrriger
208+

Makefile.txt

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
GHDL=ghdl
2-
GHDL_OP = -v
2+
GHDL_OP = -v --ieee=synopsys -fexplicit
33
C_MOD_DIR = ../C_model/
44
all : main_tb
55

@@ -18,32 +18,32 @@ main_tb.o : main_tb.vhdl icache.o dcache.o ram.o
1818
arm_core.o : arm_core.vhdl ifetch.o decod.o exec.o mem.o
1919
${GHDL} -a ${GHDL_OP} arm_core.vhdl
2020

21-
ifetch.o : ifetch.vhdl fifo_generic.o
21+
ifetch.o : ifetch.vhdl fifo_32b.o
2222
${GHDL} -a ${GHDL_OP} ifetch.vhdl
2323

24-
decod.o : ../DECOD/decod.vhdl fifo_32b.o fifo_127b.o reg.o
25-
${GHDL} -a ${GHDL_OP} ../DECOD/decod.vhdl
24+
decod.o : decod.vhdl fifo_32b.o fifo_127b.o reg.o
25+
${GHDL} -a ${GHDL_OP} decod.vhdl
2626

27-
reg.o : ../DECOD/reg.vhdl
28-
${GHDL} -a ${GHDL_OP} ../DECOD/reg.vhdl
27+
reg.o : reg.vhdl
28+
${GHDL} -a ${GHDL_OP} reg.vhdl
2929

30-
exec.o : ../EXEC/exec.vhdl fifo_72b.o alu.o shifter.o
31-
${GHDL} -a ${GHDL_OP} ../EXEC/exec.vhdl
30+
exec.o : exec.vhdl fifo_72b.o alu.o shifter.o
31+
${GHDL} -a ${GHDL_OP} exec.vhdl
3232

33-
fifo_72b.o : ../FIFO/fifo_72b.vhdl
34-
${GHDL} -a ${GHDL_OP} ../FIFO/fifo_72b.vhdl
33+
fifo_72b.o : fifo_72b.vhdl
34+
${GHDL} -a ${GHDL_OP} fifo_72b.vhdl
3535

36-
fifo_32b.o : ../FIFO/fifo_32b.vhdl
37-
${GHDL} -a ${GHDL_OP} ../FIFO/fifo_32b.vhdl
36+
fifo_32b.o : fifo_32b.vhdl
37+
${GHDL} -a ${GHDL_OP} fifo_32b.vhdl
3838

39-
fifo_127b.o : ../FIFO/fifo_127b.vhdl
40-
${GHDL} -a ${GHDL_OP} ../FIFO/fifo_127b.vhdl
39+
fifo_127b.o : fifo_127b.vhdl
40+
${GHDL} -a ${GHDL_OP} fifo_127b.vhdl
4141

42-
alu.o : ../EXEC/alu.vhdl
43-
${GHDL} -a ${GHDL_OP} ../EXEC/alu.vhdl
42+
alu.o : alu.vhdl
43+
${GHDL} -a ${GHDL_OP} alu.vhdl
4444

45-
shifter.o : ../EXEC/shifter.vhdl
46-
${GHDL} -a ${GHDL_OP} ../EXEC/shifter.vhdl
45+
shifter.o : shifter.vhdl
46+
${GHDL} -a ${GHDL_OP} shifter.vhdl
4747

4848
mem.o : mem.vhdl
4949
${GHDL} -a ${GHDL_OP} mem.vhdl

build.sh

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@ cp Fifo/fifo_32b.vhdl build/fifo_32b.vhdl
1616
cp ALU/alu.vhdl build/alu.vhdl
1717
cp Shifter/shifter.vhdl build/shifter.vhdl
1818
cp Mem/mem.vhdl build/mem.vhdl
19-
echo "Do makefile in 'build' directory, you must have ghdl"
19+
cd build
20+
make
21+
echo "compilation finished !"
22+
echo "to launch: ./build/main_tb"

0 commit comments

Comments
 (0)