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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 5015|回复: 6

[原创] 请教verilog如何取数组的值

[复制链接]
发表于 2013-11-23 17:30:01 | 显示全部楼层 |阅读模式

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

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

×
请教verilog如何取数组的值
比如 b是数组


always@(posedge clk)

    if(!rst_n)

      begin

      for(i=0;i<3;i=i+1)

        a <= b[i+4:i];

    end

这个赋值有语法错误,请教要实现,a <= b[i+4:i];应该如何写?

发表于 2013-11-23 18:54:54 | 显示全部楼层
[i+:4]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-23 19:53:45 | 显示全部楼层
回复 2# A1985

非常感谢,请问这个语法怎么写

for(i=0;i<3;i=i+1)
begin
a <= mem[i+4:i];
b <= mem[i+8:i+5];
c <= mem[i+12:i+9];
end
回复 支持 反对

使用道具 举报

发表于 2013-11-23 23:12:08 | 显示全部楼层
回复 1# atlandis


   可能你理解有误,连带着你描述的需求也有问题,都不晓得怎么给你解释了,完整的描述下你电路要实现的功能吧
回复 支持 反对

使用道具 举报

发表于 2013-11-24 11:50:05 | 显示全部楼层
verilog数组不支持变量,在2000版本里加了一个语法支持变量取值,即二楼的写法[i+:cons],其中cons为常数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-25 10:40:37 | 显示全部楼层
回复 4# my2817


   我只是要做一个testbench,command是数组,400bit      command = {'h0,

8'h1b,8'h3b,8'h5b,8'h7b,4'hc,
8'h12,8'h34,8'h56,8'h78,4'he,
8'h9a,8'hbc, 8'hde,8'hf0, 4'hf,
8'h1b,8'h3b,8'h5b,8'h7b,4'hf};

循环取值,先把最后一行的数据赋值给五个变量,然后依次是其他几行。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-25 10:43:27 | 显示全部楼层
回复 5# spirit0302

仿照二楼的提示,写了一下
    while(wr_byte_cnt<num_byte)    begin
        o_cmd_byte_en   = mem_command[m+:4];
        m = m+4;
        o_cmd_din_0     = mem_command[m+:8];
        m = m+8;
        o_cmd_din_1     = mem_command[m+:8];
        m = m+8;
        o_cmd_din_2     = mem_command[m+:8];
        m = m+8;
        o_cmd_din_3     = mem_command[m+:8];
        m = m+8;
    end
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-9-13 18:42 , Processed in 0.018972 second(s), 5 queries , Gzip On, Redis On.

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