7

私は VHDL の学習過程にあり、例、構文ガイド、および実験から学習しようとしています。

私がよく理解できないことの 1 つは、なぜ複数のアーキテクチャを提供したいのかということです。たとえば、この例の MUX コードは次のとおりです。

architecture behv1 of Mux is
begin
    process(I3,I2,I1,I0,S)
    begin

        -- use case statement
        case S is
        when "00" =>    O <= I0;
        when "01" =>    O <= I1;
        when "10" =>    O <= I2;
        when "11" =>    O <= I3;
        when others =>  O <= "ZZZ";
    end case;

    end process;
end behv1;

architecture behv2 of Mux is
begin

    -- use when.. else statement
    O <=    I0 when S="00" else
        I1 when S="01" else
        I2 when S="10" else
        I3 when S="11" else
        "ZZZ";

end behv2;

何か目的があるのですか、それとも単なる例えのためですか?

また、これがここに属しているのか、Electronics.SE に属しているのかわからないので、最初にここで試してみることにしました。

4

3 に答える 3

7

その特定の例は単なる例のように見えますが、設計によって異なるアーキテクチャが必要になる理由はいくつかあります。

一般的に行われていることの 1 つは、SoC 設計全体の別の (無関係な) 部分をシミュレートしようとしているときに、パフォーマンス上の理由から IP 設計のブラック ボックス モデルを提供することです。

または、合成用のモデルだけでなく、シミュレーション時間を短縮できる IP のより高いレベルのモデルがある場合もあります。設計の残りの部分を検証する場合、通常はコア全体をシミュレートする必要がないため、より高いレベルのモデルがプロセッサ コアに使用されることがよくあります。

もう 1 つの考えられる理由は、IP が SoC 設計に統合されたときにわずかに異なるバージョンをインスタンス化できるように、IP 設計で異なる動作を選択的に持つことです。たとえば、あるアーキテクチャは 1 つのクロック ドメインでの動作を目的としている場合があり、別のアーキテクチャでは 2 つの異なるクロック ドメイン間で同期が行われている場合があります。

于 2011-04-02T19:22:26.023 に答える
2

As a real-world example, I have a generic arbiter module implemented with multiple architectures. I can instantiate the arbiter with the desired number of inputs, and select appropriate back-end logic for the task at hand. In some cases, I use a simple round-robin architecture that looks at one signal per clock (slow, but low gate-count). Other times, I need more complex features such as weighting by priority, or higher speed (ie: look at 4 or 8 signals per clock). These require more logic than the simple round-robin design, but may be required in some instances.

By having each different implementation as a separate architecture in the same module, it is easy to select the appropriate one for the task, or switch between them as required.

于 2011-04-03T02:03:06.703 に答える
2

設計者はさまざまな方法でアーキテクチャを使用できます。

私のため:

  • エンティティは、必要な特定の機能に関連付けられています。
  • アーキテクチャは、その特定の機能の実装の詳細を記述します。したがって、同じ関数を異なる方法で記述する必要がある場合 (何らかの理由で、多くは他の人がすでに言及しています)、複数のアーキテクチャを持つことができます。

同じ I/O を必要とするさまざまな機能を実装するためにアーキテクチャを使用することは避けます。つまり、エンティティを使用する場合、選択したアーキテクチャに関係なく、エンティティが機能的に同じように動作することを期待しています (たとえば、あるアーキテクチャがチップ上の配置をモデル化している場合、おそらくタイミングの違いが生じる可能性があるため、機能的に言​​います)。アーキテクチャの選択は、選択している「ターゲット」(シミュレーション、合成など) に基づいています。

于 2011-04-04T17:08:53.527 に答える