1 부이 : 난 항상 코드 중복을 피하기 위해의 Verilog의 기능을 사용할 들었다이유를 Verilog에 사용되는 기능 모듈
에게. 하지만 모듈로 할 수는 없습니까? 내 이해가 정확하다면, 모든 기능은 Verilog에서 모듈로 다시 쓰여질 수 있습니다. 단 모듈은 항상 블록 내부에서 인스턴스화 할 수 없습니다. 이 경우를 제외하고는 항상 모듈을 고수 할 수 있습니다. 나 맞아?
2 부 :
내가 올바른 생각하면, 모듈은 함수의 치료를받을 것을 왜의 Verilog 컴파일러 방식으로 기록 할 수 없습니다? 내 말은 왜 컴파일러가 프로그래머가 n 블록 안에 모듈을 인스턴스화하고 함수를 지원하지 못하게 할 수 없습니까?
실제로 매개 변수와 생성 블록을 사용하여 재귀 모듈을 만들 수 있습니다. 이 [[재귀 적으로 정의 된 LAC를 사용하여 컴퓨터 아키텍처 용으로 작성한 32 비트 ALU] (https://gist.github.com/patrickroberts/3908606ece975eb4c20b4cd8f8b25dd6)를 확인하십시오. –
@PatrickRoberts는 링크를 제공해 주셔서 감사합니다. – user3219492
질문을 편집했습니다. 설명을 위해 링크의 최상위 모듈에 대한 사양의 일부 스크린 샷을 추가했습니다. 네가 체크 아웃 한 것을 기쁘게 생각한다. 호기심에서 모듈 ** 대신 코드 중복을 피하기 위해 함수를 사용하라는 말을 들었습니까? 아니면 일반적으로? 일반적으로 적용된 경우 좋은 조언이기 때문에 특정 상황에서 모듈이 더 적합하다고 생각하기 때문에 모듈에 대한 기능 사용을 적극적으로 방해하려는 의미로이 조언이 제공되었는지 여부는 명확하지 않습니다. –