申し訳ありませんが、私はこのウェブサイトを初めて使用しますが、ほぼ 2 日間続けて回答を探しています。
私は vhdl を初めて使用し、課題で単純な 16 ビット ALU を作成するように求められました。この ALU には、ビヘイビア デザインと RTL デザインの 2 つのアーキテクチャが必要です。私に関する限り、その完全なコードがあります。
私が理解できないのは、modelsim で両方のアーキテクチャのシミュレーションを実行できるようにするテスト ベンチを作成する方法です。問題なくコンパイルできる両方のファイル (テストベンチと ALU) がありますが、シミュレーションで「初期化されていない inout ポートにドライバーがありません」というエラーが表示されます。
この問題に対してどのコードを表示すればよいかわからないため、TB の最初の部分だけを示します。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY tb IS
END tb;
ARCHITECTURE behavior OF tb IS
signal Clk,Res : std_logic := '0';
signal A,B : signed(15 downto 0) := (others => '0');
signal R1, R2 : signed(31 downto 0) := (others => '0');
signal Op : unsigned(2 downto 0) := (others => '0');
constant Clk_period : time := 10 ns;
component ALU_16_First
port(A, B: signed(15 downto 0):=(others => '0'); R: inout signed(31 downto 0):= (others => '0'); Op: in unsigned(2 downto 0) := (others => '0'); Clk, Res: Std_logic);
end component ALU_16_First;
component ALU_16_RTL
port(A, B: in signed(15 downto 0):= (others => '0');
R: inout signed(31 downto 0):= (others => '0'); Op: in unsigned(2 downto 0) := (others => '0'); Clk, Res: Std_logic);
end component ALU_16_RTL;
for ALU_Behaviorial: ALU_16_First use entity work.simple_alu(Behavioral);
for ALU_RTL: ALU_16_RTL use entity work.simple_alu(RTL);
BEGIN
-- Instantiate the Unit Under Test (UUT)
ALU_Behaviorial : ALU_16_First PORT MAP (
A,
B,
R1,
Op,
Clk,
Res
);
ALU_RTL: ALU_16_RTL PORT MAP (
A,
B,
R2,
Op,
Clk,
Res
);
私は基本的にこれを時間通りに終わらせることに必死です。
ありがとう。