私はすでに、モデムでVHDLのALUを記述し終えましたが、シミュレーションを見ると、テストベンチはソリューションを更新しないようですが、回路は32ビットの応答で常に"UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"
私は**私はVHDLテストベンチは出力を変化させないALU 32bit
を言う回路応答に関するコンパイラの警告があり、また、テストベンチ上で間違って書いたものを知らない警告:(VSIM-8683)を初期化されていないポート/ alu_tb/ALU_test/RES( 32 downto 0)にはドライバがありません。 このポートは信号ネットワークに値(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU)を提供します。
、ここでテストベンチ・コードは次のとおりです。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity ALU_tb is
end ALU_tb;
architecture bhv_ALU_tb of ALU_tb is
component ALU
port(
a, b: in std_logic_vector(31 downto 0);
c: in std_logic;
s: in std_logic_vector(3 downto 0);
res: out std_logic_vector(32 downto 0));
end component;
signal a, b: std_logic_vector(31 downto 0);
signal c: std_logic;
signal s: std_logic_vector(3 downto 0);
signal re: std_logic_vector(32 downto 0);
begin
ALU_test: ALU port map (a => a, b => b, c => c, s => s, res => re);
process begin
b <= "00000000000010100111010100011110";
a <= "00000000011010000100110011101110";
c <= '0';
s <= "1111";
wait for 2 ns;
b <= "00000000000010100111010100011110";
a <= "00000000011010000100110011101110";
c <= '0';
s <= "0100";
wait for 2 ns;
s <= "0000";
wait for 2 ns;
s <= "0001";
wait for 2 ns;
s <= "0010";
wait for 2 ns;
s <= "0011";
wait for 2 ns;
s <= "0100";
wait for 2 ns;
s <= "0101";
wait for 2 ns;
s <= "0110";
wait for 2 ns;
s <= "0111";
wait for 2 ns;
s <= "1000";
wait for 2 ns;
s <= "1001";
wait for 2 ns;
s <= "1010";
wait for 2 ns;
s <= "1011";
wait for 2 ns;
s <= "1100";
wait for 2 ns;
s <= "1101";
wait for 2 ns;
s <= "1110";
wait for 2 ns;
s <= "1111";
wait for 2 ns;
end process;
end bhv_ALU_tb;
私は間違い「が初期化されていませんRES」が、私は離れてVHDL道からあまりにも長い間されていると正直にどのように知らないてきた些細なようだ知っていますそれは、任意のアイデアを修正?悪い..使用しない
この質問に対する回答は、「res」は外の値なので、内部のものに接続されていなければモジュール内部からは駆動されません。 – Staszek