Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面% y* k8 u1 _. E7 r/ |
signal tap II也可以看到0~1024點的資料
  H+ q8 B9 z7 H) i$ I但是我想取512~1024點的時候
* e: _4 S7 v+ B9 m往往在compiler的時候 fitter那邊就是過不去4 O- D! J* B* t$ ?9 K# p
我看了error 說 LEs 不足....
  b* \8 {5 ?, ^為什麼只要特別取某區段的資料時都會遇到這個問題呢
! b, `" n: G! V3 z程式碼如下% x; ?9 |) D5 J
ram_data已經存取1024點資料
+ u8 i; M0 D4 I3 [* j
, M0 z* M, X9 G& [always@(posedge clk or negedge reset). x6 B$ n( \' o$ }3 d+ r$ P
        begin7 t+ T9 z% ]) Q4 l0 ?
                count_L1<=10'd1;               
( @; o: D* C7 l4 T) L& T1 h. A                L1_addr<=10'd0;        ( @0 S* x7 ?2 P5 u2 \
                if (reset ==1'b0)
* |) v* W+ A1 u+ |# v+ a                        begin
2 {# M# c4 u+ O                                count_L1<=10'd1;% G% W% U+ B9 K' v7 ?# ~
                                L1_addr<=10'd0;
! U4 ?" z0 V, Y# \3 t4 ]$ ~                        end
( c2 J; W: A; I9 m0 q. L/ K                else if(start_fft_flag == 1'b1)    3 U7 I( n- v' ]! e0 t
                        begin; R! ~+ U0 B) s5 ]
                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                            v1 W. W7 B- g( E1 T
                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin         
. ]4 |7 w" K" }1 e8 @1 k3 U2 f  D                                count_L1        <= count_L1+1'b1;- _" e; v8 }4 R+ p* Z- r: `: Z$ k
                                L1_addr         <= L1_addr+1'b1;                               
* \5 s4 O4 z6 A2 q                                if(count_L1==10'd513)                . I+ b9 B# b3 X6 b# ~0 K7 i5 W
                                        begin  b" o0 L+ E. Q8 }9 H
                                                count_L1<=10'd1;
# E7 Q) K% \# H( ]3 {5 X8 _6 m                                                L1_addr<=10'd0;       
0 ?1 }0 c  k! F) \" ?                                        end                                                        ' z' z& e/ z& M( {- \3 X: i3 A
                        end6 ?/ `) B) }1 ^1 U5 j
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram- I8 F3 f- p3 o1 s+ `/ y0 A
不能同時做這兩行
9 ~1 u/ B6 S9 P, y) r; r; l& erealdata_L1ain  <= ram_data[L1_addr];
" M8 s6 C: m" _8 ~realdata_L1bin  <= ram_data[L1_addr+512]5 [. I7 o# p2 {5 N; ]
當合不出Block ram時
$ N% C+ `; D) E" X- k4 Ctool就會用LE去合,想當然而,一定不足的
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-16 11:01 AM , Processed in 0.156001 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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