16 BIT_RISC Processor CPU 설계
11.27~01.05
12.29
branch instruction을 추가하여
불필요한 동작들을 뛰어 넘도록 했다.
branch instruction은 b / bne / beq / bcc / bcs 총 5가지 instruction을 추가하여 만들었다.
R0에 2를 세팅 한 뒤 비교
2 – n = 0 이면 branch 통해 점프
아니면 계속 counting
Dead가 아닌 T2로 점프 된다.
R0에 1을 하는 순간
10000이 되면서 CARRY가 된다.
만약 CARRY SET이 되어 있으면 bcc
아니면 DEAD로 간다.
그렇게 해서
CARRY하고 ZERO 두 캐리를 만들어야 한다.
SUM을 1BIT 늘려준다.
15:00 이 아닌
16:00으로 만들어 줘야 한다.
플레그를 두개를 만들어야함
케리 셋 – 이퀄 / 낫 이퀄
SUM[16:0] = CARRY
리덕션한 값이 0 이면 0
SUM값을 비교하여 bcc와 bcs 두 가지 instruction을 만들어 동작 되게 하였다.
SEG_7부분 가져옴
Proc
Branch는 state를 뛰어 넘는 용도로 사용 됨
또한
Part5에서는 Branch에서 움직이는
state가 5개가 추가됐다.
(III) 값에 따라 5가지로 분류하였다.
B / beq / bne / bcc / bcs
b는 000일 때
아무런 동작 없이 그 다음 state로 넘어감
beq는 001일 때
바로 전 연산 값이 0000일 때 beq값을 받고
지정된 주소에 값을 0001 넣어준 후 state 넘어감
bne는 010일 때
바로 전 연산 값이 0000이 아닐 때 bne값을 받고 지정된 주소 값에 0005를 넣어 준 후 state 넘어감
bcc는 011일 때
DX9 DATA값에 17번째 BIT를 봐서 0이면
CARRY CLEAR 발생 이후 해당 주소 값에
0009를 넣고 다음 STATE 진행
bcs는 100일 때 이며,
DX9 DATA값에 17번째 BIT를 봐서 1이면
해당 주소 값에 000c를 넣고 다음 STATE 진행
Wire를 통해
Beq, bne / bcc, bcs 2가지 플래그인 z와 c를 선언 해주었다.
Assign을 통해 cond 라는 (III)상태를 확인하는 변수를 선언하여 상태를 확인해준다.
Dec3to8을 decb선언해서 b~bcs를 통해 받는
pc값의 데이터 자리 수를 맞춰 줌
WIRE Z에서 G에서 보는 이유 SUM값은 저장이 불가능 계속 지워 짐
그래서 바로 밑인 G값에서 값을 비교하는 것!
파라미터를 선언하여
Branch 값을 나타내주었고,
III(000~100) 값에 따라 알맞는 변수가 되도록 설정했다.
Sel_D : 16비트를 맞춰준 값
DATA 9자리를 불러온 뒤 앞에 0000000 7BIT를 붙여 16BIT 자리를 만들어 줬다.
STATE T1~T2 / T4~T5 PART4까지와 동일,
기존 STATE인 T3에 BRANCH STATE를 추가
왜? DATA_SHEET를 보면 T3 에서만 STATE가 돌고있음
만약 cond가 b라면 sel은 sel_d선택
Rin에 breg값 넣어줌
그러고 종료 >> 다음 state
다음 cond가 beq면 sel값을 sel_d를 선택하게 해서 비교를 함, data가 z를 만족하는지 확인
만족하면 Rin에 선택된 값인 breg 넣어
다음 state 넘어가
Cond가 bne라면 sel에 sel_d를 넣어 비교할 수 있도록 해, 만약 z 조건을 충족하지 않는다면,
Rin은 breg를 넣음
Bcs도 마찬가지로 선택 후, 비교
비교해서 맞으면 주소에 data넣는
simulation
Digital Logic Enhanced Processor(instruction add Branch)-LINUX (0) | 2024.01.01 |
---|---|
Digital Logic Enhanced Processor (Add Instruction memory load and store)_HEX (1) | 2023.12.27 |
Digital Logic Enhanced Processor (Add Instruction memory load and store) (0) | 2023.12.23 |
Advanced Veilog-1 (2) | 2023.11.13 |