[논리회로설계실험]VHDL을 활용한 Calculator 설계
- 최초 등록일
- 2021.06.26
- 최종 저작일
- 2020.12
- 17페이지/ MS 워드
- 가격 2,000원
소개글
"[논리회로설계실험]VHDL을 활용한 Calculator 설계"에 대한 내용입니다.
목차
1. 목적(Purpose)
2. 배경이론(Background)
1) LCD
2) 스위치/딥스위치
3) 각 Process 별 역할 설명
4) Reference 및 확장방향
3. Source & Results
1) VHDL Source
2) TestBench Source
3) Result wave
4. Result analysis
5. Discussion
1) 예측과 실제 실험 결과 대조 분석
2) Algorithm 설명 및 이해
본문내용
1.목적(Purpose)
이번실습은, FPGA의 버튼들을 이용하여, 값을 입력하고, 덧셈과 뺄셈 연산을 하는 계산기를 만들어 보는 실습이다. 이전 실습에서 배웠던, LCD의 표시기능을 그대로 이용하고, 각 버튼마다 실행동작을 지정하여 계산기의 기능을 구현한다. LCD에 값을 표시할 때는, 각자리에 아스키 코드 값을 이용하여, 설정해준다. 각 자리별로 계산값을 지정해야 하기 때문에, 조건문을 이용하여, 범위마다 나올 계산값을 설정한다.
2. 배경이론(Background)
1)LCD
이전 실습에서와 같이 FPGA의 LCD를 이용한다. 코드 상에서는 32개 위치가 for문으로 구성되어 loop를 돌려서 구현하지만, 실제로 쓰는 부분은 “0+5=5” 정도의 계산을 하기 때문에, 5~7자리의 LCD에만 값을 표시한다.
2)스위치/딥스위치
원래 계산기는 키패드를 이용하여 값을 입력하지만, lab 3000에 키패드가 없기 때문에, 스위치와 딥스위치를 이용하여, 값을 나타낸다. Lab3000의 딥스위치는 4비트(4자리)로 구성되어 있으며, 각 비트의 스위치를 올리고 내림으로써, 값을 2진수로 표현할 수 있다. 실습에서는, 올라간것이 0, 내려간것이 1로 판단하여, 2진수를 나타낸다.
3)process별 역할 설명
상위에 lcd_display 모듈을 만들고, component형식으로, lcd_test와 data_gen을 불러오는 방식으로 코드를 구성한다. 여기서는 각 모듈별 process의 역할에 대해서 간단히 설명하였다.
3-1)data_gen의 process
1. process(FPGA_RSTB, CLK)-LCD 값 표시 process
Lcd에 값을 출력하는 process로, 연산은 이루어지지 않고, 각 LCD의 위치에 어떤 값들이 나타나야 할지를 결정해준다. 이 process 에서는 주어진 값을 쓰는 것 이외에, 값끼리 서로 연산하면 오류가 발생한다.
참고 자료
https://m.blog.naver.com/PostView.nhn?blogId=meatpos&logNo=221417537054&proxyReferer=https:%2F%2Fwww.google.com%2F – 정육점의 LCD
https://news.zum.com/articles/28515078 - 마트의 LCD
https://kr.element14.com/omron-electronic-components/a6sn-1101/dip-switch-1-spst-flush-slide/dp/2066421?gclid=CjwKCAiA2O39BRBjEiwApB2Iku0-1ox6Dm8uaClZu7FZfdgqMkLlqyEzBMWtWAFlS7uUVAjFdFX4dhoCiOoQAvD_BwE&mckv=stCcRYfza_dc|pcrid|451219138512|pkw||pmt||slid||product|2066421|pgrid|111906070784|ptaid|pla-309781517488|&CMP=KNC-GKR-SHOPPING-Switc – 딥스위치
https://en.wikipedia.org/wiki/DIP_switch - 딥스위치
https://en.wikipedia.org/wiki/Liquid-crystal_display - LCD
fundamentals of logic design, Charles, Larry L Kinney 7th