Ignore MkDocs site
@@ -0,0 +1 @@
|
|||||||
|
site/
|
||||||
@@ -1,8 +1,18 @@
|
|||||||
|
|
||||||
# 마이컴 설계
|
# 마이컴 제작
|
||||||
|
|
||||||
|
|
||||||
|
간단한 마이컴을 제작하기 위해서 필요한 구성요소들에 대한 설명을 한다.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 어셈블리 언어
|
## 어셈블리 언어
|
||||||
|
|
||||||
|
마이컴을 실제적으로 구동하기 위한 기계어 위의 언어로써, 사람이 알아볼수 있고 프로그램을 작성할수 있은 프로그래밍 언어이다.
|
||||||
|
|
||||||
|
ASM을 기본으로 마이컴을 동작하도록 한다.
|
||||||
|
|
||||||
|
|
||||||
```asm
|
```asm
|
||||||
|
|
||||||
LOAD 10 ; R0 = 5
|
LOAD 10 ; R0 = 5
|
||||||
@@ -29,7 +39,7 @@ JMP END_ON ; 무한 반복
|
|||||||
|
|
||||||
## CPU 구성
|
## CPU 구성
|
||||||
|
|
||||||
CPU 내부의 구성은 다음과 같다.
|
CPU 내부의 구성은 다음과 같다. 주요 CPU블록 기능중 현재 필요한 기능은 아래와 같다.
|
||||||
|
|
||||||
* PC
|
* PC
|
||||||
* ROM
|
* ROM
|
||||||
@@ -38,8 +48,12 @@ CPU 내부의 구성은 다음과 같다.
|
|||||||
* Delay Counter
|
* Delay Counter
|
||||||
* R0
|
* R0
|
||||||
|
|
||||||
|
|
||||||
## 명령어
|
## 명령어
|
||||||
|
|
||||||
|
프로그램을 구동하기 위한 ASM 프래그램 명령어 SET를 구성한다.
|
||||||
|
|
||||||
|
```
|
||||||
0x1 LOAD n <br>
|
0x1 LOAD n <br>
|
||||||
0x2 INC <br>
|
0x2 INC <br>
|
||||||
0x3 DEC<br>
|
0x3 DEC<br>
|
||||||
@@ -49,21 +63,20 @@ CPU 내부의 구성은 다음과 같다.
|
|||||||
0x7 LED_ON<br>
|
0x7 LED_ON<br>
|
||||||
0x8 LED_OFF<br>
|
0x8 LED_OFF<br>
|
||||||
0x9 DELAY n<br>
|
0x9 DELAY n<br>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 컴파일러
|
## 컴파일러
|
||||||
|
|
||||||
어셉블리로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램
|
직접 지정한 어셉블리 언어로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
python asmtohex.py led.asm
|
python asmtohex.py led.asm
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 프로그램 다운로드
|
## 프로그램 다운로드
|
||||||
|
|
||||||
시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다.
|
시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다.
|
||||||
@@ -73,6 +86,7 @@ python hexsend.py led.hex
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -3,6 +3,13 @@
|
|||||||
|
|
||||||
어셈블리 언어를 기계어 hex 파일로 변환한다.
|
어셈블리 언어를 기계어 hex 파일로 변환한다.
|
||||||
|
|
||||||
|
어셀블리 언어를 작성하고 이 코드를 기계어 코드로 변환과정을 수행한다.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
## 변환 프로그램 구동
|
## 변환 프로그램 구동
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 106 KiB |
@@ -18,7 +18,7 @@ nav:
|
|||||||
|
|
||||||
|
|
||||||
- 마이컴설계:
|
- 마이컴설계:
|
||||||
- 1.마이컴설계: 소형마이컴/1.마이컴설계.md
|
- 1.마이컴제작: 소형마이컴/1.마이컴제작.md
|
||||||
- 2.명령어구성: 소형마이컴/2.cmd_set.md
|
- 2.명령어구성: 소형마이컴/2.cmd_set.md
|
||||||
- 3.어셈블러작성: 소형마이컴/3.어셈블러작성.md
|
- 3.어셈블러작성: 소형마이컴/3.어셈블러작성.md
|
||||||
- 4.컴파일러작성: 소형마이컴/4.컴파일러작성.md
|
- 4.컴파일러작성: 소형마이컴/4.컴파일러작성.md
|
||||||
|
|||||||
@@ -1,778 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="/assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="/." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="/." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/simulink/1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/simulink/2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/simulink/3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/simulink/4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
<h1>404 - Not found</h1>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "/", "features": [], "search": "/assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="/assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="/js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,18 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Lunr languages, `Danish` language
|
|
||||||
* https://github.com/MihaiValentin/lunr-languages
|
|
||||||
*
|
|
||||||
* Copyright 2014, Mihai Valentin
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
/*!
|
|
||||||
* based on
|
|
||||||
* Snowball JavaScript Library v0.3
|
|
||||||
* http://code.google.com/p/urim/
|
|
||||||
* http://snowball.tartarus.org/
|
|
||||||
*
|
|
||||||
* Copyright 2010, Oleg Mazko
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
|
|
||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
module.exports=require("./lunr.ja");
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Lunr languages, `Norwegian` language
|
|
||||||
* https://github.com/MihaiValentin/lunr-languages
|
|
||||||
*
|
|
||||||
* Copyright 2014, Mihai Valentin
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
/*!
|
|
||||||
* based on
|
|
||||||
* Snowball JavaScript Library v0.3
|
|
||||||
* http://code.google.com/p/urim/
|
|
||||||
* http://snowball.tartarus.org/
|
|
||||||
*
|
|
||||||
* Copyright 2010, Oleg Mazko
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
|
|
||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम् एकम् इत्यस्मिन् तथा तत् वा अयम् इत्यस्य ते आहूत उपरि तेषाम् किन्तु तेषाम् तदा इत्यनेन अधिकः इत्यस्य तत् केचन बहवः द्वि तथा महत्वपूर्णः अयम् अस्य विषये अयं अस्ति तत् प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम् द न्यूनम् कश्चित् वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम् अपि अत्र सर्वे विविधाः तत् बहवः यतः इदानीम् द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम् सर्वे एकैकम् इत्यादि। एते सन्ति उत इत्थम् मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम् समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान् धृतः तदा पुनः पूर्वं सः आगतः किम् कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत् ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Lunr languages, `Swedish` language
|
|
||||||
* https://github.com/MihaiValentin/lunr-languages
|
|
||||||
*
|
|
||||||
* Copyright 2014, Mihai Valentin
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
/*!
|
|
||||||
* based on
|
|
||||||
* Snowball JavaScript Library v0.3
|
|
||||||
* http://code.google.com/p/urim/
|
|
||||||
* http://snowball.tartarus.org/
|
|
||||||
*
|
|
||||||
* Copyright 2010, Oleg Mazko
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*/
|
|
||||||
|
|
||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="-உஊ-ஏஐ-ஙச-ட-னப-யர-ஹ-ிீ-ொ-ௐ---௩௪-௯௰-௹௺-a-zA-Za-zA-Z0-90-9",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
|
|
||||||
@@ -1,206 +0,0 @@
|
|||||||
/**
|
|
||||||
* export the module via AMD, CommonJS or as a browser global
|
|
||||||
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
|
|
||||||
*/
|
|
||||||
;(function (root, factory) {
|
|
||||||
if (typeof define === 'function' && define.amd) {
|
|
||||||
// AMD. Register as an anonymous module.
|
|
||||||
define(factory)
|
|
||||||
} else if (typeof exports === 'object') {
|
|
||||||
/**
|
|
||||||
* Node. Does not work with strict CommonJS, but
|
|
||||||
* only CommonJS-like environments that support module.exports,
|
|
||||||
* like Node.
|
|
||||||
*/
|
|
||||||
module.exports = factory()
|
|
||||||
} else {
|
|
||||||
// Browser globals (root is window)
|
|
||||||
factory()(root.lunr);
|
|
||||||
}
|
|
||||||
}(this, function () {
|
|
||||||
/**
|
|
||||||
* Just return a value to define the module export.
|
|
||||||
* This example returns an object, but the module
|
|
||||||
* can return a function as the exported value.
|
|
||||||
*/
|
|
||||||
|
|
||||||
return function(lunr) {
|
|
||||||
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
|
|
||||||
// (c) 2008 Taku Kudo <taku@chasen.org>
|
|
||||||
// TinySegmenter is freely distributable under the terms of a new BSD licence.
|
|
||||||
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
|
|
||||||
|
|
||||||
function TinySegmenter() {
|
|
||||||
var patterns = {
|
|
||||||
"[一二三四五六七八九十百千万億兆]":"M",
|
|
||||||
"[一-龠々〆ヵヶ]":"H",
|
|
||||||
"[ぁ-ん]":"I",
|
|
||||||
"[ァ-ヴーア-ン゙ー]":"K",
|
|
||||||
"[a-zA-Za-zA-Z]":"A",
|
|
||||||
"[0-90-9]":"N"
|
|
||||||
}
|
|
||||||
this.chartype_ = [];
|
|
||||||
for (var i in patterns) {
|
|
||||||
var regexp = new RegExp(i);
|
|
||||||
this.chartype_.push([regexp, patterns[i]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.BIAS__ = -332
|
|
||||||
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
|
|
||||||
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
|
|
||||||
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
|
|
||||||
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
|
|
||||||
this.BP2__ = {"BO":60,"OO":-1762};
|
|
||||||
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
|
|
||||||
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
|
|
||||||
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
|
|
||||||
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
|
|
||||||
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
|
|
||||||
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
|
|
||||||
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
|
|
||||||
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
|
|
||||||
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
|
|
||||||
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
|
|
||||||
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
|
|
||||||
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
|
|
||||||
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
|
|
||||||
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
|
|
||||||
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
|
|
||||||
this.TW1__ = {"につい":-4681,"東京都":2026};
|
|
||||||
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
|
|
||||||
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
|
|
||||||
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
|
|
||||||
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
|
|
||||||
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
|
|
||||||
this.UC3__ = {"A":-1370,"I":2311};
|
|
||||||
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
|
|
||||||
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
|
|
||||||
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
|
|
||||||
this.UP1__ = {"O":-214};
|
|
||||||
this.UP2__ = {"B":69,"O":935};
|
|
||||||
this.UP3__ = {"B":189};
|
|
||||||
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
|
|
||||||
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
|
|
||||||
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
|
|
||||||
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
|
|
||||||
this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
|
|
||||||
this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
|
|
||||||
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
|
|
||||||
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
|
|
||||||
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496};
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
TinySegmenter.prototype.ctype_ = function(str) {
|
|
||||||
for (var i in this.chartype_) {
|
|
||||||
if (str.match(this.chartype_[i][0])) {
|
|
||||||
return this.chartype_[i][1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "O";
|
|
||||||
}
|
|
||||||
|
|
||||||
TinySegmenter.prototype.ts_ = function(v) {
|
|
||||||
if (v) { return v; }
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
TinySegmenter.prototype.segment = function(input) {
|
|
||||||
if (input == null || input == undefined || input == "") {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
var result = [];
|
|
||||||
var seg = ["B3","B2","B1"];
|
|
||||||
var ctype = ["O","O","O"];
|
|
||||||
var o = input.split("");
|
|
||||||
for (i = 0; i < o.length; ++i) {
|
|
||||||
seg.push(o[i]);
|
|
||||||
ctype.push(this.ctype_(o[i]))
|
|
||||||
}
|
|
||||||
seg.push("E1");
|
|
||||||
seg.push("E2");
|
|
||||||
seg.push("E3");
|
|
||||||
ctype.push("O");
|
|
||||||
ctype.push("O");
|
|
||||||
ctype.push("O");
|
|
||||||
var word = seg[3];
|
|
||||||
var p1 = "U";
|
|
||||||
var p2 = "U";
|
|
||||||
var p3 = "U";
|
|
||||||
for (var i = 4; i < seg.length - 3; ++i) {
|
|
||||||
var score = this.BIAS__;
|
|
||||||
var w1 = seg[i-3];
|
|
||||||
var w2 = seg[i-2];
|
|
||||||
var w3 = seg[i-1];
|
|
||||||
var w4 = seg[i];
|
|
||||||
var w5 = seg[i+1];
|
|
||||||
var w6 = seg[i+2];
|
|
||||||
var c1 = ctype[i-3];
|
|
||||||
var c2 = ctype[i-2];
|
|
||||||
var c3 = ctype[i-1];
|
|
||||||
var c4 = ctype[i];
|
|
||||||
var c5 = ctype[i+1];
|
|
||||||
var c6 = ctype[i+2];
|
|
||||||
score += this.ts_(this.UP1__[p1]);
|
|
||||||
score += this.ts_(this.UP2__[p2]);
|
|
||||||
score += this.ts_(this.UP3__[p3]);
|
|
||||||
score += this.ts_(this.BP1__[p1 + p2]);
|
|
||||||
score += this.ts_(this.BP2__[p2 + p3]);
|
|
||||||
score += this.ts_(this.UW1__[w1]);
|
|
||||||
score += this.ts_(this.UW2__[w2]);
|
|
||||||
score += this.ts_(this.UW3__[w3]);
|
|
||||||
score += this.ts_(this.UW4__[w4]);
|
|
||||||
score += this.ts_(this.UW5__[w5]);
|
|
||||||
score += this.ts_(this.UW6__[w6]);
|
|
||||||
score += this.ts_(this.BW1__[w2 + w3]);
|
|
||||||
score += this.ts_(this.BW2__[w3 + w4]);
|
|
||||||
score += this.ts_(this.BW3__[w4 + w5]);
|
|
||||||
score += this.ts_(this.TW1__[w1 + w2 + w3]);
|
|
||||||
score += this.ts_(this.TW2__[w2 + w3 + w4]);
|
|
||||||
score += this.ts_(this.TW3__[w3 + w4 + w5]);
|
|
||||||
score += this.ts_(this.TW4__[w4 + w5 + w6]);
|
|
||||||
score += this.ts_(this.UC1__[c1]);
|
|
||||||
score += this.ts_(this.UC2__[c2]);
|
|
||||||
score += this.ts_(this.UC3__[c3]);
|
|
||||||
score += this.ts_(this.UC4__[c4]);
|
|
||||||
score += this.ts_(this.UC5__[c5]);
|
|
||||||
score += this.ts_(this.UC6__[c6]);
|
|
||||||
score += this.ts_(this.BC1__[c2 + c3]);
|
|
||||||
score += this.ts_(this.BC2__[c3 + c4]);
|
|
||||||
score += this.ts_(this.BC3__[c4 + c5]);
|
|
||||||
score += this.ts_(this.TC1__[c1 + c2 + c3]);
|
|
||||||
score += this.ts_(this.TC2__[c2 + c3 + c4]);
|
|
||||||
score += this.ts_(this.TC3__[c3 + c4 + c5]);
|
|
||||||
score += this.ts_(this.TC4__[c4 + c5 + c6]);
|
|
||||||
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
|
|
||||||
score += this.ts_(this.UQ1__[p1 + c1]);
|
|
||||||
score += this.ts_(this.UQ2__[p2 + c2]);
|
|
||||||
score += this.ts_(this.UQ3__[p3 + c3]);
|
|
||||||
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
|
|
||||||
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
|
|
||||||
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
|
|
||||||
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
|
|
||||||
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
|
|
||||||
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
|
|
||||||
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
|
|
||||||
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
|
|
||||||
var p = "O";
|
|
||||||
if (score > 0) {
|
|
||||||
result.push(word);
|
|
||||||
word = "";
|
|
||||||
p = "B";
|
|
||||||
}
|
|
||||||
p1 = p2;
|
|
||||||
p2 = p3;
|
|
||||||
p3 = p;
|
|
||||||
word += seg[i];
|
|
||||||
}
|
|
||||||
result.push(word);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
lunr.TinySegmenter = TinySegmenter;
|
|
||||||
};
|
|
||||||
|
|
||||||
}));
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAME,sDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,mDAAA,CACA,gDAAA,CAGA,0BAAA,CACA,mCAAA,CAGA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,iCAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,uDAAA,CAGA,8DAAA,CAKA,8DAAA,CAKA,0DAAA,CAvEA,iBCeF,CD6DE,kHAEE,YC3DJ,CDkFE,yDACE,4BChFJ,CD+EE,2DACE,4BC7EJ,CD4EE,gEACE,4BC1EJ,CDyEE,2DACE,4BCvEJ,CDsEE,yDACE,4BCpEJ,CDmEE,0DACE,4BCjEJ,CDgEE,gEACE,4BC9DJ,CD6DE,0DACE,4BC3DJ,CD0DE,2OACE,4BC/CJ,CDsDA,+FAGE,iCCpDF,CACF,CC/CE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2CN,CCrDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkDN,CC5DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyDN,CCnEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgEN,CC1EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuEN,CCjFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8EN,CCxFE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqFN,CC/FE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4FN,CCtGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmGN,CC7GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD0GN,CCpHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDiHN,CC3HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2HN,CClIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkIN,CCzIE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDyIN,CChJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDgJN,CCvJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoJN,CEzJE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsJN,CEjKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8JN,CEzKE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsKN,CEjLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8KN,CEzLE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsLN,CEjME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8LN,CEzME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsMN,CEjNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8MN,CEzNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsNN,CEjOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8NN,CEzOE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsON,CEjPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiPN,CEzPE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyPN,CEjQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiQN,CEzQE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyQN,CEjRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8QN,CEzRE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsRN,CEjSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF0RN,CE1SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFmSN,CEpRE,sEACE,4BFuRJ,CExRE,+DACE,4BF2RJ,CE5RE,iEACE,4BF+RJ,CEhSE,gEACE,4BFmSJ,CEpSE,iEACE,4BFuSJ,CE9RA,8BACE,mDAAA,CACA,4DAAA,CACA,0DAAA,CACA,oDAAA,CACA,2DAAA,CAGA,4BF+RF,CE5RE,yCACE,+BF8RJ,CE3RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCF+RN,CG3MI,mCD1EA,+CACE,8CFwRJ,CErRI,qDACE,8CFuRN,CElRE,iEACE,mCFoRJ,CACF,CGtNI,sCDvDA,uCACE,oCFgRJ,CACF,CEvQA,8BACE,kDAAA,CACA,4DAAA,CACA,wDAAA,CACA,oDAAA,CACA,6DAAA,CAGA,4BFwQF,CErQE,yCACE,+BFuQJ,CEpQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCFwQN,CEjQE,yCACE,6CFmQJ,CG5NI,0CDhCA,8CACE,gDF+PJ,CACF,CGjOI,0CDvBA,iFACE,6CF2PJ,CACF,CGzPI,sCDKA,uCACE,6CFuPJ,CACF","file":"palette.css"}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
사용법
|
|
||||||
|
|
||||||
1. ASM을 HEX로 변환
|
|
||||||
|
|
||||||
python asmtohex.py led.asm
|
|
||||||
|
|
||||||
결과:
|
|
||||||
|
|
||||||
led.hex
|
|
||||||
|
|
||||||
2. HEX를 COM3로 전송
|
|
||||||
|
|
||||||
python hexsend.py led.hex
|
|
||||||
|
|
||||||
pyserial 설치:
|
|
||||||
|
|
||||||
pip install pyserial
|
|
||||||
|
|
||||||
명령어 포맷:
|
|
||||||
|
|
||||||
16bit = opcode[15:12] + operand[11:0]
|
|
||||||
|
|
||||||
명령어:
|
|
||||||
|
|
||||||
NOP 0x0
|
|
||||||
LOAD n 0x1
|
|
||||||
INC 0x2
|
|
||||||
DEC 0x3
|
|
||||||
JMP addr 0x4
|
|
||||||
JZ addr 0x5
|
|
||||||
JNZ addr 0x6
|
|
||||||
LED_ON 0x7
|
|
||||||
LED_OFF 0x8
|
|
||||||
DELAY n 0x9
|
|
||||||
|
|
||||||
led.asm 변환 결과:
|
|
||||||
|
|
||||||
1005
|
|
||||||
7000
|
|
||||||
9064
|
|
||||||
8000
|
|
||||||
9064
|
|
||||||
3000
|
|
||||||
6001
|
|
||||||
5008
|
|
||||||
7000
|
|
||||||
4008
|
|
||||||
|
|
||||||
시리얼 전송 바이트:
|
|
||||||
|
|
||||||
10 05 70 00 90 64 80 00 90 64 30 00 60 01 50 08 70 00 40 08
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
OPCODE = {
|
|
||||||
"NOP": 0x0,
|
|
||||||
"LOAD": 0x1,
|
|
||||||
"INC": 0x2,
|
|
||||||
"DEC": 0x3,
|
|
||||||
"JMP": 0x4,
|
|
||||||
"JZ": 0x5,
|
|
||||||
"JNZ": 0x6,
|
|
||||||
"LED_ON": 0x7,
|
|
||||||
"LED_OFF": 0x8,
|
|
||||||
"DELAY": 0x9,
|
|
||||||
}
|
|
||||||
|
|
||||||
def remove_comment(line):
|
|
||||||
return line.split(";")[0].strip()
|
|
||||||
|
|
||||||
def parse_number(text):
|
|
||||||
text = text.strip()
|
|
||||||
if text.lower().startswith("0x"):
|
|
||||||
return int(text, 16)
|
|
||||||
if text.lower().startswith("0b"):
|
|
||||||
return int(text, 2)
|
|
||||||
return int(text, 10)
|
|
||||||
|
|
||||||
def assemble(asm_text):
|
|
||||||
labels = {}
|
|
||||||
instructions = []
|
|
||||||
pc = 0
|
|
||||||
|
|
||||||
# 1차 패스: 라벨 주소 수집
|
|
||||||
for raw_line in asm_text.splitlines():
|
|
||||||
line = remove_comment(raw_line)
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if line.endswith(":"):
|
|
||||||
label = line[:-1].strip()
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
labels[label] = pc
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ":" in line:
|
|
||||||
label_part, inst_part = line.split(":", 1)
|
|
||||||
label = label_part.strip()
|
|
||||||
inst_line = inst_part.strip()
|
|
||||||
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
|
|
||||||
labels[label] = pc
|
|
||||||
|
|
||||||
if inst_line:
|
|
||||||
instructions.append(inst_line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
instructions.append(line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
machine = []
|
|
||||||
|
|
||||||
# 2차 패스: 명령어 변환
|
|
||||||
for addr, line in enumerate(instructions):
|
|
||||||
parts = line.replace(",", " ").split()
|
|
||||||
|
|
||||||
if not parts:
|
|
||||||
continue
|
|
||||||
|
|
||||||
mnemonic = parts[0].upper()
|
|
||||||
|
|
||||||
if mnemonic not in OPCODE:
|
|
||||||
raise ValueError(f"{addr}: 알 수 없는 명령어: {mnemonic}")
|
|
||||||
|
|
||||||
opcode = OPCODE[mnemonic]
|
|
||||||
operand = 0
|
|
||||||
|
|
||||||
if len(parts) >= 2:
|
|
||||||
arg = parts[1]
|
|
||||||
if arg in labels:
|
|
||||||
operand = labels[arg]
|
|
||||||
else:
|
|
||||||
operand = parse_number(arg)
|
|
||||||
|
|
||||||
if operand < 0 or operand > 0x0FFF:
|
|
||||||
raise ValueError(f"{addr}: operand 범위 초과 0~4095: {operand}")
|
|
||||||
|
|
||||||
word = (opcode << 12) | (operand & 0x0FFF)
|
|
||||||
machine.append(word)
|
|
||||||
|
|
||||||
return machine, labels, instructions
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python asmtohex.py led.asm")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
asm_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not asm_path.exists():
|
|
||||||
print(f"파일 없음: {asm_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = asm_path.with_suffix(".hex")
|
|
||||||
asm_text = asm_path.read_text(encoding="utf-8")
|
|
||||||
|
|
||||||
machine, labels, instructions = assemble(asm_text)
|
|
||||||
|
|
||||||
with hex_path.open("w", encoding="utf-8") as f:
|
|
||||||
for word in machine:
|
|
||||||
f.write(f"{word:04X}\n")
|
|
||||||
|
|
||||||
print("라벨:")
|
|
||||||
for name, addr in labels.items():
|
|
||||||
print(f" {name} = {addr}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print("기계어:")
|
|
||||||
for addr, word in enumerate(machine):
|
|
||||||
print(f" {addr:02d}: {word:04X} ; {instructions[addr]}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"HEX 생성 완료: {hex_path}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
try:
|
|
||||||
import serial
|
|
||||||
except ImportError:
|
|
||||||
print("pyserial이 필요합니다.")
|
|
||||||
print("설치: pip install pyserial")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
PORT = "COM3"
|
|
||||||
BAUD = 115200
|
|
||||||
|
|
||||||
def read_hex_file(hex_path):
|
|
||||||
data = bytearray()
|
|
||||||
|
|
||||||
for line_no, raw_line in enumerate(hex_path.read_text(encoding="utf-8").splitlines(), start=1):
|
|
||||||
line = raw_line.split(";")[0].strip()
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
line = line.replace("0x", "").replace("0X", "")
|
|
||||||
|
|
||||||
if len(line) != 4:
|
|
||||||
raise ValueError(f"{line_no}번째 줄 오류: 16비트 HEX 4자리여야 함: {raw_line}")
|
|
||||||
|
|
||||||
word = int(line, 16)
|
|
||||||
|
|
||||||
high = (word >> 8) & 0xFF
|
|
||||||
low = word & 0xFF
|
|
||||||
|
|
||||||
data.append(high)
|
|
||||||
data.append(low)
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python hexsend.py led.hex")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not hex_path.exists():
|
|
||||||
print(f"파일 없음: {hex_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
send_data = read_hex_file(hex_path)
|
|
||||||
|
|
||||||
|
|
||||||
send_data.append(0xFF)
|
|
||||||
send_data.append(0xFF)
|
|
||||||
|
|
||||||
|
|
||||||
print(f"파일: {hex_path}")
|
|
||||||
print(f"전송 바이트 수: {len(send_data)}")
|
|
||||||
print("전송 데이터:")
|
|
||||||
print(send_data.hex(" ").upper())
|
|
||||||
|
|
||||||
ser = serial.Serial(
|
|
||||||
port=PORT,
|
|
||||||
baudrate=BAUD,
|
|
||||||
bytesize=serial.EIGHTBITS,
|
|
||||||
parity=serial.PARITY_NONE,
|
|
||||||
stopbits=serial.STOPBITS_ONE,
|
|
||||||
timeout=1
|
|
||||||
)
|
|
||||||
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
ser.reset_input_buffer()
|
|
||||||
ser.reset_output_buffer()
|
|
||||||
|
|
||||||
ser.write(send_data)
|
|
||||||
ser.flush()
|
|
||||||
ser.close()
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"{PORT}, {BAUD}bps 전송 완료")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
LOAD 1 ; R0 = 5
|
|
||||||
|
|
||||||
LOOP:
|
|
||||||
LED_ON ; LED 켜기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
LED_OFF ; LED 끄기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
DEC ; R0 = R0 - 1
|
|
||||||
|
|
||||||
JNZ LOOP ; R0 != 0이면 LOOP로 이동
|
|
||||||
|
|
||||||
JZ END_ON ; R0 == 0이면 END_ON으로 이동
|
|
||||||
|
|
||||||
END_ON:
|
|
||||||
LED_ON ; LED 켠 상태 유지
|
|
||||||
JMP END_ON ; 무한 반복
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
1001
|
|
||||||
7000
|
|
||||||
912C
|
|
||||||
8000
|
|
||||||
912C
|
|
||||||
3000
|
|
||||||
6001
|
|
||||||
5008
|
|
||||||
7000
|
|
||||||
4008
|
|
||||||
@@ -1,315 +0,0 @@
|
|||||||
library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
use ieee.numeric_std.all;
|
|
||||||
|
|
||||||
entity micom is
|
|
||||||
port (
|
|
||||||
clk : in std_logic; -- 50MHz
|
|
||||||
reset : in std_logic; -- High reset
|
|
||||||
uart_rx : in std_logic;
|
|
||||||
led : out std_logic
|
|
||||||
);
|
|
||||||
end entity;
|
|
||||||
|
|
||||||
architecture rtl of micom is
|
|
||||||
|
|
||||||
constant CLK_FREQ : integer := 50000000;
|
|
||||||
constant BAUD_RATE : integer := 115200;
|
|
||||||
constant BAUD_CNT : integer := CLK_FREQ / BAUD_RATE;
|
|
||||||
|
|
||||||
type ram_type is array (0 to 255) of std_logic_vector(15 downto 0);
|
|
||||||
signal prog_ram : ram_type := (others => x"0000");
|
|
||||||
|
|
||||||
type uart_state_type is (
|
|
||||||
UART_IDLE,
|
|
||||||
UART_START,
|
|
||||||
UART_DATA,
|
|
||||||
UART_STOP
|
|
||||||
);
|
|
||||||
|
|
||||||
signal uart_state : uart_state_type := UART_IDLE;
|
|
||||||
signal baud_counter : integer range 0 to BAUD_CNT := 0;
|
|
||||||
signal bit_index : integer range 0 to 7 := 0;
|
|
||||||
|
|
||||||
signal rx_shift : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_byte : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_valid : std_logic := '0';
|
|
||||||
|
|
||||||
signal byte_high : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_phase : std_logic := '0';
|
|
||||||
|
|
||||||
signal wr_addr : integer range 0 to 255 := 0;
|
|
||||||
signal cpu_run : std_logic := '0';
|
|
||||||
|
|
||||||
type cpu_state_type is (
|
|
||||||
CPU_LOAD_PROGRAM,
|
|
||||||
CPU_FETCH,
|
|
||||||
CPU_DECODE,
|
|
||||||
CPU_DELAY
|
|
||||||
);
|
|
||||||
|
|
||||||
signal cpu_state : cpu_state_type := CPU_LOAD_PROGRAM;
|
|
||||||
|
|
||||||
signal pc : integer range 0 to 255 := 0;
|
|
||||||
signal inst : std_logic_vector(15 downto 0) := x"0000";
|
|
||||||
|
|
||||||
signal opcode : std_logic_vector(3 downto 0);
|
|
||||||
signal operand : unsigned(11 downto 0);
|
|
||||||
|
|
||||||
signal r0 : unsigned(15 downto 0) := (others => '0');
|
|
||||||
signal zflag : std_logic := '0';
|
|
||||||
|
|
||||||
signal delay_counter : unsigned(31 downto 0) := (others => '0');
|
|
||||||
|
|
||||||
begin
|
|
||||||
|
|
||||||
opcode <= inst(15 downto 12);
|
|
||||||
operand <= unsigned(inst(11 downto 0));
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- UART RX
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
baud_counter <= 0;
|
|
||||||
bit_index <= 0;
|
|
||||||
rx_shift <= (others => '0');
|
|
||||||
rx_byte <= (others => '0');
|
|
||||||
rx_valid <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
rx_valid <= '0';
|
|
||||||
|
|
||||||
case uart_state is
|
|
||||||
|
|
||||||
when UART_IDLE =>
|
|
||||||
if uart_rx = '0' then
|
|
||||||
baud_counter <= BAUD_CNT / 2;
|
|
||||||
uart_state <= UART_START;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_START =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
if uart_rx = '0' then
|
|
||||||
baud_counter <= BAUD_CNT - 1;
|
|
||||||
bit_index <= 0;
|
|
||||||
uart_state <= UART_DATA;
|
|
||||||
else
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_DATA =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
rx_shift(bit_index) <= uart_rx;
|
|
||||||
baud_counter <= BAUD_CNT - 1;
|
|
||||||
|
|
||||||
if bit_index = 7 then
|
|
||||||
uart_state <= UART_STOP;
|
|
||||||
else
|
|
||||||
bit_index <= bit_index + 1;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_STOP =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
rx_byte <= rx_shift;
|
|
||||||
rx_valid <= '1';
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- Loader
|
|
||||||
-- 실행 중 새 UART 데이터가 들어오면 자동 초기화 후 재다운로드
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
variable word_data : std_logic_vector(15 downto 0);
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
byte_high <= (others => '0');
|
|
||||||
rx_phase <= '0';
|
|
||||||
wr_addr <= 0;
|
|
||||||
cpu_run <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
|
|
||||||
if rx_valid = '1' then
|
|
||||||
|
|
||||||
-- CPU 실행 중 새 데이터가 들어오면 기존 실행 중지 후 재다운로드 시작
|
|
||||||
if cpu_state /= CPU_LOAD_PROGRAM then
|
|
||||||
wr_addr <= 0;
|
|
||||||
rx_phase <= '0';
|
|
||||||
cpu_run <= '0';
|
|
||||||
byte_high <= rx_byte;
|
|
||||||
rx_phase <= '1';
|
|
||||||
|
|
||||||
else
|
|
||||||
if rx_phase = '0' then
|
|
||||||
byte_high <= rx_byte;
|
|
||||||
rx_phase <= '1';
|
|
||||||
|
|
||||||
else
|
|
||||||
word_data := byte_high & rx_byte;
|
|
||||||
|
|
||||||
if word_data = x"FFFF" then
|
|
||||||
cpu_run <= '1';
|
|
||||||
rx_phase <= '0';
|
|
||||||
|
|
||||||
else
|
|
||||||
prog_ram(wr_addr) <= word_data;
|
|
||||||
|
|
||||||
if wr_addr < 255 then
|
|
||||||
wr_addr <= wr_addr + 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
rx_phase <= '0';
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- CPU
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
cpu_state <= CPU_LOAD_PROGRAM;
|
|
||||||
pc <= 0;
|
|
||||||
inst <= x"0000";
|
|
||||||
r0 <= (others => '0');
|
|
||||||
zflag <= '0';
|
|
||||||
delay_counter <= (others => '0');
|
|
||||||
led <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
|
|
||||||
-- 실행 중 UART 데이터가 들어오면 CPU를 초기화하고 다운로드 모드로 전환
|
|
||||||
if rx_valid = '1' and cpu_state /= CPU_LOAD_PROGRAM then
|
|
||||||
cpu_state <= CPU_LOAD_PROGRAM;
|
|
||||||
pc <= 0;
|
|
||||||
inst <= x"0000";
|
|
||||||
r0 <= (others => '0');
|
|
||||||
zflag <= '0';
|
|
||||||
delay_counter <= (others => '0');
|
|
||||||
led <= '0';
|
|
||||||
|
|
||||||
else
|
|
||||||
case cpu_state is
|
|
||||||
|
|
||||||
when CPU_LOAD_PROGRAM =>
|
|
||||||
if cpu_run = '1' then
|
|
||||||
pc <= 0;
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when CPU_FETCH =>
|
|
||||||
inst <= prog_ram(pc);
|
|
||||||
|
|
||||||
if pc < 255 then
|
|
||||||
pc <= pc + 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_DECODE;
|
|
||||||
|
|
||||||
when CPU_DECODE =>
|
|
||||||
case opcode is
|
|
||||||
|
|
||||||
when x"0" =>
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"1" =>
|
|
||||||
r0 <= resize(operand, 16);
|
|
||||||
|
|
||||||
if operand = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"2" =>
|
|
||||||
r0 <= r0 + 1;
|
|
||||||
|
|
||||||
if r0 + 1 = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"3" =>
|
|
||||||
r0 <= r0 - 1;
|
|
||||||
|
|
||||||
if r0 - 1 = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"4" =>
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"5" =>
|
|
||||||
if zflag = '1' then
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"6" =>
|
|
||||||
if zflag = '0' then
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"7" =>
|
|
||||||
led <= '1';
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"8" =>
|
|
||||||
led <= '0';
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"9" =>
|
|
||||||
delay_counter <= to_unsigned(to_integer(operand) * 50000, 32);
|
|
||||||
cpu_state <= CPU_DELAY;
|
|
||||||
|
|
||||||
when others =>
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
|
|
||||||
when CPU_DELAY =>
|
|
||||||
if delay_counter = 0 then
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
else
|
|
||||||
delay_counter <= delay_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
end architecture;
|
|
||||||
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 359 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 85 KiB |
@@ -1,5 +0,0 @@
|
|||||||
window.MathJax = {
|
|
||||||
tex: {
|
|
||||||
tags: 'ams'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,922 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>1.FPGA모델기반설계 - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#fpga" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_1" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
주요흐름
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_2" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
응용 예제
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_1" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
주요흐름
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_2" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
응용 예제
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="fpga">FPGA 모델기반설계</h1>
|
|
||||||
<p>MATLAB/Simulink + HDL Coder를 사용하면 블록 다이어그램으로 설계한 후 자동으로 VHDL 또는 Verilog 코드를 생성할 수 있습니다.</p>
|
|
||||||
<p>이 과정을 수행하여, 모델기반 설계에 대한 실습을 진행한다.</p>
|
|
||||||
<p>여기서는 간단한 LED 제어를 위한 모델 기반 설계를 전체 과정을 수행하여, 전체 제작에 대한 이해를 지원한다.</p>
|
|
||||||
<h3 id="_1">주요흐름</h3>
|
|
||||||
<pre><code>Simulink 모델 작성
|
|
||||||
↓
|
|
||||||
HDL Coder 설정
|
|
||||||
↓
|
|
||||||
고정소수점(Fixed Point) 변환
|
|
||||||
↓
|
|
||||||
HDL Workflow Advisor 실행
|
|
||||||
↓
|
|
||||||
VHDL 생성
|
|
||||||
↓
|
|
||||||
Quartus/Vivado 합성
|
|
||||||
↓
|
|
||||||
FPGA 다운로드
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
<h2 id="_2">응용 예제</h2>
|
|
||||||
<p>FPGA 개발자들이 가장 많이 사용하는 자동 HDL 생성 예제는 다음과 같은 것이 있다.</p>
|
|
||||||
<ul>
|
|
||||||
<li>UART TX/RX</li>
|
|
||||||
<li>FIR Filter</li>
|
|
||||||
<li>FFT</li>
|
|
||||||
<li>PID Controller</li>
|
|
||||||
<li>Motor Control</li>
|
|
||||||
<li>PWM Generator</li>
|
|
||||||
<li>CNN AI Accelerator</li>
|
|
||||||
<li>Ethernet MAC</li>
|
|
||||||
<li>Video Processing Pipeline</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,988 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../4.VHDL%EC%BD%94%EB%93%9C/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>3.시뮬링크작성 - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#_1" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
3.시뮬링크작성
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EA%B8%B0%EC%B4%88%EC%8B%A4%EC%8A%B5/7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_2" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기본블록 구성
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#matlab-fun" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB FUN 블록 작성
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_3" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
블록작성완료
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_2" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기본블록 구성
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#matlab-fun" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB FUN 블록 작성
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#_3" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
블록작성완료
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="_1">시뮬링크작성</h1>
|
|
||||||
<h2 id="_2">기본블록 구성</h2>
|
|
||||||
<p>MATLAB FUNC 블록 코드들 다음과 같이 작성한다.</p>
|
|
||||||
<p><img alt="내그림" src="../imgs/sim_blk.png" /></p>
|
|
||||||
<h2 id="matlab-fun">MATLAB FUN 블록 작성</h2>
|
|
||||||
<p>MATLAB FUNC 블록을 더블 클릭다여 아래 코드를 작성한다.</p>
|
|
||||||
<hr />
|
|
||||||
<p><img alt="내그림" src="../imgs/code.png" /></p>
|
|
||||||
<hr />
|
|
||||||
<pre><code class="language-c">function led = fcn(key0, key1, key2, key3)
|
|
||||||
%#codegen
|
|
||||||
|
|
||||||
persistent mode;
|
|
||||||
persistent cnt;
|
|
||||||
persistent led_state;
|
|
||||||
|
|
||||||
if isempty(mode)
|
|
||||||
mode = uint8(0); % 0 = OFF
|
|
||||||
end
|
|
||||||
|
|
||||||
if isempty(cnt)
|
|
||||||
cnt = uint32(0);
|
|
||||||
end
|
|
||||||
|
|
||||||
if isempty(led_state)
|
|
||||||
led_state = false;
|
|
||||||
end
|
|
||||||
|
|
||||||
% -----------------------------
|
|
||||||
% 1. KEY 입력에 따라 모드 저장
|
|
||||||
% -----------------------------
|
|
||||||
if key0
|
|
||||||
mode = uint8(0); % OFF
|
|
||||||
elseif key1
|
|
||||||
mode = uint8(1); % SLOW
|
|
||||||
elseif key2
|
|
||||||
mode = uint8(2); % NORMAL
|
|
||||||
elseif key3
|
|
||||||
mode = uint8(3); % FAST
|
|
||||||
end
|
|
||||||
|
|
||||||
% -----------------------------
|
|
||||||
% 2. 모드에 따라 깜빡임 주기 선택
|
|
||||||
% 50MHz 클럭 기준
|
|
||||||
% -----------------------------
|
|
||||||
period = uint32(0);
|
|
||||||
|
|
||||||
if mode == uint8(0)
|
|
||||||
period = uint32(0); % OFF
|
|
||||||
elseif mode == uint8(1)
|
|
||||||
period = uint32(50000000); % 느림
|
|
||||||
elseif mode == uint8(2)
|
|
||||||
period = uint32(25000000); % 보통
|
|
||||||
else
|
|
||||||
period = uint32(5000000); % 빠름
|
|
||||||
end
|
|
||||||
|
|
||||||
% -----------------------------
|
|
||||||
% 3. LED 출력 생성
|
|
||||||
% -----------------------------
|
|
||||||
if mode == uint8(0)
|
|
||||||
led_state = false;
|
|
||||||
cnt = uint32(0);
|
|
||||||
else
|
|
||||||
if cnt >= period
|
|
||||||
cnt = uint32(0);
|
|
||||||
led_state = ~led_state; % LED 반전
|
|
||||||
else
|
|
||||||
cnt = cnt + uint32(1);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
led = led_state;
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
<h2 id="_3">블록작성완료</h2>
|
|
||||||
<p>선으로 연결하여, 최종 블록 작성을 완료한다. Key 입력이 되도록 블록을 그려준다.</p>
|
|
||||||
<p><img alt="내그림" src="../imgs/sim_blk_2.png" /></p>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
사용법
|
|
||||||
|
|
||||||
1. ASM을 HEX로 변환
|
|
||||||
|
|
||||||
python asmtohex.py led.asm
|
|
||||||
|
|
||||||
결과:
|
|
||||||
|
|
||||||
led.hex
|
|
||||||
|
|
||||||
2. HEX를 COM3로 전송
|
|
||||||
|
|
||||||
python hexsend.py led.hex
|
|
||||||
|
|
||||||
pyserial 설치:
|
|
||||||
|
|
||||||
pip install pyserial
|
|
||||||
|
|
||||||
명령어 포맷:
|
|
||||||
|
|
||||||
16bit = opcode[15:12] + operand[11:0]
|
|
||||||
|
|
||||||
명령어:
|
|
||||||
|
|
||||||
NOP 0x0
|
|
||||||
LOAD n 0x1
|
|
||||||
INC 0x2
|
|
||||||
DEC 0x3
|
|
||||||
JMP addr 0x4
|
|
||||||
JZ addr 0x5
|
|
||||||
JNZ addr 0x6
|
|
||||||
LED_ON 0x7
|
|
||||||
LED_OFF 0x8
|
|
||||||
DELAY n 0x9
|
|
||||||
|
|
||||||
led.asm 변환 결과:
|
|
||||||
|
|
||||||
1005
|
|
||||||
7000
|
|
||||||
9064
|
|
||||||
8000
|
|
||||||
9064
|
|
||||||
3000
|
|
||||||
6001
|
|
||||||
5008
|
|
||||||
7000
|
|
||||||
4008
|
|
||||||
|
|
||||||
시리얼 전송 바이트:
|
|
||||||
|
|
||||||
10 05 70 00 90 64 80 00 90 64 30 00 60 01 50 08 70 00 40 08
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
OPCODE = {
|
|
||||||
"NOP": 0x0,
|
|
||||||
"LOAD": 0x1,
|
|
||||||
"INC": 0x2,
|
|
||||||
"DEC": 0x3,
|
|
||||||
"JMP": 0x4,
|
|
||||||
"JZ": 0x5,
|
|
||||||
"JNZ": 0x6,
|
|
||||||
"LED_ON": 0x7,
|
|
||||||
"LED_OFF": 0x8,
|
|
||||||
"DELAY": 0x9,
|
|
||||||
}
|
|
||||||
|
|
||||||
def remove_comment(line):
|
|
||||||
return line.split(";")[0].strip()
|
|
||||||
|
|
||||||
def parse_number(text):
|
|
||||||
text = text.strip()
|
|
||||||
if text.lower().startswith("0x"):
|
|
||||||
return int(text, 16)
|
|
||||||
if text.lower().startswith("0b"):
|
|
||||||
return int(text, 2)
|
|
||||||
return int(text, 10)
|
|
||||||
|
|
||||||
def assemble(asm_text):
|
|
||||||
labels = {}
|
|
||||||
instructions = []
|
|
||||||
pc = 0
|
|
||||||
|
|
||||||
# 1차 패스: 라벨 주소 수집
|
|
||||||
for raw_line in asm_text.splitlines():
|
|
||||||
line = remove_comment(raw_line)
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if line.endswith(":"):
|
|
||||||
label = line[:-1].strip()
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
labels[label] = pc
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ":" in line:
|
|
||||||
label_part, inst_part = line.split(":", 1)
|
|
||||||
label = label_part.strip()
|
|
||||||
inst_line = inst_part.strip()
|
|
||||||
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
|
|
||||||
labels[label] = pc
|
|
||||||
|
|
||||||
if inst_line:
|
|
||||||
instructions.append(inst_line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
instructions.append(line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
machine = []
|
|
||||||
|
|
||||||
# 2차 패스: 명령어 변환
|
|
||||||
for addr, line in enumerate(instructions):
|
|
||||||
parts = line.replace(",", " ").split()
|
|
||||||
|
|
||||||
if not parts:
|
|
||||||
continue
|
|
||||||
|
|
||||||
mnemonic = parts[0].upper()
|
|
||||||
|
|
||||||
if mnemonic not in OPCODE:
|
|
||||||
raise ValueError(f"{addr}: 알 수 없는 명령어: {mnemonic}")
|
|
||||||
|
|
||||||
opcode = OPCODE[mnemonic]
|
|
||||||
operand = 0
|
|
||||||
|
|
||||||
if len(parts) >= 2:
|
|
||||||
arg = parts[1]
|
|
||||||
if arg in labels:
|
|
||||||
operand = labels[arg]
|
|
||||||
else:
|
|
||||||
operand = parse_number(arg)
|
|
||||||
|
|
||||||
if operand < 0 or operand > 0x0FFF:
|
|
||||||
raise ValueError(f"{addr}: operand 범위 초과 0~4095: {operand}")
|
|
||||||
|
|
||||||
word = (opcode << 12) | (operand & 0x0FFF)
|
|
||||||
machine.append(word)
|
|
||||||
|
|
||||||
return machine, labels, instructions
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python asmtohex.py led.asm")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
asm_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not asm_path.exists():
|
|
||||||
print(f"파일 없음: {asm_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = asm_path.with_suffix(".hex")
|
|
||||||
asm_text = asm_path.read_text(encoding="utf-8")
|
|
||||||
|
|
||||||
machine, labels, instructions = assemble(asm_text)
|
|
||||||
|
|
||||||
with hex_path.open("w", encoding="utf-8") as f:
|
|
||||||
for word in machine:
|
|
||||||
f.write(f"{word:04X}\n")
|
|
||||||
|
|
||||||
print("라벨:")
|
|
||||||
for name, addr in labels.items():
|
|
||||||
print(f" {name} = {addr}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print("기계어:")
|
|
||||||
for addr, word in enumerate(machine):
|
|
||||||
print(f" {addr:02d}: {word:04X} ; {instructions[addr]}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"HEX 생성 완료: {hex_path}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
try:
|
|
||||||
import serial
|
|
||||||
except ImportError:
|
|
||||||
print("pyserial이 필요합니다.")
|
|
||||||
print("설치: pip install pyserial")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
PORT = "COM3"
|
|
||||||
BAUD = 115200
|
|
||||||
|
|
||||||
def read_hex_file(hex_path):
|
|
||||||
data = bytearray()
|
|
||||||
|
|
||||||
for line_no, raw_line in enumerate(hex_path.read_text(encoding="utf-8").splitlines(), start=1):
|
|
||||||
line = raw_line.split(";")[0].strip()
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
line = line.replace("0x", "").replace("0X", "")
|
|
||||||
|
|
||||||
if len(line) != 4:
|
|
||||||
raise ValueError(f"{line_no}번째 줄 오류: 16비트 HEX 4자리여야 함: {raw_line}")
|
|
||||||
|
|
||||||
word = int(line, 16)
|
|
||||||
|
|
||||||
high = (word >> 8) & 0xFF
|
|
||||||
low = word & 0xFF
|
|
||||||
|
|
||||||
data.append(high)
|
|
||||||
data.append(low)
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python hexsend.py led.hex")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not hex_path.exists():
|
|
||||||
print(f"파일 없음: {hex_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
send_data = read_hex_file(hex_path)
|
|
||||||
|
|
||||||
|
|
||||||
send_data.append(0xFF)
|
|
||||||
send_data.append(0xFF)
|
|
||||||
|
|
||||||
|
|
||||||
print(f"파일: {hex_path}")
|
|
||||||
print(f"전송 바이트 수: {len(send_data)}")
|
|
||||||
print("전송 데이터:")
|
|
||||||
print(send_data.hex(" ").upper())
|
|
||||||
|
|
||||||
ser = serial.Serial(
|
|
||||||
port=PORT,
|
|
||||||
baudrate=BAUD,
|
|
||||||
bytesize=serial.EIGHTBITS,
|
|
||||||
parity=serial.PARITY_NONE,
|
|
||||||
stopbits=serial.STOPBITS_ONE,
|
|
||||||
timeout=1
|
|
||||||
)
|
|
||||||
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
ser.reset_input_buffer()
|
|
||||||
ser.reset_output_buffer()
|
|
||||||
|
|
||||||
ser.write(send_data)
|
|
||||||
ser.flush()
|
|
||||||
ser.close()
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"{PORT}, {BAUD}bps 전송 완료")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
LOAD 1 ; R0 = 5
|
|
||||||
|
|
||||||
LOOP:
|
|
||||||
LED_ON ; LED 켜기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
LED_OFF ; LED 끄기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
DEC ; R0 = R0 - 1
|
|
||||||
|
|
||||||
JNZ LOOP ; R0 != 0이면 LOOP로 이동
|
|
||||||
|
|
||||||
JZ END_ON ; R0 == 0이면 END_ON으로 이동
|
|
||||||
|
|
||||||
END_ON:
|
|
||||||
LED_ON ; LED 켠 상태 유지
|
|
||||||
JMP END_ON ; 무한 반복
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
1001
|
|
||||||
7000
|
|
||||||
912C
|
|
||||||
8000
|
|
||||||
912C
|
|
||||||
3000
|
|
||||||
6001
|
|
||||||
5008
|
|
||||||
7000
|
|
||||||
4008
|
|
||||||
@@ -1,315 +0,0 @@
|
|||||||
library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
use ieee.numeric_std.all;
|
|
||||||
|
|
||||||
entity micom is
|
|
||||||
port (
|
|
||||||
clk : in std_logic; -- 50MHz
|
|
||||||
reset : in std_logic; -- High reset
|
|
||||||
uart_rx : in std_logic;
|
|
||||||
led : out std_logic
|
|
||||||
);
|
|
||||||
end entity;
|
|
||||||
|
|
||||||
architecture rtl of micom is
|
|
||||||
|
|
||||||
constant CLK_FREQ : integer := 50000000;
|
|
||||||
constant BAUD_RATE : integer := 115200;
|
|
||||||
constant BAUD_CNT : integer := CLK_FREQ / BAUD_RATE;
|
|
||||||
|
|
||||||
type ram_type is array (0 to 255) of std_logic_vector(15 downto 0);
|
|
||||||
signal prog_ram : ram_type := (others => x"0000");
|
|
||||||
|
|
||||||
type uart_state_type is (
|
|
||||||
UART_IDLE,
|
|
||||||
UART_START,
|
|
||||||
UART_DATA,
|
|
||||||
UART_STOP
|
|
||||||
);
|
|
||||||
|
|
||||||
signal uart_state : uart_state_type := UART_IDLE;
|
|
||||||
signal baud_counter : integer range 0 to BAUD_CNT := 0;
|
|
||||||
signal bit_index : integer range 0 to 7 := 0;
|
|
||||||
|
|
||||||
signal rx_shift : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_byte : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_valid : std_logic := '0';
|
|
||||||
|
|
||||||
signal byte_high : std_logic_vector(7 downto 0) := (others => '0');
|
|
||||||
signal rx_phase : std_logic := '0';
|
|
||||||
|
|
||||||
signal wr_addr : integer range 0 to 255 := 0;
|
|
||||||
signal cpu_run : std_logic := '0';
|
|
||||||
|
|
||||||
type cpu_state_type is (
|
|
||||||
CPU_LOAD_PROGRAM,
|
|
||||||
CPU_FETCH,
|
|
||||||
CPU_DECODE,
|
|
||||||
CPU_DELAY
|
|
||||||
);
|
|
||||||
|
|
||||||
signal cpu_state : cpu_state_type := CPU_LOAD_PROGRAM;
|
|
||||||
|
|
||||||
signal pc : integer range 0 to 255 := 0;
|
|
||||||
signal inst : std_logic_vector(15 downto 0) := x"0000";
|
|
||||||
|
|
||||||
signal opcode : std_logic_vector(3 downto 0);
|
|
||||||
signal operand : unsigned(11 downto 0);
|
|
||||||
|
|
||||||
signal r0 : unsigned(15 downto 0) := (others => '0');
|
|
||||||
signal zflag : std_logic := '0';
|
|
||||||
|
|
||||||
signal delay_counter : unsigned(31 downto 0) := (others => '0');
|
|
||||||
|
|
||||||
begin
|
|
||||||
|
|
||||||
opcode <= inst(15 downto 12);
|
|
||||||
operand <= unsigned(inst(11 downto 0));
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- UART RX
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
baud_counter <= 0;
|
|
||||||
bit_index <= 0;
|
|
||||||
rx_shift <= (others => '0');
|
|
||||||
rx_byte <= (others => '0');
|
|
||||||
rx_valid <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
rx_valid <= '0';
|
|
||||||
|
|
||||||
case uart_state is
|
|
||||||
|
|
||||||
when UART_IDLE =>
|
|
||||||
if uart_rx = '0' then
|
|
||||||
baud_counter <= BAUD_CNT / 2;
|
|
||||||
uart_state <= UART_START;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_START =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
if uart_rx = '0' then
|
|
||||||
baud_counter <= BAUD_CNT - 1;
|
|
||||||
bit_index <= 0;
|
|
||||||
uart_state <= UART_DATA;
|
|
||||||
else
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_DATA =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
rx_shift(bit_index) <= uart_rx;
|
|
||||||
baud_counter <= BAUD_CNT - 1;
|
|
||||||
|
|
||||||
if bit_index = 7 then
|
|
||||||
uart_state <= UART_STOP;
|
|
||||||
else
|
|
||||||
bit_index <= bit_index + 1;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when UART_STOP =>
|
|
||||||
if baud_counter = 0 then
|
|
||||||
rx_byte <= rx_shift;
|
|
||||||
rx_valid <= '1';
|
|
||||||
uart_state <= UART_IDLE;
|
|
||||||
else
|
|
||||||
baud_counter <= baud_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- Loader
|
|
||||||
-- 실행 중 새 UART 데이터가 들어오면 자동 초기화 후 재다운로드
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
variable word_data : std_logic_vector(15 downto 0);
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
byte_high <= (others => '0');
|
|
||||||
rx_phase <= '0';
|
|
||||||
wr_addr <= 0;
|
|
||||||
cpu_run <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
|
|
||||||
if rx_valid = '1' then
|
|
||||||
|
|
||||||
-- CPU 실행 중 새 데이터가 들어오면 기존 실행 중지 후 재다운로드 시작
|
|
||||||
if cpu_state /= CPU_LOAD_PROGRAM then
|
|
||||||
wr_addr <= 0;
|
|
||||||
rx_phase <= '0';
|
|
||||||
cpu_run <= '0';
|
|
||||||
byte_high <= rx_byte;
|
|
||||||
rx_phase <= '1';
|
|
||||||
|
|
||||||
else
|
|
||||||
if rx_phase = '0' then
|
|
||||||
byte_high <= rx_byte;
|
|
||||||
rx_phase <= '1';
|
|
||||||
|
|
||||||
else
|
|
||||||
word_data := byte_high & rx_byte;
|
|
||||||
|
|
||||||
if word_data = x"FFFF" then
|
|
||||||
cpu_run <= '1';
|
|
||||||
rx_phase <= '0';
|
|
||||||
|
|
||||||
else
|
|
||||||
prog_ram(wr_addr) <= word_data;
|
|
||||||
|
|
||||||
if wr_addr < 255 then
|
|
||||||
wr_addr <= wr_addr + 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
rx_phase <= '0';
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
-- CPU
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
process(clk, reset)
|
|
||||||
begin
|
|
||||||
if reset = '1' then
|
|
||||||
cpu_state <= CPU_LOAD_PROGRAM;
|
|
||||||
pc <= 0;
|
|
||||||
inst <= x"0000";
|
|
||||||
r0 <= (others => '0');
|
|
||||||
zflag <= '0';
|
|
||||||
delay_counter <= (others => '0');
|
|
||||||
led <= '0';
|
|
||||||
|
|
||||||
elsif rising_edge(clk) then
|
|
||||||
|
|
||||||
-- 실행 중 UART 데이터가 들어오면 CPU를 초기화하고 다운로드 모드로 전환
|
|
||||||
if rx_valid = '1' and cpu_state /= CPU_LOAD_PROGRAM then
|
|
||||||
cpu_state <= CPU_LOAD_PROGRAM;
|
|
||||||
pc <= 0;
|
|
||||||
inst <= x"0000";
|
|
||||||
r0 <= (others => '0');
|
|
||||||
zflag <= '0';
|
|
||||||
delay_counter <= (others => '0');
|
|
||||||
led <= '0';
|
|
||||||
|
|
||||||
else
|
|
||||||
case cpu_state is
|
|
||||||
|
|
||||||
when CPU_LOAD_PROGRAM =>
|
|
||||||
if cpu_run = '1' then
|
|
||||||
pc <= 0;
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
when CPU_FETCH =>
|
|
||||||
inst <= prog_ram(pc);
|
|
||||||
|
|
||||||
if pc < 255 then
|
|
||||||
pc <= pc + 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_DECODE;
|
|
||||||
|
|
||||||
when CPU_DECODE =>
|
|
||||||
case opcode is
|
|
||||||
|
|
||||||
when x"0" =>
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"1" =>
|
|
||||||
r0 <= resize(operand, 16);
|
|
||||||
|
|
||||||
if operand = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"2" =>
|
|
||||||
r0 <= r0 + 1;
|
|
||||||
|
|
||||||
if r0 + 1 = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"3" =>
|
|
||||||
r0 <= r0 - 1;
|
|
||||||
|
|
||||||
if r0 - 1 = 0 then
|
|
||||||
zflag <= '1';
|
|
||||||
else
|
|
||||||
zflag <= '0';
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"4" =>
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"5" =>
|
|
||||||
if zflag = '1' then
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"6" =>
|
|
||||||
if zflag = '0' then
|
|
||||||
pc <= to_integer(operand(7 downto 0));
|
|
||||||
end if;
|
|
||||||
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"7" =>
|
|
||||||
led <= '1';
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"8" =>
|
|
||||||
led <= '0';
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
when x"9" =>
|
|
||||||
delay_counter <= to_unsigned(to_integer(operand) * 50000, 32);
|
|
||||||
cpu_state <= CPU_DELAY;
|
|
||||||
|
|
||||||
when others =>
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
|
|
||||||
when CPU_DELAY =>
|
|
||||||
if delay_counter = 0 then
|
|
||||||
cpu_state <= CPU_FETCH;
|
|
||||||
else
|
|
||||||
delay_counter <= delay_counter - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
end architecture;
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,3 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
||||||
</urlset>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
.md-typeset .md-typeset__table {
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.md-typeset .md-typeset__table table {
|
|
||||||
width: 100% !important;
|
|
||||||
display: table !important;
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.md-typeset table:not([class]) th,
|
|
||||||
.md-typeset table:not([class]) td {
|
|
||||||
padding: 10px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.md-typeset table:not([class]) tr:nth-child(even) {
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.image-row {
|
|
||||||
display:flex;
|
|
||||||
gap:20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image-box {
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image-box img {
|
|
||||||
height:220px !important;
|
|
||||||
width:auto !important;
|
|
||||||
max-width:none !important;
|
|
||||||
}
|
|
||||||
@@ -1,989 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../..">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../2.IN_OUT/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>1.LEDONOFF - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#led-on-off" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
1.LEDONOFF
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="led-on-off">LED ON OFF</h1>
|
|
||||||
<p>실습키트의 LED 16비트를 ONOFF하는 과정을 실습니다.</p>
|
|
||||||
<p>해당 값에 대한 비트에 LED 가 ON OFF되는지 확인한다.</p>
|
|
||||||
<p><img alt="내 사진" src="../imgs/led16.png" /></p>
|
|
||||||
<h2 id="pin">PIN 테이블</h2>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>핀 번호</th>
|
|
||||||
<th>신호</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B3</td>
|
|
||||||
<td>LED_A[7]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B4</td>
|
|
||||||
<td>LED_A[6]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B5</td>
|
|
||||||
<td>LED_A[5]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B6</td>
|
|
||||||
<td>LED_A[4]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B7</td>
|
|
||||||
<td>LED_A[3]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B8</td>
|
|
||||||
<td>LED_A[2]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B9</td>
|
|
||||||
<td>LED_A[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B10</td>
|
|
||||||
<td>LED_A[0]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B13</td>
|
|
||||||
<td>LED_B[7]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B14</td>
|
|
||||||
<td>LED_B[6]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B15</td>
|
|
||||||
<td>LED_B[5]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B16</td>
|
|
||||||
<td>LED_B[4]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B17</td>
|
|
||||||
<td>LED_B[3]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B18</td>
|
|
||||||
<td>LED_B[2]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B19</td>
|
|
||||||
<td>LED_B[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B20</td>
|
|
||||||
<td>LED_B[0]</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="vhdl">VHDL 코드</h2>
|
|
||||||
<pre><code class="language-vhdl">
|
|
||||||
library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
|
|
||||||
entity led_test is
|
|
||||||
port( LED_A : out std_logic_vector(7 downto 0);
|
|
||||||
LED_B : out std_logic_vector(7 downto 0) );
|
|
||||||
end led_test;
|
|
||||||
|
|
||||||
|
|
||||||
architecture button_design of led_test is
|
|
||||||
begin
|
|
||||||
|
|
||||||
LED_A <= x"F0";
|
|
||||||
LED_B <= x"0F";
|
|
||||||
|
|
||||||
end button_design;
|
|
||||||
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,990 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../1.LEDONOFF/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../3.CLK/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>2.IN_OUT - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#in_out" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
2.IN_OUT
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="in_out">IN_OUT</h1>
|
|
||||||
<p>실습키트의 LED 16비트를 ONOFF하는 과정을 실습니다.</p>
|
|
||||||
<p>해당 값에 대한 비트에 LED 가 ON OFF되는지 확인한다.</p>
|
|
||||||
<p><img alt="내 사진" src="../imgs/in_out.png" /></p>
|
|
||||||
<h2 id="pin">PIN 테이블</h2>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>핀 번호</th>
|
|
||||||
<th>신호</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_P21</td>
|
|
||||||
<td>din[7]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_N21</td>
|
|
||||||
<td>din[6]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_M21</td>
|
|
||||||
<td>din[5]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_L21</td>
|
|
||||||
<td>din[4]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_K21</td>
|
|
||||||
<td>din[3]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_J21</td>
|
|
||||||
<td>din[2]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_H21</td>
|
|
||||||
<td>din[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_F21</td>
|
|
||||||
<td>din[0]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B3</td>
|
|
||||||
<td>dout[7]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B4</td>
|
|
||||||
<td>dout[6]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B5</td>
|
|
||||||
<td>dout[5]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B6</td>
|
|
||||||
<td>dout[4]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B7</td>
|
|
||||||
<td>dout[3]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B8</td>
|
|
||||||
<td>dout[2]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B9</td>
|
|
||||||
<td>dout[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B10</td>
|
|
||||||
<td>dout[0]</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="vhdl">VHDL 코드</h2>
|
|
||||||
<pre><code class="language-vhdl">
|
|
||||||
library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
|
|
||||||
entity in_out is
|
|
||||||
port(
|
|
||||||
din : in std_logic_vector(7 downto 0); -- 8비트 입력
|
|
||||||
dout : out std_logic_vector(7 downto 0) -- 8비트 출력
|
|
||||||
);
|
|
||||||
end entity;
|
|
||||||
|
|
||||||
architecture rtl of in_out is
|
|
||||||
begin
|
|
||||||
|
|
||||||
-- 입력을 그대로 출력으로 전달
|
|
||||||
dout <= din;
|
|
||||||
|
|
||||||
end architecture;
|
|
||||||
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,957 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../2.IN_OUT/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../4.7SEG/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>3.CLK - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#clk" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
3.CLK
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../7.MODE_SW/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="clk">CLK</h1>
|
|
||||||
<p>실습키트의 50MHz의 클럭을 받아서 원하는 시간으로 LED ON OFF 과정을 수행한다.
|
|
||||||
코어모듈에 적용된 LED 와 CLK 오실레이터의 입력을 사용한다.</p>
|
|
||||||
<p><img alt="내 사진" src="../imgs/fpga_core.png" /></p>
|
|
||||||
<h2 id="pin">PIN 테이블</h2>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>핀 번호</th>
|
|
||||||
<th>신호</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_T2</td>
|
|
||||||
<td>clk</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_E4</td>
|
|
||||||
<td>led</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="vhdl">VHDL 코드</h2>
|
|
||||||
<pre><code class="language-vhdl">
|
|
||||||
|
|
||||||
library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
use ieee.numeric_std.all;
|
|
||||||
|
|
||||||
entity clk is
|
|
||||||
port (
|
|
||||||
clk : in std_logic; -- PIN T2, 50MHz
|
|
||||||
led : out std_logic -- PIN E4 (active-high 가정)
|
|
||||||
);
|
|
||||||
end entity;
|
|
||||||
|
|
||||||
|
|
||||||
architecture rtl of clk is
|
|
||||||
|
|
||||||
signal cnt : integer range 0 to 49_999_999 := 0;
|
|
||||||
signal q : std_logic := '0';
|
|
||||||
|
|
||||||
begin
|
|
||||||
|
|
||||||
|
|
||||||
process(clk)
|
|
||||||
begin
|
|
||||||
if rising_edge(clk) then
|
|
||||||
if cnt = 49_999_999 / 5 then
|
|
||||||
cnt <= 0;
|
|
||||||
q <= not q; -- 1초마다 토글 (ON 1초, OFF 1초)
|
|
||||||
else
|
|
||||||
cnt <= cnt + 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end process;
|
|
||||||
|
|
||||||
|
|
||||||
led <= q; -- 보드가 active-low LED라면: led0 <= not q;
|
|
||||||
|
|
||||||
end architecture;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,944 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" class="no-js">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="prev" href="../6.CLK_7SEG/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="next" href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" href="../../assets/images/favicon.png">
|
|
||||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.36">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<title>7.MODE_SW - FPGA 설계 (RCO ALTERA FPGA IV KIT)</title>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/stylesheets/main.06209087.min.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../stylesheets/extra.css">
|
|
||||||
|
|
||||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr">
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
||||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
|
||||||
<div data-md-component="skip">
|
|
||||||
|
|
||||||
|
|
||||||
<a href="#mode-switch" class="md-skip">
|
|
||||||
Skip to content
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div data-md-component="announce">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<header class="md-header md-header--shadow" data-md-component="header">
|
|
||||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-header__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
<label class="md-header__button md-icon" for="__drawer">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-header__title" data-md-component="header-title">
|
|
||||||
<div class="md-header__ellipsis">
|
|
||||||
<div class="md-header__topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
7.MODE_SW
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
</label>
|
|
||||||
<div class="md-search" data-md-component="search" role="dialog">
|
|
||||||
<label class="md-search__overlay" for="__search"></label>
|
|
||||||
<div class="md-search__inner" role="search">
|
|
||||||
<form class="md-search__form" name="search">
|
|
||||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
||||||
<label class="md-search__icon md-icon" for="__search">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
||||||
</label>
|
|
||||||
<nav class="md-search__options" aria-label="Search">
|
|
||||||
|
|
||||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<div class="md-search__output">
|
|
||||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
||||||
<div class="md-search-result" data-md-component="search-result">
|
|
||||||
<div class="md-search-result__meta">
|
|
||||||
Initializing search
|
|
||||||
</div>
|
|
||||||
<ol class="md-search-result__list" role="presentation"></ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="md-container" data-md-component="container">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main class="md-main" data-md-component="main">
|
|
||||||
<div class="md-main__inner md-grid">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
||||||
<label class="md-nav__title" for="__drawer">
|
|
||||||
<a href="../.." title="FPGA 설계 (RCO ALTERA FPGA IV KIT)" class="md-nav__button md-logo" aria-label="FPGA 설계 (RCO ALTERA FPGA IV KIT)" data-md-component="logo">
|
|
||||||
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
FPGA 설계 (RCO ALTERA FPGA IV KIT)
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../.." class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
시작하기
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
기초실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|
||||||
<label class="md-nav__title" for="__nav_2">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
기초실습
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../1.LEDONOFF/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.LEDONOFF
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../2.IN_OUT/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.IN_OUT
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../3.CLK/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.CLK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../4.7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../5.KEY_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.KEY_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../6.CLK_7SEG/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.CLK_7SEG
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<a href="./" class="md-nav__link md-nav__link--active">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.MODE_SW
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_3">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
마이컴설계
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/1.%EB%A7%88%EC%9D%B4%EC%BB%B4%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.마이컴설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/2.cmd_set/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.명령어구성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/3.%EC%96%B4%EC%85%88%EB%B8%94%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.어셈블러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/4.%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.컴파일러작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/5.%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%8D%94%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
5.다운로더작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/6.FPGA%EC%A0%9C%EC%9E%91/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
6.FPGA제작
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../%EC%86%8C%ED%98%95%EB%A7%88%EC%9D%B4%EC%BB%B4/7.%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%8B%A4%EC%8A%B5/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
7.프로그램실습
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_4">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
MATLAB/SIMULINK
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/1.%EB%AA%A8%EB%8D%B8%EA%B8%B0%EB%B0%98%EC%84%A4%EA%B3%84/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
1.FPGA모델기반설계
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/2.%EA%B8%B0%EB%8A%A5%EC%A0%95%EC%9D%98/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
2.기능정의
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/3.%EC%8B%9C%EB%AE%AC%EB%A7%81%ED%81%AC%EC%9E%91%EC%84%B1/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
3.시뮬링크작성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="../../simulink/4.VHDL%EC%BD%94%EB%93%9C/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
4.VHDL코드생성
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
||||||
<div class="md-sidebar__scrollwrap">
|
|
||||||
<div class="md-sidebar__inner">
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
Table of contents
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#pin" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
PIN 테이블
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#vhdl" class="md-nav__link">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
VHDL 코드
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="md-content" data-md-component="content">
|
|
||||||
<article class="md-content__inner md-typeset">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="mode-switch">MODE SWITCH</h1>
|
|
||||||
<p>슬라이드 스위치를 이용한 모드 설정에 사용한다. </p>
|
|
||||||
<p>해당 슬라이드를 입력으로 설정하여 입력되는 값들을 사용한다.</p>
|
|
||||||
<p><img alt="내 사진" src="../imgs/modesw.png" /></p>
|
|
||||||
<hr />
|
|
||||||
<h2 id="pin">PIN 테이블</h2>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>핀 번호</th>
|
|
||||||
<th>신호</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B3</td>
|
|
||||||
<td>dout[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_B4</td>
|
|
||||||
<td>dout[0]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_M2</td>
|
|
||||||
<td>din[1]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>PIN_J2</td>
|
|
||||||
<td>din[0]</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<hr />
|
|
||||||
<h2 id="vhdl">VHDL 코드</h2>
|
|
||||||
<pre><code class="language-vhdl">library ieee;
|
|
||||||
use ieee.std_logic_1164.all;
|
|
||||||
|
|
||||||
entity modsw is
|
|
||||||
port (
|
|
||||||
din : in std_logic_vector(1 downto 0); -- 8bit 입력
|
|
||||||
dout : out std_logic_vector(1 downto 0) -- 8bit 출력
|
|
||||||
);
|
|
||||||
end modsw;
|
|
||||||
|
|
||||||
architecture rtl of modsw is
|
|
||||||
begin
|
|
||||||
|
|
||||||
dout <= din; -- 입력을 그대로 출력
|
|
||||||
|
|
||||||
|
|
||||||
end rtl;
|
|
||||||
|
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="md-footer">
|
|
||||||
|
|
||||||
<div class="md-footer-meta md-typeset">
|
|
||||||
<div class="md-footer-meta__inner md-grid">
|
|
||||||
<div class="md-copyright">
|
|
||||||
|
|
||||||
|
|
||||||
Made with
|
|
||||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
||||||
Material for MkDocs
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="md-dialog" data-md-component="dialog">
|
|
||||||
<div class="md-dialog__inner md-typeset"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
|
|
||||||
|
|
||||||
<script src="../../js/mathjax.js"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
사용법
|
|
||||||
|
|
||||||
1. ASM을 HEX로 변환
|
|
||||||
|
|
||||||
python asmtohex.py led.asm
|
|
||||||
|
|
||||||
결과:
|
|
||||||
|
|
||||||
led.hex
|
|
||||||
|
|
||||||
2. HEX를 COM3로 전송
|
|
||||||
|
|
||||||
python hexsend.py led.hex
|
|
||||||
|
|
||||||
pyserial 설치:
|
|
||||||
|
|
||||||
pip install pyserial
|
|
||||||
|
|
||||||
명령어 포맷:
|
|
||||||
|
|
||||||
16bit = opcode[15:12] + operand[11:0]
|
|
||||||
|
|
||||||
명령어:
|
|
||||||
|
|
||||||
NOP 0x0
|
|
||||||
LOAD n 0x1
|
|
||||||
INC 0x2
|
|
||||||
DEC 0x3
|
|
||||||
JMP addr 0x4
|
|
||||||
JZ addr 0x5
|
|
||||||
JNZ addr 0x6
|
|
||||||
LED_ON 0x7
|
|
||||||
LED_OFF 0x8
|
|
||||||
DELAY n 0x9
|
|
||||||
|
|
||||||
led.asm 변환 결과:
|
|
||||||
|
|
||||||
1005
|
|
||||||
7000
|
|
||||||
9064
|
|
||||||
8000
|
|
||||||
9064
|
|
||||||
3000
|
|
||||||
6001
|
|
||||||
5008
|
|
||||||
7000
|
|
||||||
4008
|
|
||||||
|
|
||||||
시리얼 전송 바이트:
|
|
||||||
|
|
||||||
10 05 70 00 90 64 80 00 90 64 30 00 60 01 50 08 70 00 40 08
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
OPCODE = {
|
|
||||||
"NOP": 0x0,
|
|
||||||
"LOAD": 0x1,
|
|
||||||
"INC": 0x2,
|
|
||||||
"DEC": 0x3,
|
|
||||||
"JMP": 0x4,
|
|
||||||
"JZ": 0x5,
|
|
||||||
"JNZ": 0x6,
|
|
||||||
"LED_ON": 0x7,
|
|
||||||
"LED_OFF": 0x8,
|
|
||||||
"DELAY": 0x9,
|
|
||||||
}
|
|
||||||
|
|
||||||
def remove_comment(line):
|
|
||||||
return line.split(";")[0].strip()
|
|
||||||
|
|
||||||
def parse_number(text):
|
|
||||||
text = text.strip()
|
|
||||||
if text.lower().startswith("0x"):
|
|
||||||
return int(text, 16)
|
|
||||||
if text.lower().startswith("0b"):
|
|
||||||
return int(text, 2)
|
|
||||||
return int(text, 10)
|
|
||||||
|
|
||||||
def assemble(asm_text):
|
|
||||||
labels = {}
|
|
||||||
instructions = []
|
|
||||||
pc = 0
|
|
||||||
|
|
||||||
# 1차 패스: 라벨 주소 수집
|
|
||||||
for raw_line in asm_text.splitlines():
|
|
||||||
line = remove_comment(raw_line)
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if line.endswith(":"):
|
|
||||||
label = line[:-1].strip()
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
labels[label] = pc
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ":" in line:
|
|
||||||
label_part, inst_part = line.split(":", 1)
|
|
||||||
label = label_part.strip()
|
|
||||||
inst_line = inst_part.strip()
|
|
||||||
|
|
||||||
if label in labels:
|
|
||||||
raise ValueError(f"중복 라벨: {label}")
|
|
||||||
|
|
||||||
labels[label] = pc
|
|
||||||
|
|
||||||
if inst_line:
|
|
||||||
instructions.append(inst_line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
continue
|
|
||||||
|
|
||||||
instructions.append(line)
|
|
||||||
pc += 1
|
|
||||||
|
|
||||||
machine = []
|
|
||||||
|
|
||||||
# 2차 패스: 명령어 변환
|
|
||||||
for addr, line in enumerate(instructions):
|
|
||||||
parts = line.replace(",", " ").split()
|
|
||||||
|
|
||||||
if not parts:
|
|
||||||
continue
|
|
||||||
|
|
||||||
mnemonic = parts[0].upper()
|
|
||||||
|
|
||||||
if mnemonic not in OPCODE:
|
|
||||||
raise ValueError(f"{addr}: 알 수 없는 명령어: {mnemonic}")
|
|
||||||
|
|
||||||
opcode = OPCODE[mnemonic]
|
|
||||||
operand = 0
|
|
||||||
|
|
||||||
if len(parts) >= 2:
|
|
||||||
arg = parts[1]
|
|
||||||
if arg in labels:
|
|
||||||
operand = labels[arg]
|
|
||||||
else:
|
|
||||||
operand = parse_number(arg)
|
|
||||||
|
|
||||||
if operand < 0 or operand > 0x0FFF:
|
|
||||||
raise ValueError(f"{addr}: operand 범위 초과 0~4095: {operand}")
|
|
||||||
|
|
||||||
word = (opcode << 12) | (operand & 0x0FFF)
|
|
||||||
machine.append(word)
|
|
||||||
|
|
||||||
return machine, labels, instructions
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python asmtohex.py led.asm")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
asm_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not asm_path.exists():
|
|
||||||
print(f"파일 없음: {asm_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = asm_path.with_suffix(".hex")
|
|
||||||
asm_text = asm_path.read_text(encoding="utf-8")
|
|
||||||
|
|
||||||
machine, labels, instructions = assemble(asm_text)
|
|
||||||
|
|
||||||
with hex_path.open("w", encoding="utf-8") as f:
|
|
||||||
for word in machine:
|
|
||||||
f.write(f"{word:04X}\n")
|
|
||||||
|
|
||||||
print("라벨:")
|
|
||||||
for name, addr in labels.items():
|
|
||||||
print(f" {name} = {addr}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print("기계어:")
|
|
||||||
for addr, word in enumerate(machine):
|
|
||||||
print(f" {addr:02d}: {word:04X} ; {instructions[addr]}")
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"HEX 생성 완료: {hex_path}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
try:
|
|
||||||
import serial
|
|
||||||
except ImportError:
|
|
||||||
print("pyserial이 필요합니다.")
|
|
||||||
print("설치: pip install pyserial")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
PORT = "COM3"
|
|
||||||
BAUD = 115200
|
|
||||||
|
|
||||||
def read_hex_file(hex_path):
|
|
||||||
data = bytearray()
|
|
||||||
|
|
||||||
for line_no, raw_line in enumerate(hex_path.read_text(encoding="utf-8").splitlines(), start=1):
|
|
||||||
line = raw_line.split(";")[0].strip()
|
|
||||||
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
|
|
||||||
line = line.replace("0x", "").replace("0X", "")
|
|
||||||
|
|
||||||
if len(line) != 4:
|
|
||||||
raise ValueError(f"{line_no}번째 줄 오류: 16비트 HEX 4자리여야 함: {raw_line}")
|
|
||||||
|
|
||||||
word = int(line, 16)
|
|
||||||
|
|
||||||
high = (word >> 8) & 0xFF
|
|
||||||
low = word & 0xFF
|
|
||||||
|
|
||||||
data.append(high)
|
|
||||||
data.append(low)
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
def main():
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("사용법: python hexsend.py led.hex")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
hex_path = Path(sys.argv[1])
|
|
||||||
|
|
||||||
if not hex_path.exists():
|
|
||||||
print(f"파일 없음: {hex_path}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
send_data = read_hex_file(hex_path)
|
|
||||||
|
|
||||||
|
|
||||||
send_data.append(0xFF)
|
|
||||||
send_data.append(0xFF)
|
|
||||||
|
|
||||||
|
|
||||||
print(f"파일: {hex_path}")
|
|
||||||
print(f"전송 바이트 수: {len(send_data)}")
|
|
||||||
print("전송 데이터:")
|
|
||||||
print(send_data.hex(" ").upper())
|
|
||||||
|
|
||||||
ser = serial.Serial(
|
|
||||||
port=PORT,
|
|
||||||
baudrate=BAUD,
|
|
||||||
bytesize=serial.EIGHTBITS,
|
|
||||||
parity=serial.PARITY_NONE,
|
|
||||||
stopbits=serial.STOPBITS_ONE,
|
|
||||||
timeout=1
|
|
||||||
)
|
|
||||||
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
ser.reset_input_buffer()
|
|
||||||
ser.reset_output_buffer()
|
|
||||||
|
|
||||||
ser.write(send_data)
|
|
||||||
ser.flush()
|
|
||||||
ser.close()
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(f"{PORT}, {BAUD}bps 전송 완료")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
LOAD 1 ; R0 = 5
|
|
||||||
|
|
||||||
LOOP:
|
|
||||||
LED_ON ; LED 켜기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
LED_OFF ; LED 끄기
|
|
||||||
DELAY 300 ; 대기
|
|
||||||
|
|
||||||
DEC ; R0 = R0 - 1
|
|
||||||
|
|
||||||
JNZ LOOP ; R0 != 0이면 LOOP로 이동
|
|
||||||
|
|
||||||
JZ END_ON ; R0 == 0이면 END_ON으로 이동
|
|
||||||
|
|
||||||
END_ON:
|
|
||||||
LED_ON ; LED 켠 상태 유지
|
|
||||||
JMP END_ON ; 무한 반복
|
|
||||||