3

非常に基本的な質問:

ポート/信号/値を矢印のどちら側に配置する必要があるかを知るにはどうすればよいですか?port_a => x非常に同じように見えるものに切り替えるとx <= port_a、エラーが発生することに気づき ました。また、x => port_a働かないでください

矢印がどちらの方向を向いているのかさえわかりません。

答えは本当にありがたいです!

4

3 に答える 3

6

<=割り当てです。具体的には、信号の割り当てであり、別の場所からの値で信号を駆動します。物理的な類推として、右側にあるものは値を左側に駆動します。

=>ピンから信号へのポート マッピングです。これは割り当てではありません。ピンをワイヤにはんだ付けするような物理的なアナロジーが考えられます。

インスタンス化への「はんだ付け」しかできないため、=>マッピングはport map. そして、「ピン」は常に左側に配置されます (これは、言語規則がそうしているためですx <= port_a) port map

于 2012-04-18T13:06:18.200 に答える
2

信号の割り当ては、 を使用して右から左に進み<=ます。右側は、エンティティからの入力信号またはプロセスで宣言された信号でなければなりません。左側は、エンティティからの出力信号 (または入力/バッファー)、プロセスで宣言された信号、またはプロセスで宣言された変数にすることができます。

他の回答で言及されているポートマッピングに加えて、=>矢印はまったく異なる目的、つまりベクトルを構築するためにも使用されます。たとえば、v が 4 ビット ベクトルの場合、vv <= (others => '0')に "0000" が割り当てられます。括弧内の ``=>` は、ベクトル内の異なる場所に異なる値を割り当てるためのショートカットです。

于 2012-04-18T09:47:33.300 に答える
0

=> がポートリストの場合、これはどのように可能ですか? clk_40Mhz_i はピンであることに注意してください。

COMPONENT clk_wiz_v3_5 is 

ポート

( -- クロックインポート

CLK_IN1 : std_logic 内。

-- クロックアウト ポート

CLK_OUT1 : out std_logic;

-- ステータスおよび制御信号

RESET : std_logic 内。

LOCKED : out std_logic

);

コンポーネントの終了;

xclk_wiz_v3_5: clk_wiz_v3_5

港マップ (

 CLK_IN1          => clk_40Mhz_i,

 -- Clock out ports

 CLK_OUT1         => clk_40Mhz,

 -- Status and control signals

 RESET            => pic_fpga_reset,

 LOCKED           => clk_locked   

);

pic_fpga_reset <= not(processor_fpga_resetn_i);

リセット <= しない (clk_locked);

于 2015-08-21T05:44:45.163 に答える