Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 6034|回復: 2
打印 上一主題 下一主題

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面5 r& R3 |3 J( j7 C
signal tap II也可以看到0~1024點的資料
$ t- m  h1 O2 v8 {) T% O5 G但是我想取512~1024點的時候
0 F$ v& u1 `/ R$ S! s往往在compiler的時候 fitter那邊就是過不去: H- S$ v: t* i6 K3 A0 R
我看了error 說 LEs 不足....5 b0 ^$ C2 B% J$ C0 u% t
為什麼只要特別取某區段的資料時都會遇到這個問題呢
, z7 S% X) O+ D& v5 H8 }程式碼如下5 c0 T2 o1 r; X8 W1 R4 G
ram_data已經存取1024點資料
8 W. P  }5 \8 h, _5 p" H9 w$ i$ I0 Y7 W% W- o
always@(posedge clk or negedge reset)) ?- B6 d) ^# o* }
        begin
6 H$ i# U) f1 A5 V                count_L1<=10'd1;                # t: n8 R) p7 d4 X2 R0 |
                L1_addr<=10'd0;       
& P7 y# \% w" W5 |9 o0 [                if (reset ==1'b0)
7 R2 o+ z! N' H4 V; i, N                        begin
% D6 q4 ]0 R& m: X" q" v$ N                                count_L1<=10'd1;
: [) @; O: J! B3 r7 m3 j                                L1_addr<=10'd0;4 j( i* n) h" q
                        end
1 S. L, \7 M- a% J                else if(start_fft_flag == 1'b1)    2 ?. c( \4 j0 t. t; x% \$ ]
                        begin
* t" L% A  p1 i; I" }                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                          1 m! k) M) ?) u% I8 c3 P
                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin          : }. M( g! k. k0 `4 N
                                count_L1        <= count_L1+1'b1;1 ?% G- Y8 h, _' l, v# F( Q
                                L1_addr         <= L1_addr+1'b1;                                " q2 r% M# f$ ^) k0 N. s2 M
                                if(count_L1==10'd513)               
8 t$ Z* d, r5 O                                        begin
0 |: Q  Q; _, h! B/ w0 ?                                                count_L1<=10'd1;
# `) R4 i! n% X' j                                                L1_addr<=10'd0;        6 {+ O$ g& K/ ~
                                        end                                                       
) `+ r5 _, i4 {0 k                        end: [  P1 z) x% i6 A
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram! s0 S4 A, ~7 H- V1 M, D
不能同時做這兩行
( e. U" {" A8 _realdata_L1ain  <= ram_data[L1_addr];4 \( ?( @: _% M* c
realdata_L1bin  <= ram_data[L1_addr+512]4 @+ G% b( p7 q: w% w, n
當合不出Block ram時, q' q5 l+ ~$ z8 f$ }. q
tool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-1-16 07:42 AM , Processed in 0.156000 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表