描述
紧迫性:标准
一般描述:
FPGAExpress不允许总线的单个位用作时钟信号。
下面的代码将导致FPGA Express崩溃:
前& GT;
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
实体总线
端口(BigCLK:在StdLogLogic向量中(3下降到0);
DIN:在StdLogLogic向量(3下降到0);
RST,EN:在STDYLogic中;
DUT:OUT STDYLogLogic向量(3下降到0);
结束总线;
布斯克建筑群
开始
进程(RST,BigCK(3),EN)开始
如果(RST=‘1’)
DUT(3)& lt;=“0”;
Esisif(BigCLK(3)′事件和BigCK(3)=1′)
如果(EN=‘1’)然后
DUT(3)& lt;=DIN(3);
如果结束;
如果结束;
结束过程;
…
尾岔;
&;
解决方案
解决方法是首先将总线位分配给中间信号,如图所示:
前& GT;
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
实体总线
端口(BigCLK:在StdLogLogic向量中(3下降到0);
DIN:在StdLogLogic向量(3下降到0);
RST,EN:在STDYLogic中;
DUT:OUT STDYLogLogic向量(3下降到0);
结束总线;
布斯克建筑群
信号ITCLK3:STDYLogic;
开始
ItClk3& lt=BigClk(3);
进程(RST,ITCLK3,EN)开始
如果(RST=‘1’)
DUT(3)& lt;=“0”;
ELSIF(ITCLK3’事件和ITCLK3=‘1’)
如果(EN=‘1’)然后
DUT(3)& lt;=DIN(3);
如果结束;
如果结束;
结束过程;
…
尾岔;
&;
没有回复内容