Verilog를 사용한 설계과제(4bit CLA 모듈, State table)
- 최초 등록일
- 2020.04.03
- 최종 저작일
- 2019.12
- 14페이지/ MS 워드
- 가격 1,000원
목차
1. 설계 코드와 주석
2. 테스트벤치 코드
3. 시뮬레이션 결과
4. 고찰
본문내용
고찰1.
CLA란 아래 비트부터 carry를 전달하는 Ripple-carry adder 대신에, 한번에 각 비트에서 carry의 발생여부를 판단해 덧셈 시간을 획기적으로 단축하는 방법이다. CLA의 확장 방정식은 인터넷을 참고해 코딩하였다.
이 확장 방정식에 의해 C0~C3의 값이 결정된다. 4bit adder로서 sum이 [3:0] carry_out 1bit로 4bit를 구성해야하나, 5bit로 설정해 carry_out을 sum에 MSB로 지정함으로써 결과 값 확인 시 좀 더 가독성을 높힌 코드를 작성하였다. 코드에 적었듯 sum을 [3:0]으로 바꿔서 선언해도 전혀 문제되지 않고 원하는 동작을 동일하게 수행한다.
고찰 2.
Mealy machine은 이미 상태그래프가 주어져 있었기 때문에 그대로 코드로 옮기는 작업만 하면 되었다. state는 인간이 만들어낸 가상의 상태이므로 이것을 컴퓨터가 알아들을 수 있게, 2진수로 작성하였다. 이때 S0~S5의 상태는 3bit가 필요함이 명확하다. 이렇게 각각의 경우를 2진수로 표현하고, 각 bit마다 입력이 0과 1일 때의 다음 상태와 출력은 주어진 상태그래프를 활용했다. 테스트벤치 코드에서 rst의 초기값을 0으로 설정해주는게 중요했다. 쓰레기 값이 들어가면 코드 동작이 불확실해지므로 처음에 무조건 회로를 초기화해야 한다. 이후 입력 값에 따라 상태그래프대로 상태가 천이되고, 출력 값이 출력됨을 테스트벤치 코드를 통해 확인 할 수 있었다. 조합회로와는 다르게 순차회로에서는 clk를 선언해줘야 했다. F/F에 의해 상태를 기억하는 회로이므로 F/F에 들어갈 clk를 #5 clk =~clk; 명령어를 통해 5ns마다 반전시켰다. 이렇게 주어진 Mealy machine을 Verilog언어로 설계하였다.
참고 자료
없음