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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4891|回复: 6

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

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

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

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

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


[size=12.800000190734863px]always@(posedge clk)

    if(!rst_n)

      [size=12.800000190734863px]begin

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

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

[size=12.800000190734863px]    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)
[size=11.818181991577148px]begin
a <= mem[i+4:i];
[size=11.818181991577148px]b <= mem[i+8:i+5];
[size=11.818181991577148px]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-7-19 09:01 , Processed in 0.021972 second(s), 9 queries , Gzip On, MemCached On.

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