【发布时间】:2019-01-08 11:11:30
【问题描述】:
我正在为顶级实体创建一个测试台。它使用多个组件,包括末端的 2x 8:1 多路复用器,产生 2 个单独的输出。我决定使用“for 循环”来涵盖所有情况,但我的输入数据在随机实例中被分配给我的输出数据(相反,它必须是;每当 Rd=Rs 和/或 Rd=Rt 时输入=输出)。
---
stim_proc :PROCESS
begin
---
for Rd_loop in 0 to 7 loop -- 0 to 7 for Rd'lenght-1=2
for Rs-Rt_loop in 0 to 7 loop -- 0 to 7 for Rs'lenght-1=Rt'lenght-1=2
wait for 10 ns;
-- increment to the next value of Rs and Rt.
Rs<=std_logic_vector( signed(Rs) + 1 );
Rt<=std_logic_vector( signed(Rt) + 1 );
end loop;
-- increment to the next value of Rd.
Rd<=std_logic_vector( signed(Rd) + 1 );
end loop;
wait for 10 ns;
-----
我几乎可以肯定我应该使用变量,但不知道如何使用,感谢任何帮助。
【问题讨论】:
-
到底是什么问题?您的代码将更新信号就好了。
-
Rs-Rt_loop 不是用于循环参数规范的有效标识符。如果您偏爱在名称中使用减号,请将其作为扩展标识符 `\Rs-Rt_loop\`(键入会更加痛苦)。请参阅 IEEE Std 1076-2008 15.4 标识符。内部循环中的等待语句允许在循环中分配信号只是查找。
标签: vhdl modelsim test-bench