본문 바로가기

반응형

전체목록

(125)
Arduino nano + AT-09 bluetooth module + iphone 연결하기 Arduino를 이용한 무선 조정 모듈을 만들고 싶었는데 많이 사용하는 블루투스 모듈인 HC-06은 아이폰에서 지원하지 않는다고 하더군요. 아이폰에서는 BLE 4.0 이상만 지원해서 그렇다고 합니다. 다행히 모형전자공작 회원님의 조언으로 AT-09라는 모듈을 알게 되어 알리에서 arduino nano와 함께 주문했습니다. https://www.aliexpress.com/item/32826166129.html?spm=a2g0o.order_list.order_list_main.9.64ac18029HqDYb 2.02US $ 6% OFF|AT 09 Android IOS BLE 4.0 Bluetooth module for arduino CC2540 CC2541 BLE Serial Wireless Module co..
[Verilog HDL] 20. 제어 가능한 ALU IP 만들기 - 최종 테스트 앞에서 수정한 레지스터 파일을 ALU core와 연결하여 최종 ALU IP를 만들어 보자. ALU core 에 필요한 모든 입출력은 apb_regfile module에서 만들어 주기 때문에 apb_regfile과 alu module을 연결하고 apb_regfile의 APB interface 신호들을 top으로 연결해 주면 alu_ip module이 완성된다. 최종 alu_ip module의 code는 아래와 같다. 파일 이름은 alu_ip.v로 저장한다. module alu_ip #( parameter ADDR_WIDTH=8, parameter DATA_WIDTH=16 ) ( input wire PCLK, input wire PRESETn, input wire [ADDR_WIDTH-1:0] PADDR, ..
[Verilog HDL] 19. 제어 가능한 ALU IP 만들기 - register file 수정 레지스터 map을 정의했으면 이에 맞게 register file을 만들어 주어야 한다. 이전에 만든 register file은 일반적인 register file이었고 이번에는 SFR의 목적에 맞게 수정해 주어야 한다. 전 장에서 만든 레지스터 맵을 보면 CPU가 read/write 할 수 있는 레지스터도 있고 ALU의 동작 상태에 따라 ALU에서 write하는 레지스터도 있다. 이러한 레지스터는 status와 result에 해당한다. 이런 특수한 목적에 맞게 수정된 register file은 아래와 같다. module regfile #( parameter ADDR_WIDTH=8, parameter DATA_WIDTH=16 ) ( input wire CLK, input wire RSTn, input wir..
[Verilog HDL] 18. 제어 가능한 ALU IP 만들기 - 레지스터 맵 HW IP (Intellectual Property)는 SoC에서 사용 가능한 HW block을 의미한다. SoC에서 사용 가능하다는 것은 CPU에서 IP에 대한 제어를 할 수 있다는 것이다. 즉 software에서 HW IP를 제어하고 필요한 기능을 수행할 수 있어야 하는 것이다. APB interface에서 살펴 보았듯이 SoC 에서 HW IP는 bus를 통해 CPU와 연결되어 있고 그 중 간단한 bus interface중 하나가 APB이다. 이번 장에서는 ALU에 APB register file을 추가하여 ALU 기능을 수행 하기 위한 register를 만들고 CPU에서 이 register file을 read/write 함으로써 ALU의 필요한 기능을 수행할 수 있도록 해보겠다. 일단 ALU를 제어..
[Verilog HDL] 17. chatGPT를 이용한 APB register file 설계하기 요즘 한창 유행인 chatGPT를 이용하여 APB register file을 코딩해 보았다. 일단 무작정 chatGPT에게 APB register를 코딩해 달라고 무식하게 질문한다. ㅎ 그런데 이녀석이 APB 신호는 전혀 없는 register file을 코딩해 준다. 나를 뭘로 알고? 그래서 apb protocol을 따르지 않는다고 다시 질문했더니 바로 잘못을 인정하고 다시 코딩해 준다. ㅋㅋ 근데 이상하다? pwrite 신호가 없다 그래서 다시 따졌다! 그랬더니 역시 바로 인정하고 다시 코딩해준다. 근데 뭔가 좀 이상하다. 이번에는 penable신호가 없다. 그래서 다시 따져 물었다. 그랬더니 다시 사과하고 코딩해준다. 사과는 무지 잘한다. ㅋ 이번에는 맞으려나? 근데 pstrb는 뭐냐? 뜬근없이? 그..
[Verilog HDL] 16. FSM을 이용한 APB register file 설계 자 드디어 APB inteface를 갖는 register file을 설계할 때가 되었다. APB interface logic을 설계하기 위해서 우리는 FSM에 대해서 배울 것이다. FSM은 Finite State Machine의 약자로 하드웨어의 제어 로직을 만들 때 많이 사용하는 구조이다. 어떤 기능을 하는 하드웨어 로직을 제어 하기 위해서는 그 하드웨어가 어떤 상태에 있는지를 정의할 수 있어야 한다. 그래야 각 상태별로 필요한 제어 신호를 만들어 낼 수 있다. FSM은 유한한 하드웨어 상태를 정의하고 입/출력과 현재 상태에 따라 필요한 제어신호를 만들고 다음 상태는 어떤 상태가 되는지를 정의하는 하드웨어 로직이다. 우리가 설계하고자 하는 FSM의 목적은 APB bus protocol을 register..
[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 전투기를 만들었습니다. 데칼은 탑건 버젼으로 발매된 별매 데칼을 사용했구요. 메버릭 버젼으로 대칼링을 했습니다. 영화 보고 얼마 후에 만들기 시작한 것 같은데 주말에만 깨작 깨작 하다보니 시간이 꽤 많이 걸렸네요.

반응형