Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] RAM疑問

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-8-27 16:59:04 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我現在已經把1024點的資料存到FPGA 的RAM裡面
" R8 l/ O% X: x1 F3 u6 n" `signal tap II也可以看到0~1024點的資料; V3 Z* v( p% _9 x
但是我想取512~1024點的時候
3 }' p: Y& U2 Z: f% t) g& J往往在compiler的時候 fitter那邊就是過不去
" |) [( j9 w, i8 U: w我看了error 說 LEs 不足....
- z6 f; n2 b$ x* i為什麼只要特別取某區段的資料時都會遇到這個問題呢
3 h9 d' P$ k7 x" K/ \程式碼如下
$ y) O4 t. |! x. @* f0 hram_data已經存取1024點資料
- p" R- H* ^" i3 @: `0 Q6 P
0 v( b$ \0 D/ I5 galways@(posedge clk or negedge reset)
8 C# o, E) P5 T9 p2 D. i- R( v/ t        begin
6 Y' |% d5 T0 ]2 `* l                count_L1<=10'd1;               
8 e: R6 W* R4 h                L1_addr<=10'd0;        - K' G# D0 \4 Z/ r
                if (reset ==1'b0)
4 f# Z/ E9 w! Q5 k0 l6 l, t% T                        begin
. T# d& X" F& X0 C                                count_L1<=10'd1;" Q, Z- u- l. ^4 n5 Z4 j1 b
                                L1_addr<=10'd0;  a, L0 E: v( G0 v
                        end) @; G# S/ h+ b, A5 w8 S
                else if(start_fft_flag == 1'b1)   
4 L6 S1 J& n- |9 d- f+ z! R8 Y                        begin0 a. g5 K5 a, P
                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                          7 F( o( o$ v) _0 W: V3 |0 e- m4 B
                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin          / Q4 k5 t' p( l% d) ]/ K
                                count_L1        <= count_L1+1'b1;# T& J' N4 g9 s) t# Y
                                L1_addr         <= L1_addr+1'b1;                                5 G$ f! X" u: w8 l% b0 R5 ^+ `+ p' D
                                if(count_L1==10'd513)               
* H# F; `! r, E2 v/ @% ?                                        begin
$ c  O- Q+ [) [; X" \2 X; t                                                count_L1<=10'd1;5 u, a4 ~4 e) ~8 a* a) B
                                                L1_addr<=10'd0;        1 o! e7 O2 A& ]+ u& s( S# ^" z1 X
                                        end                                                       
: a! R1 h9 u3 F( f$ l3 b! {: f5 x                        end' L9 M1 `5 H9 Y. j* R! f
        end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
3#
發表於 2012-9-11 11:36:50 | 只看該作者
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了
2#
發表於 2012-8-31 13:59:54 | 只看該作者
你的寫法不對,這樣合不出block ram& L2 j( Z' Q' \6 ^% E! |* d
不能同時做這兩行# P1 W9 P0 w0 ]7 ^% p4 A
realdata_L1ain  <= ram_data[L1_addr];
; n0 m9 A" b( j9 x& A# S2 Crealdata_L1bin  <= ram_data[L1_addr+512]
. X) i1 B' \3 ]2 ~" K& G2 O當合不出Block ram時
. N( w# v6 m9 W! gtool就會用LE去合,想當然而,一定不足的
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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