打印

Verilog语言中如何将memory型变量转换为vector型变量

[复制链接]
1220|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-10-8 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Verilog 2001和Verilog2005 能够将memory转换成为vector型变量,综合工具可以选择synplify pro 9.6.2
module memory2vector( mem,vec);
   parameter vectorsize = 4;
parameter arraysize  = 3;

input [vectorsize-1:0] mem [arraysize-1:0];          //  输入端口input定位为存储器的形式是在Verilog2005标准中实现的     
output[vectorsize*arraysize-1:0] vec;                // 仅在Verilog2005标准中支持input,output 为memory型数据

genvar  i,j;                                          // genvar 和generate功能强大,可以配合for循环作一些规律性的赋值,
generate                                              //而这仅是在Verilog2001标准中能够实现的,Verilog95无法完成
    for(i=0;i<=arraysize-1;i= i+1)begin:array
     for(j =0; j<= vectorsize-1;j= j+1) begin:vetor
      assign vec[i*vectorsize+j]  = mem[j];
   end
     end
   endgenerate   
endmodule



总结:写法花哨,synplify pro 、quartus可以综合,但ISE中不支持,具体原因可能是ISE不支持Verilog2005标准吧

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝