freeren_liming的个人空间 https://blog.eetop.cn/527831 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

[转]如何将Memory转成vector

已有 1521 次阅读| 2013-11-3 14:55 |个人分类:IC design

以前项目做emulation时,遇到一个问题:

DC可以综合的较大的memory(1000D14W, reg [13:0] mem [0:999]),在FPGA上综合时,总是遇到问题,最后没办法只好改成vector的形式才可以综合,即必须把

 reg [13:0] mem [0:999] 重新定义为:

 reg [13999:0] vec的形式。

近日在查资料,看博客时遇到一篇http://www.cnblogs.com/oomusou/archive/2008/12/25/verilog_mem_to_vector.html题为:

(筆記) 如何將memory轉成vector? (SOC) (Verilog)

觉得很有意思,虽然我们还不是使用verilog 2005的,所以没办法直接使用这种方法,但是这里予以转载并记录为他人或自己日后使用:

原文如下:

Abstract
本文使用Verilog 2005的新特性實現memory轉vector。

Introduction
網友Adamite今天問我該如何將memory轉成vector,我們兩個在MSN研究了一番,發現Verilog 2001的generate與Verilog 2005的input memory可以達成,特別做下筆記。

重點是:『這些花俏的寫法,Quartus II 7.2/8.1都可以合成』。不過必須將Quartus II設定成支援Verilog 2005。

memory_to_vector.v / Verilog

 /* 
2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : memory_to_vector.v
5 Compiler    : Quartus II 8.1
6 Description : array to vector
7 Release     : 12/25/2008 1.0
8 */
9 
10 module memory_to_vector (
11   input [VECTORSIZE-1: 0] mem [ARRAYSIZE-1: 0],
12   output [ARRAYSIZE*VECTORSIZE-1: 0] vec
13 );
14 
15 parameter VECTORSIZE = 4;
16 parameter ARRAYSIZE = 3;
17 
18 genvar i,j;
19 generate
20   for(i = 0; i < ARRAYSIZE-1; i = i + 1) begin : array
21     for(j = 0; j < VECTORSIZE-1; j = j + 1) begin : vector
22       assign vec[i * VECTORSIZE + j] = mem[i][j];
23     end
24   end
25 endgenerate
26 
27 endmodule


18行

genvar i,j;
generate
 
for(i = 0; i < ARRAYSIZE-1; i = i + 1) begin : array
   
for(j = 0; j < VECTORSIZE-1; j = j + 1) begin : vector
     
assign vec[i * VECTORSIZE + j] = mem[i][j];
   
end
 
end
endgenerate


genvar與generate是Verilog 2001才有的,非常強大,可以配合for做一些規律性的assign,這在Verilog 95無法達成。

11行

input [VECTORSIZE-1: 0] mem [ARRAYSIZE-1: 0],


則是Verilog 2005才支援的,允許input與output為memory。

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 1

    好友
  • 0

    获赞
  • 2

    评论
  • 1788

    访问数

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

GMT+8, 2024-11-5 13:23 , Processed in 0.015734 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部