vhdl - 在测试台内使用 for 循环以涵盖所有可能情况的正确方法
问题描述
我正在为顶级实体创建一个测试台。它使用多个组件,包括末端的 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 之间不应该有“-”。
推荐阅读
- csv - 使用 ICsvListWriter 时,上标字符会导致生成的 CSV 文件中出现垃圾字符
- go - Beego 语法 'Ctx.Input.GetData(' 的功能
')' - c# - Visual Studio Mac 无法识别路径中的 Chrome 驱动程序
- javascript - 鼠标进入div时如何运行函数,反之亦然?
- protocol-buffers - gcloud端点部署错误未解决类型
- google-hangouts - 环聊聊天机器人私人分发
- excel - 从命令按钮传递工作表和按钮对象
- javascript - 不变违规:App(...) 没有从渲染返回
- javascript - getValue 不适用于自定义模板
- python - Tensorflow - 从恢复的模型中平均模型权重