如何在VHDL测试台上方便地对信号进行分组和驱动

如何在VHDL测试台上方便地对信号进行分组和驱动,vhdl,Vhdl,假设我有3个控制信号A,B和C 在testbench中,VHDL中有一个函数可以将其分组并快速迭代所有案例(例如,使它们能够使用for循环进行迭代),而不是写出8个案例 Psuedo代码示例: for i in range 0 to 7 grouped_signals <=std_logic_vector(to_unsigned(i,3) 0到7范围内的i的 分组信号它可以是一个信号分配,其中目标是一个集合: library ieee; use ieee.std_logic_1164.

假设我有3个控制信号A,B和C

在testbench中,VHDL中有一个函数可以将其分组并快速迭代所有案例(例如,使它们能够使用for循环进行迭代),而不是写出8个案例

Psuedo代码示例:

for i in range 0 to 7
 grouped_signals <=std_logic_vector(to_unsigned(i,3)
0到7范围内的i的


分组信号它可以是一个信号分配,其中目标是一个集合:

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;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体agg_assign为
终端实体;
agg_assign的架构foo是
信号A、B、C:std_逻辑;
开始
过程
开始
等待10纳秒;
对于0到7循环中的i

(A,B,C)您可以使用您作为示例显示的代码,然后在
端口映射中
将此信号用于不同的输入,如
A=>grouped\u signals(0),B=>grouped\u signals(1),C=>grouped\u signals(2)
(A,B,C)这样做,问题主要是类型不匹配和局部性。