Loops VHDL:for…循环而不是for…生成
您好,我在使用for…循环而不是for…generate时遇到问题。我想用for…loop,因为我们的教授只教过我们Loops VHDL:for…循环而不是for…生成,loops,vhdl,generate,Loops,Vhdl,Generate,您好,我在使用for…循环而不是for…generate时遇到问题。我想用for…loop,因为我们的教授只教过我们 ieee库; 使用ieee.std_logic_1164.all; 实体超命令4位为 港口( c_in:标准逻辑中; a、 b:标准逻辑向量(3到0); s:输出标准逻辑向量(3到0); sP、sG:输出标准逻辑 ); 结束超级命令4位; SuperComm_4bit的架构是 信号p、g、c:std_逻辑_向量(3到0); 开始 g1:对于0到3中的i生成 g(i)由于无条件等待
ieee库;
使用ieee.std_logic_1164.all;
实体超命令4位为
港口(
c_in:标准逻辑中;
a、 b:标准逻辑向量(3到0);
s:输出标准逻辑向量(3到0);
sP、sG:输出标准逻辑
);
结束超级命令4位;
SuperComm_4bit的架构是
信号p、g、c:std_逻辑_向量(3到0);
开始
g1:对于0到3中的i生成
g(i)由于无条件等待语句,超命令4bit体系结构for-loop版本中的两个进程只执行一次。添加敏感度列表并删除等待语句:
supersomm_4bit的_循环的架构是
信号p、g、c:std_逻辑_向量(3到0);
开始
工艺(a、b)——增加了灵敏度列表
开始
对于0到3循环中的i
g(i)它不起作用,因为该过程没有敏感度列表。令我惊讶的是,它竟然会运行,因为没有敏感度列表的进程应该等待,否则它将在零时间内永远循环。我猜这不是全部代码?请发布一个@tricking,两个进程的结尾都有一个“等待”,这还不够吗?我已经在主PostYourSecondCodeBlock中添加了整个项目,您的第二个代码块只是部分代码。它有一个没有等待或敏感列表的进程。你有没有试着追踪单元化信号的来源?你有没有检查过你已经将所有代码添加到项目中,并且没有关于丢失代码或黑匣子的警告?等等,我不明白!我的项目由3个代码块组成(第1部分+第2部分+测试台(最后一个代码块))。前两个代码块是第1部分的两个版本(一个带有for…generate,另一个带有for…loop)。在这两个过程中,在“结束循环”之后都有一个“等待”,我是否需要在其他地方再等待一次?非常感谢!