인하대 fpga 3주차 먹스, 디코더보고서
- 최초 등록일
- 2020.07.07
- 최종 저작일
- 2019.11
- 10페이지/ MS 워드
- 가격 3,000원
목차
1. 2to1 MUX
2. 4to1 MUX
3.Binary Decoder
4. RTL MAP
5. Test Bench
6. simulation 동작
7. 고찰
본문내용
고찰
시뮬레이션 동작을 보면 50ns마다 a,b,c_in등의 입력이 바뀌면서 out에 원하는 신호가 나타나는 것을 확인함으로써 코드가 정상동작 함을 알 수 있다. 이번 과제에서의 포인트는 복잡한 모듈을 한꺼번에 처리하려고 하지 말고 낱개로 쪼개서 만든뒤에 탑 모듈로 합쳐주는 개념을 잘 사용해야 했다는 것이라고 생각한다. 3bit adder를 1bit adder를 선언한뒤 3개를 instatiation해와서 만드는 것 처럼, 3bit adder와 decoder또한 각각 선언한 뒤에 top module에서 wire를 이용해 적절히 연결선만 이어주면 원하는 동작을 얻을 수 있었다. 동작을 확인하는 부분에 있어서는 simulation 그림에서 radix를 각각 hexa와 unsinged decimal로 둠으로써 한눈에 쉽게 동작함을 확인 할 수 있었다. 3bit adder에서 decoder로 신호를 전달할 때 wire문을 사용했는데, 여기서 필자는 adder의 전체 c_out을 sum[3]로 바꿔서 매칭시킨후에, decoder의 입력에 별다른 조작없이 sum 배열을 그대로 넣어줌으로써 구현하였다. 처음에는 c_out과 sum[3:0]을 어떻게 합쳐서 한 명령으로 decoder에 넣어줄지 몰라서 저러한 방식으로 하게되었는데 코드 완성후에 이 문제를 해결하기 위해 assing D (c_out, sum[ ] ) 명령을 통해 두개의 서로 다른배열도 한 wire로 합쳐줄수 있다는 지식을 배웠다. 이 지식이 생긴뒤에 작성했던 코드를 되짚어보면, c_out자리를 sum[3]로 임의로 바꾸기 보단 c_out으로 그대로 써서 변수 자체에 원래의 의미를 알아볼수있는 이름을 남기고, 그 밑에 wire d를 선언해서 assign으로 묶어주는게 코드작성시 더 직관적이고 알아보기 쉬울것이라는 생각이 들었다.
참고 자료
없음