FPGAExpress:总线的单个位不能用作时钟信号

描述


紧迫性:标准



一般描述:

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);

如果结束;

如果结束;

结束过程;





尾岔;

&;
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 14:29:55 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它