如何在 VHDL 测试台中轻松分组和驱动信号
How to easily group and drive signals in VHDL testbench
假设我有 3 个控制信号 A、B 和 C。
在测试台中,VHDL 中有一个函数可以将其分组并快速迭代所有案例(例如,使它们能够用 for 循环迭代)而不是写出 8 个案例。
伪代码示例:
for i in range 0 to 7
grouped_signals <=std_logic_vector(to_unsigned(i,3)
它可以是目标是聚合的信号分配:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity agg_assign is
end entity;
architecture foo of agg_assign is
signal A, B, C: std_logic;
begin
process
begin
wait for 10 ns;
for i in 0 to 7 loop
(A, B, C) <= std_logic_vector(to_unsigned(i, 3));
wait for 10 ns;
end loop;
wait;
end process;
end architecture;
这会产生:
假设我有 3 个控制信号 A、B 和 C。
在测试台中,VHDL 中有一个函数可以将其分组并快速迭代所有案例(例如,使它们能够用 for 循环迭代)而不是写出 8 个案例。
伪代码示例:
for i in range 0 to 7
grouped_signals <=std_logic_vector(to_unsigned(i,3)
它可以是目标是聚合的信号分配:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity agg_assign is
end entity;
architecture foo of agg_assign is
signal A, B, C: std_logic;
begin
process
begin
wait for 10 ns;
for i in 0 to 7 loop
(A, B, C) <= std_logic_vector(to_unsigned(i, 3));
wait for 10 ns;
end loop;
wait;
end process;
end architecture;
这会产生: