verilog는 HW 설계를 목적으로 만들어진 언어이며, C, C++과 문법이 상당히 유사합니다. verilog에서는 module이라는 개념이 매우 중요합니다. C에서 비유하자면 함수와 그 기능이 매우 흡사합니다. 구현하고자 하는 module을 verilog 파일로 작성하고, testbench(이하 tb)라는 파일을 작성해 그 module을 simulation 할 수 있습니다. 이때 tb 또한 verilog 문법을 따라서 작성합니다. verilog 코딩을 해보면 알 수 있지만, 사실 module 자체의 코딩은 그렇게 길지 않습니다. 오히려 tb를 작성하는데 많은 개발 시간을 할애하게 됩니다. module의 instantiation이라는 개념이 있는데, 이는 4-bit Ripple carry counter..