抱歉,我是这个网站的新手,但我已经连续 2 天在寻找答案。
我是 vhdl 的新手,一个作业要求制作一个简单的 16 位 ALU。此 ALU 需要 2 个架构:行为设计和 RTL 设计。就我而言,我有完整的代码。
我想不通的是如何编写一个测试平台,让我可以在 modelsim 中为两种架构运行仿真。我有两个文件(测试台和 ALU)都编译得很好,但是我在模拟中得到错误,说“未初始化的输入端口没有驱动程序”
我不确定要为这个问题显示什么代码,所以我只会向您展示我的 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
);
我基本上不顾一切地按时完成这项工作。
谢谢。