프로그래밍

Verilog 질문좀,,,

IDEC에서 Verilog로 마이크로프로세서 설계해보기 강좌를 수강을 했는데

수업 들을 때는 그냥 그런갑다 하면서 들었는데

끝나고 복습하려니까 왜 이해가 하나도 안가는지 ,,, 미치겠습니다 ,,,

 

아키텍쳐.jpg

 

위 구조로 이루어진 마이크로프로세서를 설계하는 코드입니다.

 * MAR : BRAM의 주소

 * MDR : BRAM의 데이터값

 

하이라키는 다음과 같습니다.

전체하이라키.jpg

 

명령어 포맷(IR)은 다음과 같습니다.

명령어포맷.jpg

 

명령어 리스트는 다음과 같습니다.

명령어 모음.jpg

 

FSM은 

fetch , decode , execute 이고요

 

1. fetch :

MAR <= PC // PC = 0부터 시작

read memory ( MDR = MEM[MAR]) // 0번째 메모리의 데이터를 읽는다.

IR <= MDR // 데이터를 IR에 넣는다.

PC <= PC + 1 // PC 1증가

 

2. decode : 

MAR <= IR [7:0] // IR의 하위 8비트를 MAR에 넣는다.

read memory

 

case (IR(15:8))  // IR의 상위 비트에 따라 동작 결정

        ADD : begin ~ end

        SUB : begin ~ end

endcase        

 

3. execute // 위에서 결정된 동작 실행

        goto fetch

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

현재 이해가 안가는 점

설계된 칩의 용도를 모르겠습니다,,

수업 들을 땐 덧셈이니 뺄셈이니 그냥 계산기라고 생각하고 들었는데, 계산기라고 하기엔

input에 clk와 reset밖에 없습니다 ,,

 

코드를 처음부터 해석해보면, 메모리에 초기값을 저장해놓고, 단순히 반복작업하는 것으로 보입니다 ,,

메모리 초기값은 다음과 같습니다.

 

MEMORY_INITIALIZATION_RADIX=16;

MEMORY_INITIALIZATION_VECTOR=

0881, 0603, 0a04, 090b, 0880, 0081,

0780, 0881, 0501, 0781, 0900, 090b,

0000;

 

일단 이 칩이 뭘 위해 설계된건지를 이해해야 할 것 같습니다.

조언 부탁드립니다.

5개의 댓글

이미 다 알고 있는거 같은데?

계산기는 맞는데, input은 이미 칩 내부에서 초기화된 값들 가지고 사용하는거 같고

대신 클럭이랑 reset은 외부에서 받고

이 칩이 뭘 위해 설계된건지 그게 궁금한거야?

0
2023.08.15
@동해물과백두산이

넵 맞습니다

그냥 교수님이 테스트밴치용으로 설계한 칩이라고 이해하면 맞을까요 ??

0
@Buck

그렇게 보는게 뭐 속 편하지 싶은데.... 나도 칩 설계하는 사람이 아니라서 정확하진 않겠지만 난 아래처럼 생각했음

컴퓨터 키려면 우리가 전원 버튼을 누르는데, 부팅되는 동안에는 우리가 입력을 넣어주진 않잖아.

0
@동해물과백두산이

생각해보면 대부분의 칩들은 저런 설계인듯..?ㅋㅋㅋ 스마트폰도 그렇고, 각종 mcu도 그렇고...

0
2023.08.15

조그마한 CPU 설계도지 머

전체 hierachy에 있는 reset하고 clk은 말 그대로 상태 리셋 신호하고, 클럭이고

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5719 [프로그래밍] 하이브리드 웹뷰기반 앱은 rn이 정석이야? 3 잠적자 0 23 시간 전 167
5718 [프로그래밍] c# webview2 도움요청함.. 7 carpediem 0 1 일 전 122
5717 [프로그래밍] 현업 개발자형들 맥씀? 9 이또히로부미 0 1 일 전 223
5716 [프로그래밍] libtorch에서 cuda 안불러와지는거 도움! 2 Hakat 0 2 일 전 126
5715 [프로그래밍] 뭔가 게시판이 애매해서 그런데 gis 잘아는 사람? 1 하늘늑대 0 3 일 전 165
5714 [프로그래밍] 컴포즈가 프리뷰랑 폰에서 다르게 동작해요 1 집에가게해줘 0 3 일 전 118
5713 [프로그래밍] 난바보다) 크로미움 램사용량 문제 일단 해결 2 ye 0 5 일 전 284
5712 [프로그래밍] k8s DNS 이슈는 해결이 안되나보다. 잉텔 0 5 일 전 172
5711 [프로그래밍] 분노) 진짜 유튜브 구글 패악질 토나오네 씨발 17 ye 0 7 일 전 771
5710 [프로그래밍] 프론트엔드 공부하려는데 언어 추천좀 7 스트리플 0 7 일 전 353
5709 [프로그래밍] 객체지향 뽕에 취하지마라 8 69746974 2 8 일 전 413
5708 [프로그래밍] 요즘 앱개발 인력시장 어떰..3년차 2 센치해요 0 11 일 전 389
5707 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 1 집에가게해줘 0 13 일 전 148
5706 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 13 일 전 305
5705 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 16 일 전 398
5704 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 17 일 전 266
5703 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 17 일 전 239
5702 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 17 일 전 336
5701 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 18 일 전 370
5700 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 19 일 전 380