디시설, 디지털시스템설계 실습과제 8주차 인하대
- 최초 등록일
- 2021.08.31
- 최종 저작일
- 2021.01
- 6페이지/ MS 워드
- 가격 1,500원
소개글
"디시설, 디지털시스템설계 실습과제 8주차 인하대"에 대한 내용입니다.
목차
1. N bit binary up/down counter
2. 16 × 8bit register file
3. 결과분석 및 고찰
본문내용
첫번째 문제에서는 hierarchical 하게 카운터를 구현하기 위해서 N bit binary up down counter를 cascadable하게 구현했다. 우선 구현부를 살펴보면, 파라미터 N을 설정하여 원하는 크기의 카운터를 설정할 수 있게 했다. sensitivity list에 reset 신호를 넣어주지 않았기 때문에 reset은 입력되는 clk 신호에 동기화 된다. 즉, reset이 1이면 clk신호의 다음 positive edge에서 출력 값이 0이 된다. reset이 0일경우 eup 과 edn의 값이 1인지 판단하여 출력 값 qout에 1을 더하거나 1을 감소시킨다. cout의 경우 qout의 값이 모두 1이고 eup이 1인경우에만 carry 가 1이 되도록 구현했다. bout의 경우에도 qout이 모두 0이고 edn이 1인경우에만 borrow 가 1이 되도록 구현했다.
test bench에서 위에서 구현한 모듈을 4비트로 설정해서 3개를 cascasde하여 구현했다. 10ns 마다 0, 1을 반복하는 clk신호를 생성해 주었고, eup과 edn을 한번씩 1로 설정해서 각각 시뮬레이션을 진행했다. 처음 3개의 파형이 eup1이 1일 때이고 이어진 3개의 파형이 edn이 1일 때 파형이다.
cout1, bout1 은 2^4 간격으로 1이 출력되고, cout2, bout2 은 2^8 간격으로 1이 출력되며, cout, bout 은 2^12 간격으로 1이 출력되고 있는 것을 확인 할 수 있다. 카운팅이 제대로 수행되는 것을 확인했다.
이제 두번째 문제인 16 × 8bit register file을 살펴보자. 16개의 칸에 8bit의 값을 입력 받는다. 따라서 파라미터 M, N, W 3개를 입력 받았다. W의경우 입력 받는 데이터의 크기인 8로, N은 총 16칸의 값을 위해 16을, M은 16개의 칸을 가리켜 읽거나 쓰도록 하는 신호를 위해 4비트([3:0] rd addra, …. = 16개)로 설정했다.
참고 자료
없음