Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面2 Y+ Y7 {# l. n8 z; z) S
signal tap II也可以看到0~1024點的資料. N- h7 \6 Y# F* M3 _/ U; b9 W
但是我想取512~1024點的時候1 Y' ^' o7 E4 `
往往在compiler的時候 fitter那邊就是過不去
8 s1 }. Z+ a) G3 a* f8 f- c& `3 ~我看了error 說 LEs 不足....
" N* T$ Y1 ^. V+ ^* e+ G# A為什麼只要特別取某區段的資料時都會遇到這個問題呢* R" L( `, V$ P* t
程式碼如下
- K/ }8 D% g2 y/ k% s; tram_data已經存取1024點資料
5 ?* y9 y$ m* E9 n+ [/ s8 i# j& K. R& J4 C$ P5 S$ [6 |
always@(posedge clk or negedge reset)
. n4 |) P6 N4 i$ d        begin( o2 v' |6 ^. y* `3 q, `* Q
                count_L1<=10'd1;                8 @8 G7 s. f( K9 }
                L1_addr<=10'd0;       
+ r- B" s1 {4 H- P                if (reset ==1'b0)8 v4 M: a* Y, e: h* I& _
                        begin) c' `8 M# ~( z- V4 R/ n9 B3 w
                                count_L1<=10'd1;
) |  H) e2 {' o7 A. F8 R' ~) t& K6 B                                L1_addr<=10'd0;
/ z+ g; T# Z1 C1 m                        end
$ c" S" a, Y1 w" r; q                else if(start_fft_flag == 1'b1)    4 ?; N/ ^; c: T, m) o, f" ^$ w/ D; [
                        begin
6 T: i( h# ?' l- Z- G/ g                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                          7 @. Q9 s+ p+ E3 G/ C2 Z  ]
                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin         
9 \$ V  K- t: H, d$ ?0 r& G1 _                                count_L1        <= count_L1+1'b1;$ h* w5 c4 @6 J
                                L1_addr         <= L1_addr+1'b1;                               
1 e" s# D0 }% _0 a- \6 h                                if(count_L1==10'd513)               
4 {5 _2 g% L$ m( ]! U                                        begin
/ R6 o+ z. ~% l7 f8 K) z                                                count_L1<=10'd1;6 v2 L- N  ?( R/ c( @1 r
                                                L1_addr<=10'd0;       
) L+ U" p8 x$ V                                        end                                                          a1 v" J. y. x4 f' g
                        end9 q# X0 e/ I" r( [% m# e/ D
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram) K3 _8 B$ T6 \+ s) M9 c4 n8 [
不能同時做這兩行# H7 K& E  J  ^# b2 a
realdata_L1ain  <= ram_data[L1_addr];
- s% M" E7 C& U! mrealdata_L1bin  <= ram_data[L1_addr+512]. d' T. D9 d* c" X
當合不出Block ram時9 C: h6 W: m4 [. O
tool就會用LE去合,想當然而,一定不足的
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-15 07:21 PM , Processed in 0.103013 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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