非常に基本的な質問:VHDL:信号とポート「矢印」のどちら側に=>
は、どのように私は知っているポート/信号/値は矢印のどちら側に配置する必要がありますか? 非常に等しいと思われる port_a => x
〜x <= port_a
に切り替えると気づきました。 また、x => port_a
は役に立たない
矢印がどのように指すべきかわかりません。
回答は本当にありがとうございます!
非常に基本的な質問:VHDL:信号とポート「矢印」のどちら側に=>
は、どのように私は知っているポート/信号/値は矢印のどちら側に配置する必要がありますか? 非常に等しいと思われる port_a => x
〜x <= port_a
に切り替えると気づきました。 また、x => port_a
は役に立たない
矢印がどのように指すべきかわかりません。
回答は本当にありがとうございます!
<=
は割り当てです。具体的には信号割り当てで、他のどこかの値で信号を駆動します。物理的な類推のために、右側のものが左側に値を移動させます。
=>
は、ピンから信号へのポートマッピングです。これは割り当てではありません。物理的な類推は、ピンをワイヤにハンダ付けすることです。
=>
マッピングはport map
の内部でのみ発生するため、インスタンシエーションには「はんだ付け」しかできません。そして、「ピン」は常にのように左に移動します(なぜなら、それは言語ルールの意味なのです)。port map
でx <= port_a
を実行できないのはこのためです。
信号割り当ては、右から左へ<=
を使用して行います。 右側はエンティティからの入力信号またはプロセスで宣言された信号でなければなりません。 左側は、エンティティからの出力信号(または入力/バッファ)、プロセスで宣言されたシグナル、またはプロセスで宣言された変数です。
他の答えに記載されているポートマッピングの横にある=>
矢印は、ベクターを構築するために全く別のものにも使用されます。 たとえば、vが4ビットベクトルの場合、v <= (others => '0')
はvに "0000"を割り当てます。カッコ内の `=>`は、ベクトル内の異なる場所に異なる値を割り当てるためのショートカットです。
すぐに回答いただきありがとうございます。 – chwi
もし=>がポートリストの場合、これはどのように可能ですか? clk_40Mhz_iはピンです。
COMPONENT clk_wiz_v3_5 is
PORT
( - ポートにクロック
CLK_IN1:STD_LOGICにおいて、
- クロックアウトポート
CLK_OUT1:アウトSTD_LOGIC;
- - ステータス信号と制御信号
リセット:in std_logic;
ロック:out std_logic
);
end component;
xclk_wiz_v3_5:clk_wiz_v3_5
PORT MAP(
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);
リセット< = not(clk_locked);
Mr Thompsonありがとう! – chwi