vhdl语法问题

[复制链接]
3197|16
 楼主| yfm1202 发表于 2007-10-29 16:00 | 显示全部楼层 |阅读模式
代码如下:<br />signal&nbsp;&nbsp;&nbsp;&nbsp;cc:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STD_LOGIC_vector(4&nbsp;downto&nbsp;0);<br /><br />if&nbsp;cc=48&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;cc&lt=&quot;00000&quot;;<br />else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&lt=cc+1;<br />end&nbsp;if;<br /><br />问:我认为:cc占5位,2^5&nbsp;=&nbsp;32,即:cc最大数是32。<br />&nbsp;&nbsp;如果我是正确的,那么,为什么有if&nbsp;cc=48?&nbsp;<br />&nbsp;&nbsp;如果我的不正确,那么代码中的&nbsp;if&nbsp;cc=48&nbsp;是正确的吗?<br /><br />
alice84 发表于 2007-10-29 16:03 | 显示全部楼层

我也觉得cc最大数是32!48???

  
风中De舞者 发表于 2007-10-29 16:49 | 显示全部楼层

CC范围是0 to 31 但是语句中写的是

if&nbsp;cc=48&nbsp;then...&nbsp;&nbsp;超出范围&nbsp;&nbsp;是应该出现提示的&nbsp;&nbsp;应该是错的&nbsp;&nbsp;<br />&nbsp;&nbsp;所以应该修改将清0的条件改为&nbsp;if&nbsp;cc=&quot;11111&quot;&nbsp;then&nbsp;...&nbsp;&nbsp;
 楼主| yfm1202 发表于 2007-10-29 17:06 | 显示全部楼层

我初学VHDL

逻辑错误?<br />这是我买的板子带的光盘上的源码,经过调试的,没想到,经过调试的商业代码也有语言错误。嘻嘻哈哈。<br />谢过前面两位啦。
alice84 发表于 2007-10-29 17:08 | 显示全部楼层

不用谢我!我也是乱说的!

  
风中De舞者 发表于 2007-10-29 17:51 | 显示全部楼层

你编译的时候不提示错误吗?

  
vfdff 发表于 2007-10-30 03:10 | 显示全部楼层

语法

对呀,为什么不在软件上试试呢?
 楼主| yfm1202 发表于 2007-10-30 13:01 | 显示全部楼层

编译通过

在软件上试了一下,可以编译,连warning都没有。
风中De舞者 发表于 2007-10-30 14:11 | 显示全部楼层

不是吧 我这过不了啊 可以的话你把项目发过来我试试

deadend1984@163.com
风中De舞者 发表于 2007-10-30 16:08 | 显示全部楼层

有WARNING

我截了图&nbsp;&nbsp;你可以看一下&nbsp;&nbsp;首先我要说我也不是高手&nbsp;也是菜鸟&nbsp;&nbsp;刚从事这一行没多久&nbsp;&nbsp;个人认为CC应该是占了6个寄存器&nbsp;&nbsp;FS应该也是&nbsp;&nbsp;因为这俩个信号的情况一样&nbsp;&nbsp;CC[4]&nbsp;用做双向&nbsp;&nbsp;因为它也是作为一个进程的敏感信号来触发进程了&nbsp;&nbsp;既然编译器都说这是对的那这就应该是符合语法规则的&nbsp;&nbsp;用INTEGER来表示信号如果没有指定范围的话可能会使用16个寄存器储存信号&nbsp;&nbsp;造成资源浪费&nbsp;&nbsp;我个人认为还是不要这样写的好&nbsp;&nbsp;<br />从功能上看应该是一个红绿灯控制器吧
风中De舞者 发表于 2007-10-30 16:17 | 显示全部楼层

帖子没白看啊 也算学到了点知识。。。

用INTEGER表示确实是不会提示&nbsp;&nbsp;我改成2100都可以过&nbsp;&nbsp;我想唯一的区别就在内部资源的占用上了&nbsp;&nbsp;我的水平也很菜&nbsp;&nbsp;所以也不能给你一个满意的答案了。。。
 楼主| yfm1202 发表于 2007-10-30 17:02 | 显示全部楼层

to 风中De舞者

<br />我是点击&nbsp;Processing&nbsp;/&nbsp;Analyze&nbsp;Current&nbsp;File&nbsp;来对VHDL文件进行分析,没有warning。你好像不是这样做,你是如何对VHDL进行编译的?&nbsp;在MaxPlusII内,又如何对VHDL的逻辑功能进行调试?<br />你讲的INTEGER占资源,有意思啦,你调到2100,我对cc&nbsp;=&nbsp;100000000试后,得出:等号右边的数和左边没有关系啦。<br />我是菜的,没学过VHDL语言,困难重重,不过,有你的帮助,就好多了。
风中De舞者 发表于 2007-10-30 17:13 | 显示全部楼层

呵呵 我也很菜的 共同进步嘛

  
 楼主| yfm1202 发表于 2007-10-31 12:22 | 显示全部楼层

这是 VGA显示 例子

  
 楼主| yfm1202 发表于 2007-11-5 11:26 | 显示全部楼层

to amtek

你的好意心领了,我在长沙,如果来长沙玩,我导游喽.<br />yfm1202@163.com
liuxiqing 发表于 2007-11-7 14:41 | 显示全部楼层

信号不能这样负值吧, 用:=

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

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