디시설, 디지털시스템설계 실습과제 11주차 인하대
- 최초 등록일
- 2021.08.31
- 최종 저작일
- 2021.01
- 9페이지/
MS 워드
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
"디시설, 디지털시스템설계 실습과제 11주차 인하대"에 대한 내용입니다.
목차
1. 4bit CLA
2. 32bit CLA (모듈코드는 4bit 코드에서 parameter만 32로 수정)
3. Report Analysis
4. 결과분석 및 고찰
본문내용
우선 parameter를 사용해 원하는 크기의 비트로 설정할 수 있게 모듈코드를 구현했다. input으로 N비트 x, y를 선언했고 output으로 N비트 sum을 선언했다. 입력으로 들어가는 carry in은 1비트 cin으로 설정했고 오버플로우 되어 출력되는 carry out 은 1비트 cout으로 설정했다. 모듈 내부에서 이동하는 carry는 N-1개 필요하므로 N-1비트로 설정했고 propagate신호와 generate 신호는 N비트로 설정했다. 이후 propagate 신호와 generate 신호의 관계식을 그대로 assign 문을 사용해 dataflow 방식으로 작성해주었다. for문을 사용해서 최하위부터 최상위 비트까지 신호가 만들어지도록 작성했다. 내부의 carry신호도 assign 문을 사용해 그대로 표현해 주었고 carry 신호는 연산 시작 시 입력하는 첫번째 cin을 제외하고 N개의 신호가 존재하므로 i = 1부터 N까지로 설정해서 c[1] 부터 생성되도록 작성했다. 출력 sum의 경우도 for문을 사용해 최하위부터 최상위 비트까지 신호가 만들어지도록 작성했다. 오버플로우 되어 출력되는 cout은 carry의 제일 마지막 비트인 c[N] 이 되도록 assign문을 사용해 선언했다.
테스트 벤치를 살펴보자. 우선 4비트 CLA의 경우 입출력 포트는 모듈과 동일하게 선언했고 추가로 in, output 단자 크기의 2배만큼 test포트를 선언했다. 20ns마다 1비트씩 더하기 1 연산을 진행해주기 위해서 test 포트의 하위 4비트는 4비트 y로, 이어지는 상위 4비트는 x로 할당해주었다. 그리고 test = test + 1 문장을 작성하여 20ns 마다 test의 최하위 비트부터 1씩 더해지도록 연산을 진행했다.
waveform을 살펴보면(왼쪽에 포트부분의 캡쳐가 잘렸습니다.), 가장 위가 x 그 다음 차례로 y, sum, cout이다.
참고 자료
없음