在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4099|回复: 11

[求助] verilo语法问题

[复制链接]
发表于 2016-6-24 09:28:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 yyz1988 于 2016-6-24 09:47 编辑

大家好,请问下面的语法哪里出错了,综合时提示第6行i is not a constant。
1. always @(data)
2. for (i=0;i<=9;i=i+1) begin
3.    if(i==6)
4.         tmpData[6]=0;
5.    else
6.          tmpData=data[(i*16+15) : (i*16)];
7.  end
发表于 2016-6-24 09:39:00 | 显示全部楼层
觉得你是学计算机的,C语言转到verilog的。。。
发表于 2016-6-24 09:51:58 | 显示全部楼层
本帖最后由 杰克淡定 于 2016-6-24 09:53 编辑

那个显示的笑脸是怎么回事?
搞这么麻烦,你直接写出
assign tmpData[0] = data[15:0];
assign tmpData[1] = data[31:16];
……
之类不就好了么,直接,简单,明了。
发表于 2016-6-24 11:02:02 | 显示全部楼层
可以参考Verilog标准2005 5.2.1小节:

Several contiguous bits in a vector net, vector reg, integer, or time variable, or parameter can be addressed
and are known as part-selects. There are two types of part-selects, a constant part-select and an indexed partselect.
A constant part-select of a vector reg or net is given with the following syntax:
vect[msb_expr:lsb_expr]
Both msb_expr and lsb_expr shall be constant integer expressions. The first expression has to address a
more significant bit than the second expression


如果想要使用变量,可以使用这种方式:

An indexed part-select of a vector net, vector reg, integer, or time variable, or parameter is given with the
following syntax:
reg [15:0] big_vect;
reg [0:15] little_vect;
big_vect[lsb_base_expr +: width_expr]
little_vect[msb_base_expr +: width_expr]
big_vect[msb_base_expr -: width_expr]
little_vect[lsb_base_expr -: width_expr]
The msb_base_expr and lsb_base_expr shall be integer expressions, and the width_expr shall be a
positive constant integer expression. The lsb_base_expr and msb_base_expr can vary at run time.
发表于 2016-6-24 11:09:03 | 显示全部楼层
回复 3# 杰克淡定
用generate,可以支持你的想法。
发表于 2016-6-24 22:13:22 | 显示全部楼层
回复 5# yaya126


    generate是不可综合的。
发表于 2016-6-25 01:40:20 | 显示全部楼层
你做的是chip, 写综合器的人如何知道那行有bug的代码到底应该综合成多长的silicon chain呢?
一个所谓array, 如果进silicon,长度必须固定。如果只是写软件,那只是一片memory,当然可以编译时再确定长度。
发表于 2016-6-25 19:31:38 | 显示全部楼层
回复 6# ltshan


   可以综合
发表于 2016-6-26 03:00:13 | 显示全部楼层
回复 1# yyz1988


   乱写
发表于 2016-6-27 22:41:02 | 显示全部楼层
回复 6# ltshan


generate是可综合的,请知晓。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-1 05:09 , Processed in 0.028468 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表