firstcommit
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
|
||||
# 기능정의
|
||||
|
||||
|
||||
## 동작 정의
|
||||
|
||||
키를 입력하면 해당하는 동작을 하도록 한다.
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
| KEY 입력 | LED 동작 |
|
||||
| --------- | -------- |
|
||||
| KEY0 = 1 | LED OFF |
|
||||
| KEY1 = 1 | 느리게 깜빡임 |
|
||||
| KEY2 = 1 | 보통 속도 |
|
||||
| KEY3 = 1 | 빠르게 깜빡임 |
|
||||
| 아무 KEY 없음 | 이전 상태 유지 |
|
||||
|
||||
핵심은 LED 상태를 바로 결정하는 것이 아니라, 현재 동작 모드를 레지스터에 저장하는 것입니다.
|
||||
|
||||
|
||||
```
|
||||
|
||||
KEY 입력
|
||||
↓
|
||||
동작 모드 저장 레지스터
|
||||
↓
|
||||
Blink 속도 선택
|
||||
↓
|
||||
Counter
|
||||
↓
|
||||
LED 출력
|
||||
|
||||
```
|
||||
---
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
|
||||
## 모드값 정의
|
||||
|
||||
모드에 따른 속도 정의
|
||||
|
||||
```
|
||||
MODE_OFF = 0
|
||||
MODE_SLOW = 1
|
||||
MODE_NORMAL = 2
|
||||
MODE_FAST = 3
|
||||
|
||||
```
|
||||
|
||||
## KEY 처리 논리
|
||||
|
||||
```
|
||||
if KEY0 = 1
|
||||
mode = OFF
|
||||
elseif KEY1 = 1
|
||||
mode = SLOW
|
||||
elseif KEY2 = 1
|
||||
mode = NORMAL
|
||||
elseif KEY3 = 1
|
||||
mode = FAST
|
||||
else
|
||||
mode = mode 유지
|
||||
end
|
||||
```
|
||||
|
||||
## Simulink 블록 구성
|
||||
|
||||
```
|
||||
KEY0 ─┐
|
||||
KEY1 ─┤
|
||||
KEY2 ─┤→ Mode Select Logic → Unit Delay → mode
|
||||
KEY3 ─┘
|
||||
|
||||
mode → Period Select → Counter → Compare → LED
|
||||
|
||||
```
|
||||
|
||||
## MTLAB BLOCK 작성
|
||||
|
||||
필요한 블록은 직접 MATLAB 코드 블록으로 작성하여 추가하도록 한다.
|
||||
|
||||
```
|
||||
|
||||
+---------+
|
||||
| KEY[3:0]|
|
||||
+---------+
|
||||
|
|
||||
v
|
||||
+----------------+
|
||||
| MATLAB Function|
|
||||
| key_led_blink |
|
||||
+----------------+
|
||||
|
|
||||
v
|
||||
+---------+
|
||||
| LED |
|
||||
+---------+
|
||||
|
||||
```
|
||||
|
||||
## Simulink 입출력
|
||||
|
||||
```
|
||||
입력:
|
||||
key[4] : Boolean 또는 uint8 벡터
|
||||
|
||||
출력:
|
||||
led : Boolean
|
||||
```
|
||||
|
||||
|
||||
## VHDL 코드 생성
|
||||
|
||||
```
|
||||
entity key_led_blink is
|
||||
port(
|
||||
clk : in std_logic;
|
||||
reset : in std_logic;
|
||||
key : in std_logic_vector(3 downto 0);
|
||||
led : out std_logic
|
||||
);
|
||||
end entity;
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user