Chip123 科技應用創新平台

標題: RAM疑問 [打印本頁]

作者: daiyoung    時間: 2012-8-27 04:59 PM
標題: RAM疑問
我現在已經把1024點的資料存到FPGA 的RAM裡面
* k  O3 x- X4 L. x8 |signal tap II也可以看到0~1024點的資料) r, N& A# y0 Q: d* x
但是我想取512~1024點的時候) u: |- ~4 ]  y( D2 h# [& q7 L$ C
往往在compiler的時候 fitter那邊就是過不去3 |1 ]( H  y/ D9 A. W9 n3 T
我看了error 說 LEs 不足....
/ W2 s6 J: n& `' F  {/ K- ?為什麼只要特別取某區段的資料時都會遇到這個問題呢# E, Z/ S; m- J0 b- t
程式碼如下
; ]# R) a% Y* C8 T& ]5 Sram_data已經存取1024點資料
: m% O6 Q! m# r2 r9 c$ f: q- M
, n3 W( L; S( R3 e' t$ Calways@(posedge clk or negedge reset)$ j+ o  v8 X7 p, F0 p' y
        begin" S8 c/ `* E# D! s4 m8 f( N
                count_L1<=10'd1;                + M9 w7 X+ u4 \" y2 n
                L1_addr<=10'd0;        & b0 K% h3 I# o
                if (reset ==1'b0)
. t/ E/ Q+ Q; z2 C2 X2 f- N                        begin
6 a+ a" r) d$ ~. _3 t8 P& e                                count_L1<=10'd1;5 D# _* R. D$ p" _4 W
                                L1_addr<=10'd0;
4 A( y7 N* R: _- ~6 b- j                        end0 M  _! w  X( F+ i3 t- q/ x
                else if(start_fft_flag == 1'b1)   
" }( b6 X* x7 [& K5 ?+ K0 t                        begin
  b+ Q7 I. R) U. g4 t& `                                realdata_L1ain  <= ram_data[L1_addr];                           // 0~512的數值傳到realdata_L1ain                         
8 K& x) }" ]& E2 ^4 x                                realdata_L1bin  <= ram_data[L1_addr+512];                   //513~1024的數值傳到realdata_L1bin         
1 N8 `1 m; Z' b; @                                count_L1        <= count_L1+1'b1;1 `  d; n$ m+ O# j4 s8 A
                                L1_addr         <= L1_addr+1'b1;                               
6 X* N- ?: [4 j                                if(count_L1==10'd513)                ( t7 m( w" q/ Q
                                        begin, Q, A6 l2 z: B+ }2 ^
                                                count_L1<=10'd1;
" M: i7 \8 _, N- J- c                                                L1_addr<=10'd0;       
8 A: g' M2 i$ `8 r  y7 Q8 }2 G# C6 n                                        end                                                        - ~6 b% [  n+ m
                        end
9 y9 d$ Y( {; d        end
作者: eric994    時間: 2012-8-31 01:59 PM
你的寫法不對,這樣合不出block ram$ `( q! ~, k+ ?( ?7 u/ J
不能同時做這兩行
- c$ P$ a9 y$ |' wrealdata_L1ain  <= ram_data[L1_addr];
' K2 I9 o$ G6 k  v+ l7 E0 }# C, orealdata_L1bin  <= ram_data[L1_addr+512]8 Z' ~1 U! p7 l3 M7 \3 m" m3 o  i
當合不出Block ram時7 s# \8 S! p4 N* I
tool就會用LE去合,想當然而,一定不足的
作者: michael6172    時間: 2012-9-11 11:36 AM
如果你硬要這樣取值的話,把RAM 拆成兩顆就可以了




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2