verilog code - (combo kit) 10진수 2자리수 계산기(덧셈,뺄셈,나눗셈,곱셈), 7-segment, vfd로 출력
- 최초 등록일
- 2014.04.25
- 최종 저작일
- 2013.12
- 32페이지/
한컴오피스
- 가격 3,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
* 본 문서는 한글 2005 이상 버전에서 작성된 문서입니다.
한글 2002 이하 프로그램에서는 열어볼 수 없으니, 한글 뷰어프로그램(한글 2005 이상)을 설치하신 후 확인해주시기 바랍니다.
목차
1. Module kit_calculator_SegVfd_2digit 의 동작 설명
1) 7 - Segment 출력 설명
2) VFD
3) Dot Matrix
2. kit_calculator_SegVfd_2digit를 구현하기 위한 module code
3. simulation 출력화면
본문내용
▶ Module kit_calculator_SegVfd_2digit 의 동작 설명
⇒ 0부터 99까지의 2자리 수를 입력 하고 덧셈이나 뺄셈, 곱셈, 나눗셈 중 하나의 연산을 선택한 후 다시 0부터 99까지의 두자 ⇒ 리 수를 입력하고 결과값을 출력하라는 입력을 누르면 선택한 연산의 결과값이 출력된다.
⇒ 연산 선택을 하기 전에 수를 여러번 눌러도 연산을 선택하기 전까지는 data의 입력이 shift register처럼 동작하여 마지막에 ⇒ 누른 두 수가 data에 입력된다.
⇒ 마찬가지로 연산을 여러번 눌러도 다음 숫자를 입력하기 전까지는 마지막에 누른 연산이 선택된다.
⇒ 또한 결과값을 출력하라는 입력을 누르기 전에 수를 여러번 눌러도 결과값 출력하라는 입력을 누르기 전까지는 data의 입 ⇒ 력이 shift register처럼 동작하여 마지막에 누른 두 수가 입력된다.
<중 략>
위와 같이 decimal_8divider를 구현함으로써 나머지(소수점 자리수)를 출력한다.
⇒ expansion 된 입력을 받기 때문에 16bit를 받으므로 나눗셈 연산이 매우 길어지고 복잡할 것이라 예상되지만, 생각보다 나눗⇒ 셈 연산은 매우 간단하다. decimal_8divider의 몫이 0부터 9 사이의 수임을 이용하여 구현하였기 때문이다.
⇒ decimal_divider의 몫이 10 이상의 수가 나오지 않는 이유는, 제수가 b라고 할 때, 나머지(피제수) 중 제일 큰 수는 b-1이고, ⇒ expansion 한 나머지는 (b-1)X10 = 10b-10이다. 또한 그 식을 b로 나누면 10-10/b 이다. b는 0이 아닌 자연수이기 때문에 0 =< ⇒ 10-10/b < 10 이다. 즉 나머지의 범위는 0 ~ 10인 것이다. 그러므로 몫 q는 8bit로 반환되지만 상위 네개의 bit는 0이므로 하위 ⇒ 네개의 bit로 표현할 수 있고 bcd code라고 생각할 수 있기 때문에 bcd code로 변환할 필요가 없다.
참고 자료
없음