전공지식정리/디지털시스템설계

4. Timing과 Simulation

TimeSave 2020. 12. 8. 23:16

1. Timing dimension
- VHDL에서 timing을 다루는 방법이 있다.
- after문, wait문

1.1 after 구문은 time delay를 조정할 수 있게 한다.
  ex)
  Z <= ‘1’ after 4 ns when X=‘1’ and Y=‘0’ else ‘0’ after 3 ns; 

1.2 wait 구문
 - sequential 구문이므로, process문 안에서만 쓸 수 있다.
  ex)
      wait for 10 ns; 
      wait; 



[1. How to model timing in VHDL?
 1.1 after clause allows you to specify a time delay
 Z <= ‘1’ after 4 ns when X=‘1’ and Y=‘0’ else ‘0’ after 3 ns; 

1.2 wait clause
Sequential statement (only allowed in a process)
wait for 10 ns;
wait; ]

2. 시뮬레이션과 test bench ====> 좀 더 이해가 필요.

2.1 test bench : 시뮬레이션을 위한,  특정 input의 연속 을 말한다.
= simulation용 input의 모음.
2.2 test되는 entity를 UUT(unit under test)라고 한다.(?)

2.3 assert문, report문


[2.Simulation and test benches
2.1 A test bench specifies a sequence of inputs to be simulated 
2.2 The entity being tested is called unit under test (UUT)
2.3 assert and report statements]

3. ModelSim
- Vhdl연습을 위해 Mentor사의 ModelSim을 사용한다.
- homepage에 들어가면 ModelSim PE student edition이 있다.
- 학교 메일 넣고 사용하면 된다.(그냥 이메일도 가능하다)

3.1 실행

실행하면 위와 같은 화면을 확인 할 수 있다.


3.2 프로젝트 추가
- File -> New -> Project를 눌러서 추가해준다.
- Project Name은 알아서 정해주고
- Default library name은 work으로 자동으로 작성된다
 ; 앞에서 배웠듯이, vhdl의 library는 workspace라고 생각하면 된다.


3.3 vhdl 소스코드 파일 추가
- project를 추가한 뒤, 우클릭을 하여
add to project -> new File -> File Name(파일명) 작성하고 -> OK
를 코드 작성파일이 추가된다.


3.4 컴파일(compilation)
프로젝트 파일목록 -> 원하는 file 위에서 우클릭 -> compile 


3.5 시뮬레이션
Simulate 메뉴 -> Start simulation

3.6 Wave form
View메뉴 -> Wave를 check
-> Wave 창에, 원하는 signal을 drag&drop하면 된다.


4. 예제 풀이 - toy example
; 정확히 이해를 못한 것 같아서, 나중에 올리겠음.


4.1 clock generator ; 처음엔 어렵게 생각했는데, 만드는 법은 정말 간단했다.
  - 무한 loop를 돌린다.
  - wait for문을 이용해 유지시간을 정해준다.
  - 1과 0을 바꿔준다.


constant period : time := 10ns;

signal clk, A, Z : std_logic;

begin
clk_gen : process
begin
while(true) loop
clk <='0'; wait for period ; 
clk <='1'; wait for period ;
end loop;
end process;




출처
1. Digital Design: Principles and Practices, Fourth Edition, John F. Wakerly

2. KOCW. 디지털시스템설계. 아주대학교. 양회석. http://www.kocw.net/home/search/kemView.do?kemId=1145013