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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 16315|回复: 8

[求助] VerilogA 如何进行数组赋值?

[复制链接]
发表于 2013-12-4 15:25:29 | 显示全部楼层 |阅读模式
1500资产
本帖最后由 liandxue 于 2013-12-4 15:29 编辑

VerilogA 如何进行数组赋值?
移位寄存器用数组来做,数组赋值怎么表示?
单个赋值是没问题的,但是位数比较多,写起来太繁琐,有没有直接赋值的方法?

 楼主| 发表于 2013-12-5 18:51:12 | 显示全部楼层
没有人知道吗?
发表于 2014-2-16 11:13:52 | 显示全部楼层
VerilogA里面貌似不支持数组直接赋值吧?
发表于 2014-2-19 06:58:06 | 显示全部楼层
It doesn't work in HSPICE. Not sure in Cadence.
发表于 2014-2-19 09:03:53 | 显示全部楼层
回复 4# widlarfan


   
                                                                数组                                                       
                                                                在 Verilog  HDL 中允许声明 reg 以及 wire 类型向量以及标量的数组,对数组的维数没有                                                       
                                                                限制。 线网数组也可用于连接连接实例的端口, 数组中的每个元素可以作为变量或者向量使                                                       
                                                                用。举例如下                                                       
                                                                reg count[0:7] //由 8 个变量组成的数组;                                                       
                                                                reg  bool[31:0]  //由 32 个寄存器标量组成的数组,数组的每个元素为 1 位宽的寄存器类                                                       
                                                                //型的变量                                                       
                                                                reg [4:0]port_id[0:7] //由 8 个 5 位宽的向量组成的数组,数组的每个元素为 5 位宽变量                                                       
                                                                wire [7:0]w_array[5:0] //由 8 位寄存器向量组成数组,数组共有 6 个元素;                                                       
                                                                注意不要混淆数组和向量两个概念。下面的例子显示如何访问数组元素                                                       
                                                                count[5]=0 //把 count 数组的第 5 个元素清零;                                                       
                                                                w_array[2]=8’h01;




是說使用 verilogA  or VHDL-AMS  宣告陣列 array 方式嗎?  沒用過這方法.  




GOOGLE find
http://www.designers-guide.org/Forum/YaBB.pl?num=1304782726








`define MYMAX 7
  localparam integer startval[`MYMAX:0] = `{1, 0, 0, 1, 1, 1, 0, 1};

  integer result[`MYMAX:0] ;
  integer k;

  @(initial_step) begin
    for (k=0; k<=`MYMAX; k=k+1) result[k] = startval[k];
  end

MORE
http://www.edaboard.com/thread190541.html

不知道那個可以

沒用到這方式 .
发表于 2017-7-14 16:47:57 | 显示全部楼层
回复 1# liandxue

请问一下楼主有没有解决这个问题?如果要用veriloga写一个8位并行输出的register, 在命名时比如module(out[255:0], clk, in1) ,然后采用out的形式操作,请问这样可以吗?
发表于 2017-7-14 16:49:00 | 显示全部楼层
补充:采用out[i]的形式
发表于 2023-8-1 23:51:01 | 显示全部楼层
楼主,您好,请问这个问题您知道怎么解决了吗? 感觉好奇怪,单个赋值没问题,数组操作不了。我看示例里面有使用---------‘{}-------这种来赋值array的,也没成功。
发表于 2024-10-10 15:34:40 | 显示全部楼层
你这个“数组“”是端口总线还是内部变量?据我所知端口总线用一般的for循环不行,需要常量索引,可以试试generate
generate i (max_val,min_val)begin
     out[i]<+transition(data[i],td,tr,tf);
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 15:07 , Processed in 0.025050 second(s), 8 queries , Gzip On, Redis On.

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