본문 바로가기

반응형

전체목록

(127)
[Verilog HDL] 15. regfile.v를 최적화 하자.(parameter와 배열 인덱싱 기법) 이번 장에서는 ch13에서 만들었던 regfile.v code를 좀 더 유연하고 단순하게 최적화 해 보겠다. 이러한 작업을 refactoring이라고도 한다. 처음에는 기능 구현에만 중점을 두어 빨리 코딩했더라도 추후에 refactoring을 통해 코드를 단순화 시키고 최적화 시키는 작업이 필요할 수 있다. 비단 합성 했을 때 하드웨어 성능이나 면적 측면에서 좋아 지지 않더라도 코드의 가독성을 높이고 재사용 가능성을 높이기 위한 최적화도 필요한 경우가 많다. 이를 위해 새로 배워햐 할 기능이 'parameter'이다. parameter는 verilog에서 주로 상수를 표현하는데 사용하기도 하지만 한 module의 instance마다 다르게 사용해야 할 변수들이 있을 때 사용하기도 한다. 어떤 면에서 C+..
[ACADEMY] 1/72 F-14A Tomcat maveric version 아카데미 킷트를 이용하여 영화 탑건에서 톰 크루즈가 조종했던 f-14a 전투기를 만들었습니다. 데칼은 탑건 버젼으로 발매된 별매 데칼을 사용했구요. 메버릭 버젼으로 대칼링을 했습니다. 영화 보고 얼마 후에 만들기 시작한 것 같은데 주말에만 깨작 깨작 하다보니 시간이 꽤 많이 걸렸네요.
[Verilog HDL] 14. APB interface APB는 주로 peripheral device같은 작은 디바이스를 버스에 연결하기 위하여 사용되는 AMBA bus 표준의 하나이다. Protocol이 간단하기 때문에 구현하는 로직도 작아 파워도 적게 소모되는 장점이 있다. 하지만 고속 데이터 전송에는 적합하지 않기 때문에 주로 hardware IP의 레지스터를 읽고 쓰는데 사용되는 protocol이다. APB protocol spec은 아래 링크에서 받아 볼 수 있다. https://web.eecs.umich.edu/~prabal/teaching/eecs373-f12/readings/ARM_AMBA3_APB.pdf 앞서 설계한 레지스터 파일은 IP 안에 포함되게 되는데 이를 버스에 연결하려면 APB interface를 구현해야 한다. APB interf..
[Verilog HDL] 13. Register File 이번 장에서는 레지스터 파일(register file)이 무엇인지 알아보자. 결론부터 말하면 레지스터 파일은 작은 메모리라고 생각하면 된다. 이전 장에서 D flip-flop이 무엇인지 배웠다. D flip-flop (D F/F)은 1bit의 정보를 저장하는 저장소라고 생각할 수 있다. 아래와 같은 심볼로 표시되며 클록의 상승 엣지(positive edge)에서 입력 포트 D로 들어오는 데이터를 출력 포트 Q로 출력한다. Q 값은 D 입력이 변하기 전까지 계속 같은 값을 유지하게 된다. RSTn과 같은 리셋 핀이 있는 경우 RSTn이 '0'일 경우 출력 Q는 '0'으로 초기화 된다. 이러한 D F/F을 여러개 연결한 것을 레지스터(register)라고 한다. 아래의 예는 D F/F 4개를 연결한 것으로 ..
[Verilog HDL] 12. IP, Bus, SoC 지금 까지 설계한 ALU는 특정 기능을 하는 하드웨어 블록이다. 이를 SoC에서 활용할 수 있을 때 우리는 이러한 하드웨어 블록을 IP (Intellectual Property)라고 한다. 소프트웨어와 구별하기 위하여 hardware IP라고도 한다. 그럼 이러한 IP는 SoC 에서 어떻게 이용할까? 기본적으로 IP를 제어하는 또 다른 IP가 필요한데 보통 CPU가 이러한 역할을 담당한다. CPU는 bus를 통해 IP에 access하여 IP에 할당된 특정 주소에 읽고 쓰기를 할 수 있다. 여기서 bus라고 하는 것은 SoC 또는 embedded system에서 데이터가 이동하는 통로이다. CPU나 ALU같은 hardware IP들은 bus를 통해 서로 연결된다. bus를 통해 데이터를 주고 받으려면 서로..
[ACADEMY] 1/9 European Racing Bike (Ducati) 아카데미에서 발매한 바이크 키트입니다. 라이센스 문제 때문에 이름을 사용하지 못했지만 모두 다 아는 듀카티 입니다.^^ 데칼은 모노키오에서 발매한 별매 데칼을 사용했습니다. 바이크는 처음이라 좀 힘들었습니다. 광내기도 어려워서 거의 반광처럼 나왔네요. 이탈리안 레드를 회색 서페이서 위에 바로 칠했더니 좀 어둡게 나왔습니다. 그래도 스케일이 커서 그런지 묵직한 느낌이 나름 괜찮네요.
[Hasegawa] 1/20 MK-07 Robot Battle V 44 Type Mk.44 Ammoknights 하세가와에서 출시한 Mk.44 Ammoknights 입니다. 이번에는 대부분 아크릴 붓도색으로 진행하였습니다. 노란색 부분만 에어브러쉬를 사용했구요. 붓도색이라고 했지만 붓을 사용한 건 일부분이고 대부분 면봉에 아크릴 도료를 뭍혀서 찍어 주듯이 두드리면서 색칠했습니다. 거친 표면의 질감을 표현하기 위해서 이런 방식을 사용했는데, 효과는 좋은 것 같습니다. 이번에는 특별한 웨더링은 하지 않았습니다. 깔끔하지만 거친 모습이 맘에 드네요.^^ 늘 그럿듯이 옛날 DSLR D300으로 쵤영했습니다.
[Verilog HDL] 11. ALU (Arithmetic Logic Unit) 설계 ALU는 CPU에서 덧셈, 뺄셈 등과 같은 산술 논리 연산을 담당하는 하드웨어 블록이다. 지금 까지 배운 덧셈기, 뺄셈기, 시프터를 이용하여 ALU설계를 해보자. 일반적인 ALU의 개념은 아래 링크를 참조한다. https://ko.wikipedia.org/wiki/%EC%82%B0%EC%88%A0_%EB%85%BC%EB%A6%AC_%EC%9E%A5%EC%B9%98 산술 논리 장치 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 산술논리장치의 일반적인 입출력은 다음과 같이 구성할 수 있다. 1) 입력 operand A : 산술 연산의 대상이 되는 입력 값 operand B : 산술 연산의 대상이 되는 입력 값 opcode OP : 산술 연산의 종류를 결정..

반응형