我正在尝试用n
楼层和m
电梯模拟目的地控制电梯控制器。因此,用户可以从每个楼层输入目的地楼层并获得电梯号码作为回报。所以要模拟这种电梯控制器,我需要有可变in
端口(等于楼层数),每个端口都是整数类型。我尝试在谷歌上搜索,但找不到任何有用的东西。有人可以建议我如何做到以上几点吗?提前致谢。
问问题
1083 次
2 回答
2
在 VHDL 中,您可以使用不受约束的数组作为端口:
entity myDevice is
port ( floors : in std_logic_vector;
lifts : in std_logic_vector
);
end entity myDevice;
端口的大小在细化期间由连接信号的大小确定。如果您需要知道架构中端口的大小,只需使用'length
或'range
任何其他适当的属性:
architecture RTL of myDevice is
begin
pr_control : process(all) is
begin
-- Code, code, code...
for n in lifts'range loop
process_lift(n);
end loop;
-- More code ...
end process pr_controll;
end architecture RTL;
于 2013-08-18T05:53:52.813 回答
0
你总是可以做这样的事情:
entity controller is generic (
N : integer;
M : integer
); port (
Floors : in std_logic_vector(N-1 downto 0);
Lifts : in std_logic_vector(M-1 downto 0)
);
end controller;
您可以在此处找到更多示例。
也许:
package foo is
type integer_array is array (integer range <>) of integer;
end package;
entity controller is generic (
N : integer;
M : integer
); port (
Floors : in foo.integer_array(N-1 downto 0);
Lifts : in foo.integer_array(M-1 downto 0)
);
end controller;
于 2013-08-17T17:50:48.290 回答