Computer systems Abstraction
- HDL(Hardware Description Language)을 사용할 때는 RTL level에서 함
- RTL level: register에 담아놨다가 사용하는 방식
- HDL -> gate level : synthesis
synthesizable(합성가능)한 것에 대해서 simulation.
전체 feature는 simulation을 위한 것.
우리가 관심을 가질 내용은 synthesis보다는 processor를 설계하는 것.(modeling simulation)
HDL to Gates
- Simulation
- Inputs applied to circuit
- Outputs checked for correctness
- Millions of dollars saved by debugging in simulation instead of hardware(수백만 달러가 세이브된다.)
Blocking vs. Nonblocking Assignment
- <= is nonblocking assignment
- Occurs simultaneously with others(다른것들과 함께 동시에 발생하는)
- = is blocking assignment
- Occurs in order it appears in file(파일 상에 나타나는 순서에 맞게 발생하는)
- 현재 실행 중인 것이 있으면 다른 것은 잠시 중지(blocking)
Testbenches
- HDL that tests another module: device under test (dut)
- 또 다른 모듈을 테스트하는 HDL: device under test(dut)