VHDL中integer的综合问题

[复制链接]
9365|26
 楼主| 1003704680 发表于 2013-1-8 23:01 | 显示全部楼层 |阅读模式
      端口或者信号被定义成integer,一般默认为32bit的。如果限定范围,如range 0  to 15 ,那么综合后会给出4bit位宽的寄存器;如果我将信号设定范围为range 0 to 10 ,也会给出4bit.
      在仿真的时候,如果范围是0 to 10,给的输入如果大于10,仿真会报错,但是在实际电路中,如果我的输入的4bit信号完全有可能大于10啊,那时不可能电路瘫痪吧?
   我查过它的RTL级原理图和tech级原理图,范围为0 to 10与范围为0 to 15的原理图都是一样的。
   1、我想知道,10与15的范围下载到板子里面的电路到底是不是一样的?
   2 、如果是10,那么输入11、12、、、、电路会怎么运行?会死吗?
jlass 发表于 2013-1-9 09:18 | 显示全部楼层
个人感觉如果范围是0 to 10一定是4bit的,之所以会报错应该是你限定范围了。系统会把11-15给屏蔽掉,如果强行输入结果不可预知,但片子应该不会死。
 楼主| 1003704680 发表于 2013-1-9 11:04 来自手机 | 显示全部楼层
谢谢,现在手上没板子,等过几天拿到板子试试再告诉你
 楼主| 1003704680 发表于 2013-1-9 12:52 | 显示全部楼层
jlass 发表于 2013-1-9 09:18
个人感觉如果范围是0 to 10一定是4bit的,之所以会报错应该是你限定范围了。系统会把11-15给屏蔽掉,如果强 ...

谢谢,现在手上没板子,等过几天拿到板子试试再告诉你
GoldSunMonkey 发表于 2013-1-9 23:02 | 显示全部楼层
我从来不用integer,因为电路中没有这个玩意
 楼主| 1003704680 发表于 2013-1-9 23:48 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-9 23:02
我从来不用integer,因为电路中没有这个玩意

谢谢猴哥~
我觉得存在就是真理,哈哈。语言中有这个东西,而且可以综合最后变成电路,那一定有它的综合方式,也有它所对应的电路,虽然电路中没有它;另外,它既然存在,就应该有它的优点。
主要是我现在是处于入门阶段,看别人的代码,遇到了这样一个问题,就想了解一下。
GoldSunMonkey 发表于 2013-1-10 23:12 | 显示全部楼层
1003704680 发表于 2013-1-9 23:48
谢谢猴哥~
我觉得存在就是真理,哈哈。语言中有这个东西,而且可以综合最后变成电路,那一定有它的综合方 ...

为什么存在就一定有道理呢?
这个只是仿真的时候可能还有作用,否则综合工具还需要把它转换了
 楼主| 1003704680 发表于 2013-1-10 23:15 | 显示全部楼层
经过下到板子里面验证,不管是range 0 to 10 还是 0 to 15最后都是4bit的信号,而且输入一样可以是从“0000”到“1111”,运行结果一样。所以,结论应该是:不管是range 0 to 10 或者range 0 to 15都和std_logic_vector(3 downto 0)的生成的电路是一样的。具体还待继续研究。
GoldSunMonkey 发表于 2013-1-10 23:17 | 显示全部楼层
1003704680 发表于 2013-1-10 23:15
经过下到板子里面验证,不管是range 0 to 10 还是 0 to 15最后都是4bit的信号,而且输入一样可以是从“0000 ...

哥都给你说了,这是综合工具转的。不代表这么写就好
 楼主| 1003704680 发表于 2013-1-10 23:18 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-10 23:12
为什么存在就一定有道理呢?
这个只是仿真的时候可能还有作用,否则综合工具还需要把它转换了 ...

哦。那我还需要看看它综合的时候是怎么转换的。谢谢提醒!
 楼主| 1003704680 发表于 2013-1-10 23:20 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-10 23:17
哥都给你说了,这是综合工具转的。不代表这么写就好

我不是才看到么。。。
GoldSunMonkey 发表于 2013-1-10 23:24 | 显示全部楼层
;P

评论

谢谢猴哥  发表于 2013-1-16 23:44
chenzhi658 发表于 2013-1-11 16:08 | 显示全部楼层
学习了
qin552011373 发表于 2013-1-12 20:18 | 显示全部楼层
学习一下
GoldSunMonkey 发表于 2013-1-12 23:24 | 显示全部楼层
qin552011373 发表于 2013-1-12 20:18
学习一下

有什么要问的么?
DragonKing88 发表于 2013-1-13 21:44 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-12 23:24
有什么要问的么?

综合工具能做更多的事情么??
 楼主| 1003704680 发表于 2013-1-13 23:08 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-12 23:24
有什么要问的么?

我比较了一下输入分别是range 0 to 15和range 0 to 10 和std_logic_vector(3 downto 0)的综合后的edf文件,是一样的,这是否能够说明它们生成的电路也是一样的?谢谢!
 楼主| 1003704680 发表于 2013-1-13 23:11 | 显示全部楼层
GoldSunMonkey 发表于 2013-1-10 23:24

我比较了一下信号分别为range 0 to 15和range 0 to 10和std_logic_vector(3 downto 0)的综合edf文件,是一样的。这是否说明它们生成的电路也没有区别?
GoldSunMonkey 发表于 2013-1-14 22:00 | 显示全部楼层
1003704680 发表于 2013-1-13 23:08
我比较了一下输入分别是range 0 to 15和range 0 to 10 和std_logic_vector(3 downto 0)的综合后的edf文件 ...

是一样的。
GoldSunMonkey 发表于 2013-1-14 22:00 | 显示全部楼层
1003704680 发表于 2013-1-13 23:11
我比较了一下信号分别为range 0 to 15和range 0 to 10和std_logic_vector(3 downto 0)的综合edf文件,是 ...

欢迎继续发问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:但行善事,不问前程!

554

主题

1007

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部