如何在VHDL测试台上方便地对信号进行分组和驱动
假设我有3个控制信号A,B和C 在testbench中,VHDL中有一个函数可以将其分组并快速迭代所有案例(例如,使它们能够使用for循环进行迭代),而不是写出8个案例 Psuedo代码示例:如何在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.
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)这样做,问题主要是类型不匹配和局部性。