打印

VHDL中integer的综合问题

[复制链接]
8086|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给屏蔽掉,如果强 ...

谢谢,现在手上没板子,等过几天拿到板子试试再告诉你

使用特权

评论回复
5
GoldSunMonkey| | 2013-1-9 23:02 | 只看该作者
我从来不用integer,因为电路中没有这个玩意

使用特权

评论回复
6
1003704680|  楼主 | 2013-1-9 23:48 | 只看该作者
GoldSunMonkey 发表于 2013-1-9 23:02
我从来不用integer,因为电路中没有这个玩意

谢谢猴哥~
我觉得存在就是真理,哈哈。语言中有这个东西,而且可以综合最后变成电路,那一定有它的综合方式,也有它所对应的电路,虽然电路中没有它;另外,它既然存在,就应该有它的优点。
主要是我现在是处于入门阶段,看别人的代码,遇到了这样一个问题,就想了解一下。

使用特权

评论回复
7
GoldSunMonkey| | 2013-1-10 23:12 | 只看该作者
1003704680 发表于 2013-1-9 23:48
谢谢猴哥~
我觉得存在就是真理,哈哈。语言中有这个东西,而且可以综合最后变成电路,那一定有它的综合方 ...

为什么存在就一定有道理呢?
这个只是仿真的时候可能还有作用,否则综合工具还需要把它转换了

使用特权

评论回复
8
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)的生成的电路是一样的。具体还待继续研究。

使用特权

评论回复
9
GoldSunMonkey| | 2013-1-10 23:17 | 只看该作者
1003704680 发表于 2013-1-10 23:15
经过下到板子里面验证,不管是range 0 to 10 还是 0 to 15最后都是4bit的信号,而且输入一样可以是从“0000 ...

哥都给你说了,这是综合工具转的。不代表这么写就好

使用特权

评论回复
10
1003704680|  楼主 | 2013-1-10 23:18 | 只看该作者
GoldSunMonkey 发表于 2013-1-10 23:12
为什么存在就一定有道理呢?
这个只是仿真的时候可能还有作用,否则综合工具还需要把它转换了 ...

哦。那我还需要看看它综合的时候是怎么转换的。谢谢提醒!

使用特权

评论回复
11
1003704680|  楼主 | 2013-1-10 23:20 | 只看该作者
GoldSunMonkey 发表于 2013-1-10 23:17
哥都给你说了,这是综合工具转的。不代表这么写就好

我不是才看到么。。。

使用特权

评论回复
12
GoldSunMonkey| | 2013-1-10 23:24 | 只看该作者
;P

使用特权

评论回复
评论
1003704680 2013-1-16 23:44 回复TA
谢谢猴哥 
13
chenzhi658| | 2013-1-11 16:08 | 只看该作者
学习了

使用特权

评论回复
14
qin552011373| | 2013-1-12 20:18 | 只看该作者
学习一下

使用特权

评论回复
15
GoldSunMonkey| | 2013-1-12 23:24 | 只看该作者
qin552011373 发表于 2013-1-12 20:18
学习一下

有什么要问的么?

使用特权

评论回复
16
DragonKing88| | 2013-1-13 21:44 | 只看该作者
GoldSunMonkey 发表于 2013-1-12 23:24
有什么要问的么?

综合工具能做更多的事情么??

使用特权

评论回复
17
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文件,是一样的,这是否能够说明它们生成的电路也是一样的?谢谢!

使用特权

评论回复
18
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文件,是一样的。这是否说明它们生成的电路也没有区别?

使用特权

评论回复
19
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文件 ...

是一样的。

使用特权

评论回复
20
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

粉丝