디지털시스템설계 hw5
- 최초 등록일
- 2021.01.07
- 최종 저작일
- 2020.11
- 18페이지/ MS 워드
- 가격 1,000원
소개글
숭실대학교 이찬호 교수 디지털시스템설계 과제입니다. (lee chan ho - Digital Systems Designs using Verilog)
코드캡쳐, 설명, 시뮬레이션 플랜, 블록다이어그램, 파형 등 필요한 자료가 포함된 레포트입니다. 해당 레포트 그대로 제출하면 되고 과제 점수 만점이었습니다.
목차
1. what will happen if we change the order of statements?
2. simulate and compare the results of blocking and non-blocking assignment examples
3. answer the above question using your simulation results. compare the results for blocking and non-blocking statements.
4. simulate the above code for blocking and non-blocking statements and the codes in the note.
5. simulate the above codes
6. what are values of reg1~3 when tclk=20ns and 40ns, respectively?
7. simulate the above codes
본문내용
* 코드 순서를 바꿔서 실행했을 때 파형
-> 코드 순서를 바꾸어서 실행하면 t값이 정해지지 않은 채로 c_out, sum값에 t값이 x값으로 들어가 연산되기 때문에 unknown값으로 파형에서 나타난다. 첫번째 문장 실행 후 두번째 문장에서 t가 선언된 이후에는 값이 정상적으로 출력된다.
- 시뮬레이션 계획
-> 파형을 보면 blocking문의 경우 앞의 문장이 모두 시행되고 나면 순차적으로 시행되어 x값에서 코드에서 부여한 값으로 바뀌었다. nonblocking문의 경우는 코드 순서와 상관없이 정해진 지연시간 이후 값이 부여된 것을 확인할 수 있다.
-> Clk이 #20마다 반복되며 positive edge에서 din값이 qout_b와 qout_nb값의 msb위치에 들어간다. Positive edge에서만 시행되기 때문에 clk이 0일 때의 din값은 반영되지 않았다. qout_b은 blocking문을 사용했고, qout_nb는 non_blocking문을 사용했지만 문장이 1줄로 이루어져있기 때문에 둘은 파형차이 없이 동일하게 출력되었다.
-> Clk이 #10마다 반복되며 positive edge에서 sin값이 qout_b와 qout_nb값의 LSB위치에 들어가고 비트가 오른쪽으로 1bit씩 shift한다. Positive edge에서만 시행되기 때문에 clk이 0일 때의 sin값은 반영되지 않았다. qout_b은 blocking문을 사용했고, qout_nb는 non_blocking문을 사용했기 때문에 둘은 코드가 유사하지만 다른 파형을 출력한다.
-> blocking문의 경우: 문장이 순차적으로 시행되기 때문에 qout_b[0]=sin의 값이 qout_b[1], qout_b[2], qout_b[3]에 할당된다. 따라서 rising edge의 sin의 값에 따라 4bit가 모두 같은 값으로 출력되는 것을 확인 할 수 있다.
참고 자료
없음