Professional Documents
Culture Documents
: H 312
2012
2
Datapath
:
1.
.
2. .
3. .
4. (ALU).
5. (MEM).
non-pipelined
CHARIS-2 (CHAnia Risc
Instruction Set, 2) :
1. 32 32 bits. R0 .
2. 32 bit , DLX
.
3. R-type: add, sub, or, and, not, jr.
4. I-type: addi, ori, andi, lw, sw, beqz, bnez.
5. J-type: j, jr.
format R-type :
6-bit
5-bit
5-bit
5-bit
5-bit
6-bit
Opcode
Rs
rt
Rd
not-used
funct
format I-type :
6-bit
5-bit
5-bit
16-bit
opcode
rs
rt
Immediate
format J-type :
6-bit
26-bit
opcode
Disp
byte,
( lw sw)
4 bytes.
:
Opcode
FUNC
110000
001011
add
110000
001111
sub
110000
000110
and
110000
000001
not
RF[rd] ! RF[rs]
110000
000111
or
110000
001000
shr
110000
001101
shl
110000
100000
jr
PC RF[rs] ( rt = 0)
011000
PC disp << 2
000011
addi
000111
andi
001111
ori
011111
beqz
if (RF[rs] == 0)
PC PC + 4 + (SignExtend(Imm) << 2)
else PC PC + 4
111111
bneq
100001
lw
if (RF[rs] != 0)
PC PC + 4 + (SignExtend(Imm) << 2)
else PC PC + 4
RF[rt] MEM[RF[rs] + SignExtend(Imm)]
100011
sw
. CHARIS
. ,
:
.
ALU ,
Register File, Immediate ,
..
.
.
. (IF)
1024x32
Wizard Xilinx ROM
1024 32 bits. .
: ,
. :
Addr
10 bit
Dout
32 bit
Clk
1bit
: Project
IP (Coregen & Architecture Wizard) MEM1024x32
, NEXT Memories & Storage elements
RAMs & ROMs Block Memory Generator NEXT Finish.
NEXT Single Port ROM.
Generate.
B1.
,
.
:
1. PC (32 bit)
2.
3. ( /incrementor 4)
PC + 4
4. (PC + 4) +Immediate
branch
5. 4 1 4 (PC+4,
PC+4+Immediate, Displacement, Register) PC.
:
PC_Immed
32 bit
PC_Disp
32 bit
Displacement j
PC_Reg
32 bit
Reg jr (RF[rs])
PC_sel
2 bit
PC:
0 PC+4,
1 PC+4 + Immediate,
2 Displacement,
3 Register
PC_LdEn
Instr
1 bit
32 bit
PC
Reset
1 bit
Reset PC
Clk
1 bit
1.
2. VHDL
,
, , .
IFSTAGE.vhd
3. .
mem1024x32.coe
PC.
PC_Reg
PC_Disp
PC_Immed
MUX
+4
PC_Sel
PC_LdEn
PC
Clk
IMEM
Instr
Reset
1: .
. (DECODE)
1
,
.
:
1.
2. 2 1 2
(rt rd)
3. 2 1 2
(ALU MEM)
4. 16 bits immediate
32 bits
immediate 2 , zero-filling signextension immediate 32 bit.
Instr
RF_WrAddr_sel
32 bit
1 bit
:
0 rt
1 rd
RF_WrEn
1 bit
ALU_out
32 bit
ALU
MEM_out
32 bit
RF_WrData_sel
1 bit
:
0 ALU
1 MEM
RF_A
32 bit
RF A EXSTAGE IFSTAGE
RF_B
32 bit
RF B EXSTAGE MEMSTAGE
Immed
32 bit
Clk
1 bit
1.
2. r0 0 ().
;
3. VHDL
Register File
, , , .
: DECSTAGE.vhd
4.
.
.
Read
register1
Instr(25-21)
Instr(20-16)
Read
register2
Instr
Read
data1
RF
Write
register
Instr(15-11)
Read
data2
RF_A
RF_B
Write data
Instr(15-0)
16 bit
MUX
ALU_out
32 bit
MEM_out
RF_ WrData_sel
Instr(25-0)
Immed
RF_ WrAddr_sel
PC_Disp
2: .
. (ALU)
ALU 1 ,
.
:
1. ALU
2. ALU
(RF(B) Immediate).
(ALU) :
RF_A
32 bit
RF[rs] ALU(A)
RF_B
32 bit
RF[rt]
Immed
32 bit
Immediate
ALU_Bin_sel
1 bit
ALU_func
4 bit
ALU
ALU_out
32 bit
1.
2. VHDL
,
, , .
:ALUSTAGE.vhd
3.
.
Immed
ALU_Bin_sel
ALU_out
MUX
RF_B
ALU
RF_A
ALU_func
3: .
. (MEM)
Wizard Xilinx RAM
(Block Memory Generator) 1024 32 bits.
. :
/, ,
.
clk
1 bit
Mem_WrEn
1 bit
Mem_RdEn
1 bit
----
ALU_out_to_MEM_addr
32 bit
ALU ( MEM_AddrIn)
RF_B_to_MEM_in
32 bit
RF[rt]
sw ( _DataIn)
MEM_ out
32 bit
lw (
_DataOut)
1.
2. VHDL
.
C:\HRY312\MEMSTAGE.vhd
3. .
mem1024x32.coe
.
MEM_AddrIn
MEM
MEM_DataOut
MEM_DataIn
MEM_WrEn
4: .
1. VHDL ().
2. datapath
.
3. ( ).
4. datapath
- .
5. (
).
/
modules
.
:
Project.