2013-12-21 2 views
2

나는 글자를 쓰는 데 다소 능숙하지만 대답이 필요한 비교적 기본적인 질문이있다. 언제 깨트릴 지. VHDL?언제 VHDL을 무너 뜨릴까요?

기본 예제 : VHDL에 8 비트 ALU을 디자인한다고 가정하면, VHDL 구현을위한 몇 가지 옵션이 있습니다.

전체 ALU를 하나의 엔티티로 간단하게 설계하십시오. 엔터티에 필요한 모든 I/O (IEEE_STD_ARITHMETIC 라이브러리로 인해 수행 할 수 있음). ALU는 아래로 다음 블록으로하는 자리 올림 수 예측 가산기 일부 멀티플렉서 말

- 또는

브레이크

. - 또는

브레이크

그 아래로 더 만드는 블록으로 캐리 - 내다; partial-full adders, 캐리 경로 및 멀티플렉서를 묶은 다음 구조적 요소를 사용하여 이들을 모두 연결합니다.

우리는 게이트 레벨까지 모든 것을 바로 잡을 수 있으며, 각각에 대해 엔티티, 동작 및 구조를 생성 할 수 있습니다.

물론 우리가 필요로하는 파일보다 ALU이 더 많습니다.

합성 후 물리적 구현에 영향을 미치며 중단을 중단해야하는 시점은 언제입니까?

답변

4

VHDL을 가장 높은 수준의 추상화 상태로 유지해야하므로 설명 된대로 "분해하십시오". 당신이 제안하고있는 것은 나쁜 생각 인 자신을 종합 (carry-lookahead 덧셈기를 만드는 것)하는 것입니다. 신디사이저는 물론 대상 장치 (FPGA 또는 ASIC 라이브러리)를 알지 못하므로 수행 할 작업을 알려서는 안됩니다. 추가 작업을 수행하려면 + 연산자를 사용하면 도구로 인해 설계 제약 조건에 맞는 최상의 구조가 파악됩니다.

디자인을 여러 모듈로 나누면 디자인을 최적화하는 것이 어려워집니다. 일반적으로 모듈 간 최적화는 모듈 내 최적화보다 어렵습니다.

물론 인터페이스가 잘 정의 된 주요 기능 블록은 디자인과 가독성을 유지하기 위해 별도의 모듈에 있어야합니다. ALU는 하나의 모듈 일 수도 있고 다른 하나의 명령어 ROM 일 수도 있습니다. 이러한 모듈은 명확하고 잘 정의 된 기능을 가지고 있으며 모듈 간 최적화를위한 많은 기회가 없습니다. 마지막으로 가능한 최적화 비트를 얻으려면 최적화 전에 디자인을 단순화하고 도구로 작업을 수행하십시오.