분류 전체보기11 Finite State Machine(유한 상태 기계) 이란? 우선 State Machine이란 컴퓨터 프로그램이나 시스템을 설계하는 데에 있어 이를 표현하는 수학적 모델이다. Finite State Machine은 말 그대로 유한한 상태를 가진 모델이다. 무한한 상태를 가진 Infinite State Machine도 존재하지만, 보통 이론적인 연구에서만 사용되며, 실제로 구현하기에 어렵다는 것만 알아두고 넘어가자. FSM은 아래의 그림처럼 상태(State), 전이(Transition)로 구성되어 있다. 일반적으로 상태는 원으로 표현하고 전이는 화살표로 표현한다. 그렇다면 Finite State Machine은 어디서 쓰이고 왜 쓰일까? Finite State Machine은 디지털 논리회로를 설계할 때 센서나 제어 등 임베디드 분야 게임 개발에서의 NPC의 행동 .. 2023. 3. 29. [Verilog HDL] 클럭을 설계해보자 클럭이란 무엇인가? 클럭은 디지털 신호에서 아주아주 중요한 신호로서 High(1) Low(0) 두개의 로직값이 주기를 갖고 나타나는 신호입니다.이게 아주아주 중요한 이유는 디지털 장치를 움직이게 하는 근본이라 할 수 있 신호입니다. 1초 동안 1번 진동 = 1Hz 주기 = 1s 1초 동안 100,000번 진동 = 100KHz 주기 = 1 / 100,000 이렇게 클럭과 주기는 역의 관계를 갖고 있다라고 보시면 됩니다. 다음으로 Verilog HDL로 클럭을 설계한 후 Vivado 툴에서 신호를 확인해보겠습니다. 'timescale 1ns /1ps 'timescale 1ns / 1ps module tb_clk_gen; reg clk; always //실행되는 동안 반복적으로 실행한다 #5 clk = ~cl.. 2023. 2. 26. 풀업 저항, 풀다운 저항 (Pull-up & Pull-down register) 오늘은 풀업 풀다운 저항에 대해서 알아보겠다. 키패드 버튼을 제어하기 위해 GPIO 핀을 사용하다가 풀업, 풀다운 저항에 대해 알게되었다. 이 두가지를 알아보기 전에 플로팅(floating) 상태라는 것을 먼저 알아야 한다. 플로팅 (floating) 상태 MCU에서 스위치 제어를 위해 GPIO 핀을 사용한다 했을 때 이런 회로로서 한번 생각해보자. 일반적으로는 버튼을 누른다면 스위치가 닫혀 0(Low)로 될것이고 버튼을 누르지 않는 상태면 1(High)를 예상할 것이다. 하지만 예상과는 다르게 Open 상태일때 High가 아닐 수가 있다. High가 될지 Low 가 될지 미지수이다. 이 상태를 floating 상태 즉, 둥둥 떠있는 상태라고 표현한다. 왜 그럴까? 회로를 보면 그라운드와 연결된 부분은 .. 2023. 2. 21. 폴링(Polling)과 인터럽트(Interrupt)란? 폴링과 인터럽트에 대해 예시와 함께 간단하게 알아보겠습니다. 폴링과 인터럽트는 둘다 외부 신호를 받으면 그 신호를 처리하는 것이지만 처리하는데에 방식의 차이가 있습니다. 폴링(Polling) 폴링 방식의 코드 예시를 한번 보겠습니다. int main(void){ 핀연결.. 핀연결.. 핀연결.. 핀연결.. while(1){ LED1_delay(0.5초) //LED1이 0.5초마다 깜빡거린다. if (버튼 눌리면){ LED2 작동 // 버튼 눌리면 LED2를 키거나 끈다 } } } while문은 계속해서 반복됩니다. 반복 되는 동안 LED1은 0.5초마다 깜빡거리게 됩니다. CPU는 while문 안에서 LED1을 0.5초마다 깜빡거리는 작업을 계속 진행하고 있습니다. while문 안에서는 이런 상황이 펼쳐지.. 2023. 2. 17. 이전 1 2 3 다음