VVADO综合-用VHDL时间数据类型发布

描述

下面的代码在VHDL中执行两个时间数据类型的划分:

实体SimpleCounter
泛型(
kStestLeCKPrimns:时间α=25 ns

端口(

结束实体SimpleCounter;
SimpleCounter的建筑RTL
常数KqPLLKTIDENSα:时间:=1000000纳秒;
常数KQPLLKORKFTCOUNTION:整数:= KQPLLCKIDENMENS/KSTAMELCELL KYPRNS;

然而,在综合过程中会出现以下警告:

警告:[综合器83512]分配值“-30”超出范围[./SimuleCuut.VHD:29 ]

打开得到的综合设计表明,该设计是完全修整出来的。

解决方案

降低除法中的数目允许综合正确地生成用于设计的逻辑。运行如下测试:

1。KStestCelkPrimns(25纳秒)和KQPLLKROTIMEN(设置为1000纳秒)不产生警告。
2。KStestCelkPrimns(25纳秒)和KQPLLKROTIMEN(设置为10000纳秒)不产生警告。
三。KStestCelkPrimns(25纳秒)和KQPLLKROTIMEN(设置为100000纳秒)不产生警告。
4。KStestLeCKPrimns(25 ns)和KQPLLKROTIMEN(设置为1000000 ns)警告生成,并且综合的设计显示所有逻辑裁剪。

VIVADO综合对根据LRM执行的时间所支持的精度有限制,这是产生警告消息和设计被剪裁的原因。

应该避免使用整数计算的时间,而不是ViVADO综合所支持的推荐编码风格。

当前的工作是将除法替换为得到的整数值(40000),它正确地综合。

常数KQPLLKIOLFLTCOUNTION:整数:=40000;
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 17:41:34 +0800

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

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