私はVHDLでいくつかのコードを持っています。私は連結がどのように機能するのか分かりません。VHDL、連結はどのように機能しますか?
A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
B : IN IN STD_LOGIC;
A <= "1111";
B <= '0';
A <= A(2 DOWNTO 0) & B;
"0111"または "1110"ですか?
私はVHDLでいくつかのコードを持っています。私は連結がどのように機能するのか分かりません。VHDL、連結はどのように機能しますか?
A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
B : IN IN STD_LOGIC;
A <= "1111";
B <= '0';
A <= A(2 DOWNTO 0) & B;
"0111"または "1110"ですか?
連結自体については、そういうことをしているようですが、他のエラー(BrianDrummondが指摘しているように入力に割り当てており、コンパイル可能な構文がない)は別として、プロセス外のVHDL信号の割り当ては並行している(つまり、連続して並行して評価される)ため、問題が発生します。
あなたが行うのであれば:
A <= "1111";
A <= A(2 DOWNTO 0) & B;
次の2つのドライバとAのすべてのビットを割り当てることがあります - 「1」となる最下位ビットを除いて、それの左側のビット'B'が割り当てられます。これを実際の銅線で構成すると想像してください。あなたはAのすべてのビットを一緒に結びつけており、それらを正の電圧源に結びつけています。 Bが '1'の場合はすべて '1'になりますが、Bが '0'の場合は短絡のように正と負の電圧端子を効果的に接続します。あなたのシミュレータはあなたに結果が「X」であることを知らせます - 知られていません。
[最小限の完全で実証可能な例](http://stackoverflow.com/help/mcve)が必要です。上記の「コード」は有効なVHDLではありません。 – user1155120
左から右の順序が維持されます(S_HITS_SRC1の値またはその宣言を指定していないことに注意してください)。 IEEE Std 1076-2008 9.2.5演算子を追加する、パラ2 – user1155120
申し訳ありませんが、更新されました – weider