首先module和program之間有很多相似之處:
1.和module相同,program也可以定義0個或多個輸入、輸出、雙向端口。
2.一個program塊內部可以包含0個或多個initial塊、generate塊、specparam語句、
連續賦值語句、併發斷言、timeunit聲明。
3.在program塊中數據類型、數據聲明、函數和任務的定義均與module塊類似。
4.一個設計中可以包含多個program塊,這些program塊既可以通過端口交互,也可以相互獨立,
這一點與module塊也是相似的。
但是module和program之間也有很多不同之處:
1.一個program塊內部不能包含任何其他的always塊、用戶自定義原語( UDP)、
module塊、接口(interface)、或者program塊,
2.一個module塊中可以定義program塊,但一個program塊中卻不能定義module塊
3.一個program塊可以調用其他module塊或者program塊中定義的函數或任務,
但是一個module塊卻不能調用其他program塊中定義的任務或函數。